Documentation ¶
Overview ¶
Package api implements the vault backend API.
Package api implements the vault backend API.
Index ¶
- Constants
- type Action
- type ActionCanceledEvent
- type ActionExecuteMessage
- type ActionExecutedEvent
- type ActionExecutionResult
- type ActionResume
- type ActionSubmittedEvent
- type ActionSuspend
- type ActionUpdateAuthority
- type ActionUpdateWithdrawPolicy
- type AddressQuery
- type AddressState
- type Authority
- type AuthorityUpdatedEvent
- type AuthorizeAction
- type CancelAction
- type ConsensusParameterChanges
- type ConsensusParameters
- type Create
- type Event
- type Genesis
- type PendingAction
- type PolicyUpdatedEvent
- type PrettyActionExecuteMessage
- type State
- type StateChangedEvent
- type Vault
- type VaultQuery
- type WithdrawPolicy
Constants ¶
const ( // GasOpCreate is the gas operation identifier for creating a vault. GasOpCreate transaction.Op = "create" // GasOpAuthorizeAction is the gas operation identifier for authorizing an action. GasOpAuthorizeAction transaction.Op = "authorize_action" // GasOpCancelAction is the gas operation identifier for canceling an action. GasOpCancelAction transaction.Op = "cancel_action" )
const ( StateSuspended = 0 StateActive = 1 )
const (
// ModuleName is a unique module name for the vault module.
ModuleName = "vault"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Action ¶
type Action struct { // Suspend is the suspend action. Suspend *ActionSuspend `json:"suspend,omitempty"` // Resume is the resume action. Resume *ActionResume `json:"resume,omitempty"` // ExecuteMessage is the execute message action. ExecuteMessage *ActionExecuteMessage `json:"execute_msg,omitempty"` // UpdateWithdrawPolicy is the withdraw policy update action. UpdateWithdrawPolicy *ActionUpdateWithdrawPolicy `json:"update_withdraw_policy,omitempty"` // UpdateAuthority is the authority update action. UpdateAuthority *ActionUpdateAuthority `json:"update_authority,omitempty"` }
Action is a vault action.
type ActionCanceledEvent ¶
type ActionCanceledEvent struct { // Vault is the vault address. Vault staking.Address `json:"vault"` // Nonce is the action nonce. Nonce uint64 `json:"nonce"` }
ActionCanceledEvent is the event emitted when a vault action is canceled.
type ActionExecuteMessage ¶
type ActionExecuteMessage struct { // Method is the method that should be called. Method transaction.MethodName `json:"method"` // Body is the method call body. Body cbor.RawMessage `json:"body,omitempty"` }
ActionExecuteMessage is the action to execute a message on behalf of the vault. The message is dispatched as if the vault originated a transaction.
type ActionExecutedEvent ¶
type ActionExecutedEvent struct { // Vault is the vault address. Vault staking.Address `json:"vault"` // Nonce is the action nonce. Nonce uint64 `json:"nonce"` // Result is the action execution result. Result ActionExecutionResult `json:"result,omitempty"` }
ActionExecutedEvent is the event emitted when a new vault action is executed.
type ActionExecutionResult ¶
type ActionExecutionResult struct { Module string `json:"module,omitempty"` Code uint32 `json:"code,omitempty"` }
ActionExecutionResult is the result of executing an action.
type ActionSubmittedEvent ¶
type ActionSubmittedEvent struct { // Submitter is the account address of the submitter. Submitter staking.Address `json:"submitter"` // Vault is the vault address. Vault staking.Address `json:"vault"` // Nonce is the action nonce. Nonce uint64 `json:"nonce"` }
ActionSubmittedEvent is the event emitted when a new vault action is submitted.
type ActionUpdateAuthority ¶
type ActionUpdateAuthority struct { // AdminAuthority is the new admin authority. If the field is nil no update should be done. AdminAuthority *Authority `json:"admin_authority,omitempty"` // SuspendAuthority is the new suspend authority. If the field is nil no update should be done. SuspendAuthority *Authority `json:"suspend_authority,omitempty"` }
ActionUpdateAuthority is the action to update one of the vault authorities.
type ActionUpdateWithdrawPolicy ¶
type ActionUpdateWithdrawPolicy struct { // Address is the address the policy update is for. Address staking.Address `json:"address"` // Policy is the new withdraw policy. Policy WithdrawPolicy `json:"policy"` }
ActionUpdateWithdrawPolicy is the action to update the withdraw policy for a given address.
type AddressQuery ¶
type AddressQuery struct { // Height is the query height. Height int64 `json:"height"` // Vault is the vault address. Vault staking.Address `json:"vault"` // Address is the queried address. Address staking.Address `json:"address"` }
AddressQuery is a query for data about a given address for the given vault.
type AddressState ¶
type AddressState struct { // WithdrawPolicy is the active withdraw policy. WithdrawPolicy WithdrawPolicy `json:"withdraw_policy"` // CurrentBucket specifies the interval we are currently doing accounting for. CurrentBucket uint64 `json:"bucket"` // CurrentAmount specifies the amount already withdrawn in the current interval. CurrentAmount quantity.Quantity `json:"amount"` }
AddressState is the state stored for the given address.
type Authority ¶
type Authority struct { // Addresses are the addresses that can authorize an action. Addresses []staking.Address `json:"addresses"` // Threshold is the minimum number of addresses that must authorize an action. Threshold uint8 `json:"threshold"` }
Authority is the vault multisig authority.
type AuthorityUpdatedEvent ¶
type AuthorityUpdatedEvent struct { // Vault is the vault address. Vault staking.Address `json:"vault"` }
AuthorityUpdatedEvent is the event emitted when a vault authority is updated.
type AuthorizeAction ¶
type AuthorizeAction struct { // Vault is the address of the target vault. Vault staking.Address `json:"vault"` // Nonce is the action nonce. Nonce uint64 `json:"nonce"` // Action is the action that should be authorized. Action Action `json:"action"` }
AuthorizeAction is an action authorization call body.
type CancelAction ¶
type CancelAction struct { // Vault is the address of the target vault. Vault staking.Address `json:"vault"` // Nonce is the action nonce. Nonce uint64 `json:"nonce"` }
CancelAction is an action cancelation call body.
type ConsensusParameterChanges ¶
type ConsensusParameterChanges struct { // MaxAuthorityAddresses is the new maximum number of addresses that can be configured for each // authority. MaxAuthorityAddresses *uint8 `json:"max_authority_addresses,omitempty"` // GasCosts are the new gas costs. GasCosts transaction.Costs `json:"gas_costs,omitempty"` }
ConsensusParameterChanges are allowed vault consensus parameter changes.
type ConsensusParameters ¶
type ConsensusParameters struct { // Enabled specifies whether the vault service is enabled. Enabled bool `json:"enabled,omitempty"` // MaxAuthorityAddresses is the maximum number of addresses that can be configured for each // authority. MaxAuthorityAddresses uint8 `json:"max_authority_addresses,omitempty"` // GasCosts are the vault transaction gas costs. GasCosts transaction.Costs `json:"gas_costs,omitempty"` }
ConsensusParameters are the vault consensus parameters.
type Create ¶
type Create struct { // AdminAuthority specifies the vault's admin authority. AdminAuthority Authority `json:"admin_authority"` // SuspendAuthority specifies the vault's suspend authority. SuspendAuthority Authority `json:"suspend_authority"` }
Create is a create call body.
type Event ¶
type Event struct { Height int64 `json:"height,omitempty"` TxHash hash.Hash `json:"tx_hash,omitempty"` ActionSubmitted *ActionSubmittedEvent `json:"action_submitted,omitempty"` ActionCanceled *ActionCanceledEvent `json:"action_canceled,omitempty"` ActionExecuted *ActionExecutedEvent `json:"action_executed,omitempty"` StateChanged *StateChangedEvent `json:"state_changed,omitempty"` PolicyUpdated *PolicyUpdatedEvent `json:"policy_updated"` AuthorityUpdated *AuthorityUpdatedEvent `json:"authority_updated"` }
Event signifies a vault event.
type Genesis ¶
type Genesis struct { // Parameters are the genesis consensus parameters. Parameters ConsensusParameters `json:"params"` // Vaults are the vaults. Vaults []*Vault `json:"vaults,omitempty"` // States are the per vault per-address states. States map[staking.Address]map[staking.Address]*AddressState `json:"states,omitempty"` // PendingActions are the per-vault pending actions. PendingActions map[staking.Address][]*PendingAction `json:"pending_actions,omitempty"` }
Genesis is the initial vault state for use in the genesis block.
type PendingAction ¶
type PendingAction struct { // Nonce is the action nonce. Nonce uint64 `json:"nonce"` // AuthorizedBy contains the addresses that have authorized the action. AuthorizedBy []staking.Address `json:"authorized_by"` // Action is the pending action itself. Action Action `json:"action"` }
PendingAction is an action waiting for authorizations in order to be executed.
type PolicyUpdatedEvent ¶
type PolicyUpdatedEvent struct { // Vault is the vault address. Vault staking.Address `json:"vault"` // Address is the address for which the policy has been updated. Address staking.Address `json:"address"` }
PolicyUpdatedEvent is the event emitted when a vault policy for an address is updated.
type PrettyActionExecuteMessage ¶
type PrettyActionExecuteMessage struct { Method transaction.MethodName `json:"method"` Body interface{} `json:"body,omitempty"` }
PrettyActionExecuteMessage is used for pretty-printing execute message actions so that the actual content is displayed instead of the binary blob.
It should only be used for pretty printing.
type StateChangedEvent ¶
type StateChangedEvent struct { // Vault is the vault address. Vault staking.Address `json:"vault"` // OldState is the old vault state. OldState State `json:"old_state"` // NewState is the new vault state. NewState State `json:"new_state"` }
StateChangedEvent is the event emitted when a vault state is changed.
type Vault ¶
type Vault struct { // Creator is the address of the vault creator. Creator staking.Address `json:"creator"` // ID is the unique per-creator identifier of the vault. ID uint64 `json:"id"` // State is the vault state. State State `json:"state"` // Nonce is the nonce to use for the next action. Nonce uint64 `json:"nonce,omitempty"` // AdminAuthority specifies the vault's admin authority. AdminAuthority Authority `json:"admin_authority"` // SuspendAuthority specifies the vault's suspend authority. SuspendAuthority Authority `json:"suspend_authority"` }
Vault contains metadata about a vault.
type VaultQuery ¶
type VaultQuery struct { // Height is the query height. Height int64 `json:"height"` // Address is the vault address. Address staking.Address `json:"address"` }
VaultQuery is a query for data about a given vault.
type WithdrawPolicy ¶
type WithdrawPolicy struct { // LimitAmount is the maximum amount of tokens that may be withdrawn in the given interval. LimitAmount quantity.Quantity `json:"limit_amount"` // LimitInterval is the interval (in blocks) when the limit amount resets. LimitInterval uint64 `json:"limit_interval"` }
WithdrawPolicy is the per-address withdraw policy.