entrypoint.rs 658 B

123456789101112131415161718192021222324
  1. //! Program entrypoint
  2. use {
  3. crate::processor::Processor,
  4. solana_account_info::AccountInfo,
  5. solana_msg::msg,
  6. solana_program_error::{ProgramResult, ToStr},
  7. solana_pubkey::Pubkey,
  8. spl_token_interface::error::TokenError,
  9. };
  10. solana_program_entrypoint::entrypoint!(process_instruction);
  11. fn process_instruction(
  12. program_id: &Pubkey,
  13. accounts: &[AccountInfo],
  14. instruction_data: &[u8],
  15. ) -> ProgramResult {
  16. if let Err(error) = Processor::process(program_id, accounts, instruction_data) {
  17. // catch the error so we can print it
  18. msg!(error.to_str::<TokenError>());
  19. return Err(error);
  20. }
  21. Ok(())
  22. }