ttx

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2023 License: Apache-2.0 Imports: 29 Imported by: 5

Documentation

Overview

Copyright IBM Corp. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0

Copyright IBM Corp. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0

Copyright IBM Corp. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0

Index

Constants

View Source
const (
	// EndorsementAckPrefix is the prefix for the endorsement ACKs.
	EndorsementAckPrefix = "ttx.endorse.ack"
)

Variables

This section is empty.

Functions

func ExchangeRecipientIdentities

func ExchangeRecipientIdentities(context view.Context, walletID string, recipient view.Identity, opts ...token.ServiceOption) (view.Identity, view.Identity, error)

ExchangeRecipientIdentities executes the ExchangeRecipientIdentitiesView using by passed wallet id to derive the recipient identity to send to the passed recipient. The function returns, the recipient identity of the sender, the recipient identity of the recipient

func GetAuditorWallet added in v0.2.0

func GetAuditorWallet(sp view2.ServiceProvider, opts ...token.ServiceOption) *token.AuditorWallet

GetAuditorWallet returns the wallet whose id is the passed id. If the passed id is empty, GetAuditorWallet has the same behaviour of MyAuditorWallet. It returns nil, if no wallet is found.

func GetIssuerWallet

func GetIssuerWallet(sp view2.ServiceProvider, id string, opts ...token.ServiceOption) *token.IssuerWallet

GetIssuerWallet returns the issuer wallet whose id is the passed id. If the passed id is empty, GetIssuerWallet has the same behaviour of MyIssuerWallet. It returns nil, if no wallet is found.

func GetIssuerWalletForChannel

func GetIssuerWalletForChannel(sp view2.ServiceProvider, channel, id string, opts ...token.ServiceOption) *token.IssuerWallet

GetIssuerWalletForChannel returns the issuer wallet whose id is the passed id for the passed channel. If the passed id is empty, GetIssuerWalletForChannel has the same behaviour of MyIssuerWallet. It returns nil, if no wallet is found.

func GetWallet

func GetWallet(sp view2.ServiceProvider, id string, opts ...token.ServiceOption) *token.OwnerWallet

GetWallet returns the wallet whose id is the passed id. If the passed id is empty, GetWallet has the same behaviour of MyWallet. It returns nil, if no wallet is found.

func GetWalletForChannel

func GetWalletForChannel(sp view2.ServiceProvider, channel, id string, opts ...token.ServiceOption) *token.OwnerWallet

GetWalletForChannel returns the wallet whose id is the passed id for the passed channel. If the passed id is empty, GetWalletForChannel has the same behaviour of MyWalletFromTx. It returns nil, if no wallet is found.

func IssueDistributionList added in v0.3.0

func IssueDistributionList(r *token.Request) []view.Identity

func Marshal

func Marshal(v interface{}) ([]byte, error)

func MarshalMeta

func MarshalMeta(v map[string][]byte) ([]byte, error)

func MyAuditorWallet

func MyAuditorWallet(sp view2.ServiceProvider, opts ...token.ServiceOption) *token.AuditorWallet

MyAuditorWallet returns the default auditor wallet, nil if not found.

func MyIssuerWallet

func MyIssuerWallet(context view.Context, opts ...token.ServiceOption) *token.IssuerWallet

MyIssuerWallet returns the default issuer wallet, nil if not found

func MyWallet

MyWallet returns the default wallet, nil if not found.

func MyWalletFromTx

func MyWalletFromTx(sp view2.ServiceProvider, tx *Transaction) *token.OwnerWallet

MyWalletFromTx returns the default wallet for the tuple (network, channel, namespace) as identified by the passed transaction. Returns nil if no wallet is found.

func NewAcceptView

func NewAcceptView(tx *Transaction, opts ...EndorsementsOpt) *acceptView

func NewAuditor

func NewAuditor(sp view2.ServiceProvider, w *token.AuditorWallet) *txAuditor

func NewCollectActionsResponderView

func NewCollectActionsResponderView(tx *Transaction, action *ActionTransfer) *collectActionsResponderView

NewCollectActionsResponderView returns an instance of the collectActionsResponderView. The view does the following: Sends back the transaction.

func NewCollectActionsView

func NewCollectActionsView(tx *Transaction, actions ...*ActionTransfer) *collectActionsView

NewCollectActionsView returns an instance of collectActionsView. The view does the following: For each action, the view contact the recipient by sending as first message the transaction. Then, the view waits for the answer and append it to the transaction.

func NewFinalityView

func NewFinalityView(tx *Transaction) *finalityView

NewFinalityView returns an instance of the finalityView. The view does the following: It waits for the finality of the passed transaction. If the transaction is final, the vault is updated.

func NewFinalityWithTimeoutView

func NewFinalityWithTimeoutView(tx *Transaction, timeout time.Duration) *finalityView

NewFinalityWithTimeoutView returns an instance of the finalityView. The view does the following: It waits for the finality of the passed transaction. If the transaction is final, the vault is updated. It returns in case the operation is not completed before the passed timeout.

func NewOrderingAndFinalityView

func NewOrderingAndFinalityView(tx *Transaction) *orderingAndFinalityView

NewOrderingAndFinalityView returns a new instance of the orderingAndFinalityView struct. The view does the following: 1. It broadcasts the token transaction to the proper backend. 2. It waits for finality of the token transaction by listening to delivery events from one of the Fabric peer nodes trusted by the FSC node.

func NewOrderingAndFinalityWithTimeoutView

func NewOrderingAndFinalityWithTimeoutView(tx *Transaction, timeout time.Duration) *orderingAndFinalityView

NewOrderingAndFinalityWithTimeoutView returns a new instance of the orderingAndFinalityView struct. The view does the following: 1. It broadcasts the token transaction to the proper backend. 2. It waits for finality of the token transaction.

func NewOrderingView

func NewOrderingView(tx *Transaction) *orderingView

NewOrderingView returns a new instance of the orderingView struct. The view does the following: 1. It broadcasts the token transaction to the proper backend.

func NewOwner

func NewOwner(sp view2.ServiceProvider, tms *token.ManagementService) *txOwner

NewOwner returns a new owner service.

func ReceiveAction

func ReceiveAction(context view.Context) (*Transaction, *ActionTransfer, error)

ReceiveAction runs the receiveActionsView. The view does the following: It receives the transaction, the collection of actions, and the requested action.

func RecipientDataBytes added in v0.3.0

func RecipientDataBytes(r *token.RecipientData) ([]byte, error)

func RecipientDataFromBytes added in v0.3.0

func RecipientDataFromBytes(raw []byte) (*token.RecipientData, error)

func RequestRecipientIdentity

func RequestRecipientIdentity(context view.Context, recipient view.Identity, opts ...token.ServiceOption) (view.Identity, error)

RequestRecipientIdentity executes the RequestRecipientIdentityView. The sender contacts the recipient's FSC node identified via the passed view identity. The sender gets back the identity the recipient wants to use to assign ownership of tokens.

func RequestWithdrawal added in v0.3.0

func RequestWithdrawal(context view.Context, issuer view.Identity, wallet string, tokenType string, amount uint64, opts ...token.ServiceOption) (view.Identity, view.Session, error)

func RequestWithdrawalForRecipient added in v0.3.0

func RequestWithdrawalForRecipient(context view.Context, issuer view.Identity, wallet string, tokenType string, amount uint64, recipientData *RecipientData, opts ...token.ServiceOption) (view.Identity, view.Session, error)

func RespondExchangeRecipientIdentities

func RespondExchangeRecipientIdentities(context view.Context) (view.Identity, view.Identity, error)

RespondExchangeRecipientIdentities executes the RespondExchangeRecipientIdentitiesView. The recipient sends back the identity to receive ownership of tokens. The identity is taken from the default wallet

func RespondRequestRecipientIdentity

func RespondRequestRecipientIdentity(context view.Context) (view.Identity, error)

RespondRequestRecipientIdentity executes the RespondRequestRecipientIdentityView. The recipient sends back the identity to receive ownership of tokens. The identity is taken from the default wallet. If the wallet is not found, an error is returned.

func RespondRequestRecipientIdentityUsingWallet

func RespondRequestRecipientIdentityUsingWallet(context view.Context, wallet string) (view.Identity, error)

RespondRequestRecipientIdentityUsingWallet executes the RespondRequestRecipientIdentityView. The recipient sends back the identity to receive ownership of tokens. The identity is taken from the passed wallet. If the wallet is not found, an error is returned. If the wallet is the empty string, the identity is taken from the default wallet.

func RunView

func RunView(context view.Context, view view.View, opts ...view.RunViewOption)

RunView runs passed view within the passed context and using the passed options in a separate goroutine

func StoreEnvelope

func StoreEnvelope(context view.Context, tx *Transaction) error

StoreEnvelope stores the transaction envelope locally

func StoreTransactionRecords

func StoreTransactionRecords(context view.Context, tx *Transaction) error

StoreTransactionRecords stores the transaction records extracted from the passed transaction to the token transaction db

func TransferDistributionList added in v0.3.0

func TransferDistributionList(r *token.Request) []view.Identity

func Unmarshal

func Unmarshal(data []byte, v interface{}) error

func UnmarshalMeta

func UnmarshalMeta(raw []byte) (map[string][]byte, error)

func WithType

func WithType(tokenType string) token.ListTokensOption

WithType returns a list token option that filter by the passed token type. If the passed token type is the empty string, all token types are selected.

Types

type ActionTransfer

type ActionTransfer struct {
	// From is the sender
	From view.Identity
	// Type of tokens to transfer
	Type string
	// Amount to transfer
	Amount uint64
	// Recipient is the recipient of the transfer
	Recipient view.Identity
}

ActionTransfer describe a transfer operation

type Actions

type Actions struct {
	Transfers []*ActionTransfer
}

type AuditApproveView

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

func NewAuditApproveView

func NewAuditApproveView(w *token.AuditorWallet, tx *Transaction) *AuditApproveView

func (*AuditApproveView) Call

func (a *AuditApproveView) Call(context view.Context) (interface{}, error)

type AuditingViewInitiator

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

func (*AuditingViewInitiator) Call

func (a *AuditingViewInitiator) Call(context view.Context) (interface{}, error)

type CollectEndorsementsView added in v0.3.0

type CollectEndorsementsView struct {
	Opts *EndorsementsOpts
	// contains filtered or unexported fields
}

func NewCollectEndorsementsView

func NewCollectEndorsementsView(tx *Transaction, opts ...EndorsementsOpt) *CollectEndorsementsView

NewCollectEndorsementsView returns an instance of the CollectEndorsementsView struct. This view does the following: 1. It collects all the required signatures to authorize any issue and transfer operation contained in the token transaction. 2. It invokes the Token Chaincode to collect endorsements on the Token Request and prepare the relative transaction. 3. Before completing, all recipients receive the approved transaction. Depending on the token driver implementation, the recipient's signature might or might not be needed to make the token transaction valid.

func (*CollectEndorsementsView) Call added in v0.3.0

func (c *CollectEndorsementsView) Call(context view.Context) (interface{}, error)

Call executes the view. This view does the following: 1. It collects all the required signatures to authorize any issue and transfer operation contained in the token transaction. 2. It invokes the Token Chaincode to collect endorsements on the Token Request and prepare the relative transaction. 3. Before completing, all recipients receive the approved transaction. Depending on the token driver implementation, the recipient's signature might or might not be needed to make the token transaction valid.

type EndorseView added in v0.3.0

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

func NewEndorseView

func NewEndorseView(tx *Transaction) *EndorseView

NewEndorseView returns an instance of the endorseView. The view does the following: 1. Wait for signature requests. 2. Upon receiving a signature request, it validates the request and send back the requested signature. 3. After, it waits to receive the Transaction. The Transaction is validated and stored locally to be processed at time of committing. 4. It sends back an ack.

func (*EndorseView) Call added in v0.3.0

func (s *EndorseView) Call(context view.Context) (interface{}, error)

Call executes the view. The view does the following: 1. Wait for signature requests. 2. Upon receiving a signature request, it validates the request and send back the requested signature. 3. After, it waits to receive the Transaction. The Transaction is validated and stored locally to be processed at time of committing. 4. It sends back an ack.

type EndorsementsOpt added in v0.3.0

type EndorsementsOpt func(*EndorsementsOpts) error

EndorsementsOpt is a function that configures a EndorsementsOpts

func WithExternalWalletSigner added in v0.3.0

func WithExternalWalletSigner(walletID string, ews ExternalWalletSigner) EndorsementsOpt

func WithSkipApproval added in v0.3.0

func WithSkipApproval() EndorsementsOpt

WithSkipApproval to skip approval

func WithSkipAuditing added in v0.3.0

func WithSkipAuditing() EndorsementsOpt

WithSkipAuditing to skip auditing

func WithSkipId added in v0.3.0

func WithSkipId(party view.Identity, sigma []byte) EndorsementsOpt

type EndorsementsOpts added in v0.3.0

type EndorsementsOpts struct {
	// SkipAuditing set it to true to skip the auditing phase
	SkipAuditing bool
	// SkipApproval set it to true to skip the approval phase
	SkipApproval bool
	// SkipIds add parties that do not have to endorse the transaction
	SkipIds map[string][]byte
	// External Signers
	ExternalWalletSigners map[string]ExternalWalletSigner
}

EndorsementsOpts is used to configure the CollectEndorsementsView

func CompileCollectEndorsementsOpts added in v0.3.0

func CompileCollectEndorsementsOpts(opts ...EndorsementsOpt) (*EndorsementsOpts, error)

CompileCollectEndorsementsOpts compiles the given list of ServiceOption

func (*EndorsementsOpts) ExternalWalletSigner added in v0.3.0

func (o *EndorsementsOpts) ExternalWalletSigner(id string) ExternalWalletSigner

func (*EndorsementsOpts) SkippedIds added in v0.3.0

func (o *EndorsementsOpts) SkippedIds() map[string][]byte

type ExchangeRecipientIdentitiesView

type ExchangeRecipientIdentitiesView struct {
	TMSID  token.TMSID
	Wallet string
	Other  view.Identity
}

func (*ExchangeRecipientIdentitiesView) Call

func (f *ExchangeRecipientIdentitiesView) Call(context view.Context) (interface{}, error)

type ExchangeRecipientRequest

type ExchangeRecipientRequest struct {
	TMSID         token.TMSID
	WalletID      []byte
	RecipientData *RecipientData
}

func (*ExchangeRecipientRequest) Bytes

func (r *ExchangeRecipientRequest) Bytes() ([]byte, error)

func (*ExchangeRecipientRequest) FromBytes

func (r *ExchangeRecipientRequest) FromBytes(raw []byte) error

type ExternalWalletSigner added in v0.3.0

type ExternalWalletSigner interface {
	Sign(party view.Identity, message []byte) ([]byte, error)
	Done() error
}

type LocalBidirectionalChannel

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

LocalBidirectionalChannel is a bidirectional channel that is used to simulate a session between two views (let's call them L and R) running in the same process.

func NewLocalBidirectionalChannel

func NewLocalBidirectionalChannel(caller string, contextID string, endpoint string, pkid []byte) (*LocalBidirectionalChannel, error)

NewLocalBidirectionalChannel creates a new bidirectional channel

func (*LocalBidirectionalChannel) LeftSession

func (c *LocalBidirectionalChannel) LeftSession() view.Session

LeftSession returns the session from the L to R

func (*LocalBidirectionalChannel) RightSession

func (c *LocalBidirectionalChannel) RightSession() view.Session

RightSession returns the session from the R to L

type Metrics added in v0.3.0

type Metrics struct {
	EndorsedTransactions      metrics.Counter
	AuditApprovedTransactions metrics.Counter
	AcceptedTransactions      metrics.Counter
}

func GetMetrics added in v0.3.0

func GetMetrics(sp view2.ServiceProvider) *Metrics

func NewMetrics added in v0.3.0

func NewMetrics(p metrics.Provider) *Metrics

type Payload

type Payload struct {
	TxID      network.TxID
	ID        string
	Network   string
	Channel   string
	Namespace string
	Signer    view.Identity
	Transient network.TransientMap

	TokenRequest *token.Request

	Envelope *network.Envelope
}

type ReceiveTransactionView added in v0.3.0

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

func NewReceiveTransactionView

func NewReceiveTransactionView(network string) *ReceiveTransactionView

func (*ReceiveTransactionView) Call added in v0.3.0

func (f *ReceiveTransactionView) Call(context view.Context) (interface{}, error)

type ReceiveWithdrawalRequestView added in v0.3.0

type ReceiveWithdrawalRequestView struct{}

func NewReceiveIssuanceRequestView added in v0.3.0

func NewReceiveIssuanceRequestView() *ReceiveWithdrawalRequestView

func (*ReceiveWithdrawalRequestView) Call added in v0.3.0

func (r *ReceiveWithdrawalRequestView) Call(context view.Context) (interface{}, error)

type RecipientData

type RecipientData = token.RecipientData

type RecipientRequest

type RecipientRequest struct {
	TMSID    token.TMSID
	WalletID []byte
}

func (*RecipientRequest) Bytes

func (r *RecipientRequest) Bytes() ([]byte, error)

func (*RecipientRequest) FromBytes

func (r *RecipientRequest) FromBytes(raw []byte) error

type RegisterAuditorView

type RegisterAuditorView struct {
	TMSID     token.TMSID
	AuditView view.View
}

func NewRegisterAuditorView

func NewRegisterAuditorView(auditView view.View, opts ...token.ServiceOption) *RegisterAuditorView

func (*RegisterAuditorView) Call

func (r *RegisterAuditorView) Call(context view.Context) (interface{}, error)

type RequestRecipientIdentityView

type RequestRecipientIdentityView struct {
	TMSID token.TMSID
	Other view.Identity
}

func (*RequestRecipientIdentityView) Call

func (f *RequestRecipientIdentityView) Call(context view.Context) (interface{}, error)

type RequestWithdrawalView added in v0.3.0

type RequestWithdrawalView struct {
	Issuer    view.Identity
	TokenType string
	Amount    uint64
	TMSID     token.TMSID
	Wallet    string

	RecipientData *RecipientData
}

func NewRequestWithdrawalView added in v0.3.0

func NewRequestWithdrawalView(issuer view.Identity, tokenType string, amount uint64) *RequestWithdrawalView

func (*RequestWithdrawalView) Call added in v0.3.0

func (r *RequestWithdrawalView) Call(context view.Context) (interface{}, error)

func (*RequestWithdrawalView) GetRecipientIdentity added in v0.3.0

func (r *RequestWithdrawalView) GetRecipientIdentity(context view.Context) (*token.TMSID, view.Identity, []byte, []byte, error)

func (*RequestWithdrawalView) WithRecipientIdentity added in v0.3.0

func (r *RequestWithdrawalView) WithRecipientIdentity(data *RecipientData) *RequestWithdrawalView

func (*RequestWithdrawalView) WithTMSID added in v0.3.0

func (*RequestWithdrawalView) WithWallet added in v0.3.0

func (r *RequestWithdrawalView) WithWallet(wallet string) *RequestWithdrawalView

type RespondExchangeRecipientIdentitiesView

type RespondExchangeRecipientIdentitiesView struct {
	Wallet string
}

func (*RespondExchangeRecipientIdentitiesView) Call

func (s *RespondExchangeRecipientIdentitiesView) Call(context view.Context) (interface{}, error)

type RespondRequestRecipientIdentityView

type RespondRequestRecipientIdentityView struct {
	Wallet string
}

func (*RespondRequestRecipientIdentityView) Call

func (s *RespondRequestRecipientIdentityView) Call(context view.Context) (interface{}, error)

type SignatureRequest added in v0.3.0

type SignatureRequest struct {
	TX      []byte
	Request []byte
	TxID    []byte
	Signer  view.Identity
}

func (*SignatureRequest) MessageToSign added in v0.3.0

func (sr *SignatureRequest) MessageToSign() []byte

type SignerProvider added in v0.3.0

type SignerProvider interface {
	GetSigner(party view.Identity) (token.Signer, error)
}

type StreamExternalWalletMsg added in v0.3.0

type StreamExternalWalletMsg struct {
	Type StreamExternalWalletMsgType
	Raw  []byte
}

func NewStreamExternalWalletMsg added in v0.3.0

func NewStreamExternalWalletMsg(Type StreamExternalWalletMsgType, v interface{}) (*StreamExternalWalletMsg, error)

type StreamExternalWalletMsgType added in v0.3.0

type StreamExternalWalletMsgType = int
const (
	SigRequest StreamExternalWalletMsgType
	SignResponse
	Done
)

type StreamExternalWalletSignRequest added in v0.3.0

type StreamExternalWalletSignRequest struct {
	Party   view.Identity
	Message []byte
}

type StreamExternalWalletSignResponse added in v0.3.0

type StreamExternalWalletSignResponse struct {
	Sigma []byte
}

type StreamExternalWalletSignerClient added in v0.3.0

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

func NewStreamExternalWalletSignerClient added in v0.3.0

func NewStreamExternalWalletSignerClient(sp SignerProvider, stream view2.Stream, expectedRequests int) *StreamExternalWalletSignerClient

func (*StreamExternalWalletSignerClient) Respond added in v0.3.0

type StreamExternalWalletSignerServer added in v0.3.0

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

func NewStreamExternalWalletSignerServer added in v0.3.0

func NewStreamExternalWalletSignerServer(stream view2.Stream) *StreamExternalWalletSignerServer

func (*StreamExternalWalletSignerServer) Done added in v0.3.0

func (*StreamExternalWalletSignerServer) Sign added in v0.3.0

func (s *StreamExternalWalletSignerServer) Sign(party view.Identity, message []byte) ([]byte, error)

type TokenTransactionDB added in v0.3.0

type TokenTransactionDB interface {
	GetTokenRequest(txID string) ([]byte, error)
}

type Transaction

type Transaction struct {
	*Payload
	SP   view2.ServiceProvider
	Opts *TxOptions
}

func NewAnonymousTransaction

func NewAnonymousTransaction(sp view.Context, opts ...TxOption) (*Transaction, error)

NewAnonymousTransaction returns a new anonymous token transaction customized with the passed opts

func NewTransaction

func NewTransaction(sp view.Context, signer view.Identity, opts ...TxOption) (*Transaction, error)

NewTransaction returns a new token transaction customized with the passed opts that will be signed by the passed signer. A valid signer is a signer that the target network recognizes as so. For example, in case of fabric, the signer must be a valid fabric identity. If the passed signer is nil, then the default identity is used.

func NewTransactionFromBytes

func NewTransactionFromBytes(sp view.Context, raw []byte) (*Transaction, error)

func ReceiveTransaction

func ReceiveTransaction(context view.Context, opts ...TxOption) (*Transaction, error)

func (*Transaction) ApplicationMetadata

func (t *Transaction) ApplicationMetadata(k string) []byte

func (*Transaction) Bytes

func (t *Transaction) Bytes(eIDs ...string) ([]byte, error)

Bytes returns the serialized version of the transaction. If eIDs is not nil, then metadata is filtered by the passed eIDs.

func (*Transaction) Channel

func (t *Transaction) Channel() string

func (*Transaction) ID

func (t *Transaction) ID() string

ID returns the ID of this transaction. It is equal to the underlying transaction's ID.

func (*Transaction) Inputs

func (t *Transaction) Inputs() (*token.InputStream, error)

func (*Transaction) InputsAndOutputs added in v0.3.0

func (t *Transaction) InputsAndOutputs() (*token.InputStream, *token.OutputStream, error)

func (*Transaction) IsValid

func (t *Transaction) IsValid() error

IsValid checks that the transaction is well-formed. This means checking that the embedded TokenRequest is valid.

func (*Transaction) Issue

func (t *Transaction) Issue(wallet *token.IssuerWallet, receiver view.Identity, typ string, q uint64, opts ...token.IssueOption) error

Issue appends a new Issue operation to the TokenRequest inside this transaction

func (*Transaction) MarshallToAudit

func (t *Transaction) MarshallToAudit() ([]byte, error)

func (*Transaction) Namespace

func (t *Transaction) Namespace() string

func (*Transaction) Network

func (t *Transaction) Network() string

func (*Transaction) Outputs

func (t *Transaction) Outputs() (*token.OutputStream, error)

func (*Transaction) Redeem

func (t *Transaction) Redeem(wallet *token.OwnerWallet, typ string, value uint64, opts ...token.TransferOption) error

func (*Transaction) Release

func (t *Transaction) Release()

func (*Transaction) Request

func (t *Transaction) Request() *token.Request

func (*Transaction) Selector

func (t *Transaction) Selector() (token.Selector, error)

Selector returns the default token selector for this transaction

func (*Transaction) SetApplicationMetadata

func (t *Transaction) SetApplicationMetadata(k string, v []byte)

func (*Transaction) TMSID added in v0.3.0

func (t *Transaction) TMSID() token.TMSID

func (*Transaction) TokenService

func (t *Transaction) TokenService() *token.ManagementService

func (*Transaction) Transfer

func (t *Transaction) Transfer(wallet *token.OwnerWallet, typ string, values []uint64, owners []view.Identity, opts ...token.TransferOption) error

Transfer appends a new Transfer operation to the TokenRequest inside this transaction

type TransactionInfo

type TransactionInfo struct {
	// EndorsementAcks contains the endorsement ACKs received at time of dissemination.
	EndorsementAcks map[string][]byte
	// ApplicationMetadata contains the application metadata
	ApplicationMetadata map[string][]byte

	TokenRequest []byte
}

TransactionInfo contains the transaction info.

type TransactionInfoProvider

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

TransactionInfoProvider allows the retrieval of the transaction info

func NewTransactionInfoProviderFor added in v0.3.0

func NewTransactionInfoProviderFor(sp view.ServiceProvider, tms *token.ManagementService, ttxDB TokenTransactionDB) *TransactionInfoProvider

func (*TransactionInfoProvider) TransactionInfo

func (a *TransactionInfoProvider) TransactionInfo(txID string) (*TransactionInfo, error)

TransactionInfo returns the transaction info for the given transaction ID.

type TransactionSer

type TransactionSer struct {
	Nonce        []byte
	Creator      []byte
	ID           string
	Network      string
	Channel      string
	Namespace    string
	Signer       []byte
	Transient    []byte
	TokenRequest []byte
	Envelope     []byte
}

type TxOption

type TxOption func(*TxOptions) error

func WithAuditor

func WithAuditor(auditor view.Identity) TxOption

func WithChannel

func WithChannel(channel string) TxOption

func WithNamespace

func WithNamespace(namespace string) TxOption

func WithNetwork

func WithNetwork(network string) TxOption

func WithNoTransactionVerification added in v0.3.0

func WithNoTransactionVerification() TxOption

func WithTMS

func WithTMS(network, channel, namespace string) TxOption

WithTMS filters by network, channel and namespace. Each of them can be empty

func WithTMSID

func WithTMSID(id token.TMSID) TxOption

WithTMSID filters by TMS identifier

type TxOptions

type TxOptions struct {
	Auditor                   view.Identity
	Network                   string
	Channel                   string
	Namespace                 string
	NoTransactionVerification bool
}

type TxStatus

type TxStatus = ttxdb.TxStatus

TxStatus is the status of a transaction

const (
	// Unknown is the status of a transaction that is unknown
	Unknown = ttxdb.Unknown
	// Pending is the status of a transaction that has been submitted to the ledger
	Pending TxStatus = ttxdb.Pending
	// Confirmed is the status of a transaction that has been confirmed by the ledger
	Confirmed TxStatus = ttxdb.Confirmed
	// Deleted is the status of a transaction that has been deleted due to a failure to commit
	Deleted TxStatus = ttxdb.Deleted
)

type WithdrawalRequest added in v0.3.0

type WithdrawalRequest struct {
	TMSID     token.TMSID
	Recipient view.Identity
	AuditInfo []byte
	Metadata  []byte
	TokenType string
	Amount    uint64
}

func ReceiveWithdrawalRequest added in v0.3.0

func ReceiveWithdrawalRequest(context view.Context) (*WithdrawalRequest, error)

Jump to

Keyboard shortcuts

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