Struct dflow_sdk::instructions::FillVoteInstruction
source · [−]pub struct FillVoteInstruction<'info> {
pub vault_meta_account: Box<Account<'info, VaultMetaAccount>>,
pub fill_record_account: Box<Account<'info, FillRecordAccount>>,
pub vote_record_account: Box<Account<'info, VoteRecordAccount>>,
pub auction_state_account: Account<'info, AuctionStateAccount>,
pub arbiter: AccountInfo<'info>,
pub arbiter_whitelist_entry: Account<'info, WhitelistEntry>,
pub retail_account_owner: AccountInfo<'info>,
pub arbiter_token_account: Account<'info, TokenAccount>,
pub vote_vault_account: Account<'info, TokenAccount>,
pub system_program: AccountInfo<'info>,
pub rent: Sysvar<'info, Rent>,
pub token_program: AccountInfo<'info>,
}
Expand description
This instruction is used to vote on the fairness of a fill Arbiters vote on the fairness of a fill when the fill is open for voting. In order to vote on a fill, the arbiter must stake tokens on the accuracy of their vote. If the arbiter voted in the majority, they receive their tokens back. Otherwise the tokens are deposited into a DAO governed backstop fund for the protocol.
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 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 expected
to be mutable. 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
vote_record_account: Box<Account<'info, VoteRecordAccount>>
The account which holds the voting record made
by an arbiter when the arbiter votes on the fairness of the fill.
This account is being initialized with 9 bytes, paid for by arbiter.
This account is a PDA generated by the following seeds: the public
key of the fill_record_account account, the public key of the
arbiter account, the string literal vra
auction_state_account: 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
arbiter: AccountInfo<'info>
The public key associated with the arbiter. This account is a signer for the instruction. This account is expected to be mutable
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.
arbiter_token_account: Account<'info, TokenAccount>
The SPL token account associated with the arbiter used to vote on the fairness of the fill by the market maker. This account is expected to be mutable
vote_vault_account: Account<'info, TokenAccount>
The vote vault account is an SPL token account
that holds votes made by arbiters on each fill. Vote stakes held
in this account are returned to the arbiters upon honest voting
of the fill. This account is expected to be mutable. This account
is a PDA generated by the following seeds: the string literal
vote_vault
, the unsigned integer field named auction_id in
the vault_meta_account account
system_program: AccountInfo<'info>
rent: Sysvar<'info, Rent>
token_program: AccountInfo<'info>
Trait Implementations
sourceimpl<'info> Accounts<'info> for FillVoteInstruction<'info> where
'info: 'info,
impl<'info> Accounts<'info> for FillVoteInstruction<'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 FillVoteInstruction<'info> where
'info: 'info,
impl<'info> AccountsExit<'info> for FillVoteInstruction<'info> where
'info: 'info,
sourceimpl<'info> ToAccountInfos<'info> for FillVoteInstruction<'info> where
'info: 'info,
impl<'info> ToAccountInfos<'info> for FillVoteInstruction<'info> where
'info: 'info,
sourceimpl<'info> ToAccountMetas for FillVoteInstruction<'info>
impl<'info> ToAccountMetas for FillVoteInstruction<'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 FillVoteInstruction<'info>
impl<'info> !Send for FillVoteInstruction<'info>
impl<'info> !Sync for FillVoteInstruction<'info>
impl<'info> Unpin for FillVoteInstruction<'info>
impl<'info> !UnwindSafe for FillVoteInstruction<'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