Struct dflow_sdk::instructions::CreateSignatory
source · [−]pub struct CreateSignatory<'info> {
pub signatory_record: Account<'info, SignatoryRecord>,
pub signatory_stake_vault: Account<'info, TokenAccount>,
pub signatory_server_token_account: Account<'info, TokenAccount>,
pub signatory_server: AccountInfo<'info>,
pub signatory_server_whitelist_entry: Account<'info, WhitelistEntry>,
pub system_program: AccountInfo<'info>,
pub rent: Sysvar<'info, Rent>,
pub token_program: AccountInfo<'info>,
}
Expand description
This instruction is used to stake the requisite amount of tokens necessary to endorse flow as retail. This stake is subject to slashing based on the quality of the order flow sent by the signatory server. Signatory server operators provide helpful network participation by endorsing and forwarding retail order flow to the network. This helpful network participation is rewarded, or slashed based on the quality of order flow sent.
Fields
signatory_record: Account<'info, SignatoryRecord>
The signatory record account holds information about a signatory server, and the existence of the signatory record account is a valid proof that the signatory server has staked the requisite value in the protocol allowing it to endorse flow as originating from a retail source. This account is being initialized with 48 bytes, paid for by signatory_server. This account is a PDA generated by the following seeds: the public key of the signatory_server account
signatory_stake_vault: Account<'info, TokenAccount>
The signatory stake vault holds staked assets
from signatory server operators. This account is expected to
be mutable. This account is a PDA generated by the following
seeds: the string literal sigstake
signatory_server_token_account: Account<'info, TokenAccount>
The signatory server’s token account used for originating the stake transfer. This account is expected to be mutable
signatory_server: AccountInfo<'info>
The public key of the signatory server that endorses new orders as originating from a retail source. This account is a signer for the instruction. This account is expected to be mutable
signatory_server_whitelist_entry: Account<'info, WhitelistEntry>
This account stores the permissions that apply
to the signatory_server. This account is a PDA generated by the
following seeds: the string literal whitelist_entry
, the public
key of the signatory_server account
system_program: AccountInfo<'info>
rent: Sysvar<'info, Rent>
token_program: AccountInfo<'info>
Trait Implementations
sourceimpl<'info> Accounts<'info> for CreateSignatory<'info> where
'info: 'info,
impl<'info> Accounts<'info> for CreateSignatory<'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 CreateSignatory<'info> where
'info: 'info,
impl<'info> AccountsExit<'info> for CreateSignatory<'info> where
'info: 'info,
sourceimpl<'info> ToAccountInfos<'info> for CreateSignatory<'info> where
'info: 'info,
impl<'info> ToAccountInfos<'info> for CreateSignatory<'info> where
'info: 'info,
sourceimpl<'info> ToAccountMetas for CreateSignatory<'info>
impl<'info> ToAccountMetas for CreateSignatory<'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 CreateSignatory<'info>
impl<'info> !Send for CreateSignatory<'info>
impl<'info> !Sync for CreateSignatory<'info>
impl<'info> Unpin for CreateSignatory<'info>
impl<'info> !UnwindSafe for CreateSignatory<'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