processor.rs 824 B

12345678910111213141516171819202122232425262728293031
  1. use {
  2. borsh::{BorshDeserialize, BorshSerialize},
  3. solana_program::{account_info::AccountInfo, entrypoint::ProgramResult, pubkey::Pubkey},
  4. };
  5. use crate::instructions::{
  6. create::{create_token, CreateTokenArgs},
  7. init::init,
  8. mint::mint_to,
  9. };
  10. #[derive(BorshSerialize, BorshDeserialize, Debug)]
  11. enum MyInstruction {
  12. Init,
  13. Create(CreateTokenArgs),
  14. Mint,
  15. }
  16. pub fn process_instruction(
  17. program_id: &Pubkey,
  18. accounts: &[AccountInfo],
  19. instruction_data: &[u8],
  20. ) -> ProgramResult {
  21. let instruction = MyInstruction::try_from_slice(instruction_data)?;
  22. match instruction {
  23. MyInstruction::Init => init(program_id, accounts),
  24. MyInstruction::Create(args) => create_token(program_id, accounts, args),
  25. MyInstruction::Mint => mint_to(program_id, accounts),
  26. }
  27. }