Struct switchboard_solana::oracle_program::accounts::vrf::VrfAccountData
source · #[repr(packed(1))]pub struct VrfAccountData {
pub status: VrfStatus,
pub counter: u128,
pub authority: Pubkey,
pub oracle_queue: Pubkey,
pub escrow: Pubkey,
pub callback: CallbackZC,
pub batch_size: u32,
pub builders: [VrfBuilder; 8],
pub builders_len: u32,
pub test_mode: bool,
pub current_round: VrfRound,
pub _ebuf: [u8; 1024],
}
Fields§
§status: VrfStatus
The current status of the VRF account.
counter: u128
Incremental counter for tracking VRF rounds.
On-chain account delegated for making account changes.
oracle_queue: Pubkey
The OracleQueueAccountData that is assigned to fulfill VRF update request.
escrow: Pubkey
The token account used to hold funds for VRF update request.
callback: CallbackZC
The callback that is invoked when an update request is successfully verified.
batch_size: u32
The number of oracles assigned to a VRF update request.
builders: [VrfBuilder; 8]
Struct containing the intermediate state between VRF crank actions.
builders_len: u32
The number of builders.
test_mode: bool
§current_round: VrfRound
Oracle results from the current round of update request that has not been accepted as valid yet
_ebuf: [u8; 1024]
Reserved for future info.
Implementations§
source§impl VrfAccountData
impl VrfAccountData
pub fn size() -> usize
sourcepub fn new<'info>(
switchboard_vrf: &'info AccountInfo<'_>
) -> Result<Ref<'info, VrfAccountData>>
pub fn new<'info>( switchboard_vrf: &'info AccountInfo<'_> ) -> Result<Ref<'info, VrfAccountData>>
sourcepub fn new_from_bytes(data: &[u8]) -> Result<&VrfAccountData>
pub fn new_from_bytes(data: &[u8]) -> Result<&VrfAccountData>
sourcepub fn get_current_randomness_round_id(&self) -> u128
pub fn get_current_randomness_round_id(&self) -> u128
Returns the current VRF round ID
sourcepub fn get_result(&self) -> Result<[u8; 32]>
pub fn get_result(&self) -> Result<[u8; 32]>
pub fn fetch(client: &RpcClient, pubkey: Pubkey) -> Result<Self, 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>
Trait Implementations§
source§impl AccountDeserialize for VrfAccountData
impl AccountDeserialize for VrfAccountData
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 Clone for VrfAccountData
impl Clone for VrfAccountData
source§fn clone(&self) -> VrfAccountData
fn clone(&self) -> VrfAccountData
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 VrfAccountData
impl Default for VrfAccountData
source§impl Discriminator for VrfAccountData
impl Discriminator for VrfAccountData
const DISCRIMINATOR: [u8; 8] = _
fn discriminator() -> [u8; 8]
impl Copy for VrfAccountData
impl Pod for VrfAccountData
impl ZeroCopy for VrfAccountData
Auto Trait Implementations§
impl RefUnwindSafe for VrfAccountData
impl Send for VrfAccountData
impl Sync for VrfAccountData
impl Unpin for VrfAccountData
impl UnwindSafe for VrfAccountData
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
§impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
§type Bits = T
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
fn is_valid_bit_pattern(_bits: &T) -> bool
If this function returns true, then it must be valid to reinterpret
bits
as &Self
.