entrypoint.rs 682 B

123456789101112131415161718192021222324
  1. //! Program entrypoint
  2. #![cfg(feature = "program")]
  3. #![cfg(not(feature = "no-entrypoint"))]
  4. use crate::{error::TokenError, processor::Processor};
  5. use solana_sdk::{
  6. account_info::AccountInfo, entrypoint, entrypoint::ProgramResult,
  7. program_error::PrintProgramError, pubkey::Pubkey,
  8. };
  9. entrypoint!(process_instruction);
  10. fn process_instruction<'a>(
  11. program_id: &Pubkey,
  12. accounts: &'a [AccountInfo<'a>],
  13. instruction_data: &[u8],
  14. ) -> ProgramResult {
  15. if let Err(error) = Processor::process(program_id, accounts, instruction_data) {
  16. // catch the error so we can print it
  17. error.print::<TokenError>();
  18. return Err(error);
  19. }
  20. Ok(())
  21. }