mirror of
https://github.com/d0zingcat/ore.git
synced 2026-05-17 07:26:52 +00:00
Discriminator
This commit is contained in:
@@ -2,6 +2,8 @@ use bytemuck::{Pod, Zeroable};
|
||||
|
||||
use crate::{impl_account_from_bytes, impl_to_bytes};
|
||||
|
||||
use super::{AccountDiscriminator, Discriminator};
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
|
||||
pub struct Bus {
|
||||
@@ -15,5 +17,11 @@ pub struct Bus {
|
||||
pub available_rewards: u64,
|
||||
}
|
||||
|
||||
impl Discriminator for Bus {
|
||||
fn discriminator() -> super::AccountDiscriminator {
|
||||
AccountDiscriminator::Bus
|
||||
}
|
||||
}
|
||||
|
||||
impl_to_bytes!(Bus);
|
||||
impl_account_from_bytes!(Bus);
|
||||
|
||||
@@ -3,7 +3,7 @@ use std::mem::transmute;
|
||||
use bytemuck::{Pod, Zeroable};
|
||||
use solana_program::keccak::{Hash as KeccakHash, HASH_BYTES};
|
||||
|
||||
use crate::{impl_account_from_bytes, impl_to_bytes};
|
||||
use crate::impl_to_bytes;
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
|
||||
@@ -24,4 +24,4 @@ impl From<Hash> for KeccakHash {
|
||||
}
|
||||
|
||||
impl_to_bytes!(Hash);
|
||||
impl_account_from_bytes!(Hash);
|
||||
// impl_account_from_bytes!(Hash);
|
||||
|
||||
@@ -5,5 +5,18 @@ mod treasury;
|
||||
|
||||
pub use bus::*;
|
||||
pub use hash::*;
|
||||
use num_enum::{IntoPrimitive, TryFromPrimitive};
|
||||
pub use proof::*;
|
||||
pub use treasury::*;
|
||||
|
||||
#[repr(u8)]
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq, IntoPrimitive, TryFromPrimitive)]
|
||||
pub enum AccountDiscriminator {
|
||||
Bus = 100,
|
||||
Proof = 101,
|
||||
Treasury = 102,
|
||||
}
|
||||
|
||||
pub trait Discriminator {
|
||||
fn discriminator() -> AccountDiscriminator;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ use solana_program::pubkey::Pubkey;
|
||||
|
||||
use crate::{impl_account_from_bytes, impl_to_bytes};
|
||||
|
||||
use super::Hash;
|
||||
use super::{AccountDiscriminator, Discriminator, Hash};
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
|
||||
@@ -27,5 +27,11 @@ pub struct Proof {
|
||||
pub total_rewards: u64,
|
||||
}
|
||||
|
||||
impl Discriminator for Proof {
|
||||
fn discriminator() -> super::AccountDiscriminator {
|
||||
AccountDiscriminator::Proof
|
||||
}
|
||||
}
|
||||
|
||||
impl_to_bytes!(Proof);
|
||||
impl_account_from_bytes!(Proof);
|
||||
|
||||
@@ -3,7 +3,7 @@ use solana_program::pubkey::Pubkey;
|
||||
|
||||
use crate::{impl_account_from_bytes, impl_to_bytes};
|
||||
|
||||
use super::Hash;
|
||||
use super::{AccountDiscriminator, Discriminator, Hash};
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
|
||||
@@ -27,5 +27,11 @@ pub struct Treasury {
|
||||
pub total_claimed_rewards: u64,
|
||||
}
|
||||
|
||||
impl Discriminator for Treasury {
|
||||
fn discriminator() -> super::AccountDiscriminator {
|
||||
AccountDiscriminator::Treasury
|
||||
}
|
||||
}
|
||||
|
||||
impl_to_bytes!(Treasury);
|
||||
impl_account_from_bytes!(Treasury);
|
||||
|
||||
Reference in New Issue
Block a user