Struct dflow_sdk::instructions::CloseFillAccounts
source · [−]pub struct CloseFillAccounts<'info> {Show 15 fields
pub vault_token_account: Account<'info, TokenAccount>,
pub vault_meta_account: Box<Account<'info, VaultMetaAccount>>,
pub fill_record_account: Box<Account<'info, FillRecordAccount>>,
pub bid_vault_account: Account<'info, TokenAccount>,
pub auction_state_account: Box<Account<'info, AuctionStateAccount>>,
pub auction_epoch_state: Account<'info, AuctionEpochState>,
pub market_maker_x_token_account: AccountInfo<'info>,
pub retail_data_account: Account<'info, RetailDataAccount>,
pub market_maker_account_owner: AccountInfo<'info>,
pub arbiter: AccountInfo<'info>,
pub arbiter_whitelist_entry: Account<'info, WhitelistEntry>,
pub retail_account_owner: AccountInfo<'info>,
pub rebate_receiver_token_account: AccountInfo<'info>,
pub system_program: AccountInfo<'info>,
pub token_program: AccountInfo<'info>,
}
Expand description
This instruction is used to close the various accounts opened during the lifecycle of the trade, and additionally give a rebate to the order flow source for its order flow. Lamports used to open the accounts will be returned to the payers who opened the accounts.
Fields
vault_token_account: Account<'info, TokenAccount>
The SPL token account owned by the escrow vault,
which holds the sold tokens during a swap from the retail trader.
This account is expected to be mutable. This account is being
closed, and the destination of the lamports will be the retail_account_owner
account. This account is a PDA generated by the following seeds:
the public key of the retail_account_owner account, the string
literal vault
, an unsigned 64 bit integer
vault_meta_account: Box<Account<'info, VaultMetaAccount>>
The account which holds state specific to a given
order initiated by the retail trader. This account is expected
to be mutable. This account is being closed, and the destination
of the lamports will be the retail_account_owner account. This
account is a PDA generated by the following seeds: the public
key of the retail_account_owner account, the string literal vault_meta
,
an unsigned 64 bit integer. The key of rebate_receiver_token_account
must match the field named rebate_receiver_token_account in this
account
fill_record_account: Box<Account<'info, FillRecordAccount>>
The account which holds meta-information about
the fill, so that arbiters can reference the information when
voting on the fairness of the fill. This account is expected
to be mutable. This account is being closed, and the destination
of the lamports will be the market_maker_account_owner account.
This account is a PDA generated by the following seeds: the public
key of the vault_meta_account account, an unsigned 16 bit integer,
the string literal fra
. The key of market_maker_account_owner
must match the field named market_maker_account_owner in this
account
bid_vault_account: Account<'info, TokenAccount>
The bid vault account is an SPL token account
that holds bids made by market makers in the auctions for order
flow. Bids held in this account are held only temporarily, and
are distributed out upon fills and fill arbitration. This account
is expected to be mutable. This account is a PDA generated by
the following seeds: the string literal bid_vault
, the unsigned
integer field named auction_id in the vault_meta_account account
auction_state_account: Box<Account<'info, AuctionStateAccount>>
The auction state account holds state specific
to the auction. This account is a PDA generated by the following
seeds: the string literal auction_state
, the unsigned integer
field named auction_id in the vault_meta_account account
auction_epoch_state: Account<'info, AuctionEpochState>
The auction epoch state account holds state specific
to an epoch of the auction, if that state must be remembered
beyond the duration of that auction epoch. This account is expected
to be mutable. This account is a PDA generated by the following
seeds: the string literal epoch
, the unsigned integer field
named auction_id in the vault_meta_account account, the unsigned
integer field named auction_epoch in the vault_meta_account account
market_maker_x_token_account: AccountInfo<'info>
The SPL token account associated with the market maker, and which receives the asset sold by the retail trader during a trade. This account is expected to be mutable. This account is the market_maker_account_owner’s associated token account for the mint of the asset sent by the retail trader
retail_data_account: Account<'info, RetailDataAccount>
The retail data account holds state specific to the retail trader. This account is expected to be mutable. The key of retail_account_owner must match the field named retail_account_owner in this account
market_maker_account_owner: AccountInfo<'info>
The public key of the market maker. This account is expected to be mutable
arbiter: AccountInfo<'info>
The public key associated with the arbiter. This account is a signer for the instruction
arbiter_whitelist_entry: Account<'info, WhitelistEntry>
This account stores the permissions that apply
to the arbiter. This account is a PDA generated by the following
seeds: the string literal whitelist_entry
, the public key of
the arbiter account
retail_account_owner: AccountInfo<'info>
The public key of the retail trader. This account is expected to be mutable
rebate_receiver_token_account: AccountInfo<'info>
The SPL token account associated with the order used to receive a payment from the network, with the same mint as the token accounts used by market makers to bid in the associated auction. This account is expected to be mutable
system_program: AccountInfo<'info>
token_program: AccountInfo<'info>
Trait Implementations
sourceimpl<'info> Accounts<'info> for CloseFillAccounts<'info> where
'info: 'info,
impl<'info> Accounts<'info> for CloseFillAccounts<'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 CloseFillAccounts<'info> where
'info: 'info,
impl<'info> AccountsExit<'info> for CloseFillAccounts<'info> where
'info: 'info,
sourceimpl<'info> ToAccountInfos<'info> for CloseFillAccounts<'info> where
'info: 'info,
impl<'info> ToAccountInfos<'info> for CloseFillAccounts<'info> where
'info: 'info,
sourceimpl<'info> ToAccountMetas for CloseFillAccounts<'info>
impl<'info> ToAccountMetas for CloseFillAccounts<'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 CloseFillAccounts<'info>
impl<'info> !Send for CloseFillAccounts<'info>
impl<'info> !Sync for CloseFillAccounts<'info>
impl<'info> Unpin for CloseFillAccounts<'info>
impl<'info> !UnwindSafe for CloseFillAccounts<'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