multiversx_chain_vm_executor/
vm_hooks.rs

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