processor.rs 714 B

1234567891011121314151617181920212223
  1. use borsh::{BorshDeserialize, BorshSerialize};
  2. use solana_program::{account_info::AccountInfo, entrypoint::ProgramResult, pubkey::Pubkey};
  3. use crate::instructions::{close_user::close_user, create_user::create_user};
  4. use crate::state::user::User;
  5. #[derive(BorshSerialize, BorshDeserialize)]
  6. pub enum MyInstruction {
  7. CreateUser(User),
  8. CloseUser,
  9. }
  10. pub fn process_instruction(
  11. program_id: &Pubkey,
  12. accounts: &[AccountInfo],
  13. input: &[u8],
  14. ) -> ProgramResult {
  15. let instruction = MyInstruction::try_from_slice(input)?;
  16. match instruction {
  17. MyInstruction::CreateUser(data) => create_user(program_id, accounts, data),
  18. MyInstruction::CloseUser => close_user(accounts),
  19. }
  20. }