use anchor_lang::prelude::*;
#[event]
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Request {
pub seed: [u8; 32],
pub client: Pubkey,
pub paid_with_spl: bool,
}
#[cfg(feature = "sdk")]
impl std::fmt::Display for Request {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(
f,
"Request: seed={} client={} paid_with_spl={}",
anchor_client::solana_sdk::bs58::encode(&self.seed[..]).into_string(),
self.client,
self.paid_with_spl,
)
}
}
#[event]
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Fulfill {
pub seed: [u8; 32],
pub randomness: [u8; 64],
}
#[cfg(feature = "sdk")]
impl std::fmt::Display for Fulfill {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(
f,
"Fulfill: seed={} randomness={}",
anchor_client::solana_sdk::bs58::encode(&self.seed[..]).into_string(),
anchor_client::solana_sdk::bs58::encode(&self.randomness[..]).into_string(),
)
}
}
#[event]
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Response {
pub seed: [u8; 32],
pub authority: Pubkey,
pub randomness: [u8; 64],
}
#[cfg(feature = "sdk")]
impl std::fmt::Display for Response {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(
f,
"Response: seed={} authority={} randomness={}",
anchor_client::solana_sdk::bs58::encode(&self.seed[..]).into_string(),
self.authority,
anchor_client::solana_sdk::bs58::encode(&self.randomness[..]).into_string(),
)
}
}