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 VaultTransaction
impl BorshDeserialize for VaultTransaction
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for VaultTransaction
impl BorshSerialize for VaultTransaction
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 moreSource§impl Discriminator for VaultTransaction
impl Discriminator for VaultTransaction
const DISCRIMINATOR: [u8; 8]
fn discriminator() -> [u8; 8]
Auto Trait Implementations§
impl Freeze for VaultTransaction
impl RefUnwindSafe for VaultTransaction
impl Send for VaultTransaction
impl Sync for VaultTransaction
impl Unpin for VaultTransaction
impl UnwindSafe for VaultTransaction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more