1+ use core:: str;
2+
13use pinocchio:: {
24 account_info:: AccountInfo , entrypoint, program_error:: ProgramError , pubkey:: Pubkey ,
35 ProgramResult ,
46} ;
57
68use crate :: processor:: {
9+ amount_to_ui_amount:: process_amount_to_ui_amount,
710 approve:: process_approve,
811 approve_checked:: { process_approve_checked, ApproveChecked } ,
912 burn:: process_burn,
1013 burn_checked:: { process_burn_checked, BurnChecked } ,
1114 close_account:: process_close_account,
1215 freeze_account:: process_freeze_account,
16+ get_account_data_size:: process_get_account_data_size,
1317 initialize_account:: process_initialize_account,
1418 initialize_account2:: process_initialize_account2,
1519 initialize_account3:: process_initialize_account3,
20+ initialize_immutable_owner:: process_initialize_immutable_owner,
1621 initialize_mint:: { process_initialize_mint, InitializeMint } ,
1722 initialize_mint2:: process_initialize_mint2,
1823 initialize_multisig:: process_initialize_multisig,
@@ -25,6 +30,7 @@ use crate::processor::{
2530 thaw_account:: process_thaw_account,
2631 transfer:: process_transfer,
2732 transfer_checked:: { process_transfer_checked, TransferChecked } ,
33+ ui_amount_to_amount:: process_ui_amount_to_amount,
2834} ;
2935
3036entrypoint ! ( process_instruction) ;
@@ -229,6 +235,42 @@ pub fn process_instruction(
229235
230236 process_initialize_mint2 ( accounts, & instruction)
231237 }
238+ // 21 - GetAccountDataSize
239+ Some ( ( & 21 , _) ) => {
240+ #[ cfg( feature = "logging" ) ]
241+ pinocchio:: msg!( "Instruction: GetAccountDataSize" ) ;
242+
243+ process_get_account_data_size ( program_id, accounts)
244+ }
245+ // 22 - InitializeImmutableOwner
246+ Some ( ( & 22 , _) ) => {
247+ #[ cfg( feature = "logging" ) ]
248+ pinocchio:: msg!( "Instruction: InitializeImmutableOwner" ) ;
249+
250+ process_initialize_immutable_owner ( accounts)
251+ }
252+ // 23 - AmountToUiAmount
253+ Some ( ( & 23 , data) ) => {
254+ #[ cfg( feature = "logging" ) ]
255+ pinocchio:: msg!( "Instruction: AmountToUiAmount" ) ;
256+
257+ let amount = u64:: from_le_bytes (
258+ data. try_into ( )
259+ . map_err ( |_error| ProgramError :: InvalidInstructionData ) ?,
260+ ) ;
261+
262+ process_amount_to_ui_amount ( program_id, accounts, amount)
263+ }
264+ // 24 - UiAmountToAmount
265+ Some ( ( & 24 , data) ) => {
266+ #[ cfg( feature = "logging" ) ]
267+ pinocchio:: msg!( "Instruction: UiAmountToAmount" ) ;
268+
269+ let ui_amount =
270+ str:: from_utf8 ( data) . map_err ( |_error| ProgramError :: InvalidInstructionData ) ?;
271+
272+ process_ui_amount_to_amount ( program_id, accounts, ui_amount)
273+ }
232274 _ => Err ( ProgramError :: InvalidInstructionData ) ,
233275 }
234276}
0 commit comments