update go-varsig, go-did-it, add missing resolution options
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/MetaMask/go-did-it"
|
||||
"github.com/ipfs/go-cid"
|
||||
"github.com/ipld/go-ipld-prime"
|
||||
"github.com/ipld/go-ipld-prime/codec"
|
||||
@@ -23,8 +24,8 @@ import (
|
||||
// Supported and returned types are:
|
||||
// - delegation.Token
|
||||
// - invocation.Token
|
||||
func FromSealed(data []byte) (Token, cid.Cid, error) {
|
||||
tkn, err := FromDagCbor(data)
|
||||
func FromSealed(data []byte, resolvOpts ...did.ResolutionOption) (Token, cid.Cid, error) {
|
||||
tkn, err := FromDagCbor(data, resolvOpts...)
|
||||
if err != nil {
|
||||
return nil, cid.Undef, err
|
||||
}
|
||||
@@ -38,10 +39,10 @@ func FromSealed(data []byte) (Token, cid.Cid, error) {
|
||||
}
|
||||
|
||||
// FromSealedReader is the same as Unseal but accepts an io.Reader.
|
||||
func FromSealedReader(r io.Reader) (Token, cid.Cid, error) {
|
||||
func FromSealedReader(r io.Reader, resolvOpts ...did.ResolutionOption) (Token, cid.Cid, error) {
|
||||
cidReader := envelope.NewCIDReader(r)
|
||||
|
||||
tkn, err := FromDagCborReader(cidReader)
|
||||
tkn, err := FromDagCborReader(cidReader, resolvOpts...)
|
||||
if err != nil {
|
||||
return nil, cid.Undef, err
|
||||
}
|
||||
@@ -61,21 +62,21 @@ func FromSealedReader(r io.Reader) (Token, cid.Cid, error) {
|
||||
// Supported and returned types are:
|
||||
// - delegation.Token
|
||||
// - invocation.Token
|
||||
func Decode(b []byte, decFn codec.Decoder) (Token, error) {
|
||||
func Decode(b []byte, decFn codec.Decoder, resolvOpts ...did.ResolutionOption) (Token, error) {
|
||||
node, err := ipld.Decode(b, decFn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return fromIPLD(node)
|
||||
return fromIPLD(node, resolvOpts...)
|
||||
}
|
||||
|
||||
// DecodeReader is the same as Decode, but accept an io.Reader.
|
||||
func DecodeReader(r io.Reader, decFn codec.Decoder) (Token, error) {
|
||||
func DecodeReader(r io.Reader, decFn codec.Decoder, resolvOpts ...did.ResolutionOption) (Token, error) {
|
||||
node, err := ipld.DecodeStreaming(r, decFn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return fromIPLD(node)
|
||||
return fromIPLD(node, resolvOpts...)
|
||||
}
|
||||
|
||||
// FromDagCbor unmarshals an arbitrary DagCbor encoded UCAN token.
|
||||
@@ -84,31 +85,31 @@ func DecodeReader(r io.Reader, decFn codec.Decoder) (Token, error) {
|
||||
// Supported and returned types are:
|
||||
// - delegation.Token
|
||||
// - invocation.Token
|
||||
func FromDagCbor(b []byte) (Token, error) {
|
||||
return Decode(b, dagcbor.Decode)
|
||||
func FromDagCbor(b []byte, resolvOpts ...did.ResolutionOption) (Token, error) {
|
||||
return Decode(b, dagcbor.Decode, resolvOpts...)
|
||||
}
|
||||
|
||||
// FromDagCborReader is the same as FromDagCbor, but accept an io.Reader.
|
||||
func FromDagCborReader(r io.Reader) (Token, error) {
|
||||
return DecodeReader(r, dagcbor.Decode)
|
||||
func FromDagCborReader(r io.Reader, resolvOpts ...did.ResolutionOption) (Token, error) {
|
||||
return DecodeReader(r, dagcbor.Decode, resolvOpts...)
|
||||
}
|
||||
|
||||
// FromDagCbor unmarshals an arbitrary DagJson encoded UCAN token.
|
||||
// FromDagJson unmarshals an arbitrary DagJson encoded UCAN token.
|
||||
// An error is returned if the conversion fails, or if the resulting
|
||||
// Token is invalid.
|
||||
// Supported and returned types are:
|
||||
// - delegation.Token
|
||||
// - invocation.Token
|
||||
func FromDagJson(b []byte) (Token, error) {
|
||||
return Decode(b, dagjson.Decode)
|
||||
func FromDagJson(b []byte, resolvOpts ...did.ResolutionOption) (Token, error) {
|
||||
return Decode(b, dagjson.Decode, resolvOpts...)
|
||||
}
|
||||
|
||||
// FromDagJsonReader is the same as FromDagJson, but accept an io.Reader.
|
||||
func FromDagJsonReader(r io.Reader) (Token, error) {
|
||||
return DecodeReader(r, dagjson.Decode)
|
||||
func FromDagJsonReader(r io.Reader, resolvOpts ...did.ResolutionOption) (Token, error) {
|
||||
return DecodeReader(r, dagjson.Decode, resolvOpts...)
|
||||
}
|
||||
|
||||
func fromIPLD(node datamodel.Node) (Token, error) {
|
||||
func fromIPLD(node datamodel.Node, resolvOpts ...did.ResolutionOption) (Token, error) {
|
||||
tag, err := envelope.FindTag(node)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -116,9 +117,9 @@ func fromIPLD(node datamodel.Node) (Token, error) {
|
||||
|
||||
switch tag {
|
||||
case delegation.Tag:
|
||||
return delegation.FromIPLD(node)
|
||||
return delegation.FromIPLD(node, resolvOpts...)
|
||||
case invocation.Tag:
|
||||
return invocation.FromIPLD(node)
|
||||
return invocation.FromIPLD(node, resolvOpts...)
|
||||
default:
|
||||
return nil, fmt.Errorf(`unknown tag "%s"`, tag)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user