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::{
instruction::CreateProofArgs,
loaders::*,
state::{Discriminator, Proof},
utils::create_pda,
state::Proof,
utils::{create_pda, Discriminator},
PROOF,
};

View File

@@ -1,20 +1,23 @@
use std::mem::size_of;
use solana_program::program_pack::Pack;
use solana_program::{self, sysvar};
use solana_program::{
account_info::AccountInfo, entrypoint::ProgramResult, program_error::ProgramError,
pubkey::Pubkey, system_program,
account_info::AccountInfo,
entrypoint::ProgramResult,
program_error::ProgramError,
program_pack::Pack,
pubkey::Pubkey,
system_program, {self, sysvar},
};
use spl_token::state::Mint;
use crate::state::Discriminator;
use crate::{instruction::*, BUS, INITIAL_DIFFICULTY, MINT_ADDRESS, TREASURY_ADDRESS};
use crate::{
instruction::*,
loaders::*,
state::{Bus, Treasury},
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>(

View File

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

View File

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

View File

@@ -5,18 +5,5 @@ 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;
}

View File

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

View File

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

View File

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