drt_chain_vm_executor/
vm_hooks.rs

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