Struct switchboard_solana::oracle_program::accounts::buffer_relayer::BufferRelayerAccountData
source · pub struct BufferRelayerAccountData {
pub name: [u8; 32],
pub queue_pubkey: Pubkey,
pub escrow: Pubkey,
pub authority: Pubkey,
pub job_pubkey: Pubkey,
pub job_hash: [u8; 32],
pub min_update_delay_seconds: u32,
pub is_locked: bool,
pub current_round: BufferRelayerRound,
pub latest_confirmed_round: BufferRelayerRound,
pub result: Vec<u8>,
}
Fields§
§name: [u8; 32]
Name of the buffer account to store on-chain.
queue_pubkey: Pubkey
Public key of the OracleQueueAccountData that is currently assigned to fulfill buffer relayer update request.
escrow: Pubkey
Token account to reward oracles for completing update request.
The account delegated as the authority for making account changes.
job_pubkey: Pubkey
Public key of the JobAccountData that defines how the buffer relayer is updated.
job_hash: [u8; 32]
Used to protect against malicious RPC nodes providing incorrect task definitions to oracles before fulfillment
min_update_delay_seconds: u32
Minimum delay between update request.
is_locked: bool
Whether buffer relayer config is locked for further changes.
current_round: BufferRelayerRound
The current buffer relayer update round that is yet to be confirmed.
latest_confirmed_round: BufferRelayerRound
The latest confirmed buffer relayer update round.
result: Vec<u8>
The buffer holding the latest confirmed result.
Implementations§
source§impl BufferRelayerAccountData
impl BufferRelayerAccountData
sourcepub fn new(
switchboard_buffer: &AccountInfo<'_>
) -> Result<Box<BufferRelayerAccountData>>
pub fn new( switchboard_buffer: &AccountInfo<'_> ) -> Result<Box<BufferRelayerAccountData>>
pub fn get_result(&self) -> &Vec<u8> ⓘ
sourcepub fn check_staleness(
&self,
unix_timestamp: i64,
max_staleness: i64
) -> Result<()>
pub fn check_staleness( &self, unix_timestamp: i64, max_staleness: i64 ) -> Result<()>
Trait Implementations§
source§impl AccountDeserialize for BufferRelayerAccountData
impl AccountDeserialize for BufferRelayerAccountData
source§fn try_deserialize(buf: &mut &[u8]) -> Result<Self>
fn try_deserialize(buf: &mut &[u8]) -> Result<Self>
Deserializes previously initialized account data. Should fail for all
uninitialized accounts, where the bytes are zeroed. Implementations
should be unique to a particular account type so that one can never
successfully deserialize the data of one account type into another.
For example, if the SPL token program were to implement this trait,
it should be impossible to deserialize a
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>
Deserializes account data without checking the account discriminator.
This should only be used on account initialization, when the bytes of
the account are zeroed.
source§impl BorshDeserialize for BufferRelayerAccountDatawhere
[u8; 32]: BorshDeserialize,
Pubkey: BorshDeserialize,
u32: BorshDeserialize,
bool: BorshDeserialize,
BufferRelayerRound: BorshDeserialize,
Vec<u8>: BorshDeserialize,
impl BorshDeserialize for BufferRelayerAccountDatawhere
[u8; 32]: BorshDeserialize,
Pubkey: BorshDeserialize,
u32: BorshDeserialize,
bool: BorshDeserialize,
BufferRelayerRound: BorshDeserialize,
Vec<u8>: BorshDeserialize,
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>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
source§impl BorshSerialize for BufferRelayerAccountDatawhere
[u8; 32]: BorshSerialize,
Pubkey: BorshSerialize,
u32: BorshSerialize,
bool: BorshSerialize,
BufferRelayerRound: BorshSerialize,
Vec<u8>: BorshSerialize,
impl BorshSerialize for BufferRelayerAccountDatawhere
[u8; 32]: BorshSerialize,
Pubkey: BorshSerialize,
u32: BorshSerialize,
bool: BorshSerialize,
BufferRelayerRound: BorshSerialize,
Vec<u8>: BorshSerialize,
source§impl Clone for BufferRelayerAccountData
impl Clone for BufferRelayerAccountData
source§fn clone(&self) -> BufferRelayerAccountData
fn clone(&self) -> BufferRelayerAccountData
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Default for BufferRelayerAccountData
impl Default for BufferRelayerAccountData
source§fn default() -> BufferRelayerAccountData
fn default() -> BufferRelayerAccountData
Returns the “default value” for a type. Read more
source§impl Discriminator for BufferRelayerAccountData
impl Discriminator for BufferRelayerAccountData
const DISCRIMINATOR: [u8; 8] = _
fn discriminator() -> [u8; 8]
Auto Trait Implementations§
impl RefUnwindSafe for BufferRelayerAccountData
impl Send for BufferRelayerAccountData
impl Sync for BufferRelayerAccountData
impl Unpin for BufferRelayerAccountData
impl UnwindSafe for BufferRelayerAccountData
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more