#[repr(packed(1))]
pub struct OracleQueueAccountData {
Show 23 fields pub name: [u8; 32], pub metadata: [u8; 64], pub authority: Pubkey, pub oracle_timeout: u32, pub reward: u64, pub min_stake: u64, pub slashing_enabled: bool, pub variance_tolerance_multiplier: SwitchboardDecimal, pub feed_probation_period: u32, pub curr_idx: u32, pub size: u32, pub gc_idx: u32, pub consecutive_feed_failure_limit: u64, pub consecutive_oracle_failure_limit: u64, pub unpermissioned_feeds_enabled: bool, pub unpermissioned_vrf_enabled: bool, pub curator_reward_cut: SwitchboardDecimal, pub lock_lease_funding: bool, pub mint: Pubkey, pub enable_buffer_relayers: bool, pub _ebuf: [u8; 968], pub max_size: u32, pub data_buffer: Pubkey,
}

Fields§

§name: [u8; 32]

Name of the queue to store on-chain.

§metadata: [u8; 64]

Metadata of the queue to store on-chain.

§authority: Pubkey

The account delegated as the authority for making account changes or assigning permissions targeted at the queue.

§oracle_timeout: u32

Interval when stale oracles will be removed if they fail to heartbeat.

§reward: u64

Rewards to provide oracles and round openers on this queue.

§min_stake: u64

The minimum amount of stake oracles must present to remain on the queue.

§slashing_enabled: bool

Whether slashing is enabled on this queue.

§variance_tolerance_multiplier: SwitchboardDecimal

The tolerated variance amount oracle results can have from the accepted round result before being slashed. slashBound = varianceToleranceMultiplier * stdDeviation Default: 2

§feed_probation_period: u32

Number of update rounds new feeds are on probation for. If a feed returns 429s within probation period, auto disable permissions.

§curr_idx: u32

Current index of the oracle rotation.

§size: u32

Current number of oracles on a queue.

§gc_idx: u32

Garbage collection index.

§consecutive_feed_failure_limit: u64

Consecutive failure limit for a feed before feed permission is revoked.

§consecutive_oracle_failure_limit: u64

Consecutive failure limit for an oracle before oracle permission is revoked.

§unpermissioned_feeds_enabled: bool

Enabling this setting means data feeds do not need explicit permission to join the queue and request new values from its oracles.

§unpermissioned_vrf_enabled: bool

Enabling this setting means VRF accounts do not need explicit permission to join the queue and request new values from its oracles.

§curator_reward_cut: SwitchboardDecimal

TODO: Revenue percentage rewarded to job curators overall.

§lock_lease_funding: bool

Prevent new leases from being funded n this queue. Useful to turn down a queue for migrations, since authority is always immutable.

§mint: Pubkey

Token mint used for the oracle queue rewards and slashing.

§enable_buffer_relayers: bool

Whether oracles are permitted to fulfill buffer relayer update request.

§_ebuf: [u8; 968]

Reserved for future info.

§max_size: u32

Maximum number of oracles a queue can support.

§data_buffer: Pubkey

The public key of the OracleQueueBuffer account holding a collection of Oracle pubkeys that haver successfully heartbeated before the queues oracleTimeout.

Implementations§

source§

impl OracleQueueAccountData

source

pub fn size() -> usize

source

pub fn convert_buffer(buf: &mut [u8]) -> &mut [Pubkey]

source

pub fn len(&self) -> u32

source

pub fn is_empty(&self) -> bool

source

pub fn get_mint(&self) -> Pubkey

source

pub fn max_round_rewards(&self, batch_size: u32) -> u64

source

pub fn new<'info>( account_info: &'info AccountInfo<'info> ) -> Result<Ref<'info, Self>>

Returns the deserialized Switchboard OracleQueue account

§Arguments
  • account_info - A Solana AccountInfo referencing an existing Switchboard OracleQueue
§Examples
use switchboard_solana::OracleQueueAccountData;

let oracle_queue = OracleQueueAccountData::new(queue_account_info)?;
source

pub fn new_from_bytes(data: &[u8]) -> Result<&OracleQueueAccountData>

Returns the deserialized Switchboard OracleQueue account

§Arguments
  • data - A Solana AccountInfo’s data buffer
§Examples
use switchboard_solana::OracleQueueAccountData;

let oracle_queue = OracleQueueAccountData::new(oracle_account_info.try_borrow_data()?)?;

Trait Implementations§

source§

impl AccountDeserialize for OracleQueueAccountData

source§

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>

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 Clone for OracleQueueAccountData

source§

fn clone(&self) -> OracleQueueAccountData

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Default for OracleQueueAccountData

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Discriminator for OracleQueueAccountData

source§

const DISCRIMINATOR: [u8; 8] = _

§

fn discriminator() -> [u8; 8]

source§

impl Owner for OracleQueueAccountData

source§

impl Zeroable for OracleQueueAccountData

§

fn zeroed() -> Self

source§

impl Copy for OracleQueueAccountData

source§

impl Pod for OracleQueueAccountData

source§

impl ZeroCopy for OracleQueueAccountData

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CheckedBitPattern for T
where T: AnyBitPattern,

§

type Bits = T

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern.
§

fn is_valid_bit_pattern(_bits: &T) -> bool

If this function returns true, then it must be valid to reinterpret bits as &Self.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> AnyBitPattern for T
where T: Pod,

§

impl<T> NoUninit for T
where T: Pod,