This commit is contained in:
Hardhat Chad
2024-07-26 21:26:47 +00:00
parent c0c16f5e81
commit 3bfe8506f4
5 changed files with 70 additions and 84 deletions

View File

@@ -23,14 +23,8 @@ pub enum OreError {
ToleranceOverflow = 7,
#[error("The maximum supply has been reached")]
MaxSupply = 8,
#[error("This account cannot be closed because it's the top staker")]
CannotClose = 9,
#[error("This account cannot be crowned because its last stake was too recent")]
CannotCrown = 10,
#[error("Only the declared proof can be processed in this transaction")]
DeclaredProofMissmatch = 11,
#[error("Failed to find and parse the declared proof from the transaction")]
FindAndParseDeclaredProofFailed = 12,
#[error("The proof does not match the expected account")]
AuthFailed = 9,
}
impl From<OreError> for ProgramError {

View File

@@ -17,6 +17,10 @@ use crate::{
#[derive(Clone, Copy, Debug, Eq, PartialEq, ShankInstruction, TryFromPrimitive)]
#[rustfmt::skip]
pub enum OreInstruction {
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "proof", desc = "Ore proof account")]
Auth = 0,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "signer", desc = "Signer", signer)]
#[account(2, name = "beneficiary", desc = "Beneficiary token account", writable)]
@@ -24,13 +28,13 @@ pub enum OreInstruction {
#[account(4, name = "treasury", desc = "Ore treasury account", writable)]
#[account(5, name = "treasury_tokens", desc = "Ore treasury token account", writable)]
#[account(6, name = "token_program", desc = "SPL token program")]
Claim = 0,
Claim = 1,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "signer", desc = "Signer", signer)]
#[account(2, name = "proof", desc = "Ore proof account", writable)]
#[account(3, name = "system_program", desc = "Solana system program")]
Close = 1,
Close = 2,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "signer", desc = "Signer", signer)]
@@ -39,7 +43,7 @@ pub enum OreInstruction {
#[account(4, name = "noise", desc = "Ore noise account")]
#[account(5, name = "proof", desc = "Ore proof account", writable)]
#[account(6, name = "slot_hashes", desc = "Solana slot hashes sysvar")]
Mine = 2,
Mine = 3,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "signer", desc = "Signer", signer)]
@@ -48,7 +52,7 @@ pub enum OreInstruction {
#[account(4, name = "proof", desc = "Ore proof account", writable)]
#[account(5, name = "system_program", desc = "Solana system program")]
#[account(6, name = "slot_hashes", desc = "Solana slot hashes sysvar")]
Open = 3,
Open = 4,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "signer", desc = "Signer", signer)]
@@ -65,7 +69,7 @@ pub enum OreInstruction {
#[account(12, name = "treasury", desc = "Ore treasury account", writable)]
#[account(13, name = "treasury_tokens", desc = "Ore treasury token account", writable)]
#[account(14, name = "token_program", desc = "SPL token program")]
Reset = 4,
Reset = 5,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "signer", desc = "Signer", signer)]
@@ -73,12 +77,12 @@ pub enum OreInstruction {
#[account(3, name = "sender", desc = "Signer token account", writable)]
#[account(4, name = "treasury_tokens", desc = "Ore treasury token account", writable)]
#[account(5, name = "token_program", desc = "SPL token program")]
Stake = 5,
Stake = 6,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "signer", desc = "Signer", signer)]
#[account(2, name = "proof", desc = "Ore proof account", writable)]
Update = 6,
Update = 7,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "signer", desc = "Signer", signer)]
@@ -88,11 +92,7 @@ pub enum OreInstruction {
#[account(5, name = "mint", desc = "Ore token mint account", writable)]
#[account(6, name = "mint_v1", desc = "Ore v1 token mint account", writable)]
#[account(7, name = "token_program", desc = "SPL token program")]
Upgrade = 7,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "proof", desc = "Ore proof account")]
DeclareProof = 8,
Upgrade = 8,
#[account(0, name = "ore_program", desc = "Ore program")]
#[account(1, name = "signer", desc = "Admin signer", signer)]
@@ -228,16 +228,12 @@ pub fn close(signer: Pubkey) -> Instruction {
}
}
/// Builds a declare proof instruction.
pub fn declare_proof(
proof: Pubkey,
) -> Instruction {
/// Builds an auth instruction.
pub fn auth(proof: Pubkey) -> Instruction {
Instruction {
program_id: crate::id(),
accounts: vec![
AccountMeta::new_readonly(proof, false),
],
data: OreInstruction::DeclareProof.to_vec(),
accounts: vec![AccountMeta::new_readonly(proof, false)],
data: OreInstruction::Auth.to_vec(),
}
}