Struct squads_multisig_program::state::VaultTransaction
source · pub struct VaultTransaction {
pub multisig: Pubkey,
pub creator: Pubkey,
pub index: u64,
pub bump: u8,
pub vault_index: u8,
pub vault_bump: u8,
pub ephemeral_signer_bumps: Vec<u8>,
pub message: VaultTransactionMessage,
}Expand description
Stores data required for tracking the voting and execution status of a vault transaction. Vault transaction is a transaction that’s executed on behalf of the multisig vault PDA and wraps arbitrary Solana instructions, typically calling into other Solana programs.
Fields§
§multisig: PubkeyThe multisig this belongs to.
creator: PubkeyMember of the Multisig who submitted the transaction.
index: u64Index of this transaction within the multisig.
bump: u8bump for the transaction seeds.
vault_index: u8Index of the vault this transaction belongs to.
vault_bump: u8Derivation bump of the vault PDA this transaction belongs to.
ephemeral_signer_bumps: Vec<u8>Derivation bumps for additional signers.
Some transactions require multiple signers. Often these additional signers are “ephemeral” keypairs
that are generated on the client with a sole purpose of signing the transaction and be discarded immediately after.
When wrapping such transactions into multisig ones, we replace these “ephemeral” signing keypairs
with PDAs derived from the MultisigTransaction’s transaction_index and controlled by the Multisig Program;
during execution the program includes the seeds of these PDAs into the invoke_signed calls,
thus “signing” on behalf of these PDAs.
message: VaultTransactionMessagedata required for executing the transaction.
Implementations§
Trait Implementations§
source§impl AccountDeserialize for VaultTransaction
impl AccountDeserialize for VaultTransaction
source§fn try_deserialize(buf: &mut &[u8]) -> Result<Self>
fn try_deserialize(buf: &mut &[u8]) -> Result<Self>
Mint account into a token
Account.source§fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self>
fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self>
source§impl AccountSerialize for VaultTransaction
impl AccountSerialize for VaultTransaction
source§impl BorshDeserialize for VaultTransactionwhere
Pubkey: BorshDeserialize,
u64: BorshDeserialize,
u8: BorshDeserialize,
Vec<u8>: BorshDeserialize,
VaultTransactionMessage: BorshDeserialize,
impl BorshDeserialize for VaultTransactionwhere Pubkey: BorshDeserialize, u64: BorshDeserialize, u8: BorshDeserialize, Vec<u8>: BorshDeserialize, VaultTransactionMessage: BorshDeserialize,
source§impl BorshSerialize for VaultTransactionwhere
Pubkey: BorshSerialize,
u64: BorshSerialize,
u8: BorshSerialize,
Vec<u8>: BorshSerialize,
VaultTransactionMessage: BorshSerialize,
impl BorshSerialize for VaultTransactionwhere Pubkey: BorshSerialize, u64: BorshSerialize, u8: BorshSerialize, Vec<u8>: BorshSerialize, VaultTransactionMessage: BorshSerialize,
source§impl Clone for VaultTransaction
impl Clone for VaultTransaction
source§fn clone(&self) -> VaultTransaction
fn clone(&self) -> VaultTransaction
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more