Documentation
¶
Overview ¶
Package account defines the Account API. All chains that use an account-based model should implement this API. The Account API is used to send and confirm transactions between addresses.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
// LatestBlock returns the block number of the latest block.
LatestBlock(context.Context) (pack.U64, error)
// AccountBalance returns the current balance of the given account.
AccountBalance(context.Context, address.Address) (pack.U256, error)
// AccountNonce is the current nonce of this account, which must be used to
// build a new transaction.
AccountNonce(context.Context, address.Address) (pack.U256, error)
// Tx returns the transaction uniquely identified by the given transaction
// hash. It also returns the number of confirmations for the transaction. If
// the transaction cannot be found before the context is done, or the
// transaction is invalid, then an error should be returned.
Tx(context.Context, pack.Bytes) (Tx, pack.U64, error)
// SubmitTx to the underlying chain. If the transaction cannot be found
// before the context is done, or the transaction is invalid, then an error
// should be returned.
SubmitTx(context.Context, Tx) error
}
The Client interface defines the functionality required to interact with a chain over RPC.
type Tx ¶
type Tx interface {
// Hash that uniquely identifies the transaction. Hashes are usually the
// result of an irreversible hashing function applied to some serialized
// representation of the transaction.
Hash() pack.Bytes
// From returns the address from which value is being sent.
From() address.Address
// To returns the address to which value is being sent.
To() address.Address
// Value being sent from one address to another.
Value() pack.U256
// Nonce used to order the transaction with respect to all other
// transactions signed and submitted by the sender of this transaction.
Nonce() pack.U256
// Payload returns arbitrary data that is associated with the transaction.
// This payload is often used to send notes between external accounts, or
// call functions on a contract.
Payload() contract.CallData
// Sighashes that must be signed before the transaction can be submitted by
// the client.
Sighashes() ([]pack.Bytes32, error)
// Sign the transaction by injecting signatures for the required sighashes.
// The serialized public key used to sign the sighashes should also be
// specified whenever it is available.
Sign([]pack.Bytes65, pack.Bytes) error
// Serialize the transaction into bytes. This is the format in which the
// transaction will be submitted by the client.
Serialize() (pack.Bytes, error)
}
The Tx interfaces defines the functionality that must be exposed by account-based transactions.
type TxBuilder ¶
type TxBuilder interface {
BuildTx(ctx context.Context, fromPubKey *id.PubKey, to address.Address, value, nonce, gasLimit, gasPrice, gasCap pack.U256, payload pack.Bytes) (Tx, error)
}
The TxBuilder interface defines the functionality required to build account-based transactions. Most chain implementations require additional information, and this should be accepted during the construction of the chain-specific transaction builder.
Click to show internal directories.
Click to hide internal directories.