initialize_account3.rs 668 B

123456789101112131415161718192021222324
  1. use pinocchio::{
  2. account_info::AccountInfo,
  3. program_error::ProgramError,
  4. pubkey::{Pubkey, PUBKEY_BYTES},
  5. ProgramResult,
  6. };
  7. use super::shared;
  8. #[inline(always)]
  9. pub fn process_initialize_account3(
  10. accounts: &[AccountInfo],
  11. instruction_data: &[u8],
  12. ) -> ProgramResult {
  13. // SAFETY: validate `instruction_data` length.
  14. let owner = unsafe {
  15. if instruction_data.len() != PUBKEY_BYTES {
  16. return Err(ProgramError::InvalidInstructionData);
  17. } else {
  18. &*(instruction_data.as_ptr() as *const Pubkey)
  19. }
  20. };
  21. shared::initialize_account::process_initialize_account(accounts, Some(owner), false)
  22. }