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