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