processor.rs 891 B

1234567891011121314151617181920212223242526272829303132333435
  1. use borsh::{ BorshDeserialize, BorshSerialize };
  2. use solana_program::{
  3. account_info::AccountInfo,
  4. entrypoint::ProgramResult,
  5. program_error::ProgramError,
  6. pubkey::Pubkey,
  7. };
  8. use crate::instructions;
  9. use crate::state::PageVisits;
  10. use crate::state::IncrementPageVisits;
  11. pub fn process_instruction(
  12. program_id: &Pubkey,
  13. accounts: &[AccountInfo],
  14. instruction_data: &[u8],
  15. ) -> ProgramResult {
  16. match PageVisits::try_from_slice(&instruction_data) {
  17. Ok(page_visits) => return instructions::create::create_page_visits(
  18. program_id, accounts, page_visits
  19. ),
  20. Err(_) => {},
  21. };
  22. match IncrementPageVisits::try_from_slice(&instruction_data) {
  23. Ok(_) => return instructions::increment::increment_page_visits(
  24. accounts
  25. ),
  26. Err(_) => {},
  27. };
  28. Err(ProgramError::InvalidInstructionData)
  29. }