Struct switchboard_solana::attestation_program::accounts::request::FunctionRequestAccountData
source · pub struct FunctionRequestAccountData {Show 16 fields
pub is_triggered: u8,
pub status: RequestStatus,
pub authority: Pubkey,
pub payer: Pubkey,
pub function: Pubkey,
pub escrow: Pubkey,
pub attestation_queue: Pubkey,
pub active_request: FunctionRequestTriggerRound,
pub previous_request: FunctionRequestTriggerRound,
pub max_container_params_len: u32,
pub container_params_hash: [u8; 32],
pub container_params: Vec<u8>,
pub created_at: i64,
pub garbage_collection_slot: Option<u64>,
pub error_status: u8,
pub _ebuf: [u8; 255],
}
Fields§
§is_triggered: u8
Whether the request is ready to be processed.
status: RequestStatus
The status of the current request.
Signer allowed to cancel the request.
payer: Pubkey
The default destination for rent exemption when the account is closed.
function: Pubkey
The function that can process this request
escrow: Pubkey
The tokenAccount escrow
attestation_queue: Pubkey
The Attestation Queue for this request.
active_request: FunctionRequestTriggerRound
The current active request.
previous_request: FunctionRequestTriggerRound
The previous request.
max_container_params_len: u32
The maximum number of bytes to pass to the container params.
container_params_hash: [u8; 32]
Hash of the serialized container_params to prevent RPC tampering. Should be verified within your function to ensure you are using the correct parameters.
container_params: Vec<u8>
The stringified container params to pass to the function.
created_at: i64
The unix timestamp when the function was created.
garbage_collection_slot: Option<u64>
The slot when the account can be garbage collected and closed by anyone for a portion of the rent.
error_status: u8
The last recorded error code if most recent response was an error.
_ebuf: [u8; 255]
Reserved.
Implementations§
source§impl FunctionRequestAccountData
impl FunctionRequestAccountData
pub fn space(len: Option<u32>) -> usize
pub fn is_round_active(&self, clock: &Clock) -> bool
sourcepub fn validate_signer<'a>(
&self,
function_loader: &AccountLoader<'a, FunctionAccountData>,
enclave_signer: &AccountInfo<'a>
) -> Result<bool>
pub fn validate_signer<'a>( &self, function_loader: &AccountLoader<'a, FunctionAccountData>, enclave_signer: &AccountInfo<'a> ) -> Result<bool>
Validates that the provided request is assigned to the same AttestationQueueAccountData
as the function and the
provided enclave_signer
matches the enclave_signer
stored in the request’s active_request
field.
§Arguments
request
- TheFunctionRequestAccountData
being validated.enclave_signer
- TheAccountInfo
of the enclave signer to validate.
§Errors
Returns an error if:
- the function cannot be deserialized
- the function is not assigned to the request
- the function and request have different attestation queues
- the request’s verified signer does not match the provided
enclave_signer
- the
enclave_signer
did not sign the transaction
§Returns
Returns Ok(true)
if the validation succeeds, Ok(false)
otherwise.
§Examples
use switchboard_solana::FunctionRequestAccountData;
#[derive(Accounts)]
pub struct Settle<'info> {
// YOUR PROGRAM ACCOUNTS
#[account(
mut,
has_one = switchboard_request,
)]
pub user: AccountLoader<'info, UserState>,
// SWITCHBOARD ACCOUNTS
pub switchboard_function: AccountLoader<'info, FunctionAccountData>,
#[account(
constraint = switchboard_request.validate_signer(
&switchboard_function,
&enclave_signer.to_account_info()
)?
)]
pub switchboard_request: Box<Account<'info, FunctionRequestAccountData>>,
pub enclave_signer: Signer<'info>,
}
source§impl FunctionRequestAccountData
impl FunctionRequestAccountData
sourcepub async fn get_program_accounts(
rpc: &RpcClient,
filters: FunctionRequestFilters,
commitment: Option<CommitmentLevel>
) -> Result<Vec<(Pubkey, FunctionRequestAccountData)>, SbError>
pub async fn get_program_accounts( rpc: &RpcClient, filters: FunctionRequestFilters, commitment: Option<CommitmentLevel> ) -> Result<Vec<(Pubkey, FunctionRequestAccountData)>, SbError>
Client Methods
pub async fn get_or_create_from_seed( rpc: &RpcClient, payer: Arc<Keypair>, function: Pubkey, seed: Option<&str>, params: Option<FunctionRequestInitAndTriggerParams> ) -> Result<Pubkey, SbError>
pub async fn fetch_async( client: &RpcClient, pubkey: Pubkey ) -> Result<Self, SbError>
pub fn fetch_sync<T: SyncClient>( client: &T, pubkey: Pubkey ) -> Result<Self, SbError>
pub fn get_discriminator_filter() -> RpcFilterType
pub fn get_is_triggered_filter() -> RpcFilterType
pub fn get_is_active_filter() -> RpcFilterType
pub fn get_is_triggered_and_active_filter() -> RpcFilterType
pub fn get_queue_filter(queue_pubkey: &Pubkey) -> RpcFilterType
pub fn get_queue_idx_filter(queue_idx: &u32) -> RpcFilterType
pub fn get_is_ready_filters(queue_pubkey: &Pubkey) -> Vec<RpcFilterType>
pub fn calc_container_params_hash(&self) -> [u8; 32]
Trait Implementations§
source§impl AccountDeserialize for FunctionRequestAccountData
impl AccountDeserialize for FunctionRequestAccountData
source§fn try_deserialize(buf: &mut &[u8]) -> Result<Self>
fn try_deserialize(buf: &mut &[u8]) -> Result<Self>
Mint
account into a token
Account
.source§fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self>
fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self>
source§impl BorshDeserialize for FunctionRequestAccountData
impl BorshDeserialize for FunctionRequestAccountData
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
source§impl Clone for FunctionRequestAccountData
impl Clone for FunctionRequestAccountData
source§fn clone(&self) -> FunctionRequestAccountData
fn clone(&self) -> FunctionRequestAccountData
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Default for FunctionRequestAccountData
impl Default for FunctionRequestAccountData
source§impl Discriminator for FunctionRequestAccountData
impl Discriminator for FunctionRequestAccountData
const DISCRIMINATOR: [u8; 8] = _
fn discriminator() -> [u8; 8]
source§impl PartialEq for FunctionRequestAccountData
impl PartialEq for FunctionRequestAccountData
source§fn eq(&self, other: &FunctionRequestAccountData) -> bool
fn eq(&self, other: &FunctionRequestAccountData) -> bool
self
and other
values to be equal, and is used
by ==
.