lib.rs 878 B

123456789101112131415161718192021222324252627282930313233
  1. mod create_address_info;
  2. use account_data_api::prelude::*;
  3. use create_address_info::*;
  4. use solana_program::msg;
  5. use steel::*;
  6. pub fn process_instruction(
  7. program_id: &Pubkey,
  8. accounts: &[AccountInfo],
  9. data: &[u8],
  10. ) -> ProgramResult {
  11. // Validate program ID
  12. if program_id != &account_data_api::ID {
  13. return Err(ProgramError::IncorrectProgramId);
  14. }
  15. // Parse and validate instruction data
  16. let (instruction, instruction_data) =
  17. parse_instruction::<AddressInfoInstruction>(&account_data_api::ID, program_id, data)?;
  18. // Route instruction to appropriate processor
  19. match instruction {
  20. AddressInfoInstruction::CreateAddressInfo => {
  21. msg!("Instruction: CreateAddressInfo");
  22. process_create_address_info(accounts, instruction_data)?
  23. }
  24. }
  25. Ok(())
  26. }
  27. entrypoint!(process_instruction);