pub struct InitRecoveryVaultInstruction<'info> {
pub recovery_state_account: Account<'info, RecoveryStateAccount>,
pub recovery_vault_account: Account<'info, TokenAccount>,
pub recovery_vault_mint: Account<'info, Mint>,
pub auction_owner: AccountInfo<'info>,
pub auction_owner_whitelist_entry: Account<'info, WhitelistEntry>,
pub system_program: AccountInfo<'info>,
pub rent: Sysvar<'info, Rent>,
pub token_program: AccountInfo<'info>,
}
Expand description
This instruction creates a recovery vault. Recovery vaults are required for all mints used in the protocol. If a transfer recipient does not have a token account set up, the transferor can direct the protocol to transfer the tokens to the recovery vault. The intended recipient can then recover the tokens by submitting a recovery claim.
Fields
recovery_state_account: Account<'info, RecoveryStateAccount>
The recovery state account holds state specific
to the recovery vault. This account is being initialized with
40 bytes, paid for by auction_owner. This account is a PDA generated
by the following seeds: the public key of the recovery_vault_mint
account, the string literal recovery_state
recovery_vault_account: Account<'info, TokenAccount>
The recovery vault account is an SPL token account
that holds assets that could not be transferred to the intended
recipient because the intended recipient did not have a token
account at transfer time. Assets deposited into this account
are held until the intended recipient makes a claim to retrieve
the assets. This account is being initialized and is paid for
by auction_owner. This is a token account which is being initialized,
and is associated with the recovery_vault_mint mint. The authority
for this token account is recovery_state_account. This account
is a PDA generated by the following seeds: the public key of
the recovery_vault_mint account, the string literal recovery_vault
recovery_vault_mint: Account<'info, Mint>
The SPL mint for the recovery vault account.
auction_owner: AccountInfo<'info>
The auction owner is an authority with permission granted by the DFlow admin to create recovery vaults, create new auctions, and halt, resume, or deprecate existing auctions. This account is a signer for the instruction. This account is expected to be mutable
auction_owner_whitelist_entry: Account<'info, WhitelistEntry>
This account stores the permissions that apply
to the auction_owner. This account is a PDA generated by the
following seeds: the string literal whitelist_entry
, the public
key of the auction_owner account
system_program: AccountInfo<'info>
rent: Sysvar<'info, Rent>
token_program: AccountInfo<'info>
Trait Implementations
sourceimpl<'info> Accounts<'info> for InitRecoveryVaultInstruction<'info> where
'info: 'info,
impl<'info> Accounts<'info> for InitRecoveryVaultInstruction<'info> where
'info: 'info,
sourcefn try_accounts(
program_id: &Pubkey,
accounts: &mut &[AccountInfo<'info>],
ix_data: &[u8],
__bumps: &mut BTreeMap<String, u8>,
__reallocs: &mut BTreeSet<Pubkey>
) -> Result<Self>
fn try_accounts(
program_id: &Pubkey,
accounts: &mut &[AccountInfo<'info>],
ix_data: &[u8],
__bumps: &mut BTreeMap<String, u8>,
__reallocs: &mut BTreeSet<Pubkey>
) -> Result<Self>
Returns the validated accounts struct. What constitutes “valid” is
program dependent. However, users of these types should never have to
worry about account substitution attacks. For example, if a program
expects a Mint
account from the SPL token program in a particular
field, then it should be impossible for this method to return Ok
if
any other account type is given–from the SPL token program or elsewhere. Read more
sourceimpl<'info> AccountsExit<'info> for InitRecoveryVaultInstruction<'info> where
'info: 'info,
impl<'info> AccountsExit<'info> for InitRecoveryVaultInstruction<'info> where
'info: 'info,
sourceimpl<'info> ToAccountInfos<'info> for InitRecoveryVaultInstruction<'info> where
'info: 'info,
impl<'info> ToAccountInfos<'info> for InitRecoveryVaultInstruction<'info> where
'info: 'info,
sourceimpl<'info> ToAccountMetas for InitRecoveryVaultInstruction<'info>
impl<'info> ToAccountMetas for InitRecoveryVaultInstruction<'info>
sourcefn to_account_metas(&self, is_signer: Option<bool>) -> Vec<AccountMeta>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn to_account_metas(&self, is_signer: Option<bool>) -> Vec<AccountMeta>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
is_signer
is given as an optional override for the signer meta field.
This covers the edge case when a program-derived-address needs to relay
a transaction from a client to another program but sign the transaction
before the relay. The client cannot mark the field as a signer, and so
we have to override the is_signer meta field given by the client. Read more
Auto Trait Implementations
impl<'info> !RefUnwindSafe for InitRecoveryVaultInstruction<'info>
impl<'info> !Send for InitRecoveryVaultInstruction<'info>
impl<'info> !Sync for InitRecoveryVaultInstruction<'info>
impl<'info> Unpin for InitRecoveryVaultInstruction<'info>
impl<'info> !UnwindSafe for InitRecoveryVaultInstruction<'info>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more