dharitri_vm_executor/new_traits/
vm_hooks_legacy_adapter.rs

1// Code generated by vmhooks generator. DO NOT EDIT.
2
3// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4// !!!!!!!!!!!!!!!!!!!!!! AUTO-GENERATED FILE !!!!!!!!!!!!!!!!!!!!!!
5// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6
7use std::{cell::RefCell, ffi::c_void};
8
9use crate::{MemLength, MemPtr, VMHooks, VMHooksEarlyExit, VMHooksLegacy};
10
11/// Allows VM hooks handler to define an early exit method to be used by the VMHooksLegacyAdapter.
12pub trait VMHooksSetEarlyExit: VMHooks {
13    fn set_early_exit(&self, early_exit: VMHooksEarlyExit);
14}
15
16/// Allow conversion from the new VMHooks to the old.
17///
18/// Will eventually be removed, once everything gets migrated.
19#[derive(Debug)]
20pub struct VMHooksLegacyAdapter<VH: VMHooksSetEarlyExit> {
21    inner_cell: RefCell<VH>,
22}
23
24impl<VH: VMHooksSetEarlyExit> VMHooksLegacyAdapter<VH> {
25    pub fn new(inner: VH) -> Self {
26        VMHooksLegacyAdapter {
27            inner_cell: RefCell::new(inner),
28        }
29    }
30
31    fn adapt_vm_hooks<F, R>(&self, f: F) -> R
32    where
33        R: Default,
34        F: FnOnce(&mut dyn VMHooks) -> Result<R, VMHooksEarlyExit>,
35    {
36        let mut vm_hooks = self.inner_cell.borrow_mut();
37        let result = f(&mut *vm_hooks);
38        result.unwrap_or_else(|early_exit| {
39            vm_hooks.set_early_exit(early_exit);
40            R::default()
41        })
42    }
43}
44
45#[rustfmt::skip]
46impl<VH: VMHooksSetEarlyExit> VMHooksLegacy for VMHooksLegacyAdapter<VH> {
47    fn set_vm_hooks_ptr(&mut self, _vm_hooks_ptr: *mut c_void) {
48    }
49
50    fn get_gas_left(&self) -> i64 {
51        self.adapt_vm_hooks(|inner| VMHooks::get_gas_left(inner))
52    }
53
54    fn get_sc_address(&self, result_offset: MemPtr) {
55        self.adapt_vm_hooks(|inner| VMHooks::get_sc_address(inner, result_offset))
56    }
57
58    fn get_owner_address(&self, result_offset: MemPtr) {
59        self.adapt_vm_hooks(|inner| VMHooks::get_owner_address(inner, result_offset))
60    }
61
62    fn get_shard_of_address(&self, address_offset: MemPtr) -> i32 {
63        self.adapt_vm_hooks(|inner| VMHooks::get_shard_of_address(inner, address_offset))
64    }
65
66    fn is_smart_contract(&self, address_offset: MemPtr) -> i32 {
67        self.adapt_vm_hooks(|inner| VMHooks::is_smart_contract(inner, address_offset))
68    }
69
70    fn signal_error(&self, message_offset: MemPtr, message_length: MemLength) {
71        self.adapt_vm_hooks(|inner| VMHooks::signal_error(inner, message_offset, message_length))
72    }
73
74    fn get_external_balance(&self, address_offset: MemPtr, result_offset: MemPtr) {
75        self.adapt_vm_hooks(|inner| VMHooks::get_external_balance(inner, address_offset, result_offset))
76    }
77
78    fn get_block_hash(&self, nonce: i64, result_offset: MemPtr) -> i32 {
79        self.adapt_vm_hooks(|inner| VMHooks::get_block_hash(inner, nonce, result_offset))
80    }
81
82    fn get_dcdt_balance(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, result_offset: MemPtr) -> i32 {
83        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_balance(inner, address_offset, token_id_offset, token_id_len, nonce, result_offset))
84    }
85
86    fn get_dcdt_nft_name_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 {
87        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_nft_name_length(inner, address_offset, token_id_offset, token_id_len, nonce))
88    }
89
90    fn get_dcdt_nft_attribute_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 {
91        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_nft_attribute_length(inner, address_offset, token_id_offset, token_id_len, nonce))
92    }
93
94    fn get_dcdt_nft_uri_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 {
95        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_nft_uri_length(inner, address_offset, token_id_offset, token_id_len, nonce))
96    }
97
98    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 {
99        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_token_data(inner, address_offset, token_id_offset, token_id_len, nonce, value_handle, properties_offset, hash_offset, name_offset, attributes_offset, creator_offset, royalties_handle, uris_offset))
100    }
101
102    fn get_dcdt_local_roles(&self, token_id_handle: i32) -> i64 {
103        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_local_roles(inner, token_id_handle))
104    }
105
106    fn validate_token_identifier(&self, token_id_handle: i32) -> i32 {
107        self.adapt_vm_hooks(|inner| VMHooks::validate_token_identifier(inner, token_id_handle))
108    }
109
110    fn transfer_value(&self, dest_offset: MemPtr, value_offset: MemPtr, data_offset: MemPtr, length: MemLength) -> i32 {
111        self.adapt_vm_hooks(|inner| VMHooks::transfer_value(inner, dest_offset, value_offset, data_offset, length))
112    }
113
114    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 {
115        self.adapt_vm_hooks(|inner| VMHooks::transfer_value_execute(inner, dest_offset, value_offset, gas_limit, function_offset, function_length, num_arguments, arguments_length_offset, data_offset))
116    }
117
118    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 {
119        self.adapt_vm_hooks(|inner| VMHooks::transfer_dcdt_execute(inner, dest_offset, token_id_offset, token_id_len, value_offset, gas_limit, function_offset, function_length, num_arguments, arguments_length_offset, data_offset))
120    }
121
122    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 {
123        self.adapt_vm_hooks(|inner| VMHooks::transfer_dcdt_nft_execute(inner, dest_offset, token_id_offset, token_id_len, value_offset, nonce, gas_limit, function_offset, function_length, num_arguments, arguments_length_offset, data_offset))
124    }
125
126    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 {
127        self.adapt_vm_hooks(|inner| VMHooks::multi_transfer_dcdt_nft_execute(inner, dest_offset, num_token_transfers, token_transfers_args_length_offset, token_transfer_data_offset, gas_limit, function_offset, function_length, num_arguments, arguments_length_offset, data_offset))
128    }
129
130    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 {
131        self.adapt_vm_hooks(|inner| VMHooks::create_async_call(inner, dest_offset, value_offset, data_offset, data_length, success_offset, success_length, error_offset, error_length, gas, extra_gas_for_callback))
132    }
133
134    fn set_async_context_callback(&self, callback: MemPtr, callback_length: MemLength, data: MemPtr, data_length: MemLength, gas: i64) -> i32 {
135        self.adapt_vm_hooks(|inner| VMHooks::set_async_context_callback(inner, callback, callback_length, data, data_length, gas))
136    }
137
138    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) {
139        self.adapt_vm_hooks(|inner| VMHooks::upgrade_contract(inner, dest_offset, gas_limit, value_offset, code_offset, code_metadata_offset, length, num_arguments, arguments_length_offset, data_offset))
140    }
141
142    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) {
143        self.adapt_vm_hooks(|inner| VMHooks::upgrade_from_source_contract(inner, dest_offset, gas_limit, value_offset, source_contract_address_offset, code_metadata_offset, num_arguments, arguments_length_offset, data_offset))
144    }
145
146    fn delete_contract(&self, dest_offset: MemPtr, gas_limit: i64, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr) {
147        self.adapt_vm_hooks(|inner| VMHooks::delete_contract(inner, dest_offset, gas_limit, num_arguments, arguments_length_offset, data_offset))
148    }
149
150    fn async_call(&self, dest_offset: MemPtr, value_offset: MemPtr, data_offset: MemPtr, length: MemLength) {
151        self.adapt_vm_hooks(|inner| VMHooks::async_call(inner, dest_offset, value_offset, data_offset, length))
152    }
153
154    fn get_argument_length(&self, id: i32) -> i32 {
155        self.adapt_vm_hooks(|inner| VMHooks::get_argument_length(inner, id))
156    }
157
158    fn get_argument(&self, id: i32, arg_offset: MemPtr) -> i32 {
159        self.adapt_vm_hooks(|inner| VMHooks::get_argument(inner, id, arg_offset))
160    }
161
162    fn get_function(&self, function_offset: MemPtr) -> i32 {
163        self.adapt_vm_hooks(|inner| VMHooks::get_function(inner, function_offset))
164    }
165
166    fn get_num_arguments(&self) -> i32 {
167        self.adapt_vm_hooks(|inner| VMHooks::get_num_arguments(inner))
168    }
169
170    fn storage_store(&self, key_offset: MemPtr, key_length: MemLength, data_offset: MemPtr, data_length: MemLength) -> i32 {
171        self.adapt_vm_hooks(|inner| VMHooks::storage_store(inner, key_offset, key_length, data_offset, data_length))
172    }
173
174    fn storage_load_length(&self, key_offset: MemPtr, key_length: MemLength) -> i32 {
175        self.adapt_vm_hooks(|inner| VMHooks::storage_load_length(inner, key_offset, key_length))
176    }
177
178    fn storage_load_from_address(&self, address_offset: MemPtr, key_offset: MemPtr, key_length: MemLength, data_offset: MemPtr) -> i32 {
179        self.adapt_vm_hooks(|inner| VMHooks::storage_load_from_address(inner, address_offset, key_offset, key_length, data_offset))
180    }
181
182    fn storage_load(&self, key_offset: MemPtr, key_length: MemLength, data_offset: MemPtr) -> i32 {
183        self.adapt_vm_hooks(|inner| VMHooks::storage_load(inner, key_offset, key_length, data_offset))
184    }
185
186    fn set_storage_lock(&self, key_offset: MemPtr, key_length: MemLength, lock_timestamp: i64) -> i32 {
187        self.adapt_vm_hooks(|inner| VMHooks::set_storage_lock(inner, key_offset, key_length, lock_timestamp))
188    }
189
190    fn get_storage_lock(&self, key_offset: MemPtr, key_length: MemLength) -> i64 {
191        self.adapt_vm_hooks(|inner| VMHooks::get_storage_lock(inner, key_offset, key_length))
192    }
193
194    fn is_storage_locked(&self, key_offset: MemPtr, key_length: MemLength) -> i32 {
195        self.adapt_vm_hooks(|inner| VMHooks::is_storage_locked(inner, key_offset, key_length))
196    }
197
198    fn clear_storage_lock(&self, key_offset: MemPtr, key_length: MemLength) -> i32 {
199        self.adapt_vm_hooks(|inner| VMHooks::clear_storage_lock(inner, key_offset, key_length))
200    }
201
202    fn get_caller(&self, result_offset: MemPtr) {
203        self.adapt_vm_hooks(|inner| VMHooks::get_caller(inner, result_offset))
204    }
205
206    fn check_no_payment(&self) {
207        self.adapt_vm_hooks(|inner| VMHooks::check_no_payment(inner))
208    }
209
210    fn get_call_value(&self, result_offset: MemPtr) -> i32 {
211        self.adapt_vm_hooks(|inner| VMHooks::get_call_value(inner, result_offset))
212    }
213
214    fn get_dcdt_value(&self, result_offset: MemPtr) -> i32 {
215        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_value(inner, result_offset))
216    }
217
218    fn get_dcdt_value_by_index(&self, result_offset: MemPtr, index: i32) -> i32 {
219        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_value_by_index(inner, result_offset, index))
220    }
221
222    fn get_dcdt_token_name(&self, result_offset: MemPtr) -> i32 {
223        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_token_name(inner, result_offset))
224    }
225
226    fn get_dcdt_token_name_by_index(&self, result_offset: MemPtr, index: i32) -> i32 {
227        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_token_name_by_index(inner, result_offset, index))
228    }
229
230    fn get_dcdt_token_nonce(&self) -> i64 {
231        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_token_nonce(inner))
232    }
233
234    fn get_dcdt_token_nonce_by_index(&self, index: i32) -> i64 {
235        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_token_nonce_by_index(inner, index))
236    }
237
238    fn get_current_dcdt_nft_nonce(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength) -> i64 {
239        self.adapt_vm_hooks(|inner| VMHooks::get_current_dcdt_nft_nonce(inner, address_offset, token_id_offset, token_id_len))
240    }
241
242    fn get_dcdt_token_type(&self) -> i32 {
243        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_token_type(inner))
244    }
245
246    fn get_dcdt_token_type_by_index(&self, index: i32) -> i32 {
247        self.adapt_vm_hooks(|inner| VMHooks::get_dcdt_token_type_by_index(inner, index))
248    }
249
250    fn get_num_dcdt_transfers(&self) -> i32 {
251        self.adapt_vm_hooks(|inner| VMHooks::get_num_dcdt_transfers(inner))
252    }
253
254    fn get_call_value_token_name(&self, call_value_offset: MemPtr, token_name_offset: MemPtr) -> i32 {
255        self.adapt_vm_hooks(|inner| VMHooks::get_call_value_token_name(inner, call_value_offset, token_name_offset))
256    }
257
258    fn get_call_value_token_name_by_index(&self, call_value_offset: MemPtr, token_name_offset: MemPtr, index: i32) -> i32 {
259        self.adapt_vm_hooks(|inner| VMHooks::get_call_value_token_name_by_index(inner, call_value_offset, token_name_offset, index))
260    }
261
262    fn is_reserved_function_name(&self, name_handle: i32) -> i32 {
263        self.adapt_vm_hooks(|inner| VMHooks::is_reserved_function_name(inner, name_handle))
264    }
265
266    fn write_log(&self, data_pointer: MemPtr, data_length: MemLength, topic_ptr: MemPtr, num_topics: i32) {
267        self.adapt_vm_hooks(|inner| VMHooks::write_log(inner, data_pointer, data_length, topic_ptr, num_topics))
268    }
269
270    fn write_event_log(&self, num_topics: i32, topic_lengths_offset: MemPtr, topic_offset: MemPtr, data_offset: MemPtr, data_length: MemLength) {
271        self.adapt_vm_hooks(|inner| VMHooks::write_event_log(inner, num_topics, topic_lengths_offset, topic_offset, data_offset, data_length))
272    }
273
274    fn get_block_timestamp(&self) -> i64 {
275        self.adapt_vm_hooks(|inner| VMHooks::get_block_timestamp(inner))
276    }
277
278    fn get_block_nonce(&self) -> i64 {
279        self.adapt_vm_hooks(|inner| VMHooks::get_block_nonce(inner))
280    }
281
282    fn get_block_round(&self) -> i64 {
283        self.adapt_vm_hooks(|inner| VMHooks::get_block_round(inner))
284    }
285
286    fn get_block_epoch(&self) -> i64 {
287        self.adapt_vm_hooks(|inner| VMHooks::get_block_epoch(inner))
288    }
289
290    fn get_block_random_seed(&self, pointer: MemPtr) {
291        self.adapt_vm_hooks(|inner| VMHooks::get_block_random_seed(inner, pointer))
292    }
293
294    fn get_state_root_hash(&self, pointer: MemPtr) {
295        self.adapt_vm_hooks(|inner| VMHooks::get_state_root_hash(inner, pointer))
296    }
297
298    fn get_prev_block_timestamp(&self) -> i64 {
299        self.adapt_vm_hooks(|inner| VMHooks::get_prev_block_timestamp(inner))
300    }
301
302    fn get_prev_block_nonce(&self) -> i64 {
303        self.adapt_vm_hooks(|inner| VMHooks::get_prev_block_nonce(inner))
304    }
305
306    fn get_prev_block_round(&self) -> i64 {
307        self.adapt_vm_hooks(|inner| VMHooks::get_prev_block_round(inner))
308    }
309
310    fn get_prev_block_epoch(&self) -> i64 {
311        self.adapt_vm_hooks(|inner| VMHooks::get_prev_block_epoch(inner))
312    }
313
314    fn get_prev_block_random_seed(&self, pointer: MemPtr) {
315        self.adapt_vm_hooks(|inner| VMHooks::get_prev_block_random_seed(inner, pointer))
316    }
317
318    fn finish(&self, pointer: MemPtr, length: MemLength) {
319        self.adapt_vm_hooks(|inner| VMHooks::finish(inner, pointer, length))
320    }
321
322    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 {
323        self.adapt_vm_hooks(|inner| VMHooks::execute_on_same_context(inner, gas_limit, address_offset, value_offset, function_offset, function_length, num_arguments, arguments_length_offset, data_offset))
324    }
325
326    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 {
327        self.adapt_vm_hooks(|inner| VMHooks::execute_on_dest_context(inner, gas_limit, address_offset, value_offset, function_offset, function_length, num_arguments, arguments_length_offset, data_offset))
328    }
329
330    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 {
331        self.adapt_vm_hooks(|inner| VMHooks::execute_read_only(inner, gas_limit, address_offset, function_offset, function_length, num_arguments, arguments_length_offset, data_offset))
332    }
333
334    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 {
335        self.adapt_vm_hooks(|inner| VMHooks::create_contract(inner, gas_limit, value_offset, code_offset, code_metadata_offset, length, result_offset, num_arguments, arguments_length_offset, data_offset))
336    }
337
338    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 {
339        self.adapt_vm_hooks(|inner| VMHooks::deploy_from_source_contract(inner, gas_limit, value_offset, source_contract_address_offset, code_metadata_offset, result_address_offset, num_arguments, arguments_length_offset, data_offset))
340    }
341
342    fn get_num_return_data(&self) -> i32 {
343        self.adapt_vm_hooks(|inner| VMHooks::get_num_return_data(inner))
344    }
345
346    fn get_return_data_size(&self, result_id: i32) -> i32 {
347        self.adapt_vm_hooks(|inner| VMHooks::get_return_data_size(inner, result_id))
348    }
349
350    fn get_return_data(&self, result_id: i32, data_offset: MemPtr) -> i32 {
351        self.adapt_vm_hooks(|inner| VMHooks::get_return_data(inner, result_id, data_offset))
352    }
353
354    fn clean_return_data(&self) {
355        self.adapt_vm_hooks(|inner| VMHooks::clean_return_data(inner))
356    }
357
358    fn delete_from_return_data(&self, result_id: i32) {
359        self.adapt_vm_hooks(|inner| VMHooks::delete_from_return_data(inner, result_id))
360    }
361
362    fn get_original_tx_hash(&self, data_offset: MemPtr) {
363        self.adapt_vm_hooks(|inner| VMHooks::get_original_tx_hash(inner, data_offset))
364    }
365
366    fn get_current_tx_hash(&self, data_offset: MemPtr) {
367        self.adapt_vm_hooks(|inner| VMHooks::get_current_tx_hash(inner, data_offset))
368    }
369
370    fn get_prev_tx_hash(&self, data_offset: MemPtr) {
371        self.adapt_vm_hooks(|inner| VMHooks::get_prev_tx_hash(inner, data_offset))
372    }
373
374    fn managed_sc_address(&self, destination_handle: i32) {
375        self.adapt_vm_hooks(|inner| VMHooks::managed_sc_address(inner, destination_handle))
376    }
377
378    fn managed_owner_address(&self, destination_handle: i32) {
379        self.adapt_vm_hooks(|inner| VMHooks::managed_owner_address(inner, destination_handle))
380    }
381
382    fn managed_caller(&self, destination_handle: i32) {
383        self.adapt_vm_hooks(|inner| VMHooks::managed_caller(inner, destination_handle))
384    }
385
386    fn managed_get_original_caller_addr(&self, destination_handle: i32) {
387        self.adapt_vm_hooks(|inner| VMHooks::managed_get_original_caller_addr(inner, destination_handle))
388    }
389
390    fn managed_get_relayer_addr(&self, destination_handle: i32) {
391        self.adapt_vm_hooks(|inner| VMHooks::managed_get_relayer_addr(inner, destination_handle))
392    }
393
394    fn managed_signal_error(&self, err_handle: i32) {
395        self.adapt_vm_hooks(|inner| VMHooks::managed_signal_error(inner, err_handle))
396    }
397
398    fn managed_write_log(&self, topics_handle: i32, data_handle: i32) {
399        self.adapt_vm_hooks(|inner| VMHooks::managed_write_log(inner, topics_handle, data_handle))
400    }
401
402    fn managed_get_original_tx_hash(&self, result_handle: i32) {
403        self.adapt_vm_hooks(|inner| VMHooks::managed_get_original_tx_hash(inner, result_handle))
404    }
405
406    fn managed_get_state_root_hash(&self, result_handle: i32) {
407        self.adapt_vm_hooks(|inner| VMHooks::managed_get_state_root_hash(inner, result_handle))
408    }
409
410    fn managed_get_block_random_seed(&self, result_handle: i32) {
411        self.adapt_vm_hooks(|inner| VMHooks::managed_get_block_random_seed(inner, result_handle))
412    }
413
414    fn managed_get_prev_block_random_seed(&self, result_handle: i32) {
415        self.adapt_vm_hooks(|inner| VMHooks::managed_get_prev_block_random_seed(inner, result_handle))
416    }
417
418    fn managed_get_return_data(&self, result_id: i32, result_handle: i32) {
419        self.adapt_vm_hooks(|inner| VMHooks::managed_get_return_data(inner, result_id, result_handle))
420    }
421
422    fn managed_get_multi_dcdt_call_value(&self, multi_call_value_handle: i32) {
423        self.adapt_vm_hooks(|inner| VMHooks::managed_get_multi_dcdt_call_value(inner, multi_call_value_handle))
424    }
425
426    fn managed_get_back_transfers(&self, dcdt_transfers_value_handle: i32, rewa_value_handle: i32) {
427        self.adapt_vm_hooks(|inner| VMHooks::managed_get_back_transfers(inner, dcdt_transfers_value_handle, rewa_value_handle))
428    }
429
430    fn managed_get_dcdt_balance(&self, address_handle: i32, token_id_handle: i32, nonce: i64, value_handle: i32) {
431        self.adapt_vm_hooks(|inner| VMHooks::managed_get_dcdt_balance(inner, address_handle, token_id_handle, nonce, value_handle))
432    }
433
434    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) {
435        self.adapt_vm_hooks(|inner| VMHooks::managed_get_dcdt_token_data(inner, address_handle, token_id_handle, nonce, value_handle, properties_handle, hash_handle, name_handle, attributes_handle, creator_handle, royalties_handle, uris_handle))
436    }
437
438    fn managed_async_call(&self, dest_handle: i32, value_handle: i32, function_handle: i32, arguments_handle: i32) {
439        self.adapt_vm_hooks(|inner| VMHooks::managed_async_call(inner, dest_handle, value_handle, function_handle, arguments_handle))
440    }
441
442    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 {
443        self.adapt_vm_hooks(|inner| VMHooks::managed_create_async_call(inner, dest_handle, value_handle, function_handle, arguments_handle, success_offset, success_length, error_offset, error_length, gas, extra_gas_for_callback, callback_closure_handle))
444    }
445
446    fn managed_get_callback_closure(&self, callback_closure_handle: i32) {
447        self.adapt_vm_hooks(|inner| VMHooks::managed_get_callback_closure(inner, callback_closure_handle))
448    }
449
450    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) {
451        self.adapt_vm_hooks(|inner| VMHooks::managed_upgrade_from_source_contract(inner, dest_handle, gas, value_handle, address_handle, code_metadata_handle, arguments_handle, result_handle))
452    }
453
454    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) {
455        self.adapt_vm_hooks(|inner| VMHooks::managed_upgrade_contract(inner, dest_handle, gas, value_handle, code_handle, code_metadata_handle, arguments_handle, result_handle))
456    }
457
458    fn managed_delete_contract(&self, dest_handle: i32, gas_limit: i64, arguments_handle: i32) {
459        self.adapt_vm_hooks(|inner| VMHooks::managed_delete_contract(inner, dest_handle, gas_limit, arguments_handle))
460    }
461
462    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 {
463        self.adapt_vm_hooks(|inner| VMHooks::managed_deploy_from_source_contract(inner, gas, value_handle, address_handle, code_metadata_handle, arguments_handle, result_address_handle, result_handle))
464    }
465
466    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 {
467        self.adapt_vm_hooks(|inner| VMHooks::managed_create_contract(inner, gas, value_handle, code_handle, code_metadata_handle, arguments_handle, result_address_handle, result_handle))
468    }
469
470    fn managed_execute_read_only(&self, gas: i64, address_handle: i32, function_handle: i32, arguments_handle: i32, result_handle: i32) -> i32 {
471        self.adapt_vm_hooks(|inner| VMHooks::managed_execute_read_only(inner, gas, address_handle, function_handle, arguments_handle, result_handle))
472    }
473
474    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 {
475        self.adapt_vm_hooks(|inner| VMHooks::managed_execute_on_same_context(inner, gas, address_handle, value_handle, function_handle, arguments_handle, result_handle))
476    }
477
478    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 {
479        self.adapt_vm_hooks(|inner| VMHooks::managed_execute_on_dest_context(inner, gas, address_handle, value_handle, function_handle, arguments_handle, result_handle))
480    }
481
482    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 {
483        self.adapt_vm_hooks(|inner| VMHooks::managed_multi_transfer_dcdt_nft_execute(inner, dst_handle, token_transfers_handle, gas_limit, function_handle, arguments_handle))
484    }
485
486    fn managed_multi_transfer_dcdt_nft_execute_by_user(&self, user_handle: i32, dst_handle: i32, token_transfers_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> i32 {
487        self.adapt_vm_hooks(|inner| VMHooks::managed_multi_transfer_dcdt_nft_execute_by_user(inner, user_handle, dst_handle, token_transfers_handle, gas_limit, function_handle, arguments_handle))
488    }
489
490    fn managed_transfer_value_execute(&self, dst_handle: i32, value_handle: i32, gas_limit: i64, function_handle: i32, arguments_handle: i32) -> i32 {
491        self.adapt_vm_hooks(|inner| VMHooks::managed_transfer_value_execute(inner, dst_handle, value_handle, gas_limit, function_handle, arguments_handle))
492    }
493
494    fn managed_is_dcdt_frozen(&self, address_handle: i32, token_id_handle: i32, nonce: i64) -> i32 {
495        self.adapt_vm_hooks(|inner| VMHooks::managed_is_dcdt_frozen(inner, address_handle, token_id_handle, nonce))
496    }
497
498    fn managed_is_dcdt_limited_transfer(&self, token_id_handle: i32) -> i32 {
499        self.adapt_vm_hooks(|inner| VMHooks::managed_is_dcdt_limited_transfer(inner, token_id_handle))
500    }
501
502    fn managed_is_dcdt_paused(&self, token_id_handle: i32) -> i32 {
503        self.adapt_vm_hooks(|inner| VMHooks::managed_is_dcdt_paused(inner, token_id_handle))
504    }
505
506    fn managed_buffer_to_hex(&self, source_handle: i32, dest_handle: i32) {
507        self.adapt_vm_hooks(|inner| VMHooks::managed_buffer_to_hex(inner, source_handle, dest_handle))
508    }
509
510    fn managed_get_code_metadata(&self, address_handle: i32, response_handle: i32) {
511        self.adapt_vm_hooks(|inner| VMHooks::managed_get_code_metadata(inner, address_handle, response_handle))
512    }
513
514    fn managed_is_builtin_function(&self, function_name_handle: i32) -> i32 {
515        self.adapt_vm_hooks(|inner| VMHooks::managed_is_builtin_function(inner, function_name_handle))
516    }
517
518    fn big_float_new_from_parts(&self, integral_part: i32, fractional_part: i32, exponent: i32) -> i32 {
519        self.adapt_vm_hooks(|inner| VMHooks::big_float_new_from_parts(inner, integral_part, fractional_part, exponent))
520    }
521
522    fn big_float_new_from_frac(&self, numerator: i64, denominator: i64) -> i32 {
523        self.adapt_vm_hooks(|inner| VMHooks::big_float_new_from_frac(inner, numerator, denominator))
524    }
525
526    fn big_float_new_from_sci(&self, significand: i64, exponent: i64) -> i32 {
527        self.adapt_vm_hooks(|inner| VMHooks::big_float_new_from_sci(inner, significand, exponent))
528    }
529
530    fn big_float_add(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
531        self.adapt_vm_hooks(|inner| VMHooks::big_float_add(inner, destination_handle, op1_handle, op2_handle))
532    }
533
534    fn big_float_sub(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
535        self.adapt_vm_hooks(|inner| VMHooks::big_float_sub(inner, destination_handle, op1_handle, op2_handle))
536    }
537
538    fn big_float_mul(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
539        self.adapt_vm_hooks(|inner| VMHooks::big_float_mul(inner, destination_handle, op1_handle, op2_handle))
540    }
541
542    fn big_float_div(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
543        self.adapt_vm_hooks(|inner| VMHooks::big_float_div(inner, destination_handle, op1_handle, op2_handle))
544    }
545
546    fn big_float_neg(&self, destination_handle: i32, op_handle: i32) {
547        self.adapt_vm_hooks(|inner| VMHooks::big_float_neg(inner, destination_handle, op_handle))
548    }
549
550    fn big_float_clone(&self, destination_handle: i32, op_handle: i32) {
551        self.adapt_vm_hooks(|inner| VMHooks::big_float_clone(inner, destination_handle, op_handle))
552    }
553
554    fn big_float_cmp(&self, op1_handle: i32, op2_handle: i32) -> i32 {
555        self.adapt_vm_hooks(|inner| VMHooks::big_float_cmp(inner, op1_handle, op2_handle))
556    }
557
558    fn big_float_abs(&self, destination_handle: i32, op_handle: i32) {
559        self.adapt_vm_hooks(|inner| VMHooks::big_float_abs(inner, destination_handle, op_handle))
560    }
561
562    fn big_float_sign(&self, op_handle: i32) -> i32 {
563        self.adapt_vm_hooks(|inner| VMHooks::big_float_sign(inner, op_handle))
564    }
565
566    fn big_float_sqrt(&self, destination_handle: i32, op_handle: i32) {
567        self.adapt_vm_hooks(|inner| VMHooks::big_float_sqrt(inner, destination_handle, op_handle))
568    }
569
570    fn big_float_pow(&self, destination_handle: i32, op_handle: i32, exponent: i32) {
571        self.adapt_vm_hooks(|inner| VMHooks::big_float_pow(inner, destination_handle, op_handle, exponent))
572    }
573
574    fn big_float_floor(&self, dest_big_int_handle: i32, op_handle: i32) {
575        self.adapt_vm_hooks(|inner| VMHooks::big_float_floor(inner, dest_big_int_handle, op_handle))
576    }
577
578    fn big_float_ceil(&self, dest_big_int_handle: i32, op_handle: i32) {
579        self.adapt_vm_hooks(|inner| VMHooks::big_float_ceil(inner, dest_big_int_handle, op_handle))
580    }
581
582    fn big_float_truncate(&self, dest_big_int_handle: i32, op_handle: i32) {
583        self.adapt_vm_hooks(|inner| VMHooks::big_float_truncate(inner, dest_big_int_handle, op_handle))
584    }
585
586    fn big_float_set_int64(&self, destination_handle: i32, value: i64) {
587        self.adapt_vm_hooks(|inner| VMHooks::big_float_set_int64(inner, destination_handle, value))
588    }
589
590    fn big_float_is_int(&self, op_handle: i32) -> i32 {
591        self.adapt_vm_hooks(|inner| VMHooks::big_float_is_int(inner, op_handle))
592    }
593
594    fn big_float_set_big_int(&self, destination_handle: i32, big_int_handle: i32) {
595        self.adapt_vm_hooks(|inner| VMHooks::big_float_set_big_int(inner, destination_handle, big_int_handle))
596    }
597
598    fn big_float_get_const_pi(&self, destination_handle: i32) {
599        self.adapt_vm_hooks(|inner| VMHooks::big_float_get_const_pi(inner, destination_handle))
600    }
601
602    fn big_float_get_const_e(&self, destination_handle: i32) {
603        self.adapt_vm_hooks(|inner| VMHooks::big_float_get_const_e(inner, destination_handle))
604    }
605
606    fn big_int_get_unsigned_argument(&self, id: i32, destination_handle: i32) {
607        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_unsigned_argument(inner, id, destination_handle))
608    }
609
610    fn big_int_get_signed_argument(&self, id: i32, destination_handle: i32) {
611        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_signed_argument(inner, id, destination_handle))
612    }
613
614    fn big_int_storage_store_unsigned(&self, key_offset: MemPtr, key_length: MemLength, source_handle: i32) -> i32 {
615        self.adapt_vm_hooks(|inner| VMHooks::big_int_storage_store_unsigned(inner, key_offset, key_length, source_handle))
616    }
617
618    fn big_int_storage_load_unsigned(&self, key_offset: MemPtr, key_length: MemLength, destination_handle: i32) -> i32 {
619        self.adapt_vm_hooks(|inner| VMHooks::big_int_storage_load_unsigned(inner, key_offset, key_length, destination_handle))
620    }
621
622    fn big_int_get_call_value(&self, destination_handle: i32) {
623        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_call_value(inner, destination_handle))
624    }
625
626    fn big_int_get_dcdt_call_value(&self, destination: i32) {
627        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_dcdt_call_value(inner, destination))
628    }
629
630    fn big_int_get_dcdt_call_value_by_index(&self, destination_handle: i32, index: i32) {
631        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_dcdt_call_value_by_index(inner, destination_handle, index))
632    }
633
634    fn big_int_get_external_balance(&self, address_offset: MemPtr, result: i32) {
635        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_external_balance(inner, address_offset, result))
636    }
637
638    fn big_int_get_dcdt_external_balance(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, result_handle: i32) {
639        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_dcdt_external_balance(inner, address_offset, token_id_offset, token_id_len, nonce, result_handle))
640    }
641
642    fn big_int_new(&self, small_value: i64) -> i32 {
643        self.adapt_vm_hooks(|inner| VMHooks::big_int_new(inner, small_value))
644    }
645
646    fn big_int_unsigned_byte_length(&self, reference_handle: i32) -> i32 {
647        self.adapt_vm_hooks(|inner| VMHooks::big_int_unsigned_byte_length(inner, reference_handle))
648    }
649
650    fn big_int_signed_byte_length(&self, reference_handle: i32) -> i32 {
651        self.adapt_vm_hooks(|inner| VMHooks::big_int_signed_byte_length(inner, reference_handle))
652    }
653
654    fn big_int_get_unsigned_bytes(&self, reference_handle: i32, byte_offset: MemPtr) -> i32 {
655        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_unsigned_bytes(inner, reference_handle, byte_offset))
656    }
657
658    fn big_int_get_signed_bytes(&self, reference_handle: i32, byte_offset: MemPtr) -> i32 {
659        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_signed_bytes(inner, reference_handle, byte_offset))
660    }
661
662    fn big_int_set_unsigned_bytes(&self, destination_handle: i32, byte_offset: MemPtr, byte_length: MemLength) {
663        self.adapt_vm_hooks(|inner| VMHooks::big_int_set_unsigned_bytes(inner, destination_handle, byte_offset, byte_length))
664    }
665
666    fn big_int_set_signed_bytes(&self, destination_handle: i32, byte_offset: MemPtr, byte_length: MemLength) {
667        self.adapt_vm_hooks(|inner| VMHooks::big_int_set_signed_bytes(inner, destination_handle, byte_offset, byte_length))
668    }
669
670    fn big_int_is_int64(&self, destination_handle: i32) -> i32 {
671        self.adapt_vm_hooks(|inner| VMHooks::big_int_is_int64(inner, destination_handle))
672    }
673
674    fn big_int_get_int64(&self, destination_handle: i32) -> i64 {
675        self.adapt_vm_hooks(|inner| VMHooks::big_int_get_int64(inner, destination_handle))
676    }
677
678    fn big_int_set_int64(&self, destination_handle: i32, value: i64) {
679        self.adapt_vm_hooks(|inner| VMHooks::big_int_set_int64(inner, destination_handle, value))
680    }
681
682    fn big_int_add(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
683        self.adapt_vm_hooks(|inner| VMHooks::big_int_add(inner, destination_handle, op1_handle, op2_handle))
684    }
685
686    fn big_int_sub(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
687        self.adapt_vm_hooks(|inner| VMHooks::big_int_sub(inner, destination_handle, op1_handle, op2_handle))
688    }
689
690    fn big_int_mul(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
691        self.adapt_vm_hooks(|inner| VMHooks::big_int_mul(inner, destination_handle, op1_handle, op2_handle))
692    }
693
694    fn big_int_tdiv(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
695        self.adapt_vm_hooks(|inner| VMHooks::big_int_tdiv(inner, destination_handle, op1_handle, op2_handle))
696    }
697
698    fn big_int_tmod(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
699        self.adapt_vm_hooks(|inner| VMHooks::big_int_tmod(inner, destination_handle, op1_handle, op2_handle))
700    }
701
702    fn big_int_ediv(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
703        self.adapt_vm_hooks(|inner| VMHooks::big_int_ediv(inner, destination_handle, op1_handle, op2_handle))
704    }
705
706    fn big_int_emod(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
707        self.adapt_vm_hooks(|inner| VMHooks::big_int_emod(inner, destination_handle, op1_handle, op2_handle))
708    }
709
710    fn big_int_sqrt(&self, destination_handle: i32, op_handle: i32) {
711        self.adapt_vm_hooks(|inner| VMHooks::big_int_sqrt(inner, destination_handle, op_handle))
712    }
713
714    fn big_int_pow(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
715        self.adapt_vm_hooks(|inner| VMHooks::big_int_pow(inner, destination_handle, op1_handle, op2_handle))
716    }
717
718    fn big_int_log2(&self, op1_handle: i32) -> i32 {
719        self.adapt_vm_hooks(|inner| VMHooks::big_int_log2(inner, op1_handle))
720    }
721
722    fn big_int_abs(&self, destination_handle: i32, op_handle: i32) {
723        self.adapt_vm_hooks(|inner| VMHooks::big_int_abs(inner, destination_handle, op_handle))
724    }
725
726    fn big_int_neg(&self, destination_handle: i32, op_handle: i32) {
727        self.adapt_vm_hooks(|inner| VMHooks::big_int_neg(inner, destination_handle, op_handle))
728    }
729
730    fn big_int_sign(&self, op_handle: i32) -> i32 {
731        self.adapt_vm_hooks(|inner| VMHooks::big_int_sign(inner, op_handle))
732    }
733
734    fn big_int_cmp(&self, op1_handle: i32, op2_handle: i32) -> i32 {
735        self.adapt_vm_hooks(|inner| VMHooks::big_int_cmp(inner, op1_handle, op2_handle))
736    }
737
738    fn big_int_not(&self, destination_handle: i32, op_handle: i32) {
739        self.adapt_vm_hooks(|inner| VMHooks::big_int_not(inner, destination_handle, op_handle))
740    }
741
742    fn big_int_and(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
743        self.adapt_vm_hooks(|inner| VMHooks::big_int_and(inner, destination_handle, op1_handle, op2_handle))
744    }
745
746    fn big_int_or(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
747        self.adapt_vm_hooks(|inner| VMHooks::big_int_or(inner, destination_handle, op1_handle, op2_handle))
748    }
749
750    fn big_int_xor(&self, destination_handle: i32, op1_handle: i32, op2_handle: i32) {
751        self.adapt_vm_hooks(|inner| VMHooks::big_int_xor(inner, destination_handle, op1_handle, op2_handle))
752    }
753
754    fn big_int_shr(&self, destination_handle: i32, op_handle: i32, bits: i32) {
755        self.adapt_vm_hooks(|inner| VMHooks::big_int_shr(inner, destination_handle, op_handle, bits))
756    }
757
758    fn big_int_shl(&self, destination_handle: i32, op_handle: i32, bits: i32) {
759        self.adapt_vm_hooks(|inner| VMHooks::big_int_shl(inner, destination_handle, op_handle, bits))
760    }
761
762    fn big_int_finish_unsigned(&self, reference_handle: i32) {
763        self.adapt_vm_hooks(|inner| VMHooks::big_int_finish_unsigned(inner, reference_handle))
764    }
765
766    fn big_int_finish_signed(&self, reference_handle: i32) {
767        self.adapt_vm_hooks(|inner| VMHooks::big_int_finish_signed(inner, reference_handle))
768    }
769
770    fn big_int_to_string(&self, big_int_handle: i32, destination_handle: i32) {
771        self.adapt_vm_hooks(|inner| VMHooks::big_int_to_string(inner, big_int_handle, destination_handle))
772    }
773
774    fn mbuffer_new(&self) -> i32 {
775        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_new(inner))
776    }
777
778    fn mbuffer_new_from_bytes(&self, data_offset: MemPtr, data_length: MemLength) -> i32 {
779        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_new_from_bytes(inner, data_offset, data_length))
780    }
781
782    fn mbuffer_get_length(&self, m_buffer_handle: i32) -> i32 {
783        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_get_length(inner, m_buffer_handle))
784    }
785
786    fn mbuffer_get_bytes(&self, m_buffer_handle: i32, result_offset: MemPtr) -> i32 {
787        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_get_bytes(inner, m_buffer_handle, result_offset))
788    }
789
790    fn mbuffer_get_byte_slice(&self, source_handle: i32, starting_position: i32, slice_length: i32, result_offset: MemPtr) -> i32 {
791        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_get_byte_slice(inner, source_handle, starting_position, slice_length, result_offset))
792    }
793
794    fn mbuffer_copy_byte_slice(&self, source_handle: i32, starting_position: i32, slice_length: i32, destination_handle: i32) -> i32 {
795        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_copy_byte_slice(inner, source_handle, starting_position, slice_length, destination_handle))
796    }
797
798    fn mbuffer_eq(&self, m_buffer_handle1: i32, m_buffer_handle2: i32) -> i32 {
799        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_eq(inner, m_buffer_handle1, m_buffer_handle2))
800    }
801
802    fn mbuffer_set_bytes(&self, m_buffer_handle: i32, data_offset: MemPtr, data_length: MemLength) -> i32 {
803        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_set_bytes(inner, m_buffer_handle, data_offset, data_length))
804    }
805
806    fn mbuffer_set_byte_slice(&self, m_buffer_handle: i32, starting_position: i32, data_length: MemLength, data_offset: MemPtr) -> i32 {
807        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_set_byte_slice(inner, m_buffer_handle, starting_position, data_length, data_offset))
808    }
809
810    fn mbuffer_append(&self, accumulator_handle: i32, data_handle: i32) -> i32 {
811        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_append(inner, accumulator_handle, data_handle))
812    }
813
814    fn mbuffer_append_bytes(&self, accumulator_handle: i32, data_offset: MemPtr, data_length: MemLength) -> i32 {
815        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_append_bytes(inner, accumulator_handle, data_offset, data_length))
816    }
817
818    fn mbuffer_to_big_int_unsigned(&self, m_buffer_handle: i32, big_int_handle: i32) -> i32 {
819        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_to_big_int_unsigned(inner, m_buffer_handle, big_int_handle))
820    }
821
822    fn mbuffer_to_big_int_signed(&self, m_buffer_handle: i32, big_int_handle: i32) -> i32 {
823        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_to_big_int_signed(inner, m_buffer_handle, big_int_handle))
824    }
825
826    fn mbuffer_from_big_int_unsigned(&self, m_buffer_handle: i32, big_int_handle: i32) -> i32 {
827        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_from_big_int_unsigned(inner, m_buffer_handle, big_int_handle))
828    }
829
830    fn mbuffer_from_big_int_signed(&self, m_buffer_handle: i32, big_int_handle: i32) -> i32 {
831        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_from_big_int_signed(inner, m_buffer_handle, big_int_handle))
832    }
833
834    fn mbuffer_to_big_float(&self, m_buffer_handle: i32, big_float_handle: i32) -> i32 {
835        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_to_big_float(inner, m_buffer_handle, big_float_handle))
836    }
837
838    fn mbuffer_from_big_float(&self, m_buffer_handle: i32, big_float_handle: i32) -> i32 {
839        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_from_big_float(inner, m_buffer_handle, big_float_handle))
840    }
841
842    fn mbuffer_storage_store(&self, key_handle: i32, source_handle: i32) -> i32 {
843        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_storage_store(inner, key_handle, source_handle))
844    }
845
846    fn mbuffer_storage_load(&self, key_handle: i32, destination_handle: i32) -> i32 {
847        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_storage_load(inner, key_handle, destination_handle))
848    }
849
850    fn mbuffer_storage_load_from_address(&self, address_handle: i32, key_handle: i32, destination_handle: i32) {
851        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_storage_load_from_address(inner, address_handle, key_handle, destination_handle))
852    }
853
854    fn mbuffer_get_argument(&self, id: i32, destination_handle: i32) -> i32 {
855        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_get_argument(inner, id, destination_handle))
856    }
857
858    fn mbuffer_finish(&self, source_handle: i32) -> i32 {
859        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_finish(inner, source_handle))
860    }
861
862    fn mbuffer_set_random(&self, destination_handle: i32, length: i32) -> i32 {
863        self.adapt_vm_hooks(|inner| VMHooks::mbuffer_set_random(inner, destination_handle, length))
864    }
865
866    fn managed_map_new(&self) -> i32 {
867        self.adapt_vm_hooks(|inner| VMHooks::managed_map_new(inner))
868    }
869
870    fn managed_map_put(&self, m_map_handle: i32, key_handle: i32, value_handle: i32) -> i32 {
871        self.adapt_vm_hooks(|inner| VMHooks::managed_map_put(inner, m_map_handle, key_handle, value_handle))
872    }
873
874    fn managed_map_get(&self, m_map_handle: i32, key_handle: i32, out_value_handle: i32) -> i32 {
875        self.adapt_vm_hooks(|inner| VMHooks::managed_map_get(inner, m_map_handle, key_handle, out_value_handle))
876    }
877
878    fn managed_map_remove(&self, m_map_handle: i32, key_handle: i32, out_value_handle: i32) -> i32 {
879        self.adapt_vm_hooks(|inner| VMHooks::managed_map_remove(inner, m_map_handle, key_handle, out_value_handle))
880    }
881
882    fn managed_map_contains(&self, m_map_handle: i32, key_handle: i32) -> i32 {
883        self.adapt_vm_hooks(|inner| VMHooks::managed_map_contains(inner, m_map_handle, key_handle))
884    }
885
886    fn small_int_get_unsigned_argument(&self, id: i32) -> i64 {
887        self.adapt_vm_hooks(|inner| VMHooks::small_int_get_unsigned_argument(inner, id))
888    }
889
890    fn small_int_get_signed_argument(&self, id: i32) -> i64 {
891        self.adapt_vm_hooks(|inner| VMHooks::small_int_get_signed_argument(inner, id))
892    }
893
894    fn small_int_finish_unsigned(&self, value: i64) {
895        self.adapt_vm_hooks(|inner| VMHooks::small_int_finish_unsigned(inner, value))
896    }
897
898    fn small_int_finish_signed(&self, value: i64) {
899        self.adapt_vm_hooks(|inner| VMHooks::small_int_finish_signed(inner, value))
900    }
901
902    fn small_int_storage_store_unsigned(&self, key_offset: MemPtr, key_length: MemLength, value: i64) -> i32 {
903        self.adapt_vm_hooks(|inner| VMHooks::small_int_storage_store_unsigned(inner, key_offset, key_length, value))
904    }
905
906    fn small_int_storage_store_signed(&self, key_offset: MemPtr, key_length: MemLength, value: i64) -> i32 {
907        self.adapt_vm_hooks(|inner| VMHooks::small_int_storage_store_signed(inner, key_offset, key_length, value))
908    }
909
910    fn small_int_storage_load_unsigned(&self, key_offset: MemPtr, key_length: MemLength) -> i64 {
911        self.adapt_vm_hooks(|inner| VMHooks::small_int_storage_load_unsigned(inner, key_offset, key_length))
912    }
913
914    fn small_int_storage_load_signed(&self, key_offset: MemPtr, key_length: MemLength) -> i64 {
915        self.adapt_vm_hooks(|inner| VMHooks::small_int_storage_load_signed(inner, key_offset, key_length))
916    }
917
918    fn int64get_argument(&self, id: i32) -> i64 {
919        self.adapt_vm_hooks(|inner| VMHooks::int64get_argument(inner, id))
920    }
921
922    fn int64finish(&self, value: i64) {
923        self.adapt_vm_hooks(|inner| VMHooks::int64finish(inner, value))
924    }
925
926    fn int64storage_store(&self, key_offset: MemPtr, key_length: MemLength, value: i64) -> i32 {
927        self.adapt_vm_hooks(|inner| VMHooks::int64storage_store(inner, key_offset, key_length, value))
928    }
929
930    fn int64storage_load(&self, key_offset: MemPtr, key_length: MemLength) -> i64 {
931        self.adapt_vm_hooks(|inner| VMHooks::int64storage_load(inner, key_offset, key_length))
932    }
933
934    fn sha256(&self, data_offset: MemPtr, length: MemLength, result_offset: MemPtr) -> i32 {
935        self.adapt_vm_hooks(|inner| VMHooks::sha256(inner, data_offset, length, result_offset))
936    }
937
938    fn managed_sha256(&self, input_handle: i32, output_handle: i32) -> i32 {
939        self.adapt_vm_hooks(|inner| VMHooks::managed_sha256(inner, input_handle, output_handle))
940    }
941
942    fn keccak256(&self, data_offset: MemPtr, length: MemLength, result_offset: MemPtr) -> i32 {
943        self.adapt_vm_hooks(|inner| VMHooks::keccak256(inner, data_offset, length, result_offset))
944    }
945
946    fn managed_keccak256(&self, input_handle: i32, output_handle: i32) -> i32 {
947        self.adapt_vm_hooks(|inner| VMHooks::managed_keccak256(inner, input_handle, output_handle))
948    }
949
950    fn ripemd160(&self, data_offset: MemPtr, length: MemLength, result_offset: MemPtr) -> i32 {
951        self.adapt_vm_hooks(|inner| VMHooks::ripemd160(inner, data_offset, length, result_offset))
952    }
953
954    fn managed_ripemd160(&self, input_handle: i32, output_handle: i32) -> i32 {
955        self.adapt_vm_hooks(|inner| VMHooks::managed_ripemd160(inner, input_handle, output_handle))
956    }
957
958    fn verify_bls(&self, key_offset: MemPtr, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr) -> i32 {
959        self.adapt_vm_hooks(|inner| VMHooks::verify_bls(inner, key_offset, message_offset, message_length, sig_offset))
960    }
961
962    fn managed_verify_bls(&self, key_handle: i32, message_handle: i32, sig_handle: i32) -> i32 {
963        self.adapt_vm_hooks(|inner| VMHooks::managed_verify_bls(inner, key_handle, message_handle, sig_handle))
964    }
965
966    fn verify_ed25519(&self, key_offset: MemPtr, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr) -> i32 {
967        self.adapt_vm_hooks(|inner| VMHooks::verify_ed25519(inner, key_offset, message_offset, message_length, sig_offset))
968    }
969
970    fn managed_verify_ed25519(&self, key_handle: i32, message_handle: i32, sig_handle: i32) -> i32 {
971        self.adapt_vm_hooks(|inner| VMHooks::managed_verify_ed25519(inner, key_handle, message_handle, sig_handle))
972    }
973
974    fn verify_custom_secp256k1(&self, key_offset: MemPtr, key_length: MemLength, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr, hash_type: i32) -> i32 {
975        self.adapt_vm_hooks(|inner| VMHooks::verify_custom_secp256k1(inner, key_offset, key_length, message_offset, message_length, sig_offset, hash_type))
976    }
977
978    fn managed_verify_custom_secp256k1(&self, key_handle: i32, message_handle: i32, sig_handle: i32, hash_type: i32) -> i32 {
979        self.adapt_vm_hooks(|inner| VMHooks::managed_verify_custom_secp256k1(inner, key_handle, message_handle, sig_handle, hash_type))
980    }
981
982    fn verify_secp256k1(&self, key_offset: MemPtr, key_length: MemLength, message_offset: MemPtr, message_length: MemLength, sig_offset: MemPtr) -> i32 {
983        self.adapt_vm_hooks(|inner| VMHooks::verify_secp256k1(inner, key_offset, key_length, message_offset, message_length, sig_offset))
984    }
985
986    fn managed_verify_secp256k1(&self, key_handle: i32, message_handle: i32, sig_handle: i32) -> i32 {
987        self.adapt_vm_hooks(|inner| VMHooks::managed_verify_secp256k1(inner, key_handle, message_handle, sig_handle))
988    }
989
990    fn encode_secp256k1_der_signature(&self, r_offset: MemPtr, r_length: MemLength, s_offset: MemPtr, s_length: MemLength, sig_offset: MemPtr) -> i32 {
991        self.adapt_vm_hooks(|inner| VMHooks::encode_secp256k1_der_signature(inner, r_offset, r_length, s_offset, s_length, sig_offset))
992    }
993
994    fn managed_encode_secp256k1_der_signature(&self, r_handle: i32, s_handle: i32, sig_handle: i32) -> i32 {
995        self.adapt_vm_hooks(|inner| VMHooks::managed_encode_secp256k1_der_signature(inner, r_handle, s_handle, sig_handle))
996    }
997
998    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) {
999        self.adapt_vm_hooks(|inner| VMHooks::add_ec(inner, x_result_handle, y_result_handle, ec_handle, fst_point_xhandle, fst_point_yhandle, snd_point_xhandle, snd_point_yhandle))
1000    }
1001
1002    fn double_ec(&self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, point_xhandle: i32, point_yhandle: i32) {
1003        self.adapt_vm_hooks(|inner| VMHooks::double_ec(inner, x_result_handle, y_result_handle, ec_handle, point_xhandle, point_yhandle))
1004    }
1005
1006    fn is_on_curve_ec(&self, ec_handle: i32, point_xhandle: i32, point_yhandle: i32) -> i32 {
1007        self.adapt_vm_hooks(|inner| VMHooks::is_on_curve_ec(inner, ec_handle, point_xhandle, point_yhandle))
1008    }
1009
1010    fn scalar_base_mult_ec(&self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_offset: MemPtr, length: MemLength) -> i32 {
1011        self.adapt_vm_hooks(|inner| VMHooks::scalar_base_mult_ec(inner, x_result_handle, y_result_handle, ec_handle, data_offset, length))
1012    }
1013
1014    fn managed_scalar_base_mult_ec(&self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_handle: i32) -> i32 {
1015        self.adapt_vm_hooks(|inner| VMHooks::managed_scalar_base_mult_ec(inner, x_result_handle, y_result_handle, ec_handle, data_handle))
1016    }
1017
1018    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 {
1019        self.adapt_vm_hooks(|inner| VMHooks::scalar_mult_ec(inner, x_result_handle, y_result_handle, ec_handle, point_xhandle, point_yhandle, data_offset, length))
1020    }
1021
1022    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 {
1023        self.adapt_vm_hooks(|inner| VMHooks::managed_scalar_mult_ec(inner, x_result_handle, y_result_handle, ec_handle, point_xhandle, point_yhandle, data_handle))
1024    }
1025
1026    fn marshal_ec(&self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_offset: MemPtr) -> i32 {
1027        self.adapt_vm_hooks(|inner| VMHooks::marshal_ec(inner, x_pair_handle, y_pair_handle, ec_handle, result_offset))
1028    }
1029
1030    fn managed_marshal_ec(&self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_handle: i32) -> i32 {
1031        self.adapt_vm_hooks(|inner| VMHooks::managed_marshal_ec(inner, x_pair_handle, y_pair_handle, ec_handle, result_handle))
1032    }
1033
1034    fn marshal_compressed_ec(&self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_offset: MemPtr) -> i32 {
1035        self.adapt_vm_hooks(|inner| VMHooks::marshal_compressed_ec(inner, x_pair_handle, y_pair_handle, ec_handle, result_offset))
1036    }
1037
1038    fn managed_marshal_compressed_ec(&self, x_pair_handle: i32, y_pair_handle: i32, ec_handle: i32, result_handle: i32) -> i32 {
1039        self.adapt_vm_hooks(|inner| VMHooks::managed_marshal_compressed_ec(inner, x_pair_handle, y_pair_handle, ec_handle, result_handle))
1040    }
1041
1042    fn unmarshal_ec(&self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_offset: MemPtr, length: MemLength) -> i32 {
1043        self.adapt_vm_hooks(|inner| VMHooks::unmarshal_ec(inner, x_result_handle, y_result_handle, ec_handle, data_offset, length))
1044    }
1045
1046    fn managed_unmarshal_ec(&self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_handle: i32) -> i32 {
1047        self.adapt_vm_hooks(|inner| VMHooks::managed_unmarshal_ec(inner, x_result_handle, y_result_handle, ec_handle, data_handle))
1048    }
1049
1050    fn unmarshal_compressed_ec(&self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_offset: MemPtr, length: MemLength) -> i32 {
1051        self.adapt_vm_hooks(|inner| VMHooks::unmarshal_compressed_ec(inner, x_result_handle, y_result_handle, ec_handle, data_offset, length))
1052    }
1053
1054    fn managed_unmarshal_compressed_ec(&self, x_result_handle: i32, y_result_handle: i32, ec_handle: i32, data_handle: i32) -> i32 {
1055        self.adapt_vm_hooks(|inner| VMHooks::managed_unmarshal_compressed_ec(inner, x_result_handle, y_result_handle, ec_handle, data_handle))
1056    }
1057
1058    fn generate_key_ec(&self, x_pub_key_handle: i32, y_pub_key_handle: i32, ec_handle: i32, result_offset: MemPtr) -> i32 {
1059        self.adapt_vm_hooks(|inner| VMHooks::generate_key_ec(inner, x_pub_key_handle, y_pub_key_handle, ec_handle, result_offset))
1060    }
1061
1062    fn managed_generate_key_ec(&self, x_pub_key_handle: i32, y_pub_key_handle: i32, ec_handle: i32, result_handle: i32) -> i32 {
1063        self.adapt_vm_hooks(|inner| VMHooks::managed_generate_key_ec(inner, x_pub_key_handle, y_pub_key_handle, ec_handle, result_handle))
1064    }
1065
1066    fn create_ec(&self, data_offset: MemPtr, data_length: MemLength) -> i32 {
1067        self.adapt_vm_hooks(|inner| VMHooks::create_ec(inner, data_offset, data_length))
1068    }
1069
1070    fn managed_create_ec(&self, data_handle: i32) -> i32 {
1071        self.adapt_vm_hooks(|inner| VMHooks::managed_create_ec(inner, data_handle))
1072    }
1073
1074    fn get_curve_length_ec(&self, ec_handle: i32) -> i32 {
1075        self.adapt_vm_hooks(|inner| VMHooks::get_curve_length_ec(inner, ec_handle))
1076    }
1077
1078    fn get_priv_key_byte_length_ec(&self, ec_handle: i32) -> i32 {
1079        self.adapt_vm_hooks(|inner| VMHooks::get_priv_key_byte_length_ec(inner, ec_handle))
1080    }
1081
1082    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 {
1083        self.adapt_vm_hooks(|inner| VMHooks::elliptic_curve_get_values(inner, ec_handle, field_order_handle, base_point_order_handle, eq_constant_handle, x_base_point_handle, y_base_point_handle))
1084    }
1085
1086    fn managed_verify_secp256r1(&self, key_handle: i32, message_handle: i32, sig_handle: i32) -> i32 {
1087        self.adapt_vm_hooks(|inner| VMHooks::managed_verify_secp256r1(inner, key_handle, message_handle, sig_handle))
1088    }
1089
1090    fn managed_verify_blssignature_share(&self, key_handle: i32, message_handle: i32, sig_handle: i32) -> i32 {
1091        self.adapt_vm_hooks(|inner| VMHooks::managed_verify_blssignature_share(inner, key_handle, message_handle, sig_handle))
1092    }
1093
1094    fn managed_verify_blsaggregated_signature(&self, key_handle: i32, message_handle: i32, sig_handle: i32) -> i32 {
1095        self.adapt_vm_hooks(|inner| VMHooks::managed_verify_blsaggregated_signature(inner, key_handle, message_handle, sig_handle))
1096    }
1097}