mirror of
https://github.com/d0zingcat/ore.git
synced 2026-06-05 07:36:50 +00:00
auth
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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(),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user