Struct dflow_sdk::instructions::FillOrderInstruction
source · [−]pub struct FillOrderInstruction<'info> {Show 17 fields
pub vault_meta_account: Box<Account<'info, VaultMetaAccount>>,
pub fill_record_account: Box<Account<'info, FillRecordAccount>>,
pub retail_data_account: Box<Account<'info, RetailDataAccount>>,
pub market_maker_data_account: Box<Account<'info, MarketMakerDataAccount>>,
pub auction_epoch_state: Account<'info, AuctionEpochState>,
pub auction_state_account: Box<Account<'info, AuctionStateAccount>>,
pub retail_account_owner: AccountInfo<'info>,
pub x_mint: Box<Account<'info, Mint>>,
pub y_mint: Box<Account<'info, Mint>>,
pub market_maker_y_token_account: Account<'info, TokenAccount>,
pub market_maker_account_owner: AccountInfo<'info>,
pub market_maker_whitelist_entry: Account<'info, WhitelistEntry>,
pub retail_y_token_account: AccountInfo<'info>,
pub system_program: AccountInfo<'info>,
pub rent: Sysvar<'info, Rent>,
pub token_program: AccountInfo<'info>,
pub instructions: UncheckedAccount<'info>,
}
Expand description
This instruction is used to fill an open order When a market maker fills an order that is assigned to them, this instruction will partially settle the trade; the retail trader will receive the tokens from the market maker, but the market maker must wait until arbiters have voted on the fairness of the fill in order to receive the retail trader’s tokens.
Fields
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 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
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 being initialized
with 194 bytes, paid for by market_maker_account_owner. This
account is a PDA generated by the following seeds: the public
key of the vault_meta_account account, the unsigned integer field
named fill_nonce in the vault_meta_account account, the string
literal fra
retail_data_account: Box<Account<'info, RetailDataAccount>>
The retail data account holds state specific to the retail trader. This account is expected to be mutable
market_maker_data_account: Box<Account<'info, MarketMakerDataAccount>>
The account storing state specific to the market maker. This account must be owned by the DFlow program, and this account must be initialized by calling the initialize market maker instruction. This account is expected to be mutable
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
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
retail_account_owner: AccountInfo<'info>
The public key of the retail trader.
x_mint: Box<Account<'info, Mint>>
The SPL mint account associated with the token that is sold by the retail trader during the swap.
y_mint: Box<Account<'info, Mint>>
The SPL mint account associated with the token that is received by the retail trader during the swap.
market_maker_y_token_account: Account<'info, TokenAccount>
The SPL token account associated with the market maker, and which sends the asset being received by the retail trader during a trade. This account is expected to be mutable
market_maker_account_owner: AccountInfo<'info>
The public key of the market maker. This account is a signer for the instruction. This account is expected to be mutable
market_maker_whitelist_entry: Account<'info, WhitelistEntry>
This account stores the permissions that apply
to the market_maker_account_owner. This account is a PDA generated
by the following seeds: the string literal whitelist_entry
,
the public key of the market_maker_account_owner account
retail_y_token_account: AccountInfo<'info>
The SPL token account associated with the retail trader, and which receives the asset being sent by the market maker during a trade. This account is expected to be mutable. This account is the retail_y_token_account’s associated token account for the mint of the asset sent by the market maker
system_program: AccountInfo<'info>
rent: Sysvar<'info, Rent>
token_program: AccountInfo<'info>
instructions: UncheckedAccount<'info>
Trait Implementations
sourceimpl<'info> Accounts<'info> for FillOrderInstruction<'info> where
'info: 'info,
impl<'info> Accounts<'info> for FillOrderInstruction<'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 FillOrderInstruction<'info> where
'info: 'info,
impl<'info> AccountsExit<'info> for FillOrderInstruction<'info> where
'info: 'info,
sourceimpl<'info> ToAccountInfos<'info> for FillOrderInstruction<'info> where
'info: 'info,
impl<'info> ToAccountInfos<'info> for FillOrderInstruction<'info> where
'info: 'info,
sourceimpl<'info> ToAccountMetas for FillOrderInstruction<'info>
impl<'info> ToAccountMetas for FillOrderInstruction<'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 FillOrderInstruction<'info>
impl<'info> !Send for FillOrderInstruction<'info>
impl<'info> !Sync for FillOrderInstruction<'info>
impl<'info> Unpin for FillOrderInstruction<'info>
impl<'info> !UnwindSafe for FillOrderInstruction<'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