nogh

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: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuditorService added in v0.4.0

type AuditorService struct {
	Logger                  logging.Logger
	PublicParametersManager common.PublicParametersManager[*crypto.PublicParams]
	TokenCommitmentLoader   TokenCommitmentLoader
	Deserializer            driver.Deserializer
	Metrics                 *Metrics
	// contains filtered or unexported fields
}

func NewAuditorService added in v0.4.0

func NewAuditorService(
	logger logging.Logger,
	publicParametersManager common.PublicParametersManager[*crypto.PublicParams],
	tokenCommitmentLoader TokenCommitmentLoader,
	deserializer driver.Deserializer,
	metrics *Metrics,
	tracerProvider trace.TracerProvider,
) *AuditorService

func (*AuditorService) AuditorCheck added in v0.4.0

func (s *AuditorService) AuditorCheck(ctx context.Context, request *driver.TokenRequest, metadata *driver.TokenRequestMetadata, txID string) error

AuditorCheck verifies if the passed tokenRequest matches the tokenRequestMetadata

type IssueService added in v0.4.0

type IssueService struct {
	PublicParametersManager common2.PublicParametersManager[*crypto.PublicParams]
	WalletService           driver.WalletService
	Deserializer            driver.Deserializer
	Metrics                 *Metrics
}

func NewIssueService added in v0.4.0

func NewIssueService(
	publicParametersManager common2.PublicParametersManager[*crypto.PublicParams],
	walletService driver.WalletService,
	deserializer driver.Deserializer,
	metrics *Metrics,
) *IssueService

func (*IssueService) DeserializeIssueAction added in v0.4.0

func (s *IssueService) DeserializeIssueAction(raw []byte) (driver.IssueAction, error)

DeserializeIssueAction un-marshals raw bytes into a zkatdlog IssueAction

func (*IssueService) Issue added in v0.4.0

func (s *IssueService) Issue(ctx context.Context, issuerIdentity driver.Identity, tokenType token.Type, values []uint64, owners [][]byte, opts *driver.IssueOptions) (driver.IssueAction, *driver.IssueMetadata, error)

Issue returns an IssueAction as a function of the passed arguments Issue also returns a serialization TokenInformation associated with issued tokens and the identity of the issuer

func (*IssueService) VerifyIssue added in v0.4.0

func (s *IssueService) VerifyIssue(ia driver.IssueAction, outputsMetadata [][]byte) error

VerifyIssue checks if the outputs of an IssueAction match the passed metadata

type LoadedToken added in v0.4.0

type LoadedToken = common.LoadedToken[[]byte, []byte]

type Metrics added in v0.4.0

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

func NewMetrics added in v0.4.0

func NewMetrics(p metrics.Provider) *Metrics

type Service

type Service struct {
	*common.Service[*crypto.PublicParams]
}

func NewTokenService

func NewTokenService(
	logger logging.Logger,
	ws *common.WalletService,
	ppm common.PublicParametersManager[*crypto.PublicParams],
	identityProvider driver.IdentityProvider,
	serializer driver.Serializer,
	deserializer driver.Deserializer,
	configuration driver.Configuration,
	issueService driver.IssueService,
	transferService driver.TransferService,
	auditorService driver.AuditorService,
	tokensService driver.TokensService,
	authorization driver.Authorization,
) (*Service, error)

func (*Service) Validator

func (s *Service) Validator() (driver.Validator, error)

type TokenCommitmentLoader

type TokenCommitmentLoader interface {
	GetTokenOutputs(ctx context.Context, ids []*token2.ID) (map[string]*token.Token, error)
}

type TokenDeserializer added in v0.4.0

type TokenDeserializer interface {
	DeserializeToken(outputFormat token2.Format, outputRaw []byte, metadataRaw []byte) (*token.Token, *token.Metadata, *token.ConversionWitness, error)
}

type TokenLoader

type TokenLoader interface {
	LoadTokens(ctx context.Context, ids []*token2.ID) ([]LoadedToken, error)
}

type TokenVault

type TokenVault interface {
	IsPending(id *token.ID) (bool, error)
	UnspentTokensIteratorBy(ctx context.Context, id string, tokenType token.Type) (driver.UnspentTokensIterator, error)
	ListHistoryIssuedTokens() (*token.IssuedTokens, error)
	Balance(id string, tokenType token.Type) (uint64, error)
}

type TokensService added in v0.4.0

type TokensService struct {
	*common.TokensService
	PublicParametersManager common.PublicParametersManager[*crypto.PublicParams]
	OutputTokenFormat       token.Format
}

func NewTokensService added in v0.4.0

func NewTokensService(publicParametersManager common.PublicParametersManager[*crypto.PublicParams]) (*TokensService, error)

func (*TokensService) Deobfuscate added in v0.4.0

func (s *TokensService) Deobfuscate(output []byte, outputMetadata []byte) (*token.Token, driver.Identity, token.Format, error)

Deobfuscate unmarshals a token and token info from raw bytes It checks if the un-marshalled token matches the token info. If not, it returns an error. Else it returns the token in cleartext and the identity of its issuer

func (*TokensService) DeserializeToken added in v0.4.0

func (s *TokensService) DeserializeToken(outputFormat token.Format, outputRaw []byte, metadataRaw []byte) (*token2.Token, *token2.Metadata, *token2.ConversionWitness, error)

func (*TokensService) SupportedTokenFormats added in v0.4.0

func (s *TokensService) SupportedTokenFormats() []token.Format

type TransferService added in v0.4.0

type TransferService struct {
	Logger                  logging.Logger
	PublicParametersManager common.PublicParametersManager[*crypto.PublicParams]
	WalletService           driver.WalletService
	TokenLoader             TokenLoader
	IdentityDeserializer    driver.Deserializer
	TokenDeserializer       TokenDeserializer
	Metrics                 *Metrics
	// contains filtered or unexported fields
}

func NewTransferService added in v0.4.0

func NewTransferService(
	logger logging.Logger,
	publicParametersManager common.PublicParametersManager[*crypto.PublicParams],
	walletService driver.WalletService,
	tokenLoader TokenLoader,
	identityDeserializer driver.Deserializer,
	metrics *Metrics,
	tracerProvider trace.TracerProvider,
	tokenDeserializer TokenDeserializer,
) *TransferService

func (*TransferService) DeserializeTransferAction added in v0.4.0

func (s *TransferService) DeserializeTransferAction(raw []byte) (driver.TransferAction, error)

DeserializeTransferAction un-marshals a TransferActionMetadata from the passed array of bytes. DeserializeTransferAction returns an error, if the un-marshalling fails.

func (*TransferService) Transfer added in v0.4.0

func (s *TransferService) Transfer(ctx context.Context, txID string, _ driver.OwnerWallet, tokenIDs []*token2.ID, outputTokens []*token2.Token, opts *driver.TransferOptions) (driver.TransferAction, *driver.TransferMetadata, error)

Transfer returns a TransferActionMetadata as a function of the passed arguments It also returns the corresponding TransferMetadata

func (*TransferService) VerifyTransfer added in v0.4.0

func (s *TransferService) VerifyTransfer(action driver.TransferAction, outputsMetadata [][]byte) error

VerifyTransfer checks the outputs in the TransferActionMetadata against the passed metadata

type WalletFactory added in v0.4.0

type WalletFactory struct {
	Logger           logging.Logger
	IdentityProvider driver.IdentityProvider
	TokenVault       TokenVault

	Deserializer driver.Deserializer
	// contains filtered or unexported fields
}

func NewWalletFactory added in v0.4.0

func NewWalletFactory(
	logger logging.Logger,
	identityProvider driver.IdentityProvider,
	tokenVault TokenVault,
	walletsConfiguration WalletsConfiguration,
	deserializer driver.Deserializer,
) *WalletFactory

func (*WalletFactory) NewWallet added in v0.4.0

func (w *WalletFactory) NewWallet(role driver.IdentityRole, walletRegistry common.WalletRegistry, info driver.IdentityInfo, id string) (driver.Wallet, error)

type WalletsConfiguration added in v0.4.0

type WalletsConfiguration interface {
	CacheSizeForOwnerID(id string) int
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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