Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Consume ¶
func Consume(utxoDB state.UTXODeleter, ins []*avax.TransferableInput)
Removes the UTXOs consumed by [ins] from the UTXO set
Types ¶
type Spender ¶
type Spender interface { // Spend the provided amount while deducting the provided fee. // Arguments: // - [keys] are the owners of the funds // - [amount] is the amount of funds that are trying to be staked // - [fee] is the amount of AVAX that should be burned // - [changeAddr] is the address that change, if there is any, is sent to // Returns: // - [inputs] the inputs that should be consumed to fund the outputs // - [returnedOutputs] the outputs that should be immediately returned to // the UTXO set // - [stakedOutputs] the outputs that should be locked for the duration of // the staking period // - [signers] the proof of ownership of the funds being moved Spend( keys []*crypto.PrivateKeySECP256K1R, amount uint64, fee uint64, changeAddr ids.ShortID, ) ( []*avax.TransferableInput, []*avax.TransferableOutput, []*avax.TransferableOutput, [][]*crypto.PrivateKeySECP256K1R, error, ) // Authorize an operation on behalf of the named subnet with the provided // keys. Authorize( state state.Chain, subnetID ids.ID, keys []*crypto.PrivateKeySECP256K1R, ) ( verify.Verifiable, []*crypto.PrivateKeySECP256K1R, error, ) }
TODO: Stake and Authorize should be replaced by similar methods in the
P-chain wallet
type Verifier ¶
type Verifier interface { // Verify that [tx] is semantically valid. // [ins] and [outs] are the inputs and outputs of [tx]. // [creds] are the credentials of [tx], which allow [ins] to be spent. // [unlockedProduced] is the map of assets that were produced and their // amounts. // The [ins] must have at least [unlockedProduced] than the [outs]. // // Precondition: [tx] has already been syntactically verified. // // Note: [unlockedProduced] is modified by this method. VerifySpend( tx txs.UnsignedTx, utxoDB state.UTXOGetter, ins []*avax.TransferableInput, outs []*avax.TransferableOutput, creds []verify.Verifiable, unlockedProduced map[ids.ID]uint64, ) error // Verify that [tx] is semantically valid. // [utxos[i]] is the UTXO being consumed by [ins[i]]. // [ins] and [outs] are the inputs and outputs of [tx]. // [creds] are the credentials of [tx], which allow [ins] to be spent. // [unlockedProduced] is the map of assets that were produced and their // amounts. // The [ins] must have at least [unlockedProduced] more than the [outs]. // // Precondition: [tx] has already been syntactically verified. // // Note: [unlockedProduced] is modified by this method. VerifySpendUTXOs( tx txs.UnsignedTx, utxos []*avax.UTXO, ins []*avax.TransferableInput, outs []*avax.TransferableOutput, creds []verify.Verifiable, unlockedProduced map[ids.ID]uint64, ) error }
Click to show internal directories.
Click to hide internal directories.