12345678910111213141516171819202122232425262728293031323334 |
- use {
- borsh::{BorshDeserialize, BorshSerialize},
- solana_program::{account_info::AccountInfo, entrypoint::ProgramResult, pubkey::Pubkey},
- };
- use crate::instructions::{
- create::{create_token, CreateTokenArgs},
- mint_nft::mint_nft,
- mint_spl::{mint_spl, MintSplArgs},
- transfer::{transfer_tokens, TransferTokensArgs},
- };
- #[derive(BorshSerialize, BorshDeserialize, Debug)]
- enum MyInstruction {
- Create(CreateTokenArgs),
- MintNft,
- MintSpl(MintSplArgs),
- TransferTokens(TransferTokensArgs),
- }
- pub fn process_instruction(
- _program_id: &Pubkey,
- accounts: &[AccountInfo],
- instruction_data: &[u8],
- ) -> ProgramResult {
- let instruction = MyInstruction::try_from_slice(instruction_data)?;
- match instruction {
- MyInstruction::Create(args) => create_token(accounts, args),
- MyInstruction::MintNft => mint_nft(accounts),
- MyInstruction::MintSpl(args) => mint_spl(accounts, args),
- MyInstruction::TransferTokens(args) => transfer_tokens(accounts, args),
- }
- }
|