diff --git a/token/delegation/delegation.go b/token/delegation/delegation.go index ccaed08..10db932 100644 --- a/token/delegation/delegation.go +++ b/token/delegation/delegation.go @@ -79,6 +79,10 @@ func New(privKey crypto.PrivKey, aud did.DID, cmd command.Command, pol policy.Po } } + if len(tkn.meta.Keys) < 1 { + tkn.meta = nil + } + if err := tkn.validate(); err != nil { return nil, err } @@ -213,7 +217,7 @@ func tokenFromModel(m tokenPayloadModel) (*Token, error) { } tkn.nonce = m.Nonce - tkn.meta = &m.Meta + tkn.meta = m.Meta if m.Nbf != nil { t := time.Unix(*m.Nbf, 0) diff --git a/token/delegation/delegation.ipldsch b/token/delegation/delegation.ipldsch index c65988a..09ea964 100644 --- a/token/delegation/delegation.ipldsch +++ b/token/delegation/delegation.ipldsch @@ -20,7 +20,7 @@ type Payload struct { nonce Bytes # Arbitrary Metadata - meta {String : Any} + meta optional {String : Any} # "Not before" UTC Unix Timestamp in seconds (valid from), 53-bits integer nbf optional Int diff --git a/token/delegation/ipld.go b/token/delegation/ipld.go index 004a49b..8508faa 100644 --- a/token/delegation/ipld.go +++ b/token/delegation/ipld.go @@ -224,7 +224,7 @@ func (t *Token) toIPLD(privKey crypto.PrivKey) (datamodel.Node, error) { Cmd: t.command.String(), Pol: pol, Nonce: t.nonce, - Meta: *t.meta, + Meta: t.meta, Nbf: nbf, Exp: exp, } diff --git a/token/delegation/schema.go b/token/delegation/schema.go index d9b7a27..1c6873c 100644 --- a/token/delegation/schema.go +++ b/token/delegation/schema.go @@ -66,7 +66,7 @@ type tokenPayloadModel struct { Nonce []byte // Arbitrary Metadata - Meta meta.Meta + Meta *meta.Meta // "Not before" UTC Unix Timestamp in seconds (valid from), 53-bits integer // optional: can be nil