pub struct InitializeMultisig<'account, 'multisig, MultisigSigner: AsRef<AccountView>>where
'account: 'multisig,{
pub multisig: &'account AccountView,
pub rent_sysvar: &'account AccountView,
pub multisig_signers: &'multisig [MultisigSigner],
pub m: u8,
}Expand description
Initializes a multisignature account with N provided signers.
Multisignature accounts can used in place of any single owner/delegate accounts in any token instruction that require an owner/delegate to be present. The variant field represents the number of signers (M) required to validate this multisignature account.
The super::InitializeMultisig instruction requires no
signers and MUST be included within the same Transaction as the
system program’s CreateAccount instruction that creates the
account being initialized. Otherwise another party can acquire
ownership of the uninitialized account.
Accounts expected by this instruction:
[writable]The multisignature account to initialize.[]Rent sysvar...+N[signer]The signer accounts, must equal to N where1 <= N <= 11.
Fields§
§multisig: &'account AccountViewThe multisignature account to initialize.
rent_sysvar: &'account AccountViewRent sysvar.
multisig_signers: &'multisig [MultisigSigner]The signer accounts.
m: u8The number of signers (M) required to validate this multisignature account.
Implementations§
Source§impl<'account, 'multisig, MultisigSigner: AsRef<AccountView>> InitializeMultisig<'account, 'multisig, MultisigSigner>where
'account: 'multisig,
impl<'account, 'multisig, MultisigSigner: AsRef<AccountView>> InitializeMultisig<'account, 'multisig, MultisigSigner>where
'account: 'multisig,
pub const DISCRIMINATOR: u8 = 2
Sourcepub const MAX_ACCOUNTS_LEN: usize
pub const MAX_ACCOUNTS_LEN: usize
Maximum number of accounts expected by this instruction.
The required number of accounts will depend whether the source account has a single owner or a multisignature owner.
Sourcepub const DATA_LEN: usize = 2
pub const DATA_LEN: usize = 2
Instruction data length:
- discriminator (1 byte)
- number of signers (1 byte)
pub fn new( multisig: &'account AccountView, rent_sysvar: &'account AccountView, multisig_signers: &'multisig [MultisigSigner], m: u8, ) -> Self
pub fn invoke(&self) -> ProgramResult
Trait Implementations§
Source§impl<MultisigSigner: AsRef<AccountView>> CpiWriter for InitializeMultisig<'_, '_, MultisigSigner>
impl<MultisigSigner: AsRef<AccountView>> CpiWriter for InitializeMultisig<'_, '_, MultisigSigner>
Source§fn write_accounts<'cpi>(
&self,
accounts: &mut [MaybeUninit<CpiAccount<'cpi>>],
) -> Result<usize, ProgramError>where
Self: 'cpi,
fn write_accounts<'cpi>(
&self,
accounts: &mut [MaybeUninit<CpiAccount<'cpi>>],
) -> Result<usize, ProgramError>where
Self: 'cpi,
AccountViews required by this instruction into the provided
slice. Read moreSource§fn write_instruction_accounts<'cpi>(
&self,
accounts: &mut [MaybeUninit<InstructionAccount<'cpi>>],
) -> Result<usize, ProgramError>where
Self: 'cpi,
fn write_instruction_accounts<'cpi>(
&self,
accounts: &mut [MaybeUninit<InstructionAccount<'cpi>>],
) -> Result<usize, ProgramError>where
Self: 'cpi,
InstructionAccounts required by this instruction into the
provided slice. Read moreSource§fn write_instruction_data(
&self,
data: &mut [MaybeUninit<u8>],
) -> Result<usize, ProgramError>
fn write_instruction_data( &self, data: &mut [MaybeUninit<u8>], ) -> Result<usize, ProgramError>
Source§impl<MultisigSigner: AsRef<AccountView>> IntoBatch for InitializeMultisig<'_, '_, MultisigSigner>
impl<MultisigSigner: AsRef<AccountView>> IntoBatch for InitializeMultisig<'_, '_, MultisigSigner>
Source§fn into_batch<'account, 'state>(
self,
batch: &mut Batch<'account, 'state>,
) -> ProgramResultwhere
Self: 'account + 'state,
fn into_batch<'account, 'state>(
self,
batch: &mut Batch<'account, 'state>,
) -> ProgramResultwhere
Self: 'account + 'state,
self into the provided batch.