Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActionType ¶
type ActionType int
ActionType is the type of transaction
const ( // Issue is the action type for issuing tokens. Issue ActionType = iota // Transfer is the action type for transferring tokens. Transfer // Redeem is the action type for redeeming tokens. Redeem )
type Driver ¶
type Driver interface { // Open opens a database connection Open(sp view.ServiceProvider, name string) (TokenTransactionDB, error) }
Driver is the interface for a database driver
type MovementDirection ¶
type MovementDirection int
MovementDirection defines the direction of a movement.
const ( // Sent amount transferred from. Sent MovementDirection = iota // Received amount transferred to. Received // All amount transferred to and from. All )
type MovementRecord ¶
type MovementRecord struct { // TxID is the transaction ID TxID string // EnrollmentID is the enrollment ID of the account that is receiving or sending EnrollmentID string // TokenType is the type of token TokenType string // Amount is positive if tokens are received. Negative otherwise Amount *big.Int // Status is the status of the transaction Status TxStatus }
MovementRecord is a record of a movement of assets. Given a Token Transaction, a movement record is created for each enrollment ID that participated in the transaction and each token type that was transferred. The movement record contains the total amount of the token type that was transferred to/from the enrollment ID in a given token transaction.
type QueryMovementsParams ¶
type QueryMovementsParams struct { // EnrollmentIDs is the enrollment IDs of the accounts to query EnrollmentIDs []string // TokenTypes is the token types to query TokenTypes []string // TxStatuses is the statuses of the transactions to query TxStatuses []TxStatus // SearchDirection is the direction of the search SearchDirection SearchDirection // MovementDirection is the direction of the movement MovementDirection MovementDirection // NumRecords is the number of records to return // If 0, all records are returned NumRecords int }
QueryMovementsParams defines the parameters for querying movements. Movement records will be filtered by EnrollmentID, TokenType, and Status. SearchDirection tells if the search should start from the oldest to the newest records or vice versa. MovementDirection which amounts to consider. Sent correspond to a negative amount, Received to a positive amount, and All to both.
type QueryTransactionsParams ¶
type QueryTransactionsParams struct { // SenderWallet is the wallet of the sender // If empty, any sender is accepted // If the sender does not match but the recipient matches, the transaction is returned SenderWallet string // RecipientWallet is the wallet of the recipient // If empty, any recipient is accepted // If the recipient does not match but the sender matches, the transaction is returned RecipientWallet string // From is the start time of the query // If nil, the query starts from the first transaction From *time.Time // To is the end time of the query // If nil, the query ends at the last transaction To *time.Time // ActionTypes is the list of action types to accept // If empty, any action type is accepted ActionTypes []ActionType // Statuses is the list of transaction status to accept // If empty, any status is accepted Statuses []TxStatus }
QueryTransactionsParams defines the parameters for querying transactions. One can filter by sender, by recipient, and by time range.
type SearchDirection ¶
type SearchDirection int
SearchDirection defines the direction of a search.
const ( // FromLast defines the direction of a search from the last key. FromLast SearchDirection = iota // FromBeginning defines the direction of a search from the first key. FromBeginning )
type TokenTransactionDB ¶
type TokenTransactionDB interface { // Close closes the database Close() error // BeginUpdate begins a new update to the database BeginUpdate() error // Commit commits the current update to the database Commit() error // Discard discards the current update to the database Discard() error // SetStatus sets the status of a transaction SetStatus(txID string, status TxStatus) error // AddMovement adds a movement record to the database. // Each token transaction can be seen as a list of movements. AddMovement(record *MovementRecord) error // AddTransaction adds a transaction record to the database. AddTransaction(record *TransactionRecord) error // QueryTransactions returns a list of transactions that match the given criteria QueryTransactions(params QueryTransactionsParams) (TransactionIterator, error) // QueryMovements returns a list of movement records QueryMovements(params QueryMovementsParams) ([]*MovementRecord, error) }
TokenTransactionDB defines the interface for a token transactions database
type TransactionIterator ¶
type TransactionIterator interface { Close() Next() (*TransactionRecord, error) }
TransactionIterator is an iterator for transactions
type TransactionRecord ¶
type TransactionRecord struct { // TxID is the transaction ID TxID string // ActionType is the type of action performed by this transaction record ActionType ActionType // SenderEID is the enrollment ID of the account that is sending tokens SenderEID string // RecipientEID is the enrollment ID of the account that is receiving tokens RecipientEID string // TokenType is the type of token TokenType string // Amount is positive if tokens are received. Negative otherwise Amount *big.Int // Timestamp is the time the transaction was submitted to the db Timestamp time.Time // Status is the status of the transaction Status TxStatus }
TransactionRecord is a more finer-grained version of a movement record. Given a Token Transaction, for each token action in the Token Request, a transaction record is created for each unique enrollment ID found in the outputs. The transaction record contains the total amount of the token type that was transferred to/from that enrollment ID in that action.
func (*TransactionRecord) String ¶
func (t *TransactionRecord) String() string
type TxStatus ¶
type TxStatus string
TxStatus is the status of a transaction
const ( // Pending is the status of a transaction that has been submitted to the ledger Pending TxStatus = "Pending" // Confirmed is the status of a transaction that has been confirmed by the ledger Confirmed TxStatus = "Confirmed" // Deleted is the status of a transaction that has been deleted due to a failure to commit Deleted TxStatus = "Deleted" )