1#![allow(unexpected_cfgs)]
2
3pub mod tape;
4pub mod miner;
5pub mod program;
6
7use tape::*;
8use miner::*;
9use program::*;
10
11use tape_api::instruction::*;
12use steel::*;
13
14pub fn process_instruction(
15 program_id: &Pubkey,
16 accounts: &[AccountInfo],
17 data: &[u8],
18) -> ProgramResult {
19 let (ix, data) = parse_instruction(&tape_api::ID, program_id, data)?;
20
21 match ix {
22 InstructionType::Initialize => process_initialize(accounts, data)?,
24 InstructionType::Advance => process_advance(accounts, data)?,
25
26 InstructionType::Create => process_create(accounts, data)?,
28 InstructionType::Write => process_write(accounts, data)?,
29 InstructionType::Finalize => process_finalize(accounts, data)?,
30
31 InstructionType::Register => process_register(accounts, data)?,
33 InstructionType::Close => process_close(accounts, data)?,
34 InstructionType::Mine => process_mine(accounts, data)?,
35 InstructionType::Claim => process_claim(accounts, data)?,
36
37 _ => { return Err(ProgramError::InvalidInstructionData); }
38 }
39
40 Ok(())
41}
42
43entrypoint!(process_instruction);