This commit is contained in:
Hardhat Chad
2024-02-15 18:05:51 +00:00
parent 9476fc5b21
commit 0d85a2a182
8 changed files with 42 additions and 35 deletions

View File

@@ -8,8 +8,8 @@ use solana_program::{
use crate::{ use crate::{
instruction::CreateProofArgs, instruction::CreateProofArgs,
loaders::*, loaders::*,
state::{Discriminator, Proof}, state::Proof,
utils::create_pda, utils::{create_pda, Discriminator},
PROOF, PROOF,
}; };

View File

@@ -1,20 +1,23 @@
use std::mem::size_of; use std::mem::size_of;
use solana_program::program_pack::Pack;
use solana_program::{self, sysvar};
use solana_program::{ use solana_program::{
account_info::AccountInfo, entrypoint::ProgramResult, program_error::ProgramError, account_info::AccountInfo,
pubkey::Pubkey, system_program, entrypoint::ProgramResult,
program_error::ProgramError,
program_pack::Pack,
pubkey::Pubkey,
system_program, {self, sysvar},
}; };
use spl_token::state::Mint; use spl_token::state::Mint;
use crate::state::Discriminator;
use crate::{instruction::*, BUS, INITIAL_DIFFICULTY, MINT_ADDRESS, TREASURY_ADDRESS};
use crate::{ use crate::{
instruction::*,
loaders::*, loaders::*,
state::{Bus, Treasury}, state::{Bus, Treasury},
utils::create_pda, utils::create_pda,
BUS_COUNT, INITIAL_REWARD_RATE, MINT, TOKEN_DECIMALS, TREASURY, utils::Discriminator,
BUS, BUS_COUNT, INITIAL_DIFFICULTY, INITIAL_REWARD_RATE, MINT, MINT_ADDRESS, TOKEN_DECIMALS,
TREASURY, TREASURY_ADDRESS,
}; };
pub fn process_initialize<'a, 'info>( pub fn process_initialize<'a, 'info>(

View File

@@ -1,8 +1,9 @@
use bytemuck::{Pod, Zeroable}; use bytemuck::{Pod, Zeroable};
use crate::{impl_account_from_bytes, impl_to_bytes}; use crate::{
impl_account_from_bytes, impl_to_bytes,
use super::{AccountDiscriminator, Discriminator}; utils::{AccountDiscriminator, Discriminator},
};
#[repr(C)] #[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)] #[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
@@ -18,7 +19,7 @@ pub struct Bus {
} }
impl Discriminator for Bus { impl Discriminator for Bus {
fn discriminator() -> super::AccountDiscriminator { fn discriminator() -> AccountDiscriminator {
AccountDiscriminator::Bus AccountDiscriminator::Bus
} }
} }

View File

@@ -24,4 +24,3 @@ impl From<Hash> for KeccakHash {
} }
impl_to_bytes!(Hash); impl_to_bytes!(Hash);
// impl_account_from_bytes!(Hash);

View File

@@ -5,18 +5,5 @@ mod treasury;
pub use bus::*; pub use bus::*;
pub use hash::*; pub use hash::*;
use num_enum::{IntoPrimitive, TryFromPrimitive};
pub use proof::*; pub use proof::*;
pub use treasury::*; 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;
}

View File

@@ -1,9 +1,11 @@
use bytemuck::{Pod, Zeroable}; use bytemuck::{Pod, Zeroable};
use solana_program::pubkey::Pubkey; use solana_program::pubkey::Pubkey;
use crate::{impl_account_from_bytes, impl_to_bytes}; use crate::{
impl_account_from_bytes, impl_to_bytes,
use super::{AccountDiscriminator, Discriminator, Hash}; state::Hash,
utils::{AccountDiscriminator, Discriminator},
};
#[repr(C)] #[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)] #[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
@@ -28,7 +30,7 @@ pub struct Proof {
} }
impl Discriminator for Proof { impl Discriminator for Proof {
fn discriminator() -> super::AccountDiscriminator { fn discriminator() -> AccountDiscriminator {
AccountDiscriminator::Proof AccountDiscriminator::Proof
} }
} }

View File

@@ -1,9 +1,11 @@
use bytemuck::{Pod, Zeroable}; use bytemuck::{Pod, Zeroable};
use solana_program::pubkey::Pubkey; use solana_program::pubkey::Pubkey;
use crate::{impl_account_from_bytes, impl_to_bytes}; use crate::{
impl_account_from_bytes, impl_to_bytes,
use super::{AccountDiscriminator, Discriminator, Hash}; state::Hash,
utils::{AccountDiscriminator, Discriminator},
};
#[repr(C)] #[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)] #[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
@@ -28,7 +30,7 @@ pub struct Treasury {
} }
impl Discriminator for Treasury { impl Discriminator for Treasury {
fn discriminator() -> super::AccountDiscriminator { fn discriminator() -> AccountDiscriminator {
AccountDiscriminator::Treasury AccountDiscriminator::Treasury
} }
} }

View File

@@ -1,3 +1,4 @@
use num_enum::{IntoPrimitive, TryFromPrimitive};
use solana_program::{ use solana_program::{
account_info::AccountInfo, entrypoint::ProgramResult, pubkey::Pubkey, rent::Rent, account_info::AccountInfo, entrypoint::ProgramResult, pubkey::Pubkey, rent::Rent,
sysvar::Sysvar, sysvar::Sysvar,
@@ -32,6 +33,18 @@ pub fn create_pda<'a, 'info>(
Ok(()) Ok(())
} }
#[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;
}
#[macro_export] #[macro_export]
macro_rules! impl_to_bytes { macro_rules! impl_to_bytes {
($struct_name:ident) => { ($struct_name:ident) => {