multiversx_chain_vm_executor/new_traits/
vm_hooks_new.rs

1// Code generated by vmhooks generator. DO NOT EDIT.
2
3// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4// !!!!!!!!!!!!!!!!!!!!!! AUTO-GENERATED FILE !!!!!!!!!!!!!!!!!!!!!!
5// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6
7use crate::{MemLength, MemPtr, VMHooksEarlyExit};
8
9#[rustfmt::skip]
10#[allow(clippy::too_many_arguments)]
11pub trait VMHooks: core::fmt::Debug {
12    fn get_gas_left(&mut self) -> Result<i64, VMHooksEarlyExit>;
13    fn get_sc_address(&mut self, result_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
14    fn get_owner_address(&mut self, result_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
15    fn get_shard_of_address(&mut self, address_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
16    fn is_smart_contract(&mut self, address_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
17    fn signal_error(&mut self, message_offset: MemPtr, message_length: MemLength) -> Result<(), VMHooksEarlyExit>;
18    fn get_external_balance(&mut self, address_offset: MemPtr, result_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
19    fn get_block_hash(&mut self, nonce: i64, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
20    fn get_esdt_balance(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
21    fn get_esdt_nft_name_length(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> Result<i32, VMHooksEarlyExit>;
22    fn get_esdt_nft_attribute_length(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> Result<i32, VMHooksEarlyExit>;
23    fn get_esdt_nft_uri_length(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> Result<i32, VMHooksEarlyExit>;
24    fn get_esdt_token_data(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, value_handle: i32, properties_offset: MemPtr, hash_offset: MemPtr, name_offset: MemPtr, attributes_offset: MemPtr, creator_offset: MemPtr, royalties_handle: i32, uris_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
25    fn get_esdt_local_roles(&mut self, token_id_handle: i32) -> Result<i64, VMHooksEarlyExit>;
26    fn validate_token_identifier(&mut self, token_id_handle: i32) -> Result<i32, VMHooksEarlyExit>;
27    fn transfer_value(&mut self, dest_offset: MemPtr, value_offset: MemPtr, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit>;
28    fn transfer_value_execute(&mut self, dest_offset: MemPtr, value_offset: MemPtr, gas_limit: i64, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
29    fn transfer_esdt_execute(&mut self, dest_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, value_offset: MemPtr, gas_limit: i64, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
30    fn transfer_esdt_nft_execute(&mut self, dest_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, value_offset: MemPtr, nonce: i64, gas_limit: i64, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
31    fn multi_transfer_esdt_nft_execute(&mut self, dest_offset: MemPtr, num_token_transfers: i32, token_transfers_args_length_offset: MemPtr, token_transfer_data_offset: MemPtr, gas_limit: i64, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
32    fn create_async_call(&mut self, dest_offset: MemPtr, value_offset: MemPtr, data_offset: MemPtr, data_length: MemLength, success_offset: MemPtr, success_length: MemLength, error_offset: MemPtr, error_length: MemLength, gas: i64, extra_gas_for_callback: i64) -> Result<i32, VMHooksEarlyExit>;
33    fn set_async_context_callback(&mut self, callback: MemPtr, callback_length: MemLength, data: MemPtr, data_length: MemLength, gas: i64) -> Result<i32, VMHooksEarlyExit>;
34    fn upgrade_contract(&mut self, dest_offset: MemPtr, gas_limit: i64, value_offset: MemPtr, code_offset: MemPtr, code_metadata_offset: MemPtr, length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
35    fn upgrade_from_source_contract(&mut self, dest_offset: MemPtr, gas_limit: i64, value_offset: MemPtr, source_contract_address_offset: MemPtr, code_metadata_offset: MemPtr, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
36    fn delete_contract(&mut self, dest_offset: MemPtr, gas_limit: i64, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
37    fn async_call(&mut self, dest_offset: MemPtr, value_offset: MemPtr, data_offset: MemPtr, length: MemLength) -> Result<(), VMHooksEarlyExit>;
38    fn get_argument_length(&mut self, id: i32) -> Result<i32, VMHooksEarlyExit>;
39    fn get_argument(&mut self, id: i32, arg_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
40    fn get_function(&mut self, function_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
41    fn get_num_arguments(&mut self) -> Result<i32, VMHooksEarlyExit>;
42    fn storage_store(&mut self, key_offset: MemPtr, key_length: MemLength, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit>;
43    fn storage_load_length(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i32, VMHooksEarlyExit>;
44    fn storage_load_from_address(&mut self, address_offset: MemPtr, key_offset: MemPtr, key_length: MemLength, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
45    fn storage_load(&mut self, key_offset: MemPtr, key_length: MemLength, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
46    fn set_storage_lock(&mut self, key_offset: MemPtr, key_length: MemLength, lock_timestamp: i64) -> Result<i32, VMHooksEarlyExit>;
47    fn get_storage_lock(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i64, VMHooksEarlyExit>;
48    fn is_storage_locked(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i32, VMHooksEarlyExit>;
49    fn clear_storage_lock(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i32, VMHooksEarlyExit>;
50    fn get_caller(&mut self, result_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
51    fn check_no_payment(&mut self) -> Result<(), VMHooksEarlyExit>;
52    fn get_call_value(&mut self, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
53    fn get_esdt_value(&mut self, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
54    fn get_esdt_value_by_index(&mut self, result_offset: MemPtr, index: i32) -> Result<i32, VMHooksEarlyExit>;
55    fn get_esdt_token_name(&mut self, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
56    fn get_esdt_token_name_by_index(&mut self, result_offset: MemPtr, index: i32) -> Result<i32, VMHooksEarlyExit>;
57    fn get_esdt_token_nonce(&mut self) -> Result<i64, VMHooksEarlyExit>;
58    fn get_esdt_token_nonce_by_index(&mut self, index: i32) -> Result<i64, VMHooksEarlyExit>;
59    fn get_current_esdt_nft_nonce(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength) -> Result<i64, VMHooksEarlyExit>;
60    fn get_esdt_token_type(&mut self) -> Result<i32, VMHooksEarlyExit>;
61    fn get_esdt_token_type_by_index(&mut self, index: i32) -> Result<i32, VMHooksEarlyExit>;
62    fn get_num_esdt_transfers(&mut self) -> Result<i32, VMHooksEarlyExit>;
63    fn get_call_value_token_name(&mut self, call_value_offset: MemPtr, token_name_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
64    fn get_call_value_token_name_by_index(&mut self, call_value_offset: MemPtr, token_name_offset: MemPtr, index: i32) -> Result<i32, VMHooksEarlyExit>;
65    fn is_reserved_function_name(&mut self, name_handle: i32) -> Result<i32, VMHooksEarlyExit>;
66    fn write_log(&mut self, data_pointer: MemPtr, data_length: MemLength, topic_ptr: MemPtr, num_topics: i32) -> Result<(), VMHooksEarlyExit>;
67    fn write_event_log(&mut self, num_topics: i32, topic_lengths_offset: MemPtr, topic_offset: MemPtr, data_offset: MemPtr, data_length: MemLength) -> Result<(), VMHooksEarlyExit>;
68    fn get_block_timestamp(&mut self) -> Result<i64, VMHooksEarlyExit>;
69    fn get_block_timestamp_ms(&mut self) -> Result<i64, VMHooksEarlyExit>;
70    fn get_block_nonce(&mut self) -> Result<i64, VMHooksEarlyExit>;
71    fn get_block_round(&mut self) -> Result<i64, VMHooksEarlyExit>;
72    fn get_block_epoch(&mut self) -> Result<i64, VMHooksEarlyExit>;
73    fn get_block_random_seed(&mut self, pointer: MemPtr) -> Result<(), VMHooksEarlyExit>;
74    fn get_state_root_hash(&mut self, pointer: MemPtr) -> Result<(), VMHooksEarlyExit>;
75    fn get_prev_block_timestamp(&mut self) -> Result<i64, VMHooksEarlyExit>;
76    fn get_prev_block_timestamp_ms(&mut self) -> Result<i64, VMHooksEarlyExit>;
77    fn get_prev_block_nonce(&mut self) -> Result<i64, VMHooksEarlyExit>;
78    fn get_prev_block_round(&mut self) -> Result<i64, VMHooksEarlyExit>;
79    fn get_prev_block_epoch(&mut self) -> Result<i64, VMHooksEarlyExit>;
80    fn get_prev_block_random_seed(&mut self, pointer: MemPtr) -> Result<(), VMHooksEarlyExit>;
81    fn get_block_round_time_ms(&mut self) -> Result<i64, VMHooksEarlyExit>;
82    fn epoch_start_block_timestamp_ms(&mut self) -> Result<i64, VMHooksEarlyExit>;
83    fn epoch_start_block_nonce(&mut self) -> Result<i64, VMHooksEarlyExit>;
84    fn epoch_start_block_round(&mut self) -> Result<i64, VMHooksEarlyExit>;
85    fn finish(&mut self, pointer: MemPtr, length: MemLength) -> Result<(), VMHooksEarlyExit>;
86    fn execute_on_same_context(&mut self, gas_limit: i64, address_offset: MemPtr, value_offset: MemPtr, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
87    fn execute_on_dest_context(&mut self, gas_limit: i64, address_offset: MemPtr, value_offset: MemPtr, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
88    fn execute_read_only(&mut self, gas_limit: i64, address_offset: MemPtr, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
89    fn create_contract(&mut self, gas_limit: i64, value_offset: MemPtr, code_offset: MemPtr, code_metadata_offset: MemPtr, length: MemLength, result_offset: MemPtr, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
90    fn deploy_from_source_contract(&mut self, gas_limit: i64, value_offset: MemPtr, source_contract_address_offset: MemPtr, code_metadata_offset: MemPtr, result_address_offset: MemPtr, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
91    fn get_num_return_data(&mut self) -> Result<i32, VMHooksEarlyExit>;
92    fn get_return_data_size(&mut self, result_id: i32) -> Result<i32, VMHooksEarlyExit>;
93    fn get_return_data(&mut self, result_id: i32, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
94    fn clean_return_data(&mut self) -> Result<(), VMHooksEarlyExit>;
95    fn delete_from_return_data(&mut self, result_id: i32) -> Result<(), VMHooksEarlyExit>;
96    fn get_original_tx_hash(&mut self, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
97    fn get_current_tx_hash(&mut self, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
98    fn get_prev_tx_hash(&mut self, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit>;
99    fn managed_sc_address(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
100    fn managed_owner_address(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
101    fn managed_caller(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
102    fn managed_get_original_caller_addr(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
103    fn managed_get_relayer_addr(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
104    fn managed_signal_error(&mut self, err_handle: i32) -> Result<(), VMHooksEarlyExit>;
105    fn managed_write_log(&mut self, topics_handle: i32, data_handle: i32) -> Result<(), VMHooksEarlyExit>;
106    fn managed_get_original_tx_hash(&mut self, result_handle: i32) -> Result<(), VMHooksEarlyExit>;
107    fn managed_get_state_root_hash(&mut self, result_handle: i32) -> Result<(), VMHooksEarlyExit>;
108    fn managed_get_block_random_seed(&mut self, result_handle: i32) -> Result<(), VMHooksEarlyExit>;
109    fn managed_get_prev_block_random_seed(&mut self, result_handle: i32) -> Result<(), VMHooksEarlyExit>;
110    fn managed_get_return_data(&mut self, result_id: i32, result_handle: i32) -> Result<(), VMHooksEarlyExit>;
111    fn managed_get_multi_esdt_call_value(&mut self, multi_call_value_handle: i32) -> Result<(), VMHooksEarlyExit>;
112    fn managed_get_all_transfers_call_value(&mut self, transfer_call_values_list_handle: i32) -> Result<(), VMHooksEarlyExit>;
113    fn managed_get_back_transfers(&mut self, esdt_transfers_value_handle: i32, egld_value_handle: i32) -> Result<(), VMHooksEarlyExit>;
114    fn managed_get_esdt_balance(&mut self, address_handle: i32, token_id_handle: i32, nonce: i64, value_handle: i32) -> Result<(), VMHooksEarlyExit>;
115    fn managed_get_esdt_token_data(&mut self, address_handle: i32, token_id_handle: i32, nonce: i64, value_handle: i32, properties_handle: i32, hash_handle: i32, name_handle: i32, attributes_handle: i32, creator_handle: i32, royalties_handle: i32, uris_handle: i32) -> Result<(), VMHooksEarlyExit>;
116    fn managed_get_esdt_token_type(&mut self, address_handle: i32, token_id_handle: i32, nonce: i64, type_handle: i32) -> Result<(), VMHooksEarlyExit>;
117    fn managed_async_call(&mut self, dest_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32) -> Result<(), VMHooksEarlyExit>;
118    fn managed_create_async_call(&mut self, dest_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32, success_offset: MemPtr, success_length: MemLength, error_offset: MemPtr, error_length: MemLength, gas: i64, extra_gas_for_callback: i64, callback_closure_handle: i32) -> Result<i32, VMHooksEarlyExit>;
119    fn managed_get_callback_closure(&mut self, callback_closure_handle: i32) -> Result<(), VMHooksEarlyExit>;
120    fn managed_upgrade_from_source_contract(&mut self, dest_handle: i32, gas: i64, value_handle: i32, address_handle: i32, code_metadata_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<(), VMHooksEarlyExit>;
121    fn managed_upgrade_contract(&mut self, dest_handle: i32, gas: i64, value_handle: i32, code_handle: i32, code_metadata_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<(), VMHooksEarlyExit>;
122    fn managed_delete_contract(&mut self, dest_handle: i32, gas_limit: i64, arguments_handle: i32) -> Result<(), VMHooksEarlyExit>;
123    fn managed_deploy_from_source_contract(&mut self, gas: i64, value_handle: i32, address_handle: i32, code_metadata_handle: i32, arguments_handle: i32, result_address_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit>;
124    fn managed_create_contract(&mut self, gas: i64, value_handle: i32, code_handle: i32, code_metadata_handle: i32, arguments_handle: i32, result_address_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit>;
125    fn managed_execute_read_only(&mut self, gas: i64, address_handle: i32, function_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit>;
126    fn managed_execute_on_same_context(&mut self, gas: i64, address_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit>;
127    fn managed_execute_on_dest_context(&mut self, gas: i64, address_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit>;
128    fn managed_execute_on_dest_context_with_error_return(&mut self, gas: i64, address_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit>;
129    fn managed_multi_transfer_esdt_nft_execute(&mut self, dst_handle: i32, token_transfers_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> Result<i32, VMHooksEarlyExit>;
130    fn managed_multi_transfer_esdt_nft_execute_with_return(&mut self, dst_handle: i32, token_transfers_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> Result<i32, VMHooksEarlyExit>;
131    fn managed_multi_transfer_esdt_nft_execute_by_user(&mut self, user_handle: i32, dst_handle: i32, token_transfers_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> Result<i32, VMHooksEarlyExit>;
132    fn managed_transfer_value_execute(&mut self, dst_handle: i32, value_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> Result<i32, VMHooksEarlyExit>;
133    fn managed_is_esdt_frozen(&mut self, address_handle: i32, token_id_handle: i32, nonce: i64) -> Result<i32, VMHooksEarlyExit>;
134    fn managed_is_esdt_limited_transfer(&mut self, token_id_handle: i32) -> Result<i32, VMHooksEarlyExit>;
135    fn managed_is_esdt_paused(&mut self, token_id_handle: i32) -> Result<i32, VMHooksEarlyExit>;
136    fn managed_buffer_to_hex(&mut self, source_handle: i32, dest_handle: i32) -> Result<(), VMHooksEarlyExit>;
137    fn managed_get_code_metadata(&mut self, address_handle: i32, response_handle: i32) -> Result<(), VMHooksEarlyExit>;
138    fn managed_get_code_hash(&mut self, address_handle: i32, code_hash_handle: i32) -> Result<(), VMHooksEarlyExit>;
139    fn managed_is_builtin_function(&mut self, function_name_handle: i32) -> Result<i32, VMHooksEarlyExit>;
140    fn big_float_new_from_parts(&mut self, integral_part: i32, fractional_part: i32, exponent: i32) -> Result<i32, VMHooksEarlyExit>;
141    fn big_float_new_from_frac(&mut self, numerator: i64, denominator: i64) -> Result<i32, VMHooksEarlyExit>;
142    fn big_float_new_from_sci(&mut self, significand: i64, exponent: i64) -> Result<i32, VMHooksEarlyExit>;
143    fn big_float_add(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
144    fn big_float_sub(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
145    fn big_float_mul(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
146    fn big_float_div(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
147    fn big_float_neg(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
148    fn big_float_clone(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
149    fn big_float_cmp(&mut self, op1_handle: i32, op2_handle: i32) -> Result<i32, VMHooksEarlyExit>;
150    fn big_float_abs(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
151    fn big_float_sign(&mut self, op_handle: i32) -> Result<i32, VMHooksEarlyExit>;
152    fn big_float_sqrt(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
153    fn big_float_pow(&mut self, destination_handle: i32, op_handle: i32, exponent: i32) -> Result<(), VMHooksEarlyExit>;
154    fn big_float_floor(&mut self, dest_big_int_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
155    fn big_float_ceil(&mut self, dest_big_int_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
156    fn big_float_truncate(&mut self, dest_big_int_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
157    fn big_float_set_int64(&mut self, destination_handle: i32, value: i64) -> Result<(), VMHooksEarlyExit>;
158    fn big_float_is_int(&mut self, op_handle: i32) -> Result<i32, VMHooksEarlyExit>;
159    fn big_float_set_big_int(&mut self, destination_handle: i32, big_int_handle: i32) -> Result<(), VMHooksEarlyExit>;
160    fn big_float_get_const_pi(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
161    fn big_float_get_const_e(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
162    fn big_int_get_unsigned_argument(&mut self, id: i32, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
163    fn big_int_get_signed_argument(&mut self, id: i32, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
164    fn big_int_storage_store_unsigned(&mut self, key_offset: MemPtr, key_length: MemLength, source_handle: i32) -> Result<i32, VMHooksEarlyExit>;
165    fn big_int_storage_load_unsigned(&mut self, key_offset: MemPtr, key_length: MemLength, destination_handle: i32) -> Result<i32, VMHooksEarlyExit>;
166    fn big_int_get_call_value(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
167    fn big_int_get_esdt_call_value(&mut self, destination: i32) -> Result<(), VMHooksEarlyExit>;
168    fn big_int_get_esdt_call_value_by_index(&mut self, destination_handle: i32, index: i32) -> Result<(), VMHooksEarlyExit>;
169    fn big_int_get_external_balance(&mut self, address_offset: MemPtr, result: i32) -> Result<(), VMHooksEarlyExit>;
170    fn big_int_get_esdt_external_balance(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, result_handle: i32) -> Result<(), VMHooksEarlyExit>;
171    fn big_int_new(&mut self, small_value: i64) -> Result<i32, VMHooksEarlyExit>;
172    fn big_int_unsigned_byte_length(&mut self, reference_handle: i32) -> Result<i32, VMHooksEarlyExit>;
173    fn big_int_signed_byte_length(&mut self, reference_handle: i32) -> Result<i32, VMHooksEarlyExit>;
174    fn big_int_get_unsigned_bytes(&mut self, reference_handle: i32, byte_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
175    fn big_int_get_signed_bytes(&mut self, reference_handle: i32, byte_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
176    fn big_int_set_unsigned_bytes(&mut self, destination_handle: i32, byte_offset: MemPtr, byte_length: MemLength) -> Result<(), VMHooksEarlyExit>;
177    fn big_int_set_signed_bytes(&mut self, destination_handle: i32, byte_offset: MemPtr, byte_length: MemLength) -> Result<(), VMHooksEarlyExit>;
178    fn big_int_is_int64(&mut self, destination_handle: i32) -> Result<i32, VMHooksEarlyExit>;
179    fn big_int_get_int64(&mut self, destination_handle: i32) -> Result<i64, VMHooksEarlyExit>;
180    fn big_int_set_int64(&mut self, destination_handle: i32, value: i64) -> Result<(), VMHooksEarlyExit>;
181    fn big_int_add(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
182    fn big_int_sub(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
183    fn big_int_mul(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
184    fn big_int_tdiv(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
185    fn big_int_tmod(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
186    fn big_int_ediv(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
187    fn big_int_emod(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
188    fn big_int_sqrt(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
189    fn big_int_pow(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
190    fn big_int_log2(&mut self, op1_handle: i32) -> Result<i32, VMHooksEarlyExit>;
191    fn big_int_abs(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
192    fn big_int_neg(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
193    fn big_int_sign(&mut self, op_handle: i32) -> Result<i32, VMHooksEarlyExit>;
194    fn big_int_cmp(&mut self, op1_handle: i32, op2_handle: i32) -> Result<i32, VMHooksEarlyExit>;
195    fn big_int_not(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit>;
196    fn big_int_and(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
197    fn big_int_or(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
198    fn big_int_xor(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit>;
199    fn big_int_shr(&mut self, destination_handle: i32, op_handle: i32, bits: i32) -> Result<(), VMHooksEarlyExit>;
200    fn big_int_shl(&mut self, destination_handle: i32, op_handle: i32, bits: i32) -> Result<(), VMHooksEarlyExit>;
201    fn big_int_finish_unsigned(&mut self, reference_handle: i32) -> Result<(), VMHooksEarlyExit>;
202    fn big_int_finish_signed(&mut self, reference_handle: i32) -> Result<(), VMHooksEarlyExit>;
203    fn big_int_to_string(&mut self, big_int_handle: i32, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
204    fn mbuffer_new(&mut self) -> Result<i32, VMHooksEarlyExit>;
205    fn mbuffer_new_from_bytes(&mut self, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit>;
206    fn mbuffer_get_length(&mut self, m_buffer_handle: i32) -> Result<i32, VMHooksEarlyExit>;
207    fn mbuffer_get_bytes(&mut self, m_buffer_handle: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
208    fn mbuffer_get_byte_slice(&mut self, source_handle: i32, starting_position: i32, slice_length: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
209    fn mbuffer_copy_byte_slice(&mut self, source_handle: i32, starting_position: i32, slice_length: i32, destination_handle: i32) -> Result<i32, VMHooksEarlyExit>;
210    fn mbuffer_eq(&mut self, m_buffer_handle1: i32, m_buffer_handle2: i32) -> Result<i32, VMHooksEarlyExit>;
211    fn mbuffer_set_bytes(&mut self, m_buffer_handle: i32, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit>;
212    fn mbuffer_set_byte_slice(&mut self, m_buffer_handle: i32, starting_position: i32, data_length: MemLength, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
213    fn mbuffer_append(&mut self, accumulator_handle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit>;
214    fn mbuffer_append_bytes(&mut self, accumulator_handle: i32, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit>;
215    fn mbuffer_to_big_int_unsigned(&mut self, m_buffer_handle: i32, big_int_handle: i32) -> Result<i32, VMHooksEarlyExit>;
216    fn mbuffer_to_big_int_signed(&mut self, m_buffer_handle: i32, big_int_handle: i32) -> Result<i32, VMHooksEarlyExit>;
217    fn mbuffer_from_big_int_unsigned(&mut self, m_buffer_handle: i32, big_int_handle: i32) -> Result<i32, VMHooksEarlyExit>;
218    fn mbuffer_from_big_int_signed(&mut self, m_buffer_handle: i32, big_int_handle: i32) -> Result<i32, VMHooksEarlyExit>;
219    fn mbuffer_to_small_int_unsigned(&mut self, m_buffer_handle: i32) -> Result<i64, VMHooksEarlyExit>;
220    fn mbuffer_to_small_int_signed(&mut self, m_buffer_handle: i32) -> Result<i64, VMHooksEarlyExit>;
221    fn mbuffer_from_small_int_unsigned(&mut self, m_buffer_handle: i32, value: i64) -> Result<(), VMHooksEarlyExit>;
222    fn mbuffer_from_small_int_signed(&mut self, m_buffer_handle: i32, value: i64) -> Result<(), VMHooksEarlyExit>;
223    fn mbuffer_to_big_float(&mut self, m_buffer_handle: i32, big_float_handle: i32) -> Result<i32, VMHooksEarlyExit>;
224    fn mbuffer_from_big_float(&mut self, m_buffer_handle: i32, big_float_handle: i32) -> Result<i32, VMHooksEarlyExit>;
225    fn mbuffer_storage_store(&mut self, key_handle: i32, source_handle: i32) -> Result<i32, VMHooksEarlyExit>;
226    fn mbuffer_storage_load(&mut self, key_handle: i32, destination_handle: i32) -> Result<i32, VMHooksEarlyExit>;
227    fn mbuffer_storage_load_from_address(&mut self, address_handle: i32, key_handle: i32, destination_handle: i32) -> Result<(), VMHooksEarlyExit>;
228    fn mbuffer_get_argument(&mut self, id: i32, destination_handle: i32) -> Result<i32, VMHooksEarlyExit>;
229    fn mbuffer_finish(&mut self, source_handle: i32) -> Result<i32, VMHooksEarlyExit>;
230    fn mbuffer_set_random(&mut self, destination_handle: i32, length: i32) -> Result<i32, VMHooksEarlyExit>;
231    fn managed_map_new(&mut self) -> Result<i32, VMHooksEarlyExit>;
232    fn managed_map_put(&mut self, m_map_handle: i32, key_handle: i32, value_handle: i32) -> Result<i32, VMHooksEarlyExit>;
233    fn managed_map_get(&mut self, m_map_handle: i32, key_handle: i32, out_value_handle: i32) -> Result<i32, VMHooksEarlyExit>;
234    fn managed_map_remove(&mut self, m_map_handle: i32, key_handle: i32, out_value_handle: i32) -> Result<i32, VMHooksEarlyExit>;
235    fn managed_map_contains(&mut self, m_map_handle: i32, key_handle: i32) -> Result<i32, VMHooksEarlyExit>;
236    fn small_int_get_unsigned_argument(&mut self, id: i32) -> Result<i64, VMHooksEarlyExit>;
237    fn small_int_get_signed_argument(&mut self, id: i32) -> Result<i64, VMHooksEarlyExit>;
238    fn small_int_finish_unsigned(&mut self, value: i64) -> Result<(), VMHooksEarlyExit>;
239    fn small_int_finish_signed(&mut self, value: i64) -> Result<(), VMHooksEarlyExit>;
240    fn small_int_storage_store_unsigned(&mut self, key_offset: MemPtr, key_length: MemLength, value: i64) -> Result<i32, VMHooksEarlyExit>;
241    fn small_int_storage_store_signed(&mut self, key_offset: MemPtr, key_length: MemLength, value: i64) -> Result<i32, VMHooksEarlyExit>;
242    fn small_int_storage_load_unsigned(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i64, VMHooksEarlyExit>;
243    fn small_int_storage_load_signed(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i64, VMHooksEarlyExit>;
244    fn int64get_argument(&mut self, id: i32) -> Result<i64, VMHooksEarlyExit>;
245    fn int64finish(&mut self, value: i64) -> Result<(), VMHooksEarlyExit>;
246    fn int64storage_store(&mut self, key_offset: MemPtr, key_length: MemLength, value: i64) -> Result<i32, VMHooksEarlyExit>;
247    fn int64storage_load(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i64, VMHooksEarlyExit>;
248    fn sha256(&mut self, data_offset: MemPtr, length: MemLength, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
249    fn managed_sha256(&mut self, input_handle: i32, output_handle: i32) -> Result<i32, VMHooksEarlyExit>;
250    fn keccak256(&mut self, data_offset: MemPtr, length: MemLength, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
251    fn managed_keccak256(&mut self, input_handle: i32, output_handle: i32) -> Result<i32, VMHooksEarlyExit>;
252    fn ripemd160(&mut self, data_offset: MemPtr, length: MemLength, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
253    fn managed_ripemd160(&mut self, input_handle: i32, output_handle: i32) -> Result<i32, VMHooksEarlyExit>;
254    fn verify_bls(&mut self, key_offset: MemPtr, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
255    fn managed_verify_bls(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit>;
256    fn verify_ed25519(&mut self, key_offset: MemPtr, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
257    fn managed_verify_ed25519(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit>;
258    fn verify_custom_secp256k1(&mut self, key_offset: MemPtr, key_length: MemLength, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr, hash_type: i32) -> Result<i32, VMHooksEarlyExit>;
259    fn managed_verify_custom_secp256k1(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32, hash_type: i32) -> Result<i32, VMHooksEarlyExit>;
260    fn verify_secp256k1(&mut self, key_offset: MemPtr, key_length: MemLength, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
261    fn managed_verify_secp256k1(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit>;
262    fn encode_secp256k1_der_signature(&mut self, r_offset: MemPtr, r_length: MemLength, s_offset: MemPtr, s_length: MemLength, sig_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
263    fn managed_encode_secp256k1_der_signature(&mut self, r_handle: i32, s_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit>;
264    fn add_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, fst_point_xhandle: i32, fst_point_yhandle: i32, snd_point_xhandle: i32, snd_point_yhandle: i32) -> Result<(), VMHooksEarlyExit>;
265    fn double_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, point_xhandle: i32, point_yhandle: i32) -> Result<(), VMHooksEarlyExit>;
266    fn is_on_curve_ec(&mut self, ec_handle: i32, point_xhandle: i32, point_yhandle: i32) -> Result<i32, VMHooksEarlyExit>;
267    fn scalar_base_mult_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit>;
268    fn managed_scalar_base_mult_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit>;
269    fn scalar_mult_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, point_xhandle: i32, point_yhandle: i32, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit>;
270    fn managed_scalar_mult_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, point_xhandle: i32, point_yhandle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit>;
271    fn marshal_ec(&mut self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
272    fn managed_marshal_ec(&mut self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit>;
273    fn marshal_compressed_ec(&mut self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
274    fn managed_marshal_compressed_ec(&mut self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit>;
275    fn unmarshal_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit>;
276    fn managed_unmarshal_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit>;
277    fn unmarshal_compressed_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit>;
278    fn managed_unmarshal_compressed_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit>;
279    fn generate_key_ec(&mut self, x_pub_key_handle: i32, y_pub_key_handle: i32, ec_handle: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit>;
280    fn managed_generate_key_ec(&mut self, x_pub_key_handle: i32, y_pub_key_handle: i32, ec_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit>;
281    fn create_ec(&mut self, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit>;
282    fn managed_create_ec(&mut self, data_handle: i32) -> Result<i32, VMHooksEarlyExit>;
283    fn get_curve_length_ec(&mut self, ec_handle: i32) -> Result<i32, VMHooksEarlyExit>;
284    fn get_priv_key_byte_length_ec(&mut self, ec_handle: i32) -> Result<i32, VMHooksEarlyExit>;
285    fn elliptic_curve_get_values(&mut self, ec_handle: i32, field_order_handle: i32, base_point_order_handle: i32, eq_constant_handle: i32, x_base_point_handle: i32, y_base_point_handle: i32) -> Result<i32, VMHooksEarlyExit>;
286    fn managed_verify_secp256r1(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit>;
287    fn managed_verify_blssignature_share(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit>;
288    fn managed_verify_blsaggregated_signature(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit>;
289}
290
291/// Dummy implementation for VMHooks. Can be used as placeholder, or in tests.
292#[derive(Debug)]
293pub struct VMHooksDefault;
294
295#[allow(unused)]
296#[rustfmt::skip]
297impl VMHooks for VMHooksDefault {
298    fn get_gas_left(&mut self) -> Result<i64, VMHooksEarlyExit> {
299        println!("Called: get_gas_left");
300        Ok(0)
301    }
302
303    fn get_sc_address(&mut self, result_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
304        println!("Called: get_sc_address");
305        Ok(())
306    }
307
308    fn get_owner_address(&mut self, result_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
309        println!("Called: get_owner_address");
310        Ok(())
311    }
312
313    fn get_shard_of_address(&mut self, address_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
314        println!("Called: get_shard_of_address");
315        Ok(0)
316    }
317
318    fn is_smart_contract(&mut self, address_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
319        println!("Called: is_smart_contract");
320        Ok(0)
321    }
322
323    fn signal_error(&mut self, message_offset: MemPtr, message_length: MemLength) -> Result<(), VMHooksEarlyExit> {
324        println!("Called: signal_error");
325        Ok(())
326    }
327
328    fn get_external_balance(&mut self, address_offset: MemPtr, result_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
329        println!("Called: get_external_balance");
330        Ok(())
331    }
332
333    fn get_block_hash(&mut self, nonce: i64, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
334        println!("Called: get_block_hash");
335        Ok(0)
336    }
337
338    fn get_esdt_balance(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
339        println!("Called: get_esdt_balance");
340        Ok(0)
341    }
342
343    fn get_esdt_nft_name_length(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> Result<i32, VMHooksEarlyExit> {
344        println!("Called: get_esdt_nft_name_length");
345        Ok(0)
346    }
347
348    fn get_esdt_nft_attribute_length(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> Result<i32, VMHooksEarlyExit> {
349        println!("Called: get_esdt_nft_attribute_length");
350        Ok(0)
351    }
352
353    fn get_esdt_nft_uri_length(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> Result<i32, VMHooksEarlyExit> {
354        println!("Called: get_esdt_nft_uri_length");
355        Ok(0)
356    }
357
358    fn get_esdt_token_data(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, value_handle: i32, properties_offset: MemPtr, hash_offset: MemPtr, name_offset: MemPtr, attributes_offset: MemPtr, creator_offset: MemPtr, royalties_handle: i32, uris_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
359        println!("Called: get_esdt_token_data");
360        Ok(0)
361    }
362
363    fn get_esdt_local_roles(&mut self, token_id_handle: i32) -> Result<i64, VMHooksEarlyExit> {
364        println!("Called: get_esdt_local_roles");
365        Ok(0)
366    }
367
368    fn validate_token_identifier(&mut self, token_id_handle: i32) -> Result<i32, VMHooksEarlyExit> {
369        println!("Called: validate_token_identifier");
370        Ok(0)
371    }
372
373    fn transfer_value(&mut self, dest_offset: MemPtr, value_offset: MemPtr, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit> {
374        println!("Called: transfer_value");
375        Ok(0)
376    }
377
378    fn transfer_value_execute(&mut self, dest_offset: MemPtr, value_offset: MemPtr, gas_limit: i64, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
379        println!("Called: transfer_value_execute");
380        Ok(0)
381    }
382
383    fn transfer_esdt_execute(&mut self, dest_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, value_offset: MemPtr, gas_limit: i64, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
384        println!("Called: transfer_esdt_execute");
385        Ok(0)
386    }
387
388    fn transfer_esdt_nft_execute(&mut self, dest_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, value_offset: MemPtr, nonce: i64, gas_limit: i64, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
389        println!("Called: transfer_esdt_nft_execute");
390        Ok(0)
391    }
392
393    fn multi_transfer_esdt_nft_execute(&mut self, dest_offset: MemPtr, num_token_transfers: i32, token_transfers_args_length_offset: MemPtr, token_transfer_data_offset: MemPtr, gas_limit: i64, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
394        println!("Called: multi_transfer_esdt_nft_execute");
395        Ok(0)
396    }
397
398    fn create_async_call(&mut self, dest_offset: MemPtr, value_offset: MemPtr, data_offset: MemPtr, data_length: MemLength, success_offset: MemPtr, success_length: MemLength, error_offset: MemPtr, error_length: MemLength, gas: i64, extra_gas_for_callback: i64) -> Result<i32, VMHooksEarlyExit> {
399        println!("Called: create_async_call");
400        Ok(0)
401    }
402
403    fn set_async_context_callback(&mut self, callback: MemPtr, callback_length: MemLength, data: MemPtr, data_length: MemLength, gas: i64) -> Result<i32, VMHooksEarlyExit> {
404        println!("Called: set_async_context_callback");
405        Ok(0)
406    }
407
408    fn upgrade_contract(&mut self, dest_offset: MemPtr, gas_limit: i64, value_offset: MemPtr, code_offset: MemPtr, code_metadata_offset: MemPtr, length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
409        println!("Called: upgrade_contract");
410        Ok(())
411    }
412
413    fn upgrade_from_source_contract(&mut self, dest_offset: MemPtr, gas_limit: i64, value_offset: MemPtr, source_contract_address_offset: MemPtr, code_metadata_offset: MemPtr, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
414        println!("Called: upgrade_from_source_contract");
415        Ok(())
416    }
417
418    fn delete_contract(&mut self, dest_offset: MemPtr, gas_limit: i64, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
419        println!("Called: delete_contract");
420        Ok(())
421    }
422
423    fn async_call(&mut self, dest_offset: MemPtr, value_offset: MemPtr, data_offset: MemPtr, length: MemLength) -> Result<(), VMHooksEarlyExit> {
424        println!("Called: async_call");
425        Ok(())
426    }
427
428    fn get_argument_length(&mut self, id: i32) -> Result<i32, VMHooksEarlyExit> {
429        println!("Called: get_argument_length");
430        Ok(0)
431    }
432
433    fn get_argument(&mut self, id: i32, arg_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
434        println!("Called: get_argument");
435        Ok(0)
436    }
437
438    fn get_function(&mut self, function_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
439        println!("Called: get_function");
440        Ok(0)
441    }
442
443    fn get_num_arguments(&mut self) -> Result<i32, VMHooksEarlyExit> {
444        println!("Called: get_num_arguments");
445        Ok(0)
446    }
447
448    fn storage_store(&mut self, key_offset: MemPtr, key_length: MemLength, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit> {
449        println!("Called: storage_store");
450        Ok(0)
451    }
452
453    fn storage_load_length(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i32, VMHooksEarlyExit> {
454        println!("Called: storage_load_length");
455        Ok(0)
456    }
457
458    fn storage_load_from_address(&mut self, address_offset: MemPtr, key_offset: MemPtr, key_length: MemLength, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
459        println!("Called: storage_load_from_address");
460        Ok(0)
461    }
462
463    fn storage_load(&mut self, key_offset: MemPtr, key_length: MemLength, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
464        println!("Called: storage_load");
465        Ok(0)
466    }
467
468    fn set_storage_lock(&mut self, key_offset: MemPtr, key_length: MemLength, lock_timestamp: i64) -> Result<i32, VMHooksEarlyExit> {
469        println!("Called: set_storage_lock");
470        Ok(0)
471    }
472
473    fn get_storage_lock(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i64, VMHooksEarlyExit> {
474        println!("Called: get_storage_lock");
475        Ok(0)
476    }
477
478    fn is_storage_locked(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i32, VMHooksEarlyExit> {
479        println!("Called: is_storage_locked");
480        Ok(0)
481    }
482
483    fn clear_storage_lock(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i32, VMHooksEarlyExit> {
484        println!("Called: clear_storage_lock");
485        Ok(0)
486    }
487
488    fn get_caller(&mut self, result_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
489        println!("Called: get_caller");
490        Ok(())
491    }
492
493    fn check_no_payment(&mut self) -> Result<(), VMHooksEarlyExit> {
494        println!("Called: check_no_payment");
495        Ok(())
496    }
497
498    fn get_call_value(&mut self, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
499        println!("Called: get_call_value");
500        Ok(0)
501    }
502
503    fn get_esdt_value(&mut self, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
504        println!("Called: get_esdt_value");
505        Ok(0)
506    }
507
508    fn get_esdt_value_by_index(&mut self, result_offset: MemPtr, index: i32) -> Result<i32, VMHooksEarlyExit> {
509        println!("Called: get_esdt_value_by_index");
510        Ok(0)
511    }
512
513    fn get_esdt_token_name(&mut self, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
514        println!("Called: get_esdt_token_name");
515        Ok(0)
516    }
517
518    fn get_esdt_token_name_by_index(&mut self, result_offset: MemPtr, index: i32) -> Result<i32, VMHooksEarlyExit> {
519        println!("Called: get_esdt_token_name_by_index");
520        Ok(0)
521    }
522
523    fn get_esdt_token_nonce(&mut self) -> Result<i64, VMHooksEarlyExit> {
524        println!("Called: get_esdt_token_nonce");
525        Ok(0)
526    }
527
528    fn get_esdt_token_nonce_by_index(&mut self, index: i32) -> Result<i64, VMHooksEarlyExit> {
529        println!("Called: get_esdt_token_nonce_by_index");
530        Ok(0)
531    }
532
533    fn get_current_esdt_nft_nonce(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength) -> Result<i64, VMHooksEarlyExit> {
534        println!("Called: get_current_esdt_nft_nonce");
535        Ok(0)
536    }
537
538    fn get_esdt_token_type(&mut self) -> Result<i32, VMHooksEarlyExit> {
539        println!("Called: get_esdt_token_type");
540        Ok(0)
541    }
542
543    fn get_esdt_token_type_by_index(&mut self, index: i32) -> Result<i32, VMHooksEarlyExit> {
544        println!("Called: get_esdt_token_type_by_index");
545        Ok(0)
546    }
547
548    fn get_num_esdt_transfers(&mut self) -> Result<i32, VMHooksEarlyExit> {
549        println!("Called: get_num_esdt_transfers");
550        Ok(0)
551    }
552
553    fn get_call_value_token_name(&mut self, call_value_offset: MemPtr, token_name_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
554        println!("Called: get_call_value_token_name");
555        Ok(0)
556    }
557
558    fn get_call_value_token_name_by_index(&mut self, call_value_offset: MemPtr, token_name_offset: MemPtr, index: i32) -> Result<i32, VMHooksEarlyExit> {
559        println!("Called: get_call_value_token_name_by_index");
560        Ok(0)
561    }
562
563    fn is_reserved_function_name(&mut self, name_handle: i32) -> Result<i32, VMHooksEarlyExit> {
564        println!("Called: is_reserved_function_name");
565        Ok(0)
566    }
567
568    fn write_log(&mut self, data_pointer: MemPtr, data_length: MemLength, topic_ptr: MemPtr, num_topics: i32) -> Result<(), VMHooksEarlyExit> {
569        println!("Called: write_log");
570        Ok(())
571    }
572
573    fn write_event_log(&mut self, num_topics: i32, topic_lengths_offset: MemPtr, topic_offset: MemPtr, data_offset: MemPtr, data_length: MemLength) -> Result<(), VMHooksEarlyExit> {
574        println!("Called: write_event_log");
575        Ok(())
576    }
577
578    fn get_block_timestamp(&mut self) -> Result<i64, VMHooksEarlyExit> {
579        println!("Called: get_block_timestamp");
580        Ok(0)
581    }
582
583    fn get_block_timestamp_ms(&mut self) -> Result<i64, VMHooksEarlyExit> {
584        println!("Called: get_block_timestamp_ms");
585        Ok(0)
586    }
587
588    fn get_block_nonce(&mut self) -> Result<i64, VMHooksEarlyExit> {
589        println!("Called: get_block_nonce");
590        Ok(0)
591    }
592
593    fn get_block_round(&mut self) -> Result<i64, VMHooksEarlyExit> {
594        println!("Called: get_block_round");
595        Ok(0)
596    }
597
598    fn get_block_epoch(&mut self) -> Result<i64, VMHooksEarlyExit> {
599        println!("Called: get_block_epoch");
600        Ok(0)
601    }
602
603    fn get_block_random_seed(&mut self, pointer: MemPtr) -> Result<(), VMHooksEarlyExit> {
604        println!("Called: get_block_random_seed");
605        Ok(())
606    }
607
608    fn get_state_root_hash(&mut self, pointer: MemPtr) -> Result<(), VMHooksEarlyExit> {
609        println!("Called: get_state_root_hash");
610        Ok(())
611    }
612
613    fn get_prev_block_timestamp(&mut self) -> Result<i64, VMHooksEarlyExit> {
614        println!("Called: get_prev_block_timestamp");
615        Ok(0)
616    }
617
618    fn get_prev_block_timestamp_ms(&mut self) -> Result<i64, VMHooksEarlyExit> {
619        println!("Called: get_prev_block_timestamp_ms");
620        Ok(0)
621    }
622
623    fn get_prev_block_nonce(&mut self) -> Result<i64, VMHooksEarlyExit> {
624        println!("Called: get_prev_block_nonce");
625        Ok(0)
626    }
627
628    fn get_prev_block_round(&mut self) -> Result<i64, VMHooksEarlyExit> {
629        println!("Called: get_prev_block_round");
630        Ok(0)
631    }
632
633    fn get_prev_block_epoch(&mut self) -> Result<i64, VMHooksEarlyExit> {
634        println!("Called: get_prev_block_epoch");
635        Ok(0)
636    }
637
638    fn get_prev_block_random_seed(&mut self, pointer: MemPtr) -> Result<(), VMHooksEarlyExit> {
639        println!("Called: get_prev_block_random_seed");
640        Ok(())
641    }
642
643    fn get_block_round_time_ms(&mut self) -> Result<i64, VMHooksEarlyExit> {
644        println!("Called: get_block_round_time_ms");
645        Ok(0)
646    }
647
648    fn epoch_start_block_timestamp_ms(&mut self) -> Result<i64, VMHooksEarlyExit> {
649        println!("Called: epoch_start_block_timestamp_ms");
650        Ok(0)
651    }
652
653    fn epoch_start_block_nonce(&mut self) -> Result<i64, VMHooksEarlyExit> {
654        println!("Called: epoch_start_block_nonce");
655        Ok(0)
656    }
657
658    fn epoch_start_block_round(&mut self) -> Result<i64, VMHooksEarlyExit> {
659        println!("Called: epoch_start_block_round");
660        Ok(0)
661    }
662
663    fn finish(&mut self, pointer: MemPtr, length: MemLength) -> Result<(), VMHooksEarlyExit> {
664        println!("Called: finish");
665        Ok(())
666    }
667
668    fn execute_on_same_context(&mut self, gas_limit: i64, address_offset: MemPtr, value_offset: MemPtr, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
669        println!("Called: execute_on_same_context");
670        Ok(0)
671    }
672
673    fn execute_on_dest_context(&mut self, gas_limit: i64, address_offset: MemPtr, value_offset: MemPtr, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
674        println!("Called: execute_on_dest_context");
675        Ok(0)
676    }
677
678    fn execute_read_only(&mut self, gas_limit: i64, address_offset: MemPtr, function_offset: MemPtr, function_length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
679        println!("Called: execute_read_only");
680        Ok(0)
681    }
682
683    fn create_contract(&mut self, gas_limit: i64, value_offset: MemPtr, code_offset: MemPtr, code_metadata_offset: MemPtr, length: MemLength, result_offset: MemPtr, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
684        println!("Called: create_contract");
685        Ok(0)
686    }
687
688    fn deploy_from_source_contract(&mut self, gas_limit: i64, value_offset: MemPtr, source_contract_address_offset: MemPtr, code_metadata_offset: MemPtr, result_address_offset: MemPtr, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
689        println!("Called: deploy_from_source_contract");
690        Ok(0)
691    }
692
693    fn get_num_return_data(&mut self) -> Result<i32, VMHooksEarlyExit> {
694        println!("Called: get_num_return_data");
695        Ok(0)
696    }
697
698    fn get_return_data_size(&mut self, result_id: i32) -> Result<i32, VMHooksEarlyExit> {
699        println!("Called: get_return_data_size");
700        Ok(0)
701    }
702
703    fn get_return_data(&mut self, result_id: i32, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
704        println!("Called: get_return_data");
705        Ok(0)
706    }
707
708    fn clean_return_data(&mut self) -> Result<(), VMHooksEarlyExit> {
709        println!("Called: clean_return_data");
710        Ok(())
711    }
712
713    fn delete_from_return_data(&mut self, result_id: i32) -> Result<(), VMHooksEarlyExit> {
714        println!("Called: delete_from_return_data");
715        Ok(())
716    }
717
718    fn get_original_tx_hash(&mut self, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
719        println!("Called: get_original_tx_hash");
720        Ok(())
721    }
722
723    fn get_current_tx_hash(&mut self, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
724        println!("Called: get_current_tx_hash");
725        Ok(())
726    }
727
728    fn get_prev_tx_hash(&mut self, data_offset: MemPtr) -> Result<(), VMHooksEarlyExit> {
729        println!("Called: get_prev_tx_hash");
730        Ok(())
731    }
732
733    fn managed_sc_address(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
734        println!("Called: managed_sc_address");
735        Ok(())
736    }
737
738    fn managed_owner_address(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
739        println!("Called: managed_owner_address");
740        Ok(())
741    }
742
743    fn managed_caller(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
744        println!("Called: managed_caller");
745        Ok(())
746    }
747
748    fn managed_get_original_caller_addr(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
749        println!("Called: managed_get_original_caller_addr");
750        Ok(())
751    }
752
753    fn managed_get_relayer_addr(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
754        println!("Called: managed_get_relayer_addr");
755        Ok(())
756    }
757
758    fn managed_signal_error(&mut self, err_handle: i32) -> Result<(), VMHooksEarlyExit> {
759        println!("Called: managed_signal_error");
760        Ok(())
761    }
762
763    fn managed_write_log(&mut self, topics_handle: i32, data_handle: i32) -> Result<(), VMHooksEarlyExit> {
764        println!("Called: managed_write_log");
765        Ok(())
766    }
767
768    fn managed_get_original_tx_hash(&mut self, result_handle: i32) -> Result<(), VMHooksEarlyExit> {
769        println!("Called: managed_get_original_tx_hash");
770        Ok(())
771    }
772
773    fn managed_get_state_root_hash(&mut self, result_handle: i32) -> Result<(), VMHooksEarlyExit> {
774        println!("Called: managed_get_state_root_hash");
775        Ok(())
776    }
777
778    fn managed_get_block_random_seed(&mut self, result_handle: i32) -> Result<(), VMHooksEarlyExit> {
779        println!("Called: managed_get_block_random_seed");
780        Ok(())
781    }
782
783    fn managed_get_prev_block_random_seed(&mut self, result_handle: i32) -> Result<(), VMHooksEarlyExit> {
784        println!("Called: managed_get_prev_block_random_seed");
785        Ok(())
786    }
787
788    fn managed_get_return_data(&mut self, result_id: i32, result_handle: i32) -> Result<(), VMHooksEarlyExit> {
789        println!("Called: managed_get_return_data");
790        Ok(())
791    }
792
793    fn managed_get_multi_esdt_call_value(&mut self, multi_call_value_handle: i32) -> Result<(), VMHooksEarlyExit> {
794        println!("Called: managed_get_multi_esdt_call_value");
795        Ok(())
796    }
797
798    fn managed_get_all_transfers_call_value(&mut self, transfer_call_values_list_handle: i32) -> Result<(), VMHooksEarlyExit> {
799        println!("Called: managed_get_all_transfers_call_value");
800        Ok(())
801    }
802
803    fn managed_get_back_transfers(&mut self, esdt_transfers_value_handle: i32, egld_value_handle: i32) -> Result<(), VMHooksEarlyExit> {
804        println!("Called: managed_get_back_transfers");
805        Ok(())
806    }
807
808    fn managed_get_esdt_balance(&mut self, address_handle: i32, token_id_handle: i32, nonce: i64, value_handle: i32) -> Result<(), VMHooksEarlyExit> {
809        println!("Called: managed_get_esdt_balance");
810        Ok(())
811    }
812
813    fn managed_get_esdt_token_data(&mut self, address_handle: i32, token_id_handle: i32, nonce: i64, value_handle: i32, properties_handle: i32, hash_handle: i32, name_handle: i32, attributes_handle: i32, creator_handle: i32, royalties_handle: i32, uris_handle: i32) -> Result<(), VMHooksEarlyExit> {
814        println!("Called: managed_get_esdt_token_data");
815        Ok(())
816    }
817
818    fn managed_get_esdt_token_type(&mut self, address_handle: i32, token_id_handle: i32, nonce: i64, type_handle: i32) -> Result<(), VMHooksEarlyExit> {
819        println!("Called: managed_get_esdt_token_type");
820        Ok(())
821    }
822
823    fn managed_async_call(&mut self, dest_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32) -> Result<(), VMHooksEarlyExit> {
824        println!("Called: managed_async_call");
825        Ok(())
826    }
827
828    fn managed_create_async_call(&mut self, dest_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32, success_offset: MemPtr, success_length: MemLength, error_offset: MemPtr, error_length: MemLength, gas: i64, extra_gas_for_callback: i64, callback_closure_handle: i32) -> Result<i32, VMHooksEarlyExit> {
829        println!("Called: managed_create_async_call");
830        Ok(0)
831    }
832
833    fn managed_get_callback_closure(&mut self, callback_closure_handle: i32) -> Result<(), VMHooksEarlyExit> {
834        println!("Called: managed_get_callback_closure");
835        Ok(())
836    }
837
838    fn managed_upgrade_from_source_contract(&mut self, dest_handle: i32, gas: i64, value_handle: i32, address_handle: i32, code_metadata_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<(), VMHooksEarlyExit> {
839        println!("Called: managed_upgrade_from_source_contract");
840        Ok(())
841    }
842
843    fn managed_upgrade_contract(&mut self, dest_handle: i32, gas: i64, value_handle: i32, code_handle: i32, code_metadata_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<(), VMHooksEarlyExit> {
844        println!("Called: managed_upgrade_contract");
845        Ok(())
846    }
847
848    fn managed_delete_contract(&mut self, dest_handle: i32, gas_limit: i64, arguments_handle: i32) -> Result<(), VMHooksEarlyExit> {
849        println!("Called: managed_delete_contract");
850        Ok(())
851    }
852
853    fn managed_deploy_from_source_contract(&mut self, gas: i64, value_handle: i32, address_handle: i32, code_metadata_handle: i32, arguments_handle: i32, result_address_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit> {
854        println!("Called: managed_deploy_from_source_contract");
855        Ok(0)
856    }
857
858    fn managed_create_contract(&mut self, gas: i64, value_handle: i32, code_handle: i32, code_metadata_handle: i32, arguments_handle: i32, result_address_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit> {
859        println!("Called: managed_create_contract");
860        Ok(0)
861    }
862
863    fn managed_execute_read_only(&mut self, gas: i64, address_handle: i32, function_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit> {
864        println!("Called: managed_execute_read_only");
865        Ok(0)
866    }
867
868    fn managed_execute_on_same_context(&mut self, gas: i64, address_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit> {
869        println!("Called: managed_execute_on_same_context");
870        Ok(0)
871    }
872
873    fn managed_execute_on_dest_context(&mut self, gas: i64, address_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit> {
874        println!("Called: managed_execute_on_dest_context");
875        Ok(0)
876    }
877
878    fn managed_execute_on_dest_context_with_error_return(&mut self, gas: i64, address_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit> {
879        println!("Called: managed_execute_on_dest_context_with_error_return");
880        Ok(0)
881    }
882
883    fn managed_multi_transfer_esdt_nft_execute(&mut self, dst_handle: i32, token_transfers_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> Result<i32, VMHooksEarlyExit> {
884        println!("Called: managed_multi_transfer_esdt_nft_execute");
885        Ok(0)
886    }
887
888    fn managed_multi_transfer_esdt_nft_execute_with_return(&mut self, dst_handle: i32, token_transfers_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> Result<i32, VMHooksEarlyExit> {
889        println!("Called: managed_multi_transfer_esdt_nft_execute_with_return");
890        Ok(0)
891    }
892
893    fn managed_multi_transfer_esdt_nft_execute_by_user(&mut self, user_handle: i32, dst_handle: i32, token_transfers_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> Result<i32, VMHooksEarlyExit> {
894        println!("Called: managed_multi_transfer_esdt_nft_execute_by_user");
895        Ok(0)
896    }
897
898    fn managed_transfer_value_execute(&mut self, dst_handle: i32, value_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> Result<i32, VMHooksEarlyExit> {
899        println!("Called: managed_transfer_value_execute");
900        Ok(0)
901    }
902
903    fn managed_is_esdt_frozen(&mut self, address_handle: i32, token_id_handle: i32, nonce: i64) -> Result<i32, VMHooksEarlyExit> {
904        println!("Called: managed_is_esdt_frozen");
905        Ok(0)
906    }
907
908    fn managed_is_esdt_limited_transfer(&mut self, token_id_handle: i32) -> Result<i32, VMHooksEarlyExit> {
909        println!("Called: managed_is_esdt_limited_transfer");
910        Ok(0)
911    }
912
913    fn managed_is_esdt_paused(&mut self, token_id_handle: i32) -> Result<i32, VMHooksEarlyExit> {
914        println!("Called: managed_is_esdt_paused");
915        Ok(0)
916    }
917
918    fn managed_buffer_to_hex(&mut self, source_handle: i32, dest_handle: i32) -> Result<(), VMHooksEarlyExit> {
919        println!("Called: managed_buffer_to_hex");
920        Ok(())
921    }
922
923    fn managed_get_code_metadata(&mut self, address_handle: i32, response_handle: i32) -> Result<(), VMHooksEarlyExit> {
924        println!("Called: managed_get_code_metadata");
925        Ok(())
926    }
927
928    fn managed_get_code_hash(&mut self, address_handle: i32, code_hash_handle: i32) -> Result<(), VMHooksEarlyExit> {
929        println!("Called: managed_get_code_hash");
930        Ok(())
931    }
932
933    fn managed_is_builtin_function(&mut self, function_name_handle: i32) -> Result<i32, VMHooksEarlyExit> {
934        println!("Called: managed_is_builtin_function");
935        Ok(0)
936    }
937
938    fn big_float_new_from_parts(&mut self, integral_part: i32, fractional_part: i32, exponent: i32) -> Result<i32, VMHooksEarlyExit> {
939        println!("Called: big_float_new_from_parts");
940        Ok(0)
941    }
942
943    fn big_float_new_from_frac(&mut self, numerator: i64, denominator: i64) -> Result<i32, VMHooksEarlyExit> {
944        println!("Called: big_float_new_from_frac");
945        Ok(0)
946    }
947
948    fn big_float_new_from_sci(&mut self, significand: i64, exponent: i64) -> Result<i32, VMHooksEarlyExit> {
949        println!("Called: big_float_new_from_sci");
950        Ok(0)
951    }
952
953    fn big_float_add(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
954        println!("Called: big_float_add");
955        Ok(())
956    }
957
958    fn big_float_sub(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
959        println!("Called: big_float_sub");
960        Ok(())
961    }
962
963    fn big_float_mul(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
964        println!("Called: big_float_mul");
965        Ok(())
966    }
967
968    fn big_float_div(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
969        println!("Called: big_float_div");
970        Ok(())
971    }
972
973    fn big_float_neg(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
974        println!("Called: big_float_neg");
975        Ok(())
976    }
977
978    fn big_float_clone(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
979        println!("Called: big_float_clone");
980        Ok(())
981    }
982
983    fn big_float_cmp(&mut self, op1_handle: i32, op2_handle: i32) -> Result<i32, VMHooksEarlyExit> {
984        println!("Called: big_float_cmp");
985        Ok(0)
986    }
987
988    fn big_float_abs(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
989        println!("Called: big_float_abs");
990        Ok(())
991    }
992
993    fn big_float_sign(&mut self, op_handle: i32) -> Result<i32, VMHooksEarlyExit> {
994        println!("Called: big_float_sign");
995        Ok(0)
996    }
997
998    fn big_float_sqrt(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
999        println!("Called: big_float_sqrt");
1000        Ok(())
1001    }
1002
1003    fn big_float_pow(&mut self, destination_handle: i32, op_handle: i32, exponent: i32) -> Result<(), VMHooksEarlyExit> {
1004        println!("Called: big_float_pow");
1005        Ok(())
1006    }
1007
1008    fn big_float_floor(&mut self, dest_big_int_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
1009        println!("Called: big_float_floor");
1010        Ok(())
1011    }
1012
1013    fn big_float_ceil(&mut self, dest_big_int_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
1014        println!("Called: big_float_ceil");
1015        Ok(())
1016    }
1017
1018    fn big_float_truncate(&mut self, dest_big_int_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
1019        println!("Called: big_float_truncate");
1020        Ok(())
1021    }
1022
1023    fn big_float_set_int64(&mut self, destination_handle: i32, value: i64) -> Result<(), VMHooksEarlyExit> {
1024        println!("Called: big_float_set_int64");
1025        Ok(())
1026    }
1027
1028    fn big_float_is_int(&mut self, op_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1029        println!("Called: big_float_is_int");
1030        Ok(0)
1031    }
1032
1033    fn big_float_set_big_int(&mut self, destination_handle: i32, big_int_handle: i32) -> Result<(), VMHooksEarlyExit> {
1034        println!("Called: big_float_set_big_int");
1035        Ok(())
1036    }
1037
1038    fn big_float_get_const_pi(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
1039        println!("Called: big_float_get_const_pi");
1040        Ok(())
1041    }
1042
1043    fn big_float_get_const_e(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
1044        println!("Called: big_float_get_const_e");
1045        Ok(())
1046    }
1047
1048    fn big_int_get_unsigned_argument(&mut self, id: i32, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
1049        println!("Called: big_int_get_unsigned_argument");
1050        Ok(())
1051    }
1052
1053    fn big_int_get_signed_argument(&mut self, id: i32, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
1054        println!("Called: big_int_get_signed_argument");
1055        Ok(())
1056    }
1057
1058    fn big_int_storage_store_unsigned(&mut self, key_offset: MemPtr, key_length: MemLength, source_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1059        println!("Called: big_int_storage_store_unsigned");
1060        Ok(0)
1061    }
1062
1063    fn big_int_storage_load_unsigned(&mut self, key_offset: MemPtr, key_length: MemLength, destination_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1064        println!("Called: big_int_storage_load_unsigned");
1065        Ok(0)
1066    }
1067
1068    fn big_int_get_call_value(&mut self, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
1069        println!("Called: big_int_get_call_value");
1070        Ok(())
1071    }
1072
1073    fn big_int_get_esdt_call_value(&mut self, destination: i32) -> Result<(), VMHooksEarlyExit> {
1074        println!("Called: big_int_get_esdt_call_value");
1075        Ok(())
1076    }
1077
1078    fn big_int_get_esdt_call_value_by_index(&mut self, destination_handle: i32, index: i32) -> Result<(), VMHooksEarlyExit> {
1079        println!("Called: big_int_get_esdt_call_value_by_index");
1080        Ok(())
1081    }
1082
1083    fn big_int_get_external_balance(&mut self, address_offset: MemPtr, result: i32) -> Result<(), VMHooksEarlyExit> {
1084        println!("Called: big_int_get_external_balance");
1085        Ok(())
1086    }
1087
1088    fn big_int_get_esdt_external_balance(&mut self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, result_handle: i32) -> Result<(), VMHooksEarlyExit> {
1089        println!("Called: big_int_get_esdt_external_balance");
1090        Ok(())
1091    }
1092
1093    fn big_int_new(&mut self, small_value: i64) -> Result<i32, VMHooksEarlyExit> {
1094        println!("Called: big_int_new");
1095        Ok(0)
1096    }
1097
1098    fn big_int_unsigned_byte_length(&mut self, reference_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1099        println!("Called: big_int_unsigned_byte_length");
1100        Ok(0)
1101    }
1102
1103    fn big_int_signed_byte_length(&mut self, reference_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1104        println!("Called: big_int_signed_byte_length");
1105        Ok(0)
1106    }
1107
1108    fn big_int_get_unsigned_bytes(&mut self, reference_handle: i32, byte_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1109        println!("Called: big_int_get_unsigned_bytes");
1110        Ok(0)
1111    }
1112
1113    fn big_int_get_signed_bytes(&mut self, reference_handle: i32, byte_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1114        println!("Called: big_int_get_signed_bytes");
1115        Ok(0)
1116    }
1117
1118    fn big_int_set_unsigned_bytes(&mut self, destination_handle: i32, byte_offset: MemPtr, byte_length: MemLength) -> Result<(), VMHooksEarlyExit> {
1119        println!("Called: big_int_set_unsigned_bytes");
1120        Ok(())
1121    }
1122
1123    fn big_int_set_signed_bytes(&mut self, destination_handle: i32, byte_offset: MemPtr, byte_length: MemLength) -> Result<(), VMHooksEarlyExit> {
1124        println!("Called: big_int_set_signed_bytes");
1125        Ok(())
1126    }
1127
1128    fn big_int_is_int64(&mut self, destination_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1129        println!("Called: big_int_is_int64");
1130        Ok(0)
1131    }
1132
1133    fn big_int_get_int64(&mut self, destination_handle: i32) -> Result<i64, VMHooksEarlyExit> {
1134        println!("Called: big_int_get_int64");
1135        Ok(0)
1136    }
1137
1138    fn big_int_set_int64(&mut self, destination_handle: i32, value: i64) -> Result<(), VMHooksEarlyExit> {
1139        println!("Called: big_int_set_int64");
1140        Ok(())
1141    }
1142
1143    fn big_int_add(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1144        println!("Called: big_int_add");
1145        Ok(())
1146    }
1147
1148    fn big_int_sub(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1149        println!("Called: big_int_sub");
1150        Ok(())
1151    }
1152
1153    fn big_int_mul(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1154        println!("Called: big_int_mul");
1155        Ok(())
1156    }
1157
1158    fn big_int_tdiv(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1159        println!("Called: big_int_tdiv");
1160        Ok(())
1161    }
1162
1163    fn big_int_tmod(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1164        println!("Called: big_int_tmod");
1165        Ok(())
1166    }
1167
1168    fn big_int_ediv(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1169        println!("Called: big_int_ediv");
1170        Ok(())
1171    }
1172
1173    fn big_int_emod(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1174        println!("Called: big_int_emod");
1175        Ok(())
1176    }
1177
1178    fn big_int_sqrt(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
1179        println!("Called: big_int_sqrt");
1180        Ok(())
1181    }
1182
1183    fn big_int_pow(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1184        println!("Called: big_int_pow");
1185        Ok(())
1186    }
1187
1188    fn big_int_log2(&mut self, op1_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1189        println!("Called: big_int_log2");
1190        Ok(0)
1191    }
1192
1193    fn big_int_abs(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
1194        println!("Called: big_int_abs");
1195        Ok(())
1196    }
1197
1198    fn big_int_neg(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
1199        println!("Called: big_int_neg");
1200        Ok(())
1201    }
1202
1203    fn big_int_sign(&mut self, op_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1204        println!("Called: big_int_sign");
1205        Ok(0)
1206    }
1207
1208    fn big_int_cmp(&mut self, op1_handle: i32, op2_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1209        println!("Called: big_int_cmp");
1210        Ok(0)
1211    }
1212
1213    fn big_int_not(&mut self, destination_handle: i32, op_handle: i32) -> Result<(), VMHooksEarlyExit> {
1214        println!("Called: big_int_not");
1215        Ok(())
1216    }
1217
1218    fn big_int_and(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1219        println!("Called: big_int_and");
1220        Ok(())
1221    }
1222
1223    fn big_int_or(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1224        println!("Called: big_int_or");
1225        Ok(())
1226    }
1227
1228    fn big_int_xor(&mut self, destination_handle: i32, op1_handle: i32, op2_handle: i32) -> Result<(), VMHooksEarlyExit> {
1229        println!("Called: big_int_xor");
1230        Ok(())
1231    }
1232
1233    fn big_int_shr(&mut self, destination_handle: i32, op_handle: i32, bits: i32) -> Result<(), VMHooksEarlyExit> {
1234        println!("Called: big_int_shr");
1235        Ok(())
1236    }
1237
1238    fn big_int_shl(&mut self, destination_handle: i32, op_handle: i32, bits: i32) -> Result<(), VMHooksEarlyExit> {
1239        println!("Called: big_int_shl");
1240        Ok(())
1241    }
1242
1243    fn big_int_finish_unsigned(&mut self, reference_handle: i32) -> Result<(), VMHooksEarlyExit> {
1244        println!("Called: big_int_finish_unsigned");
1245        Ok(())
1246    }
1247
1248    fn big_int_finish_signed(&mut self, reference_handle: i32) -> Result<(), VMHooksEarlyExit> {
1249        println!("Called: big_int_finish_signed");
1250        Ok(())
1251    }
1252
1253    fn big_int_to_string(&mut self, big_int_handle: i32, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
1254        println!("Called: big_int_to_string");
1255        Ok(())
1256    }
1257
1258    fn mbuffer_new(&mut self) -> Result<i32, VMHooksEarlyExit> {
1259        println!("Called: mbuffer_new");
1260        Ok(0)
1261    }
1262
1263    fn mbuffer_new_from_bytes(&mut self, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit> {
1264        println!("Called: mbuffer_new_from_bytes");
1265        Ok(0)
1266    }
1267
1268    fn mbuffer_get_length(&mut self, m_buffer_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1269        println!("Called: mbuffer_get_length");
1270        Ok(0)
1271    }
1272
1273    fn mbuffer_get_bytes(&mut self, m_buffer_handle: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1274        println!("Called: mbuffer_get_bytes");
1275        Ok(0)
1276    }
1277
1278    fn mbuffer_get_byte_slice(&mut self, source_handle: i32, starting_position: i32, slice_length: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1279        println!("Called: mbuffer_get_byte_slice");
1280        Ok(0)
1281    }
1282
1283    fn mbuffer_copy_byte_slice(&mut self, source_handle: i32, starting_position: i32, slice_length: i32, destination_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1284        println!("Called: mbuffer_copy_byte_slice");
1285        Ok(0)
1286    }
1287
1288    fn mbuffer_eq(&mut self, m_buffer_handle1: i32, m_buffer_handle2: i32) -> Result<i32, VMHooksEarlyExit> {
1289        println!("Called: mbuffer_eq");
1290        Ok(0)
1291    }
1292
1293    fn mbuffer_set_bytes(&mut self, m_buffer_handle: i32, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit> {
1294        println!("Called: mbuffer_set_bytes");
1295        Ok(0)
1296    }
1297
1298    fn mbuffer_set_byte_slice(&mut self, m_buffer_handle: i32, starting_position: i32, data_length: MemLength, data_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1299        println!("Called: mbuffer_set_byte_slice");
1300        Ok(0)
1301    }
1302
1303    fn mbuffer_append(&mut self, accumulator_handle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1304        println!("Called: mbuffer_append");
1305        Ok(0)
1306    }
1307
1308    fn mbuffer_append_bytes(&mut self, accumulator_handle: i32, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit> {
1309        println!("Called: mbuffer_append_bytes");
1310        Ok(0)
1311    }
1312
1313    fn mbuffer_to_big_int_unsigned(&mut self, m_buffer_handle: i32, big_int_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1314        println!("Called: mbuffer_to_big_int_unsigned");
1315        Ok(0)
1316    }
1317
1318    fn mbuffer_to_big_int_signed(&mut self, m_buffer_handle: i32, big_int_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1319        println!("Called: mbuffer_to_big_int_signed");
1320        Ok(0)
1321    }
1322
1323    fn mbuffer_from_big_int_unsigned(&mut self, m_buffer_handle: i32, big_int_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1324        println!("Called: mbuffer_from_big_int_unsigned");
1325        Ok(0)
1326    }
1327
1328    fn mbuffer_from_big_int_signed(&mut self, m_buffer_handle: i32, big_int_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1329        println!("Called: mbuffer_from_big_int_signed");
1330        Ok(0)
1331    }
1332
1333    fn mbuffer_to_small_int_unsigned(&mut self, m_buffer_handle: i32) -> Result<i64, VMHooksEarlyExit> {
1334        println!("Called: mbuffer_to_small_int_unsigned");
1335        Ok(0)
1336    }
1337
1338    fn mbuffer_to_small_int_signed(&mut self, m_buffer_handle: i32) -> Result<i64, VMHooksEarlyExit> {
1339        println!("Called: mbuffer_to_small_int_signed");
1340        Ok(0)
1341    }
1342
1343    fn mbuffer_from_small_int_unsigned(&mut self, m_buffer_handle: i32, value: i64) -> Result<(), VMHooksEarlyExit> {
1344        println!("Called: mbuffer_from_small_int_unsigned");
1345        Ok(())
1346    }
1347
1348    fn mbuffer_from_small_int_signed(&mut self, m_buffer_handle: i32, value: i64) -> Result<(), VMHooksEarlyExit> {
1349        println!("Called: mbuffer_from_small_int_signed");
1350        Ok(())
1351    }
1352
1353    fn mbuffer_to_big_float(&mut self, m_buffer_handle: i32, big_float_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1354        println!("Called: mbuffer_to_big_float");
1355        Ok(0)
1356    }
1357
1358    fn mbuffer_from_big_float(&mut self, m_buffer_handle: i32, big_float_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1359        println!("Called: mbuffer_from_big_float");
1360        Ok(0)
1361    }
1362
1363    fn mbuffer_storage_store(&mut self, key_handle: i32, source_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1364        println!("Called: mbuffer_storage_store");
1365        Ok(0)
1366    }
1367
1368    fn mbuffer_storage_load(&mut self, key_handle: i32, destination_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1369        println!("Called: mbuffer_storage_load");
1370        Ok(0)
1371    }
1372
1373    fn mbuffer_storage_load_from_address(&mut self, address_handle: i32, key_handle: i32, destination_handle: i32) -> Result<(), VMHooksEarlyExit> {
1374        println!("Called: mbuffer_storage_load_from_address");
1375        Ok(())
1376    }
1377
1378    fn mbuffer_get_argument(&mut self, id: i32, destination_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1379        println!("Called: mbuffer_get_argument");
1380        Ok(0)
1381    }
1382
1383    fn mbuffer_finish(&mut self, source_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1384        println!("Called: mbuffer_finish");
1385        Ok(0)
1386    }
1387
1388    fn mbuffer_set_random(&mut self, destination_handle: i32, length: i32) -> Result<i32, VMHooksEarlyExit> {
1389        println!("Called: mbuffer_set_random");
1390        Ok(0)
1391    }
1392
1393    fn managed_map_new(&mut self) -> Result<i32, VMHooksEarlyExit> {
1394        println!("Called: managed_map_new");
1395        Ok(0)
1396    }
1397
1398    fn managed_map_put(&mut self, m_map_handle: i32, key_handle: i32, value_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1399        println!("Called: managed_map_put");
1400        Ok(0)
1401    }
1402
1403    fn managed_map_get(&mut self, m_map_handle: i32, key_handle: i32, out_value_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1404        println!("Called: managed_map_get");
1405        Ok(0)
1406    }
1407
1408    fn managed_map_remove(&mut self, m_map_handle: i32, key_handle: i32, out_value_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1409        println!("Called: managed_map_remove");
1410        Ok(0)
1411    }
1412
1413    fn managed_map_contains(&mut self, m_map_handle: i32, key_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1414        println!("Called: managed_map_contains");
1415        Ok(0)
1416    }
1417
1418    fn small_int_get_unsigned_argument(&mut self, id: i32) -> Result<i64, VMHooksEarlyExit> {
1419        println!("Called: small_int_get_unsigned_argument");
1420        Ok(0)
1421    }
1422
1423    fn small_int_get_signed_argument(&mut self, id: i32) -> Result<i64, VMHooksEarlyExit> {
1424        println!("Called: small_int_get_signed_argument");
1425        Ok(0)
1426    }
1427
1428    fn small_int_finish_unsigned(&mut self, value: i64) -> Result<(), VMHooksEarlyExit> {
1429        println!("Called: small_int_finish_unsigned");
1430        Ok(())
1431    }
1432
1433    fn small_int_finish_signed(&mut self, value: i64) -> Result<(), VMHooksEarlyExit> {
1434        println!("Called: small_int_finish_signed");
1435        Ok(())
1436    }
1437
1438    fn small_int_storage_store_unsigned(&mut self, key_offset: MemPtr, key_length: MemLength, value: i64) -> Result<i32, VMHooksEarlyExit> {
1439        println!("Called: small_int_storage_store_unsigned");
1440        Ok(0)
1441    }
1442
1443    fn small_int_storage_store_signed(&mut self, key_offset: MemPtr, key_length: MemLength, value: i64) -> Result<i32, VMHooksEarlyExit> {
1444        println!("Called: small_int_storage_store_signed");
1445        Ok(0)
1446    }
1447
1448    fn small_int_storage_load_unsigned(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i64, VMHooksEarlyExit> {
1449        println!("Called: small_int_storage_load_unsigned");
1450        Ok(0)
1451    }
1452
1453    fn small_int_storage_load_signed(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i64, VMHooksEarlyExit> {
1454        println!("Called: small_int_storage_load_signed");
1455        Ok(0)
1456    }
1457
1458    fn int64get_argument(&mut self, id: i32) -> Result<i64, VMHooksEarlyExit> {
1459        println!("Called: int64get_argument");
1460        Ok(0)
1461    }
1462
1463    fn int64finish(&mut self, value: i64) -> Result<(), VMHooksEarlyExit> {
1464        println!("Called: int64finish");
1465        Ok(())
1466    }
1467
1468    fn int64storage_store(&mut self, key_offset: MemPtr, key_length: MemLength, value: i64) -> Result<i32, VMHooksEarlyExit> {
1469        println!("Called: int64storage_store");
1470        Ok(0)
1471    }
1472
1473    fn int64storage_load(&mut self, key_offset: MemPtr, key_length: MemLength) -> Result<i64, VMHooksEarlyExit> {
1474        println!("Called: int64storage_load");
1475        Ok(0)
1476    }
1477
1478    fn sha256(&mut self, data_offset: MemPtr, length: MemLength, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1479        println!("Called: sha256");
1480        Ok(0)
1481    }
1482
1483    fn managed_sha256(&mut self, input_handle: i32, output_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1484        println!("Called: managed_sha256");
1485        Ok(0)
1486    }
1487
1488    fn keccak256(&mut self, data_offset: MemPtr, length: MemLength, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1489        println!("Called: keccak256");
1490        Ok(0)
1491    }
1492
1493    fn managed_keccak256(&mut self, input_handle: i32, output_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1494        println!("Called: managed_keccak256");
1495        Ok(0)
1496    }
1497
1498    fn ripemd160(&mut self, data_offset: MemPtr, length: MemLength, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1499        println!("Called: ripemd160");
1500        Ok(0)
1501    }
1502
1503    fn managed_ripemd160(&mut self, input_handle: i32, output_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1504        println!("Called: managed_ripemd160");
1505        Ok(0)
1506    }
1507
1508    fn verify_bls(&mut self, key_offset: MemPtr, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1509        println!("Called: verify_bls");
1510        Ok(0)
1511    }
1512
1513    fn managed_verify_bls(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1514        println!("Called: managed_verify_bls");
1515        Ok(0)
1516    }
1517
1518    fn verify_ed25519(&mut self, key_offset: MemPtr, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1519        println!("Called: verify_ed25519");
1520        Ok(0)
1521    }
1522
1523    fn managed_verify_ed25519(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1524        println!("Called: managed_verify_ed25519");
1525        Ok(0)
1526    }
1527
1528    fn verify_custom_secp256k1(&mut self, key_offset: MemPtr, key_length: MemLength, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr, hash_type: i32) -> Result<i32, VMHooksEarlyExit> {
1529        println!("Called: verify_custom_secp256k1");
1530        Ok(0)
1531    }
1532
1533    fn managed_verify_custom_secp256k1(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32, hash_type: i32) -> Result<i32, VMHooksEarlyExit> {
1534        println!("Called: managed_verify_custom_secp256k1");
1535        Ok(0)
1536    }
1537
1538    fn verify_secp256k1(&mut self, key_offset: MemPtr, key_length: MemLength, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1539        println!("Called: verify_secp256k1");
1540        Ok(0)
1541    }
1542
1543    fn managed_verify_secp256k1(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1544        println!("Called: managed_verify_secp256k1");
1545        Ok(0)
1546    }
1547
1548    fn encode_secp256k1_der_signature(&mut self, r_offset: MemPtr, r_length: MemLength, s_offset: MemPtr, s_length: MemLength, sig_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1549        println!("Called: encode_secp256k1_der_signature");
1550        Ok(0)
1551    }
1552
1553    fn managed_encode_secp256k1_der_signature(&mut self, r_handle: i32, s_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1554        println!("Called: managed_encode_secp256k1_der_signature");
1555        Ok(0)
1556    }
1557
1558    fn add_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, fst_point_xhandle: i32, fst_point_yhandle: i32, snd_point_xhandle: i32, snd_point_yhandle: i32) -> Result<(), VMHooksEarlyExit> {
1559        println!("Called: add_ec");
1560        Ok(())
1561    }
1562
1563    fn double_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, point_xhandle: i32, point_yhandle: i32) -> Result<(), VMHooksEarlyExit> {
1564        println!("Called: double_ec");
1565        Ok(())
1566    }
1567
1568    fn is_on_curve_ec(&mut self, ec_handle: i32, point_xhandle: i32, point_yhandle: i32) -> Result<i32, VMHooksEarlyExit> {
1569        println!("Called: is_on_curve_ec");
1570        Ok(0)
1571    }
1572
1573    fn scalar_base_mult_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit> {
1574        println!("Called: scalar_base_mult_ec");
1575        Ok(0)
1576    }
1577
1578    fn managed_scalar_base_mult_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1579        println!("Called: managed_scalar_base_mult_ec");
1580        Ok(0)
1581    }
1582
1583    fn scalar_mult_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, point_xhandle: i32, point_yhandle: i32, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit> {
1584        println!("Called: scalar_mult_ec");
1585        Ok(0)
1586    }
1587
1588    fn managed_scalar_mult_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, point_xhandle: i32, point_yhandle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1589        println!("Called: managed_scalar_mult_ec");
1590        Ok(0)
1591    }
1592
1593    fn marshal_ec(&mut self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1594        println!("Called: marshal_ec");
1595        Ok(0)
1596    }
1597
1598    fn managed_marshal_ec(&mut self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1599        println!("Called: managed_marshal_ec");
1600        Ok(0)
1601    }
1602
1603    fn marshal_compressed_ec(&mut self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1604        println!("Called: marshal_compressed_ec");
1605        Ok(0)
1606    }
1607
1608    fn managed_marshal_compressed_ec(&mut self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1609        println!("Called: managed_marshal_compressed_ec");
1610        Ok(0)
1611    }
1612
1613    fn unmarshal_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit> {
1614        println!("Called: unmarshal_ec");
1615        Ok(0)
1616    }
1617
1618    fn managed_unmarshal_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1619        println!("Called: managed_unmarshal_ec");
1620        Ok(0)
1621    }
1622
1623    fn unmarshal_compressed_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_offset: MemPtr, length: MemLength) -> Result<i32, VMHooksEarlyExit> {
1624        println!("Called: unmarshal_compressed_ec");
1625        Ok(0)
1626    }
1627
1628    fn managed_unmarshal_compressed_ec(&mut self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1629        println!("Called: managed_unmarshal_compressed_ec");
1630        Ok(0)
1631    }
1632
1633    fn generate_key_ec(&mut self, x_pub_key_handle: i32, y_pub_key_handle: i32, ec_handle: i32, result_offset: MemPtr) -> Result<i32, VMHooksEarlyExit> {
1634        println!("Called: generate_key_ec");
1635        Ok(0)
1636    }
1637
1638    fn managed_generate_key_ec(&mut self, x_pub_key_handle: i32, y_pub_key_handle: i32, ec_handle: i32, result_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1639        println!("Called: managed_generate_key_ec");
1640        Ok(0)
1641    }
1642
1643    fn create_ec(&mut self, data_offset: MemPtr, data_length: MemLength) -> Result<i32, VMHooksEarlyExit> {
1644        println!("Called: create_ec");
1645        Ok(0)
1646    }
1647
1648    fn managed_create_ec(&mut self, data_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1649        println!("Called: managed_create_ec");
1650        Ok(0)
1651    }
1652
1653    fn get_curve_length_ec(&mut self, ec_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1654        println!("Called: get_curve_length_ec");
1655        Ok(0)
1656    }
1657
1658    fn get_priv_key_byte_length_ec(&mut self, ec_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1659        println!("Called: get_priv_key_byte_length_ec");
1660        Ok(0)
1661    }
1662
1663    fn elliptic_curve_get_values(&mut self, ec_handle: i32, field_order_handle: i32, base_point_order_handle: i32, eq_constant_handle: i32, x_base_point_handle: i32, y_base_point_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1664        println!("Called: elliptic_curve_get_values");
1665        Ok(0)
1666    }
1667
1668    fn managed_verify_secp256r1(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1669        println!("Called: managed_verify_secp256r1");
1670        Ok(0)
1671    }
1672
1673    fn managed_verify_blssignature_share(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1674        println!("Called: managed_verify_blssignature_share");
1675        Ok(0)
1676    }
1677
1678    fn managed_verify_blsaggregated_signature(&mut self, key_handle: i32, message_handle: i32, sig_handle: i32) -> Result<i32, VMHooksEarlyExit> {
1679        println!("Called: managed_verify_blsaggregated_signature");
1680        Ok(0)
1681    }
1682}