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