common

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2025 License: Apache-2.0 Imports: 20 Imported by: 2

Documentation

Index

Constants

View Source
const (
	TokenRequestToSign driver.ValidationAttributeID = "trs"
)

Variables

View Source
var (
	ErrNilRecipientData = err.New("nil recipient data")
)

Functions

This section is empty.

Types

type ActionDeserializer added in v0.4.0

type ActionDeserializer[TA driver.TransferAction, IA driver.IssueAction] interface {
	DeserializeActions(tr *driver.TokenRequest) ([]IA, []TA, error)
}

type AnonymousOwnerWallet added in v0.4.0

type AnonymousOwnerWallet struct {
	*LongTermOwnerWallet
	Logger         logging.Logger
	Deserializer   driver.Deserializer
	WalletRegistry WalletRegistry
	IdentityCache  *WalletIdentityCache
}

func NewAnonymousOwnerWallet added in v0.4.0

func NewAnonymousOwnerWallet(
	logger logging.Logger,
	IdentityProvider driver.IdentityProvider,
	TokenVault OwnerTokenVault,
	Deserializer driver.Deserializer,
	walletRegistry WalletRegistry,
	id string,
	identityInfo driver.IdentityInfo,
	cacheSize int,
) (*AnonymousOwnerWallet, error)

func (*AnonymousOwnerWallet) Contains added in v0.4.0

func (w *AnonymousOwnerWallet) Contains(identity driver.Identity) bool

func (*AnonymousOwnerWallet) ContainsToken added in v0.4.0

func (w *AnonymousOwnerWallet) ContainsToken(token *token.UnspentToken) bool

ContainsToken returns true if the passed token is owned by this wallet

func (*AnonymousOwnerWallet) GetRecipientIdentity added in v0.4.0

func (w *AnonymousOwnerWallet) GetRecipientIdentity() (driver.Identity, error)

func (*AnonymousOwnerWallet) GetSigner added in v0.4.0

func (w *AnonymousOwnerWallet) GetSigner(identity driver.Identity) (driver.Signer, error)

func (*AnonymousOwnerWallet) RegisterRecipient added in v0.4.0

func (w *AnonymousOwnerWallet) RegisterRecipient(data *driver.RecipientData) error

type AuditMatcherProvider added in v0.4.0

type AuditMatcherProvider interface {
	GetOwnerMatcher(raw []byte) (driver.Matcher, error)
	MatchOwnerIdentity(id driver.Identity, ai []byte) error
	GetOwnerAuditInfo(id driver.Identity, p driver.AuditInfoProvider) ([][]byte, error)
}

AuditMatcherProvider provides audit related deserialization functionalities

type AuditorWallet added in v0.4.0

type AuditorWallet struct {
	IdentityProvider driver.IdentityProvider
	WalletID         string
	AuditorIdentity  driver.Identity
}

func NewAuditorWallet added in v0.4.0

func NewAuditorWallet(IdentityProvider driver.IdentityProvider, id string, identity driver.Identity) *AuditorWallet

func (*AuditorWallet) Contains added in v0.4.0

func (w *AuditorWallet) Contains(identity driver.Identity) bool

func (*AuditorWallet) ContainsToken added in v0.4.0

func (w *AuditorWallet) ContainsToken(token *token.UnspentToken) bool

func (*AuditorWallet) GetAuditorIdentity added in v0.4.0

func (w *AuditorWallet) GetAuditorIdentity() (driver.Identity, error)

func (*AuditorWallet) GetSigner added in v0.4.0

func (w *AuditorWallet) GetSigner(id driver.Identity) (driver.Signer, error)

func (*AuditorWallet) ID added in v0.4.0

func (w *AuditorWallet) ID() string

type Authorization added in v0.4.0

type Authorization interface {
	// IsMine returns true if the passed token is owned by an owner wallet.
	// It returns the ID of the owner wallet and any additional owner identifier, if supported.
	// It is possible that the wallet ID is empty and the additional owner identifier list is not.
	IsMine(tok *token2.Token) (string, []string, bool)
	// AmIAnAuditor return true if the passed TMS contains an auditor wallet for any of the auditor identities
	// defined in the public parameters of the passed TMS.
	AmIAnAuditor() bool
	// Issued returns true if the passed issuer issued the passed token
	Issued(issuer token.Identity, tok *token2.Token) bool
}

type AuthorizationMultiplexer added in v0.4.0

type AuthorizationMultiplexer struct {
	// contains filtered or unexported fields
}

AuthorizationMultiplexer iterates over multiple authorization checker

func NewAuthorizationMultiplexer added in v0.4.0

func NewAuthorizationMultiplexer(ownerships ...Authorization) *AuthorizationMultiplexer

NewAuthorizationMultiplexer returns a new AuthorizationMultiplexer for the passed ownership checkers

func (*AuthorizationMultiplexer) AmIAnAuditor added in v0.4.0

func (o *AuthorizationMultiplexer) AmIAnAuditor() bool

AmIAnAuditor returns true it there exists an authorization checker that returns true

func (*AuthorizationMultiplexer) IsMine added in v0.4.0

func (o *AuthorizationMultiplexer) IsMine(tok *token2.Token) (string, []string, bool)

IsMine returns true it there exists an authorization checker that returns true

func (*AuthorizationMultiplexer) Issued added in v0.4.0

func (o *AuthorizationMultiplexer) Issued(issuer token.Identity, tok *token2.Token) bool

func (*AuthorizationMultiplexer) OwnerType added in v0.4.0

func (o *AuthorizationMultiplexer) OwnerType(raw []byte) (string, []byte, error)

OwnerType returns the type of owner (e.g. 'idemix' or 'htlc') and the identity bytes

type Backend

type Backend struct {
	// Ledger to access the ledger state
	Ledger driver.GetStateFnc
	// signed Message
	Message []byte
	// Cursor is used to iterate over the signatures
	Cursor int
	// signatures on Message
	Sigs [][]byte
}

func NewBackend

func NewBackend(ledger driver.GetStateFnc, message []byte, sigs [][]byte) *Backend

func (*Backend) GetState

func (b *Backend) GetState(id token.ID) ([]byte, error)

func (*Backend) HasBeenSignedBy

func (b *Backend) HasBeenSignedBy(id driver.Identity, verifier driver.Verifier) ([]byte, error)

HasBeenSignedBy checks if a given Message has been signed by the signing identity matching the passed verifier

func (*Backend) Signatures

func (b *Backend) Signatures() [][]byte

type CertifierWallet added in v0.4.0

type CertifierWallet struct {
	IdentityProvider  driver.IdentityProvider
	WalletID          string
	CertifierIdentity driver.Identity
}

func NewCertifierWallet added in v0.4.0

func NewCertifierWallet(IdentityProvider driver.IdentityProvider, id string, identity driver.Identity) *CertifierWallet

func (*CertifierWallet) Contains added in v0.4.0

func (w *CertifierWallet) Contains(identity driver.Identity) bool

func (*CertifierWallet) ContainsToken added in v0.4.0

func (w *CertifierWallet) ContainsToken(token *token.UnspentToken) bool

func (*CertifierWallet) GetCertifierIdentity added in v0.4.0

func (w *CertifierWallet) GetCertifierIdentity() (driver.Identity, error)

func (*CertifierWallet) GetSigner added in v0.4.0

func (w *CertifierWallet) GetSigner(id driver.Identity) (driver.Signer, error)

func (*CertifierWallet) ID added in v0.4.0

func (w *CertifierWallet) ID() string

type Context added in v0.4.0

type Context[P driver.PublicParameters, T any, TA driver.TransferAction, IA driver.IssueAction, DS driver.Deserializer] struct {
	Logger            logging.Logger
	PP                P
	Deserializer      DS
	SignatureProvider driver.SignatureProvider
	Signatures        [][]byte
	InputTokens       []T
	TransferAction    TA
	IssueAction       IA
	Ledger            driver.Ledger
	MetadataCounter   map[MetadataCounterID]int
	Attributes        driver.ValidationAttributes
}

func (*Context[P, T, TA, IA, DS]) CountMetadataKey added in v0.4.0

func (c *Context[P, T, TA, IA, DS]) CountMetadataKey(key string)

type Deserializer added in v0.4.0

type Deserializer struct {
	// contains filtered or unexported fields
}

Deserializer deserializes verifiers associated with issuers, owners, and auditors

func NewDeserializer added in v0.4.0

func NewDeserializer(
	identityType string,
	auditorDeserializer VerifierDeserializer,
	ownerDeserializer VerifierDeserializer,
	issuerDeserializer VerifierDeserializer,
	auditMatcherProvider AuditMatcherProvider,
	recipientExtractor RecipientExtractor,
) *Deserializer

func (*Deserializer) GetAuditorVerifier added in v0.4.0

func (d *Deserializer) GetAuditorVerifier(id driver.Identity) (driver.Verifier, error)

func (*Deserializer) GetIssuerVerifier added in v0.4.0

func (d *Deserializer) GetIssuerVerifier(id driver.Identity) (driver.Verifier, error)

func (*Deserializer) GetOwnerAuditInfo added in v0.4.0

func (d *Deserializer) GetOwnerAuditInfo(id driver.Identity, p driver.AuditInfoProvider) ([][]byte, error)

func (*Deserializer) GetOwnerMatcher added in v0.4.0

func (d *Deserializer) GetOwnerMatcher(raw []byte) (driver.Matcher, error)

func (*Deserializer) GetOwnerVerifier added in v0.4.0

func (d *Deserializer) GetOwnerVerifier(id driver.Identity) (driver.Verifier, error)

func (*Deserializer) MatchOwnerIdentity added in v0.4.0

func (d *Deserializer) MatchOwnerIdentity(id driver.Identity, ai []byte) error

func (*Deserializer) Recipients added in v0.4.0

func (d *Deserializer) Recipients(id driver.Identity) ([]driver.Identity, error)

type Hashable added in v0.4.0

type Hashable []byte

func (Hashable) Raw added in v0.4.0

func (id Hashable) Raw() []byte

func (Hashable) RawString added in v0.4.0

func (id Hashable) RawString() string

func (Hashable) String added in v0.4.0

func (id Hashable) String() string

type Hasher added in v0.4.0

type Hasher struct {
	// contains filtered or unexported fields
}

func NewSHA256Hasher added in v0.4.0

func NewSHA256Hasher() *Hasher

func (*Hasher) AddBool added in v0.4.0

func (h *Hasher) AddBool(b bool) (int, error)

func (*Hasher) AddBytes added in v0.4.0

func (h *Hasher) AddBytes(b []byte) error

func (*Hasher) AddFloat64 added in v0.4.0

func (h *Hasher) AddFloat64(f float64) error

func (*Hasher) AddG1s added in v0.4.0

func (h *Hasher) AddG1s(generators []*math.G1) error

func (*Hasher) AddInt added in v0.4.0

func (h *Hasher) AddInt(i int) error

func (*Hasher) AddInt32 added in v0.4.0

func (h *Hasher) AddInt32(i int32) error

func (*Hasher) AddString added in v0.4.0

func (h *Hasher) AddString(s string) error

func (*Hasher) AddUInt64 added in v0.4.0

func (h *Hasher) AddUInt64(i uint64) error

func (*Hasher) Digest added in v0.4.0

func (h *Hasher) Digest() []byte

func (*Hasher) HexDigest added in v0.4.0

func (h *Hasher) HexDigest() string

type IdentityTokenAndMetadataDeserializer added in v0.4.0

type IdentityTokenAndMetadataDeserializer struct{}

func (IdentityTokenAndMetadataDeserializer) DeserializeMetadata added in v0.4.0

func (i IdentityTokenAndMetadataDeserializer) DeserializeMetadata(bytes []byte) ([]byte, error)

func (IdentityTokenAndMetadataDeserializer) DeserializeToken added in v0.4.0

func (i IdentityTokenAndMetadataDeserializer) DeserializeToken(bytes []byte) ([]byte, error)

type IssuerTokenVault added in v0.4.0

type IssuerTokenVault interface {
	ListHistoryIssuedTokens() (*token.IssuedTokens, error)
}

type IssuerWallet added in v0.4.0

type IssuerWallet struct {
	Logger           logging.Logger
	IdentityProvider driver.IdentityProvider
	TokenVault       IssuerTokenVault
	WalletID         string
	IssuerIdentity   driver.Identity
}

func NewIssuerWallet added in v0.4.0

func NewIssuerWallet(Logger logging.Logger, IdentityProvider driver.IdentityProvider, TokenVault IssuerTokenVault, id string, identity driver.Identity) *IssuerWallet

func (*IssuerWallet) Contains added in v0.4.0

func (w *IssuerWallet) Contains(identity driver.Identity) bool

func (*IssuerWallet) ContainsToken added in v0.4.0

func (w *IssuerWallet) ContainsToken(token *token.UnspentToken) bool

func (*IssuerWallet) GetIssuerIdentity added in v0.4.0

func (w *IssuerWallet) GetIssuerIdentity(tokenType token.Type) (driver.Identity, error)

func (*IssuerWallet) GetSigner added in v0.4.0

func (w *IssuerWallet) GetSigner(identity driver.Identity) (driver.Signer, error)

func (*IssuerWallet) HistoryTokens added in v0.4.0

func (w *IssuerWallet) HistoryTokens(opts *driver.ListTokensOptions) (*token.IssuedTokens, error)

func (*IssuerWallet) ID added in v0.4.0

func (w *IssuerWallet) ID() string

type LedgerToken added in v0.4.0

type LedgerToken interface {
	GetOwner() []byte
}

type LoadedToken added in v0.4.0

type LoadedToken[T any, M any] struct {
	TokenFormat token.Format
	Token       T
	Metadata    M
}

type LongTermOwnerWallet added in v0.4.0

type LongTermOwnerWallet struct {
	IdentityProvider  driver.IdentityProvider
	TokenVault        OwnerTokenVault
	WalletID          string
	OwnerIdentityInfo driver.IdentityInfo
	OwnerIdentity     driver.Identity
}

func NewLongTermOwnerWallet added in v0.4.0

func NewLongTermOwnerWallet(IdentityProvider driver.IdentityProvider, TokenVault OwnerTokenVault, identity driver.Identity, id string, identityInfo driver.IdentityInfo) *LongTermOwnerWallet

func (*LongTermOwnerWallet) Balance added in v0.4.0

func (*LongTermOwnerWallet) Contains added in v0.4.0

func (w *LongTermOwnerWallet) Contains(identity driver.Identity) bool

func (*LongTermOwnerWallet) ContainsToken added in v0.4.0

func (w *LongTermOwnerWallet) ContainsToken(token *token.UnspentToken) bool

func (*LongTermOwnerWallet) EnrollmentID added in v0.4.0

func (w *LongTermOwnerWallet) EnrollmentID() string

func (*LongTermOwnerWallet) GetAuditInfo added in v0.4.0

func (w *LongTermOwnerWallet) GetAuditInfo(id driver.Identity) ([]byte, error)

func (*LongTermOwnerWallet) GetRecipientIdentity added in v0.4.0

func (w *LongTermOwnerWallet) GetRecipientIdentity() (driver.Identity, error)

func (*LongTermOwnerWallet) GetSigner added in v0.4.0

func (w *LongTermOwnerWallet) GetSigner(identity driver.Identity) (driver.Signer, error)

func (*LongTermOwnerWallet) GetTokenMetadata added in v0.4.0

func (w *LongTermOwnerWallet) GetTokenMetadata(id driver.Identity) ([]byte, error)

func (*LongTermOwnerWallet) GetTokenMetadataAuditInfo added in v0.4.0

func (w *LongTermOwnerWallet) GetTokenMetadataAuditInfo(id driver.Identity) ([]byte, error)

func (*LongTermOwnerWallet) ID added in v0.4.0

func (w *LongTermOwnerWallet) ID() string

func (*LongTermOwnerWallet) ListTokens added in v0.4.0

func (*LongTermOwnerWallet) ListTokensIterator added in v0.4.0

func (*LongTermOwnerWallet) RegisterRecipient added in v0.4.0

func (w *LongTermOwnerWallet) RegisterRecipient(data *driver.RecipientData) error

func (*LongTermOwnerWallet) Remote added in v0.4.0

func (w *LongTermOwnerWallet) Remote() bool

type MetadataCounterID added in v0.4.0

type MetadataCounterID = string

type MetadataDeserializer added in v0.4.0

type MetadataDeserializer[M any] interface {
	DeserializeMetadata([]byte) (M, error)
}

type OwnerTokenVault added in v0.4.0

type OwnerTokenVault interface {
	UnspentTokensIteratorBy(ctx context.Context, id string, tokenType token.Type) (driver.UnspentTokensIterator, error)
	Balance(id string, tokenType token.Type) (uint64, error)
}

type PublicParametersManager added in v0.4.0

type PublicParametersManager[T driver.PublicParameters] interface {
	driver.PublicParamsManager
	PublicParams() T
}

type PublicParamsDeserializer added in v0.4.0

type PublicParamsDeserializer[T driver.PublicParameters] interface {
	DeserializePublicParams(raw []byte, label string) (T, error)
}

type PublicParamsManager added in v0.4.0

type PublicParamsManager[T driver.PublicParameters] struct {

	// label of the public params
	PPLabel string
	// contains filtered or unexported fields
}

func NewPublicParamsManager added in v0.4.0

func NewPublicParamsManager[T driver.PublicParameters](
	PublicParamsDeserializer PublicParamsDeserializer[T],
	PPLabel string,
	ppRaw []byte,
) (*PublicParamsManager[T], error)

func NewPublicParamsManagerFromParams added in v0.4.0

func NewPublicParamsManagerFromParams[T driver.PublicParameters](pp T) (*PublicParamsManager[T], error)

func (*PublicParamsManager[T]) NewCertifierKeyPair added in v0.4.0

func (v *PublicParamsManager[T]) NewCertifierKeyPair() ([]byte, []byte, error)

func (*PublicParamsManager[T]) PublicParameters added in v0.4.0

func (v *PublicParamsManager[T]) PublicParameters() driver.PublicParameters

func (*PublicParamsManager[T]) PublicParams added in v0.4.0

func (v *PublicParamsManager[T]) PublicParams() T

func (*PublicParamsManager[T]) PublicParamsHash added in v0.4.0

func (v *PublicParamsManager[T]) PublicParamsHash() driver.PPHash

type RecipientExtractor added in v0.4.0

type RecipientExtractor interface {
	Recipients(id driver.Identity) ([]driver.Identity, error)
}

RecipientExtractor extracts the recipients from an identity

type RegistryEntry added in v0.4.0

type RegistryEntry struct {
	Registry WalletRegistry
	Mutex    *sync.RWMutex
}

type Serializer added in v0.4.0

type Serializer struct {
}

func NewSerializer added in v0.4.0

func NewSerializer() *Serializer

func (Serializer) MarshalTokenRequestToSign added in v0.4.0

func (s Serializer) MarshalTokenRequestToSign(request *driver.TokenRequest, meta *driver.TokenRequestMetadata) ([]byte, error)

type Service added in v0.4.0

type Service[T driver.PublicParameters] struct {
	Logger                  logging.Logger
	PublicParametersManager PublicParametersManager[T]
	// contains filtered or unexported fields
}

func NewTokenService added in v0.4.0

func NewTokenService[T driver.PublicParameters](
	logger logging.Logger,
	ws *WalletService,
	publicParametersManager PublicParametersManager[T],
	identityProvider driver.IdentityProvider,
	serializer driver.Serializer,
	deserializer driver.Deserializer,
	configManager driver.Configuration,
	certificationService driver.CertificationService,
	issueService driver.IssueService,
	transferService driver.TransferService,
	auditorService driver.AuditorService,
	tokensService driver.TokensService,
	authorization driver.Authorization,
) (*Service[T], error)

func (*Service[T]) AuditorService added in v0.4.0

func (s *Service[T]) AuditorService() driver.AuditorService

func (*Service[T]) Authorization added in v0.4.0

func (s *Service[T]) Authorization() driver.Authorization

func (*Service[T]) CertificationService added in v0.4.0

func (s *Service[T]) CertificationService() driver.CertificationService

func (*Service[T]) Configuration added in v0.4.0

func (s *Service[T]) Configuration() driver.Configuration

Configuration returns the configuration manager associated with the service

func (*Service[T]) Deserializer added in v0.4.0

func (s *Service[T]) Deserializer() driver.Deserializer

func (*Service[T]) Done added in v0.4.0

func (s *Service[T]) Done() error

Done releases all the resources allocated by this service

func (*Service[T]) GetTokenInfo added in v0.4.0

func (s *Service[T]) GetTokenInfo(meta *driver.TokenRequestMetadata, target []byte) ([]byte, error)

func (*Service[T]) IdentityProvider added in v0.4.0

func (s *Service[T]) IdentityProvider() driver.IdentityProvider

IdentityProvider returns the identity provider associated with the service

func (*Service[T]) IssueService added in v0.4.0

func (s *Service[T]) IssueService() driver.IssueService

func (*Service[T]) PublicParamsManager added in v0.4.0

func (s *Service[T]) PublicParamsManager() driver.PublicParamsManager

PublicParamsManager returns the manager of the public parameters associated with the service

func (*Service[T]) Serializer added in v0.4.0

func (s *Service[T]) Serializer() driver.Serializer

func (*Service[T]) TokensService added in v0.4.0

func (s *Service[T]) TokensService() driver.TokensService

func (*Service[T]) TransferService added in v0.4.0

func (s *Service[T]) TransferService() driver.TransferService

func (*Service[T]) WalletService added in v0.4.0

func (s *Service[T]) WalletService() driver.WalletService

type TokenAndMetadataDeserializer added in v0.4.0

type TokenAndMetadataDeserializer[T any, M any] interface {
	TokenDeserializer[T]
	MetadataDeserializer[M]
}

type TokenCertificationStorage added in v0.4.0

type TokenCertificationStorage interface {
	GetCertifications(ids []*token.ID) ([][]byte, error)
}

type TokenDeserializer added in v0.4.0

type TokenDeserializer[T any] interface {
	DeserializeToken([]byte) (T, error)
}

type TokenVault added in v0.4.0

type TokenVault interface {
	IsPending(id *token.ID) (bool, error)
	GetTokenOutputsAndMeta(ctx context.Context, ids []*token.ID) ([][]byte, [][]byte, []token.Format, error)
	GetTokenOutputs(ids []*token.ID, callback driver.QueryCallbackFunc) error
	UnspentTokensIteratorBy(ctx context.Context, id string, tokenType token.Type) (driver.UnspentTokensIterator, error)
	ListHistoryIssuedTokens() (*token.IssuedTokens, error)
	PublicParams() ([]byte, error)
	Balance(id string, tokenType token.Type) (uint64, error)
}

type TokensService added in v0.4.0

type TokensService struct{}

func NewTokensService added in v0.4.0

func NewTokensService() *TokensService

func (*TokensService) ExtractMetadata added in v0.4.0

func (s *TokensService) ExtractMetadata(meta *driver.TokenRequestMetadata, target []byte) ([]byte, error)

type ValidateIssueFunc added in v0.4.0

type ValidateIssueFunc[P driver.PublicParameters, T any, TA driver.TransferAction, IA driver.IssueAction, DS driver.Deserializer] func(ctx *Context[P, T, TA, IA, DS]) error

type ValidateTransferFunc added in v0.4.0

type ValidateTransferFunc[P driver.PublicParameters, T any, TA driver.TransferAction, IA driver.IssueAction, DS driver.Deserializer] func(ctx *Context[P, T, TA, IA, DS]) error

type Validator added in v0.4.0

type Validator[P driver.PublicParameters, T any, TA driver.TransferAction, IA driver.IssueAction, DS driver.Deserializer] struct {
	Logger             logging.Logger
	PublicParams       P
	Deserializer       DS
	ActionDeserializer ActionDeserializer[TA, IA]
	TransferValidators []ValidateTransferFunc[P, T, TA, IA, DS]
	IssueValidators    []ValidateIssueFunc[P, T, TA, IA, DS]
	Serializer         driver.Serializer
}

func NewValidator added in v0.4.0

func NewValidator[P driver.PublicParameters, T any, TA driver.TransferAction, IA driver.IssueAction, DS driver.Deserializer](
	Logger logging.Logger,
	publicParams P,
	deserializer DS,
	actionDeserializer ActionDeserializer[TA, IA],
	transferValidators []ValidateTransferFunc[P, T, TA, IA, DS],
	issueValidators []ValidateIssueFunc[P, T, TA, IA, DS],
	serializer driver.Serializer,
) *Validator[P, T, TA, IA, DS]

func (*Validator[P, T, TA, IA, DS]) UnmarshalActions added in v0.4.0

func (v *Validator[P, T, TA, IA, DS]) UnmarshalActions(raw []byte) ([]interface{}, error)

func (*Validator[P, T, TA, IA, DS]) VerifyTokenRequest added in v0.4.0

func (v *Validator[P, T, TA, IA, DS]) VerifyTokenRequest(ledger driver.Ledger, signatureProvider driver.SignatureProvider, anchor string, tr *driver.TokenRequest, attributes driver.ValidationAttributes) ([]interface{}, driver.ValidationAttributes, error)

func (*Validator[P, T, TA, IA, DS]) VerifyTokenRequestFromRaw added in v0.4.0

func (v *Validator[P, T, TA, IA, DS]) VerifyTokenRequestFromRaw(ctx context.Context, getState driver.GetStateFnc, anchor string, raw []byte) ([]interface{}, driver.ValidationAttributes, error)

type VaultLedgerTokenAndMetadataLoader added in v0.4.0

type VaultLedgerTokenAndMetadataLoader[T any, M any] struct {
	TokenVault   TokenVault
	Deserializer TokenAndMetadataDeserializer[T, M]
}

func NewVaultLedgerTokenAndMetadataLoader added in v0.4.0

func NewVaultLedgerTokenAndMetadataLoader[T any, M any](tokenVault TokenVault, deserializer TokenAndMetadataDeserializer[T, M]) *VaultLedgerTokenAndMetadataLoader[T, M]

func (*VaultLedgerTokenAndMetadataLoader[T, M]) LoadTokens added in v0.4.0

func (s *VaultLedgerTokenAndMetadataLoader[T, M]) LoadTokens(ctx context.Context, ids []*token.ID) ([]LoadedToken[T, M], error)

LoadTokens takes an array of token identifiers (txID, index) and returns the keys in the vault matching the token identifiers, the corresponding zkatdlog tokens, the information of the tokens in clear text and the identities of their owners LoadToken returns an error in case of failure

type VaultLedgerTokenLoader added in v0.4.0

type VaultLedgerTokenLoader[T any] struct {
	Logger logging.Logger

	TokenVault   TokenVault
	Deserializer TokenDeserializer[T]

	// Variables used to control retry condition
	NumRetries int
	RetryDelay time.Duration
	// contains filtered or unexported fields
}

func NewLedgerTokenLoader added in v0.4.0

func NewLedgerTokenLoader[T any](logger logging.Logger, tracerProvider trace.TracerProvider, tokenVault TokenVault, deserializer TokenDeserializer[T]) *VaultLedgerTokenLoader[T]

func (*VaultLedgerTokenLoader[T]) GetTokenOutputs added in v0.4.0

func (s *VaultLedgerTokenLoader[T]) GetTokenOutputs(ctx context.Context, ids []*token.ID) (map[string]T, error)

GetTokenOutputs takes an array of token identifiers (txID, index) and returns the corresponding token outputs

type VaultTokenCertificationLoader added in v0.4.0

type VaultTokenCertificationLoader struct {
	TokenCertificationStorage TokenCertificationStorage
}

func (*VaultTokenCertificationLoader) GetCertifications added in v0.4.0

func (s *VaultTokenCertificationLoader) GetCertifications(ids []*token.ID) ([][]byte, error)

type VaultTokenInfoLoader added in v0.4.0

type VaultTokenInfoLoader[M any] struct {
	TokenVault   driver.QueryEngine
	Deserializer MetadataDeserializer[M]
}

func NewVaultTokenInfoLoader added in v0.4.0

func NewVaultTokenInfoLoader[M any](tokenVault driver.QueryEngine, deserializer MetadataDeserializer[M]) *VaultTokenInfoLoader[M]

func (*VaultTokenInfoLoader[M]) GetTokenInfos added in v0.4.0

func (s *VaultTokenInfoLoader[M]) GetTokenInfos(ids []*token.ID) ([]M, error)

type VaultTokenLoader added in v0.4.0

type VaultTokenLoader struct {
	TokenVault driver.QueryEngine
}

func NewVaultTokenLoader added in v0.4.0

func NewVaultTokenLoader(tokenVault driver.QueryEngine) *VaultTokenLoader

func (*VaultTokenLoader) GetTokens added in v0.4.0

func (s *VaultTokenLoader) GetTokens(ids []*token.ID) ([]*token.Token, error)

GetTokens takes an array of token identifiers (txID, index) and returns the keys of the identified tokens in the vault and the content of the tokens

type VerifierDeserializer added in v0.4.0

type VerifierDeserializer interface {
	DeserializeVerifier(id driver.Identity) (driver.Verifier, error)
}

VerifierDeserializer is the interface for verifiers' deserializer. A verifier checks the validity of a signature against the identity associated with the verifier

type WalletBasedAuthorization added in v0.4.0

type WalletBasedAuthorization struct {
	Logger           logging.Logger
	PublicParameters driver.PublicParameters
	WalletService    driver.WalletService
	// contains filtered or unexported fields
}

WalletBasedAuthorization is a wallet-based authorization implementation

func NewTMSAuthorization added in v0.4.0

func NewTMSAuthorization(logger logging.Logger, publicParameters driver.PublicParameters, walletService driver.WalletService) *WalletBasedAuthorization

func (*WalletBasedAuthorization) AmIAnAuditor added in v0.4.0

func (w *WalletBasedAuthorization) AmIAnAuditor() bool

AmIAnAuditor return true if the passed TMS contains an auditor wallet for any of the auditor identities defined in the public parameters of the passed TMS.

func (*WalletBasedAuthorization) IsMine added in v0.4.0

func (w *WalletBasedAuthorization) IsMine(tok *token2.Token) (string, []string, bool)

IsMine returns true if the passed token is owned by an owner wallet. It returns the ID of the owner wallet and no additional owner identifiers.

func (*WalletBasedAuthorization) Issued added in v0.4.0

func (w *WalletBasedAuthorization) Issued(issuer token.Identity, tok *token2.Token) bool

type WalletFactory added in v0.4.0

type WalletFactory interface {
	NewWallet(role driver.IdentityRole, walletRegistry WalletRegistry, info driver.IdentityInfo, id string) (driver.Wallet, error)
}

type WalletIdentityCache added in v0.4.0

type WalletIdentityCache struct {
	Logger logging.Logger
	// contains filtered or unexported fields
}

func NewWalletIdentityCache added in v0.4.0

func NewWalletIdentityCache(Logger logging.Logger, backed WalletIdentityCacheBackendFunc, size int) *WalletIdentityCache

func (*WalletIdentityCache) Identity added in v0.4.0

func (c *WalletIdentityCache) Identity() (driver.Identity, error)

type WalletIdentityCacheBackendFunc added in v0.4.0

type WalletIdentityCacheBackendFunc func() (driver.Identity, error)

type WalletRegistry added in v0.4.0

type WalletRegistry interface {
	WalletIDs() ([]string, error)
	RegisterIdentity(config driver.IdentityConfiguration) error
	Lookup(id driver.WalletLookupID) (driver.Wallet, driver.IdentityInfo, string, error)
	RegisterWallet(id string, wallet driver.Wallet) error
	BindIdentity(identity driver.Identity, eID string, wID string, meta any) error
	ContainsIdentity(i driver.Identity, id string) bool
	GetIdentityMetadata(identity driver.Identity, wID string, meta any) error
}

type WalletService added in v0.4.0

type WalletService struct {
	Logger           logging.Logger
	IdentityProvider driver.IdentityProvider
	Deserializer     driver.Deserializer

	WalletFactory WalletFactory
	Registries    map[driver.IdentityRole]*RegistryEntry
}

func NewWalletService added in v0.4.0

func NewWalletService(
	logger logging.Logger,
	identityProvider driver.IdentityProvider,
	deserializer driver.Deserializer,
	walletFactory WalletFactory,
	OwnerWalletRegistry WalletRegistry,
	IssuerWalletRegistry WalletRegistry,
	AuditorWalletRegistry WalletRegistry,
	CertifierWalletsRegistry WalletRegistry,
) *WalletService

func (*WalletService) AuditorWallet added in v0.4.0

func (s *WalletService) AuditorWallet(id driver.WalletLookupID) (driver.AuditorWallet, error)

func (*WalletService) CertifierWallet added in v0.4.0

func (s *WalletService) CertifierWallet(id driver.WalletLookupID) (driver.CertifierWallet, error)

func (*WalletService) GetAuditInfo added in v0.4.0

func (s *WalletService) GetAuditInfo(id driver.Identity) ([]byte, error)

func (*WalletService) GetEIDAndRH added in v0.4.0

func (s *WalletService) GetEIDAndRH(identity driver.Identity, auditInfo []byte) (string, string, error)

func (*WalletService) GetEnrollmentID added in v0.4.0

func (s *WalletService) GetEnrollmentID(identity driver.Identity, auditInfo []byte) (string, error)

func (*WalletService) GetRevocationHandle added in v0.4.0

func (s *WalletService) GetRevocationHandle(identity driver.Identity, auditInfo []byte) (string, error)

func (*WalletService) IssuerWallet added in v0.4.0

func (*WalletService) OwnerWallet added in v0.4.0

func (*WalletService) OwnerWalletIDs added in v0.4.0

func (s *WalletService) OwnerWalletIDs() ([]string, error)

func (*WalletService) RegisterIssuerIdentity added in v0.4.0

func (s *WalletService) RegisterIssuerIdentity(config driver.IdentityConfiguration) error

func (*WalletService) RegisterOwnerIdentity added in v0.4.0

func (s *WalletService) RegisterOwnerIdentity(config driver.IdentityConfiguration) error

func (*WalletService) RegisterRecipientIdentity added in v0.4.0

func (s *WalletService) RegisterRecipientIdentity(data *driver.RecipientData) error

func (*WalletService) SpentIDs added in v0.4.0

func (s *WalletService) SpentIDs(ids ...*token.ID) ([]string, error)

SpentIDs returns the spend ids for the passed token ids

func (*WalletService) Wallet added in v0.4.0

func (s *WalletService) Wallet(identity driver.Identity) driver.Wallet

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL