/__w/smoldot/smoldot/repo/lib/src/executor/host/functions.rs
Line | Count | Source (jump to first uncovered line) |
1 | | // Smoldot |
2 | | // Copyright (C) 2019-2022 Parity Technologies (UK) Ltd. |
3 | | // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 |
4 | | |
5 | | // This program is free software: you can redistribute it and/or modify |
6 | | // it under the terms of the GNU General Public License as published by |
7 | | // the Free Software Foundation, either version 3 of the License, or |
8 | | // (at your option) any later version. |
9 | | |
10 | | // This program is distributed in the hope that it will be useful, |
11 | | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | | // GNU General Public License for more details. |
14 | | |
15 | | // You should have received a copy of the GNU General Public License |
16 | | // along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | | |
18 | | //! Contains the list of all host functions, in other words functions that the runtime is allowed |
19 | | //! to call. |
20 | | |
21 | | use crate::executor::vm; |
22 | | |
23 | | macro_rules! host_functions { |
24 | | ($($ext:ident,)*) => { |
25 | | /// List of possible host functions. |
26 | | #[derive(Debug, Copy, Clone, PartialEq, Eq)] |
27 | | #[allow(non_camel_case_types)] |
28 | | pub enum HostFunction { |
29 | | $( |
30 | | $ext, |
31 | | )* |
32 | | } |
33 | | |
34 | | impl HostFunction { |
35 | | /// Returns a host function given its name. |
36 | 2.95k | pub fn by_name(name: &str) -> Option<Self> { |
37 | | $( |
38 | 2.95k | if name15 == stringify!($ext) { |
39 | 2.94k | return Some(HostFunction::$ext); |
40 | 136k | } |
41 | 15 | )* |
42 | 15 | None |
43 | 2.95k | } _RNvMs_NtNtNtCsN16ciHI6Qf_7smoldot8executor4host9functionsNtB4_12HostFunction7by_name Line | Count | Source | 36 | 461 | pub fn by_name(name: &str) -> Option<Self> { | 37 | | $( | 38 | 461 | if name15 == stringify!($ext) { | 39 | 446 | return Some(HostFunction::$ext); | 40 | 22.0k | } | 41 | 15 | )* | 42 | 15 | None | 43 | 461 | } |
_RNvMs_NtNtNtCseuYC0Zibziv_7smoldot8executor4host9functionsNtB4_12HostFunction7by_name Line | Count | Source | 36 | 2.49k | pub fn by_name(name: &str) -> Option<Self> { | 37 | | $( | 38 | 2.49k | if name0 == stringify!($ext) { | 39 | 2.49k | return Some(HostFunction::$ext); | 40 | 114k | } | 41 | 0 | )* | 42 | 0 | None | 43 | 2.49k | } |
|
44 | | |
45 | | /// Returns the name of this host function. |
46 | 16.8k | pub fn name(&self) -> &'static str { |
47 | 16.8k | match self { |
48 | | $( |
49 | 0 | HostFunction::$ext => stringify!($ext), |
50 | | )* |
51 | | } |
52 | 16.8k | } _RNvMs_NtNtNtCsN16ciHI6Qf_7smoldot8executor4host9functionsNtB4_12HostFunction4name Line | Count | Source | 46 | 14.3k | pub fn name(&self) -> &'static str { | 47 | 14.3k | match self { | 48 | | $( | 49 | 0 | HostFunction::$ext => stringify!($ext), | 50 | | )* | 51 | | } | 52 | 14.3k | } |
_RNvMs_NtNtNtCseuYC0Zibziv_7smoldot8executor4host9functionsNtB4_12HostFunction4name Line | Count | Source | 46 | 2.53k | pub fn name(&self) -> &'static str { | 47 | 2.53k | match self { | 48 | | $( | 49 | 0 | HostFunction::$ext => stringify!($ext), | 50 | | )* | 51 | | } | 52 | 2.53k | } |
|
53 | | } |
54 | | }; |
55 | | } |
56 | | |
57 | | host_functions! { |
58 | | ext_storage_set_version_1, |
59 | | ext_storage_get_version_1, |
60 | | ext_storage_read_version_1, |
61 | | ext_storage_clear_version_1, |
62 | | ext_storage_exists_version_1, |
63 | | ext_storage_clear_prefix_version_1, |
64 | | ext_storage_clear_prefix_version_2, |
65 | | ext_storage_root_version_1, |
66 | | ext_storage_root_version_2, |
67 | | ext_storage_changes_root_version_1, |
68 | | ext_storage_next_key_version_1, |
69 | | ext_storage_append_version_1, |
70 | | ext_storage_start_transaction_version_1, |
71 | | ext_storage_rollback_transaction_version_1, |
72 | | ext_storage_commit_transaction_version_1, |
73 | | ext_storage_proof_size_storage_proof_size_version_1, |
74 | | ext_default_child_storage_get_version_1, |
75 | | ext_default_child_storage_read_version_1, |
76 | | ext_default_child_storage_storage_kill_version_1, |
77 | | ext_default_child_storage_storage_kill_version_2, |
78 | | ext_default_child_storage_storage_kill_version_3, |
79 | | ext_default_child_storage_clear_prefix_version_1, |
80 | | ext_default_child_storage_clear_prefix_version_2, |
81 | | ext_default_child_storage_set_version_1, |
82 | | ext_default_child_storage_clear_version_1, |
83 | | ext_default_child_storage_exists_version_1, |
84 | | ext_default_child_storage_next_key_version_1, |
85 | | ext_default_child_storage_root_version_1, |
86 | | ext_default_child_storage_root_version_2, |
87 | | ext_crypto_ed25519_public_keys_version_1, |
88 | | ext_crypto_ed25519_generate_version_1, |
89 | | ext_crypto_ed25519_sign_version_1, |
90 | | ext_crypto_ed25519_verify_version_1, |
91 | | ext_crypto_ed25519_batch_verify_version_1, |
92 | | ext_crypto_sr25519_public_keys_version_1, |
93 | | ext_crypto_sr25519_generate_version_1, |
94 | | ext_crypto_sr25519_sign_version_1, |
95 | | ext_crypto_sr25519_verify_version_1, |
96 | | ext_crypto_sr25519_verify_version_2, |
97 | | ext_crypto_sr25519_batch_verify_version_1, |
98 | | ext_crypto_ecdsa_generate_version_1, |
99 | | ext_crypto_ecdsa_sign_version_1, |
100 | | ext_crypto_ecdsa_public_keys_version_1, |
101 | | ext_crypto_ecdsa_verify_version_1, |
102 | | ext_crypto_ecdsa_verify_version_2, |
103 | | ext_crypto_ecdsa_sign_prehashed_version_1, |
104 | | ext_crypto_ecdsa_verify_prehashed_version_1, |
105 | | ext_crypto_ecdsa_batch_verify_version_1, |
106 | | ext_crypto_secp256k1_ecdsa_recover_version_1, |
107 | | ext_crypto_secp256k1_ecdsa_recover_version_2, |
108 | | ext_crypto_secp256k1_ecdsa_recover_compressed_version_1, |
109 | | ext_crypto_secp256k1_ecdsa_recover_compressed_version_2, |
110 | | ext_crypto_start_batch_verify_version_1, |
111 | | ext_crypto_finish_batch_verify_version_1, |
112 | | ext_hashing_keccak_256_version_1, |
113 | | ext_hashing_keccak_512_version_1, |
114 | | ext_hashing_sha2_256_version_1, |
115 | | ext_hashing_blake2_128_version_1, |
116 | | ext_hashing_blake2_256_version_1, |
117 | | ext_hashing_twox_64_version_1, |
118 | | ext_hashing_twox_128_version_1, |
119 | | ext_hashing_twox_256_version_1, |
120 | | ext_offchain_index_set_version_1, |
121 | | ext_offchain_index_clear_version_1, |
122 | | ext_offchain_is_validator_version_1, |
123 | | ext_offchain_submit_transaction_version_1, |
124 | | ext_offchain_network_state_version_1, |
125 | | ext_offchain_timestamp_version_1, |
126 | | ext_offchain_sleep_until_version_1, |
127 | | ext_offchain_random_seed_version_1, |
128 | | ext_offchain_local_storage_set_version_1, |
129 | | ext_offchain_local_storage_compare_and_set_version_1, |
130 | | ext_offchain_local_storage_get_version_1, |
131 | | ext_offchain_local_storage_clear_version_1, |
132 | | ext_offchain_http_request_start_version_1, |
133 | | ext_offchain_http_request_add_header_version_1, |
134 | | ext_offchain_http_request_write_body_version_1, |
135 | | ext_offchain_http_response_wait_version_1, |
136 | | ext_offchain_http_response_headers_version_1, |
137 | | ext_offchain_http_response_read_body_version_1, |
138 | | ext_trie_blake2_256_root_version_1, |
139 | | ext_trie_blake2_256_root_version_2, |
140 | | ext_trie_blake2_256_ordered_root_version_1, |
141 | | ext_trie_blake2_256_ordered_root_version_2, |
142 | | ext_trie_keccak_256_root_version_1, |
143 | | ext_trie_keccak_256_root_version_2, |
144 | | ext_trie_keccak_256_ordered_root_version_1, |
145 | | ext_trie_keccak_256_ordered_root_version_2, |
146 | | ext_trie_blake2_256_verify_proof_version_1, |
147 | | ext_trie_blake2_256_verify_proof_version_2, |
148 | | ext_trie_keccak_256_verify_proof_version_1, |
149 | | ext_trie_keccak_256_verify_proof_version_2, |
150 | | ext_misc_print_num_version_1, |
151 | | ext_misc_print_utf8_version_1, |
152 | | ext_misc_print_hex_version_1, |
153 | | ext_misc_runtime_version_version_1, |
154 | | ext_allocator_malloc_version_1, |
155 | | ext_allocator_free_version_1, |
156 | | ext_logging_log_version_1, |
157 | | ext_logging_max_level_version_1, |
158 | | ext_panic_handler_abort_on_panic_version_1, |
159 | | } |
160 | | |
161 | | impl HostFunction { |
162 | | /// Returns the signature of this host function. |
163 | | // TODO: make this a `const fn` function |
164 | 2.94k | pub fn signature(&self) -> vm::Signature { |
165 | 2.94k | match *self { |
166 | | HostFunction::ext_storage_set_version_1 => { |
167 | 96 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) |
168 | | } |
169 | | HostFunction::ext_storage_get_version_1 => { |
170 | 96 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) |
171 | | } |
172 | | HostFunction::ext_storage_read_version_1 => { |
173 | 96 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I64) |
174 | | } |
175 | | HostFunction::ext_storage_clear_version_1 => { |
176 | 96 | crate::signature!((vm::ValueType::I64) => ()) |
177 | | } |
178 | | HostFunction::ext_storage_exists_version_1 => { |
179 | 95 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
180 | | } |
181 | | HostFunction::ext_storage_clear_prefix_version_1 => { |
182 | 1 | crate::signature!((vm::ValueType::I64) => ()) |
183 | | } |
184 | | HostFunction::ext_storage_clear_prefix_version_2 => { |
185 | 95 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
186 | | } |
187 | 87 | HostFunction::ext_storage_root_version_1 => crate::signature!(() => vm::ValueType::I64), |
188 | | HostFunction::ext_storage_root_version_2 => { |
189 | 9 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I64) |
190 | | } |
191 | | HostFunction::ext_storage_changes_root_version_1 => { |
192 | 87 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) |
193 | | } |
194 | | HostFunction::ext_storage_next_key_version_1 => { |
195 | 96 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) |
196 | | } |
197 | | HostFunction::ext_storage_append_version_1 => { |
198 | 96 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) |
199 | | } |
200 | 10 | HostFunction::ext_storage_start_transaction_version_1 => crate::signature!(() => ()), |
201 | 10 | HostFunction::ext_storage_rollback_transaction_version_1 => crate::signature!(() => ()), |
202 | 10 | HostFunction::ext_storage_commit_transaction_version_1 => crate::signature!(() => ()), |
203 | | HostFunction::ext_storage_proof_size_storage_proof_size_version_1 => { |
204 | 0 | crate::signature!(() => vm::ValueType::I64) |
205 | | } |
206 | | HostFunction::ext_default_child_storage_get_version_1 => { |
207 | 10 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
208 | | } |
209 | | HostFunction::ext_default_child_storage_read_version_1 => { |
210 | 4 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I64) |
211 | | } |
212 | | HostFunction::ext_default_child_storage_storage_kill_version_1 => { |
213 | 1 | crate::signature!((vm::ValueType::I64) => ()) |
214 | | } |
215 | | HostFunction::ext_default_child_storage_storage_kill_version_2 => { |
216 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) |
217 | | } |
218 | | HostFunction::ext_default_child_storage_storage_kill_version_3 => { |
219 | 4 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
220 | | } |
221 | | HostFunction::ext_default_child_storage_clear_prefix_version_1 => { |
222 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) |
223 | | } |
224 | | HostFunction::ext_default_child_storage_clear_prefix_version_2 => { |
225 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
226 | | } |
227 | | HostFunction::ext_default_child_storage_set_version_1 => { |
228 | 10 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => ()) |
229 | | } |
230 | | HostFunction::ext_default_child_storage_clear_version_1 => { |
231 | 10 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) |
232 | | } |
233 | | HostFunction::ext_default_child_storage_exists_version_1 => { |
234 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) |
235 | | } |
236 | | HostFunction::ext_default_child_storage_next_key_version_1 => { |
237 | 5 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
238 | | } |
239 | | HostFunction::ext_default_child_storage_root_version_1 => { |
240 | 1 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) |
241 | | } |
242 | | HostFunction::ext_default_child_storage_root_version_2 => { |
243 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I64) |
244 | | } |
245 | | HostFunction::ext_crypto_ed25519_public_keys_version_1 => { |
246 | 0 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I64) |
247 | | } |
248 | | HostFunction::ext_crypto_ed25519_generate_version_1 => { |
249 | 92 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I32) |
250 | | } |
251 | | HostFunction::ext_crypto_ed25519_sign_version_1 => { |
252 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) |
253 | | } |
254 | | HostFunction::ext_crypto_ed25519_verify_version_1 => { |
255 | 96 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
256 | | } |
257 | | HostFunction::ext_crypto_ed25519_batch_verify_version_1 => { |
258 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
259 | | } |
260 | | HostFunction::ext_crypto_sr25519_public_keys_version_1 => { |
261 | 6 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I64) |
262 | | } |
263 | | HostFunction::ext_crypto_sr25519_generate_version_1 => { |
264 | 92 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I32) |
265 | | } |
266 | | HostFunction::ext_crypto_sr25519_sign_version_1 => { |
267 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) |
268 | | } |
269 | | HostFunction::ext_crypto_sr25519_verify_version_1 => { |
270 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
271 | | } |
272 | | HostFunction::ext_crypto_sr25519_verify_version_2 => { |
273 | 96 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
274 | | } |
275 | | HostFunction::ext_crypto_sr25519_batch_verify_version_1 => { |
276 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
277 | | } |
278 | | HostFunction::ext_crypto_ecdsa_generate_version_1 => { |
279 | 2 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I32) |
280 | | } |
281 | | HostFunction::ext_crypto_ecdsa_sign_version_1 => { |
282 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) |
283 | | } |
284 | | HostFunction::ext_crypto_ecdsa_public_keys_version_1 => { |
285 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) |
286 | | } |
287 | | HostFunction::ext_crypto_ecdsa_verify_version_1 => { |
288 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
289 | | } |
290 | | HostFunction::ext_crypto_ecdsa_verify_version_2 => { |
291 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
292 | | } |
293 | | HostFunction::ext_crypto_ecdsa_sign_prehashed_version_1 => { |
294 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) |
295 | | } |
296 | | HostFunction::ext_crypto_ecdsa_verify_prehashed_version_1 => { |
297 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I32) |
298 | | } |
299 | | HostFunction::ext_crypto_ecdsa_batch_verify_version_1 => { |
300 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
301 | | } |
302 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_version_1 => { |
303 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) |
304 | | } |
305 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_version_2 => { |
306 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) |
307 | | } |
308 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_compressed_version_1 => { |
309 | 1 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) |
310 | | } |
311 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_compressed_version_2 => { |
312 | 95 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) |
313 | | } |
314 | 95 | HostFunction::ext_crypto_start_batch_verify_version_1 => crate::signature!(() => ()), |
315 | | HostFunction::ext_crypto_finish_batch_verify_version_1 => { |
316 | 95 | crate::signature!(() => vm::ValueType::I32) |
317 | | } |
318 | | HostFunction::ext_hashing_keccak_256_version_1 => { |
319 | 9 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
320 | | } |
321 | | HostFunction::ext_hashing_keccak_512_version_1 => { |
322 | 2 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
323 | | } |
324 | | HostFunction::ext_hashing_sha2_256_version_1 => { |
325 | 7 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
326 | | } |
327 | | HostFunction::ext_hashing_blake2_128_version_1 => { |
328 | 96 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
329 | | } |
330 | | HostFunction::ext_hashing_blake2_256_version_1 => { |
331 | 98 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
332 | | } |
333 | | HostFunction::ext_hashing_twox_64_version_1 => { |
334 | 98 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
335 | | } |
336 | | HostFunction::ext_hashing_twox_128_version_1 => { |
337 | 98 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
338 | | } |
339 | | HostFunction::ext_hashing_twox_256_version_1 => { |
340 | 2 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
341 | | } |
342 | | HostFunction::ext_offchain_index_set_version_1 => { |
343 | 6 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) |
344 | | } |
345 | | HostFunction::ext_offchain_index_clear_version_1 => { |
346 | 0 | crate::signature!((vm::ValueType::I64) => ()) |
347 | | } |
348 | | HostFunction::ext_offchain_is_validator_version_1 => { |
349 | 6 | crate::signature!(() => vm::ValueType::I32) |
350 | | } |
351 | | HostFunction::ext_offchain_submit_transaction_version_1 => { |
352 | 6 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) |
353 | | } |
354 | | HostFunction::ext_offchain_network_state_version_1 => { |
355 | 6 | crate::signature!(() => vm::ValueType::I64) |
356 | | } |
357 | | HostFunction::ext_offchain_timestamp_version_1 => { |
358 | 3 | crate::signature!(() => vm::ValueType::I64) |
359 | | } |
360 | | HostFunction::ext_offchain_sleep_until_version_1 => { |
361 | 0 | crate::signature!((vm::ValueType::I64) => ()) |
362 | | } |
363 | | HostFunction::ext_offchain_random_seed_version_1 => { |
364 | 6 | crate::signature!(() => vm::ValueType::I32) |
365 | | } |
366 | | HostFunction::ext_offchain_local_storage_set_version_1 => { |
367 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => ()) |
368 | | } |
369 | | HostFunction::ext_offchain_local_storage_compare_and_set_version_1 => { |
370 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) |
371 | | } |
372 | | HostFunction::ext_offchain_local_storage_get_version_1 => { |
373 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) |
374 | | } |
375 | | HostFunction::ext_offchain_local_storage_clear_version_1 => { |
376 | 3 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => ()) |
377 | | } |
378 | | HostFunction::ext_offchain_http_request_start_version_1 => { |
379 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
380 | | } |
381 | | HostFunction::ext_offchain_http_request_add_header_version_1 => { |
382 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
383 | | } |
384 | | HostFunction::ext_offchain_http_request_write_body_version_1 => { |
385 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
386 | | } |
387 | | HostFunction::ext_offchain_http_response_wait_version_1 => { |
388 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
389 | | } |
390 | | HostFunction::ext_offchain_http_response_headers_version_1 => { |
391 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) |
392 | | } |
393 | | HostFunction::ext_offchain_http_response_read_body_version_1 => { |
394 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) |
395 | | } |
396 | | HostFunction::ext_trie_blake2_256_root_version_1 => { |
397 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
398 | | } |
399 | | HostFunction::ext_trie_blake2_256_root_version_2 => { |
400 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
401 | | } |
402 | | HostFunction::ext_trie_blake2_256_ordered_root_version_1 => { |
403 | 87 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
404 | | } |
405 | | HostFunction::ext_trie_blake2_256_ordered_root_version_2 => { |
406 | 9 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
407 | | } |
408 | | HostFunction::ext_trie_keccak_256_root_version_1 => { |
409 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
410 | | } |
411 | | HostFunction::ext_trie_keccak_256_root_version_2 => { |
412 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
413 | | } |
414 | | HostFunction::ext_trie_keccak_256_ordered_root_version_1 => { |
415 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) |
416 | | } |
417 | | HostFunction::ext_trie_keccak_256_ordered_root_version_2 => { |
418 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
419 | | } |
420 | | HostFunction::ext_trie_blake2_256_verify_proof_version_1 => { |
421 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) |
422 | | } |
423 | | HostFunction::ext_trie_blake2_256_verify_proof_version_2 => { |
424 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
425 | | } |
426 | | HostFunction::ext_trie_keccak_256_verify_proof_version_1 => { |
427 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) |
428 | | } |
429 | | HostFunction::ext_trie_keccak_256_verify_proof_version_2 => { |
430 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) |
431 | | } |
432 | | HostFunction::ext_misc_print_num_version_1 => { |
433 | 4 | crate::signature!((vm::ValueType::I64) => ()) |
434 | | } |
435 | | HostFunction::ext_misc_print_utf8_version_1 => { |
436 | 96 | crate::signature!((vm::ValueType::I64) => ()) |
437 | | } |
438 | | HostFunction::ext_misc_print_hex_version_1 => { |
439 | 96 | crate::signature!((vm::ValueType::I64) => ()) |
440 | | } |
441 | | HostFunction::ext_misc_runtime_version_version_1 => { |
442 | 96 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) |
443 | | } |
444 | | HostFunction::ext_allocator_malloc_version_1 => { |
445 | 100 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I32) |
446 | | } |
447 | | HostFunction::ext_allocator_free_version_1 => { |
448 | 96 | crate::signature!((vm::ValueType::I32) => ()) |
449 | | } |
450 | | HostFunction::ext_logging_log_version_1 => { |
451 | 96 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => ()) |
452 | | } |
453 | | HostFunction::ext_logging_max_level_version_1 => { |
454 | 95 | crate::signature!(() => vm::ValueType::I32) |
455 | | } |
456 | | HostFunction::ext_panic_handler_abort_on_panic_version_1 => { |
457 | 0 | crate::signature!((vm::ValueType::I64) => ()) |
458 | | } |
459 | | } |
460 | 2.94k | } _RNvMNtNtNtCsN16ciHI6Qf_7smoldot8executor4host9functionsNtB2_12HostFunction9signature Line | Count | Source | 164 | 446 | pub fn signature(&self) -> vm::Signature { | 165 | 446 | match *self { | 166 | | HostFunction::ext_storage_set_version_1 => { | 167 | 10 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 168 | | } | 169 | | HostFunction::ext_storage_get_version_1 => { | 170 | 10 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 171 | | } | 172 | | HostFunction::ext_storage_read_version_1 => { | 173 | 10 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I64) | 174 | | } | 175 | | HostFunction::ext_storage_clear_version_1 => { | 176 | 10 | crate::signature!((vm::ValueType::I64) => ()) | 177 | | } | 178 | | HostFunction::ext_storage_exists_version_1 => { | 179 | 9 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 180 | | } | 181 | | HostFunction::ext_storage_clear_prefix_version_1 => { | 182 | 1 | crate::signature!((vm::ValueType::I64) => ()) | 183 | | } | 184 | | HostFunction::ext_storage_clear_prefix_version_2 => { | 185 | 9 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 186 | | } | 187 | 1 | HostFunction::ext_storage_root_version_1 => crate::signature!(() => vm::ValueType::I64), | 188 | | HostFunction::ext_storage_root_version_2 => { | 189 | 9 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I64) | 190 | | } | 191 | | HostFunction::ext_storage_changes_root_version_1 => { | 192 | 1 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 193 | | } | 194 | | HostFunction::ext_storage_next_key_version_1 => { | 195 | 10 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 196 | | } | 197 | | HostFunction::ext_storage_append_version_1 => { | 198 | 10 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 199 | | } | 200 | 10 | HostFunction::ext_storage_start_transaction_version_1 => crate::signature!(() => ()), | 201 | 10 | HostFunction::ext_storage_rollback_transaction_version_1 => crate::signature!(() => ()), | 202 | 10 | HostFunction::ext_storage_commit_transaction_version_1 => crate::signature!(() => ()), | 203 | | HostFunction::ext_storage_proof_size_storage_proof_size_version_1 => { | 204 | 0 | crate::signature!(() => vm::ValueType::I64) | 205 | | } | 206 | | HostFunction::ext_default_child_storage_get_version_1 => { | 207 | 10 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 208 | | } | 209 | | HostFunction::ext_default_child_storage_read_version_1 => { | 210 | 4 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I64) | 211 | | } | 212 | | HostFunction::ext_default_child_storage_storage_kill_version_1 => { | 213 | 1 | crate::signature!((vm::ValueType::I64) => ()) | 214 | | } | 215 | | HostFunction::ext_default_child_storage_storage_kill_version_2 => { | 216 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 217 | | } | 218 | | HostFunction::ext_default_child_storage_storage_kill_version_3 => { | 219 | 4 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 220 | | } | 221 | | HostFunction::ext_default_child_storage_clear_prefix_version_1 => { | 222 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 223 | | } | 224 | | HostFunction::ext_default_child_storage_clear_prefix_version_2 => { | 225 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 226 | | } | 227 | | HostFunction::ext_default_child_storage_set_version_1 => { | 228 | 10 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => ()) | 229 | | } | 230 | | HostFunction::ext_default_child_storage_clear_version_1 => { | 231 | 10 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 232 | | } | 233 | | HostFunction::ext_default_child_storage_exists_version_1 => { | 234 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 235 | | } | 236 | | HostFunction::ext_default_child_storage_next_key_version_1 => { | 237 | 5 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 238 | | } | 239 | | HostFunction::ext_default_child_storage_root_version_1 => { | 240 | 1 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 241 | | } | 242 | | HostFunction::ext_default_child_storage_root_version_2 => { | 243 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I64) | 244 | | } | 245 | | HostFunction::ext_crypto_ed25519_public_keys_version_1 => { | 246 | 0 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I64) | 247 | | } | 248 | | HostFunction::ext_crypto_ed25519_generate_version_1 => { | 249 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I32) | 250 | | } | 251 | | HostFunction::ext_crypto_ed25519_sign_version_1 => { | 252 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 253 | | } | 254 | | HostFunction::ext_crypto_ed25519_verify_version_1 => { | 255 | 10 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 256 | | } | 257 | | HostFunction::ext_crypto_ed25519_batch_verify_version_1 => { | 258 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 259 | | } | 260 | | HostFunction::ext_crypto_sr25519_public_keys_version_1 => { | 261 | 6 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I64) | 262 | | } | 263 | | HostFunction::ext_crypto_sr25519_generate_version_1 => { | 264 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I32) | 265 | | } | 266 | | HostFunction::ext_crypto_sr25519_sign_version_1 => { | 267 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 268 | | } | 269 | | HostFunction::ext_crypto_sr25519_verify_version_1 => { | 270 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 271 | | } | 272 | | HostFunction::ext_crypto_sr25519_verify_version_2 => { | 273 | 10 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 274 | | } | 275 | | HostFunction::ext_crypto_sr25519_batch_verify_version_1 => { | 276 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 277 | | } | 278 | | HostFunction::ext_crypto_ecdsa_generate_version_1 => { | 279 | 2 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I32) | 280 | | } | 281 | | HostFunction::ext_crypto_ecdsa_sign_version_1 => { | 282 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 283 | | } | 284 | | HostFunction::ext_crypto_ecdsa_public_keys_version_1 => { | 285 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 286 | | } | 287 | | HostFunction::ext_crypto_ecdsa_verify_version_1 => { | 288 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 289 | | } | 290 | | HostFunction::ext_crypto_ecdsa_verify_version_2 => { | 291 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 292 | | } | 293 | | HostFunction::ext_crypto_ecdsa_sign_prehashed_version_1 => { | 294 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 295 | | } | 296 | | HostFunction::ext_crypto_ecdsa_verify_prehashed_version_1 => { | 297 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I32) | 298 | | } | 299 | | HostFunction::ext_crypto_ecdsa_batch_verify_version_1 => { | 300 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 301 | | } | 302 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_version_1 => { | 303 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) | 304 | | } | 305 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_version_2 => { | 306 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) | 307 | | } | 308 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_compressed_version_1 => { | 309 | 1 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) | 310 | | } | 311 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_compressed_version_2 => { | 312 | 9 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) | 313 | | } | 314 | 9 | HostFunction::ext_crypto_start_batch_verify_version_1 => crate::signature!(() => ()), | 315 | | HostFunction::ext_crypto_finish_batch_verify_version_1 => { | 316 | 9 | crate::signature!(() => vm::ValueType::I32) | 317 | | } | 318 | | HostFunction::ext_hashing_keccak_256_version_1 => { | 319 | 9 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 320 | | } | 321 | | HostFunction::ext_hashing_keccak_512_version_1 => { | 322 | 2 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 323 | | } | 324 | | HostFunction::ext_hashing_sha2_256_version_1 => { | 325 | 7 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 326 | | } | 327 | | HostFunction::ext_hashing_blake2_128_version_1 => { | 328 | 10 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 329 | | } | 330 | | HostFunction::ext_hashing_blake2_256_version_1 => { | 331 | 12 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 332 | | } | 333 | | HostFunction::ext_hashing_twox_64_version_1 => { | 334 | 12 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 335 | | } | 336 | | HostFunction::ext_hashing_twox_128_version_1 => { | 337 | 12 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 338 | | } | 339 | | HostFunction::ext_hashing_twox_256_version_1 => { | 340 | 2 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 341 | | } | 342 | | HostFunction::ext_offchain_index_set_version_1 => { | 343 | 6 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 344 | | } | 345 | | HostFunction::ext_offchain_index_clear_version_1 => { | 346 | 0 | crate::signature!((vm::ValueType::I64) => ()) | 347 | | } | 348 | | HostFunction::ext_offchain_is_validator_version_1 => { | 349 | 6 | crate::signature!(() => vm::ValueType::I32) | 350 | | } | 351 | | HostFunction::ext_offchain_submit_transaction_version_1 => { | 352 | 6 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 353 | | } | 354 | | HostFunction::ext_offchain_network_state_version_1 => { | 355 | 6 | crate::signature!(() => vm::ValueType::I64) | 356 | | } | 357 | | HostFunction::ext_offchain_timestamp_version_1 => { | 358 | 3 | crate::signature!(() => vm::ValueType::I64) | 359 | | } | 360 | | HostFunction::ext_offchain_sleep_until_version_1 => { | 361 | 0 | crate::signature!((vm::ValueType::I64) => ()) | 362 | | } | 363 | | HostFunction::ext_offchain_random_seed_version_1 => { | 364 | 6 | crate::signature!(() => vm::ValueType::I32) | 365 | | } | 366 | | HostFunction::ext_offchain_local_storage_set_version_1 => { | 367 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => ()) | 368 | | } | 369 | | HostFunction::ext_offchain_local_storage_compare_and_set_version_1 => { | 370 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 371 | | } | 372 | | HostFunction::ext_offchain_local_storage_get_version_1 => { | 373 | 6 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 374 | | } | 375 | | HostFunction::ext_offchain_local_storage_clear_version_1 => { | 376 | 3 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => ()) | 377 | | } | 378 | | HostFunction::ext_offchain_http_request_start_version_1 => { | 379 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 380 | | } | 381 | | HostFunction::ext_offchain_http_request_add_header_version_1 => { | 382 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 383 | | } | 384 | | HostFunction::ext_offchain_http_request_write_body_version_1 => { | 385 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 386 | | } | 387 | | HostFunction::ext_offchain_http_response_wait_version_1 => { | 388 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 389 | | } | 390 | | HostFunction::ext_offchain_http_response_headers_version_1 => { | 391 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 392 | | } | 393 | | HostFunction::ext_offchain_http_response_read_body_version_1 => { | 394 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 395 | | } | 396 | | HostFunction::ext_trie_blake2_256_root_version_1 => { | 397 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 398 | | } | 399 | | HostFunction::ext_trie_blake2_256_root_version_2 => { | 400 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 401 | | } | 402 | | HostFunction::ext_trie_blake2_256_ordered_root_version_1 => { | 403 | 1 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 404 | | } | 405 | | HostFunction::ext_trie_blake2_256_ordered_root_version_2 => { | 406 | 9 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 407 | | } | 408 | | HostFunction::ext_trie_keccak_256_root_version_1 => { | 409 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 410 | | } | 411 | | HostFunction::ext_trie_keccak_256_root_version_2 => { | 412 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 413 | | } | 414 | | HostFunction::ext_trie_keccak_256_ordered_root_version_1 => { | 415 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 416 | | } | 417 | | HostFunction::ext_trie_keccak_256_ordered_root_version_2 => { | 418 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 419 | | } | 420 | | HostFunction::ext_trie_blake2_256_verify_proof_version_1 => { | 421 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 422 | | } | 423 | | HostFunction::ext_trie_blake2_256_verify_proof_version_2 => { | 424 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 425 | | } | 426 | | HostFunction::ext_trie_keccak_256_verify_proof_version_1 => { | 427 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 428 | | } | 429 | | HostFunction::ext_trie_keccak_256_verify_proof_version_2 => { | 430 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 431 | | } | 432 | | HostFunction::ext_misc_print_num_version_1 => { | 433 | 4 | crate::signature!((vm::ValueType::I64) => ()) | 434 | | } | 435 | | HostFunction::ext_misc_print_utf8_version_1 => { | 436 | 10 | crate::signature!((vm::ValueType::I64) => ()) | 437 | | } | 438 | | HostFunction::ext_misc_print_hex_version_1 => { | 439 | 10 | crate::signature!((vm::ValueType::I64) => ()) | 440 | | } | 441 | | HostFunction::ext_misc_runtime_version_version_1 => { | 442 | 10 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 443 | | } | 444 | | HostFunction::ext_allocator_malloc_version_1 => { | 445 | 14 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I32) | 446 | | } | 447 | | HostFunction::ext_allocator_free_version_1 => { | 448 | 10 | crate::signature!((vm::ValueType::I32) => ()) | 449 | | } | 450 | | HostFunction::ext_logging_log_version_1 => { | 451 | 10 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => ()) | 452 | | } | 453 | | HostFunction::ext_logging_max_level_version_1 => { | 454 | 9 | crate::signature!(() => vm::ValueType::I32) | 455 | | } | 456 | | HostFunction::ext_panic_handler_abort_on_panic_version_1 => { | 457 | 0 | crate::signature!((vm::ValueType::I64) => ()) | 458 | | } | 459 | | } | 460 | 446 | } |
_RNvMNtNtNtCseuYC0Zibziv_7smoldot8executor4host9functionsNtB2_12HostFunction9signature Line | Count | Source | 164 | 2.49k | pub fn signature(&self) -> vm::Signature { | 165 | 2.49k | match *self { | 166 | | HostFunction::ext_storage_set_version_1 => { | 167 | 86 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 168 | | } | 169 | | HostFunction::ext_storage_get_version_1 => { | 170 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 171 | | } | 172 | | HostFunction::ext_storage_read_version_1 => { | 173 | 86 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I64) | 174 | | } | 175 | | HostFunction::ext_storage_clear_version_1 => { | 176 | 86 | crate::signature!((vm::ValueType::I64) => ()) | 177 | | } | 178 | | HostFunction::ext_storage_exists_version_1 => { | 179 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 180 | | } | 181 | | HostFunction::ext_storage_clear_prefix_version_1 => { | 182 | 0 | crate::signature!((vm::ValueType::I64) => ()) | 183 | | } | 184 | | HostFunction::ext_storage_clear_prefix_version_2 => { | 185 | 86 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 186 | | } | 187 | 86 | HostFunction::ext_storage_root_version_1 => crate::signature!(() => vm::ValueType::I64), | 188 | | HostFunction::ext_storage_root_version_2 => { | 189 | 0 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I64) | 190 | | } | 191 | | HostFunction::ext_storage_changes_root_version_1 => { | 192 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 193 | | } | 194 | | HostFunction::ext_storage_next_key_version_1 => { | 195 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 196 | | } | 197 | | HostFunction::ext_storage_append_version_1 => { | 198 | 86 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 199 | | } | 200 | 0 | HostFunction::ext_storage_start_transaction_version_1 => crate::signature!(() => ()), | 201 | 0 | HostFunction::ext_storage_rollback_transaction_version_1 => crate::signature!(() => ()), | 202 | 0 | HostFunction::ext_storage_commit_transaction_version_1 => crate::signature!(() => ()), | 203 | | HostFunction::ext_storage_proof_size_storage_proof_size_version_1 => { | 204 | 0 | crate::signature!(() => vm::ValueType::I64) | 205 | | } | 206 | | HostFunction::ext_default_child_storage_get_version_1 => { | 207 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 208 | | } | 209 | | HostFunction::ext_default_child_storage_read_version_1 => { | 210 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I64) | 211 | | } | 212 | | HostFunction::ext_default_child_storage_storage_kill_version_1 => { | 213 | 0 | crate::signature!((vm::ValueType::I64) => ()) | 214 | | } | 215 | | HostFunction::ext_default_child_storage_storage_kill_version_2 => { | 216 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 217 | | } | 218 | | HostFunction::ext_default_child_storage_storage_kill_version_3 => { | 219 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 220 | | } | 221 | | HostFunction::ext_default_child_storage_clear_prefix_version_1 => { | 222 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 223 | | } | 224 | | HostFunction::ext_default_child_storage_clear_prefix_version_2 => { | 225 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 226 | | } | 227 | | HostFunction::ext_default_child_storage_set_version_1 => { | 228 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => ()) | 229 | | } | 230 | | HostFunction::ext_default_child_storage_clear_version_1 => { | 231 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 232 | | } | 233 | | HostFunction::ext_default_child_storage_exists_version_1 => { | 234 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 235 | | } | 236 | | HostFunction::ext_default_child_storage_next_key_version_1 => { | 237 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 238 | | } | 239 | | HostFunction::ext_default_child_storage_root_version_1 => { | 240 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 241 | | } | 242 | | HostFunction::ext_default_child_storage_root_version_2 => { | 243 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I64) | 244 | | } | 245 | | HostFunction::ext_crypto_ed25519_public_keys_version_1 => { | 246 | 0 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I64) | 247 | | } | 248 | | HostFunction::ext_crypto_ed25519_generate_version_1 => { | 249 | 86 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I32) | 250 | | } | 251 | | HostFunction::ext_crypto_ed25519_sign_version_1 => { | 252 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 253 | | } | 254 | | HostFunction::ext_crypto_ed25519_verify_version_1 => { | 255 | 86 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 256 | | } | 257 | | HostFunction::ext_crypto_ed25519_batch_verify_version_1 => { | 258 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 259 | | } | 260 | | HostFunction::ext_crypto_sr25519_public_keys_version_1 => { | 261 | 0 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I64) | 262 | | } | 263 | | HostFunction::ext_crypto_sr25519_generate_version_1 => { | 264 | 86 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I32) | 265 | | } | 266 | | HostFunction::ext_crypto_sr25519_sign_version_1 => { | 267 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 268 | | } | 269 | | HostFunction::ext_crypto_sr25519_verify_version_1 => { | 270 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 271 | | } | 272 | | HostFunction::ext_crypto_sr25519_verify_version_2 => { | 273 | 86 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 274 | | } | 275 | | HostFunction::ext_crypto_sr25519_batch_verify_version_1 => { | 276 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 277 | | } | 278 | | HostFunction::ext_crypto_ecdsa_generate_version_1 => { | 279 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I32) | 280 | | } | 281 | | HostFunction::ext_crypto_ecdsa_sign_version_1 => { | 282 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 283 | | } | 284 | | HostFunction::ext_crypto_ecdsa_public_keys_version_1 => { | 285 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 286 | | } | 287 | | HostFunction::ext_crypto_ecdsa_verify_version_1 => { | 288 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 289 | | } | 290 | | HostFunction::ext_crypto_ecdsa_verify_version_2 => { | 291 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 292 | | } | 293 | | HostFunction::ext_crypto_ecdsa_sign_prehashed_version_1 => { | 294 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 295 | | } | 296 | | HostFunction::ext_crypto_ecdsa_verify_prehashed_version_1 => { | 297 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I32) | 298 | | } | 299 | | HostFunction::ext_crypto_ecdsa_batch_verify_version_1 => { | 300 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 301 | | } | 302 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_version_1 => { | 303 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) | 304 | | } | 305 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_version_2 => { | 306 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) | 307 | | } | 308 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_compressed_version_1 => { | 309 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) | 310 | | } | 311 | | HostFunction::ext_crypto_secp256k1_ecdsa_recover_compressed_version_2 => { | 312 | 86 | crate::signature!((vm::ValueType::I32, vm::ValueType::I32) => vm::ValueType::I64) | 313 | | } | 314 | 86 | HostFunction::ext_crypto_start_batch_verify_version_1 => crate::signature!(() => ()), | 315 | | HostFunction::ext_crypto_finish_batch_verify_version_1 => { | 316 | 86 | crate::signature!(() => vm::ValueType::I32) | 317 | | } | 318 | | HostFunction::ext_hashing_keccak_256_version_1 => { | 319 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 320 | | } | 321 | | HostFunction::ext_hashing_keccak_512_version_1 => { | 322 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 323 | | } | 324 | | HostFunction::ext_hashing_sha2_256_version_1 => { | 325 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 326 | | } | 327 | | HostFunction::ext_hashing_blake2_128_version_1 => { | 328 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 329 | | } | 330 | | HostFunction::ext_hashing_blake2_256_version_1 => { | 331 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 332 | | } | 333 | | HostFunction::ext_hashing_twox_64_version_1 => { | 334 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 335 | | } | 336 | | HostFunction::ext_hashing_twox_128_version_1 => { | 337 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 338 | | } | 339 | | HostFunction::ext_hashing_twox_256_version_1 => { | 340 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 341 | | } | 342 | | HostFunction::ext_offchain_index_set_version_1 => { | 343 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => ()) | 344 | | } | 345 | | HostFunction::ext_offchain_index_clear_version_1 => { | 346 | 0 | crate::signature!((vm::ValueType::I64) => ()) | 347 | | } | 348 | | HostFunction::ext_offchain_is_validator_version_1 => { | 349 | 0 | crate::signature!(() => vm::ValueType::I32) | 350 | | } | 351 | | HostFunction::ext_offchain_submit_transaction_version_1 => { | 352 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 353 | | } | 354 | | HostFunction::ext_offchain_network_state_version_1 => { | 355 | 0 | crate::signature!(() => vm::ValueType::I64) | 356 | | } | 357 | | HostFunction::ext_offchain_timestamp_version_1 => { | 358 | 0 | crate::signature!(() => vm::ValueType::I64) | 359 | | } | 360 | | HostFunction::ext_offchain_sleep_until_version_1 => { | 361 | 0 | crate::signature!((vm::ValueType::I64) => ()) | 362 | | } | 363 | | HostFunction::ext_offchain_random_seed_version_1 => { | 364 | 0 | crate::signature!(() => vm::ValueType::I32) | 365 | | } | 366 | | HostFunction::ext_offchain_local_storage_set_version_1 => { | 367 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => ()) | 368 | | } | 369 | | HostFunction::ext_offchain_local_storage_compare_and_set_version_1 => { | 370 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 371 | | } | 372 | | HostFunction::ext_offchain_local_storage_get_version_1 => { | 373 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => vm::ValueType::I64) | 374 | | } | 375 | | HostFunction::ext_offchain_local_storage_clear_version_1 => { | 376 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64) => ()) | 377 | | } | 378 | | HostFunction::ext_offchain_http_request_start_version_1 => { | 379 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 380 | | } | 381 | | HostFunction::ext_offchain_http_request_add_header_version_1 => { | 382 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 383 | | } | 384 | | HostFunction::ext_offchain_http_request_write_body_version_1 => { | 385 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 386 | | } | 387 | | HostFunction::ext_offchain_http_response_wait_version_1 => { | 388 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 389 | | } | 390 | | HostFunction::ext_offchain_http_response_headers_version_1 => { | 391 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 392 | | } | 393 | | HostFunction::ext_offchain_http_response_read_body_version_1 => { | 394 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I64) | 395 | | } | 396 | | HostFunction::ext_trie_blake2_256_root_version_1 => { | 397 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 398 | | } | 399 | | HostFunction::ext_trie_blake2_256_root_version_2 => { | 400 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 401 | | } | 402 | | HostFunction::ext_trie_blake2_256_ordered_root_version_1 => { | 403 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 404 | | } | 405 | | HostFunction::ext_trie_blake2_256_ordered_root_version_2 => { | 406 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 407 | | } | 408 | | HostFunction::ext_trie_keccak_256_root_version_1 => { | 409 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 410 | | } | 411 | | HostFunction::ext_trie_keccak_256_root_version_2 => { | 412 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 413 | | } | 414 | | HostFunction::ext_trie_keccak_256_ordered_root_version_1 => { | 415 | 0 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I32) | 416 | | } | 417 | | HostFunction::ext_trie_keccak_256_ordered_root_version_2 => { | 418 | 0 | crate::signature!((vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 419 | | } | 420 | | HostFunction::ext_trie_blake2_256_verify_proof_version_1 => { | 421 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 422 | | } | 423 | | HostFunction::ext_trie_blake2_256_verify_proof_version_2 => { | 424 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 425 | | } | 426 | | HostFunction::ext_trie_keccak_256_verify_proof_version_1 => { | 427 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64) => vm::ValueType::I32) | 428 | | } | 429 | | HostFunction::ext_trie_keccak_256_verify_proof_version_2 => { | 430 | 0 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I64, vm::ValueType::I32) => vm::ValueType::I32) | 431 | | } | 432 | | HostFunction::ext_misc_print_num_version_1 => { | 433 | 0 | crate::signature!((vm::ValueType::I64) => ()) | 434 | | } | 435 | | HostFunction::ext_misc_print_utf8_version_1 => { | 436 | 86 | crate::signature!((vm::ValueType::I64) => ()) | 437 | | } | 438 | | HostFunction::ext_misc_print_hex_version_1 => { | 439 | 86 | crate::signature!((vm::ValueType::I64) => ()) | 440 | | } | 441 | | HostFunction::ext_misc_runtime_version_version_1 => { | 442 | 86 | crate::signature!((vm::ValueType::I64) => vm::ValueType::I64) | 443 | | } | 444 | | HostFunction::ext_allocator_malloc_version_1 => { | 445 | 86 | crate::signature!((vm::ValueType::I32) => vm::ValueType::I32) | 446 | | } | 447 | | HostFunction::ext_allocator_free_version_1 => { | 448 | 86 | crate::signature!((vm::ValueType::I32) => ()) | 449 | | } | 450 | | HostFunction::ext_logging_log_version_1 => { | 451 | 86 | crate::signature!((vm::ValueType::I32, vm::ValueType::I64, vm::ValueType::I64) => ()) | 452 | | } | 453 | | HostFunction::ext_logging_max_level_version_1 => { | 454 | 86 | crate::signature!(() => vm::ValueType::I32) | 455 | | } | 456 | | HostFunction::ext_panic_handler_abort_on_panic_version_1 => { | 457 | 0 | crate::signature!((vm::ValueType::I64) => ()) | 458 | | } | 459 | | } | 460 | 2.49k | } |
|
461 | | } |