1use leo_span::{Symbol, sym};
18
19#[derive(Clone, Debug, PartialEq, Eq)]
21pub enum CoreFunction {
22 BHP256CommitToAddress,
23 BHP256CommitToField,
24 BHP256CommitToGroup,
25 BHP256HashToAddress,
26 BHP256HashToField,
27 BHP256HashToGroup,
28 BHP256HashToI8,
29 BHP256HashToI16,
30 BHP256HashToI32,
31 BHP256HashToI64,
32 BHP256HashToI128,
33 BHP256HashToU8,
34 BHP256HashToU16,
35 BHP256HashToU32,
36 BHP256HashToU64,
37 BHP256HashToU128,
38 BHP256HashToScalar,
39
40 BHP512CommitToAddress,
41 BHP512CommitToField,
42 BHP512CommitToGroup,
43 BHP512HashToAddress,
44 BHP512HashToField,
45 BHP512HashToGroup,
46 BHP512HashToI8,
47 BHP512HashToI16,
48 BHP512HashToI32,
49 BHP512HashToI64,
50 BHP512HashToI128,
51 BHP512HashToU8,
52 BHP512HashToU16,
53 BHP512HashToU32,
54 BHP512HashToU64,
55 BHP512HashToU128,
56 BHP512HashToScalar,
57
58 BHP768CommitToAddress,
59 BHP768CommitToField,
60 BHP768CommitToGroup,
61 BHP768HashToAddress,
62 BHP768HashToField,
63 BHP768HashToGroup,
64 BHP768HashToI8,
65 BHP768HashToI16,
66 BHP768HashToI32,
67 BHP768HashToI64,
68 BHP768HashToI128,
69 BHP768HashToU8,
70 BHP768HashToU16,
71 BHP768HashToU32,
72 BHP768HashToU64,
73 BHP768HashToU128,
74 BHP768HashToScalar,
75
76 BHP1024CommitToAddress,
77 BHP1024CommitToField,
78 BHP1024CommitToGroup,
79 BHP1024HashToAddress,
80 BHP1024HashToField,
81 BHP1024HashToGroup,
82 BHP1024HashToI8,
83 BHP1024HashToI16,
84 BHP1024HashToI32,
85 BHP1024HashToI64,
86 BHP1024HashToI128,
87 BHP1024HashToU8,
88 BHP1024HashToU16,
89 BHP1024HashToU32,
90 BHP1024HashToU64,
91 BHP1024HashToU128,
92 BHP1024HashToScalar,
93
94 ChaChaRandAddress,
95 ChaChaRandBool,
96 ChaChaRandField,
97 ChaChaRandGroup,
98 ChaChaRandI8,
99 ChaChaRandI16,
100 ChaChaRandI32,
101 ChaChaRandI64,
102 ChaChaRandI128,
103 ChaChaRandU8,
104 ChaChaRandU16,
105 ChaChaRandU32,
106 ChaChaRandU64,
107 ChaChaRandU128,
108 ChaChaRandScalar,
109
110 Keccak256HashToAddress,
111 Keccak256HashToField,
112 Keccak256HashToGroup,
113 Keccak256HashToI8,
114 Keccak256HashToI16,
115 Keccak256HashToI32,
116 Keccak256HashToI64,
117 Keccak256HashToI128,
118 Keccak256HashToU8,
119 Keccak256HashToU16,
120 Keccak256HashToU32,
121 Keccak256HashToU64,
122 Keccak256HashToU128,
123 Keccak256HashToScalar,
124
125 Keccak384HashToAddress,
126 Keccak384HashToField,
127 Keccak384HashToGroup,
128 Keccak384HashToI8,
129 Keccak384HashToI16,
130 Keccak384HashToI32,
131 Keccak384HashToI64,
132 Keccak384HashToI128,
133 Keccak384HashToU8,
134 Keccak384HashToU16,
135 Keccak384HashToU32,
136 Keccak384HashToU64,
137 Keccak384HashToU128,
138 Keccak384HashToScalar,
139
140 Keccak512HashToAddress,
141 Keccak512HashToField,
142 Keccak512HashToGroup,
143 Keccak512HashToI8,
144 Keccak512HashToI16,
145 Keccak512HashToI32,
146 Keccak512HashToI64,
147 Keccak512HashToI128,
148 Keccak512HashToU8,
149 Keccak512HashToU16,
150 Keccak512HashToU32,
151 Keccak512HashToU64,
152 Keccak512HashToU128,
153 Keccak512HashToScalar,
154
155 Pedersen64CommitToAddress,
156 Pedersen64CommitToField,
157 Pedersen64CommitToGroup,
158 Pedersen64HashToAddress,
159 Pedersen64HashToField,
160 Pedersen64HashToGroup,
161 Pedersen64HashToI8,
162 Pedersen64HashToI16,
163 Pedersen64HashToI32,
164 Pedersen64HashToI64,
165 Pedersen64HashToI128,
166 Pedersen64HashToU8,
167 Pedersen64HashToU16,
168 Pedersen64HashToU32,
169 Pedersen64HashToU64,
170 Pedersen64HashToU128,
171 Pedersen64HashToScalar,
172
173 Pedersen128CommitToAddress,
174 Pedersen128CommitToField,
175 Pedersen128CommitToGroup,
176 Pedersen128HashToAddress,
177 Pedersen128HashToField,
178 Pedersen128HashToGroup,
179 Pedersen128HashToI8,
180 Pedersen128HashToI16,
181 Pedersen128HashToI32,
182 Pedersen128HashToI64,
183 Pedersen128HashToI128,
184 Pedersen128HashToU8,
185 Pedersen128HashToU16,
186 Pedersen128HashToU32,
187 Pedersen128HashToU64,
188 Pedersen128HashToU128,
189 Pedersen128HashToScalar,
190
191 Poseidon2HashToAddress,
192 Poseidon2HashToField,
193 Poseidon2HashToGroup,
194 Poseidon2HashToI8,
195 Poseidon2HashToI16,
196 Poseidon2HashToI32,
197 Poseidon2HashToI64,
198 Poseidon2HashToI128,
199 Poseidon2HashToU8,
200 Poseidon2HashToU16,
201 Poseidon2HashToU32,
202 Poseidon2HashToU64,
203 Poseidon2HashToU128,
204 Poseidon2HashToScalar,
205
206 Poseidon4HashToAddress,
207 Poseidon4HashToField,
208 Poseidon4HashToGroup,
209 Poseidon4HashToI8,
210 Poseidon4HashToI16,
211 Poseidon4HashToI32,
212 Poseidon4HashToI64,
213 Poseidon4HashToI128,
214 Poseidon4HashToU8,
215 Poseidon4HashToU16,
216 Poseidon4HashToU32,
217 Poseidon4HashToU64,
218 Poseidon4HashToU128,
219 Poseidon4HashToScalar,
220
221 Poseidon8HashToAddress,
222 Poseidon8HashToField,
223 Poseidon8HashToGroup,
224 Poseidon8HashToI8,
225 Poseidon8HashToI16,
226 Poseidon8HashToI32,
227 Poseidon8HashToI64,
228 Poseidon8HashToI128,
229 Poseidon8HashToU8,
230 Poseidon8HashToU16,
231 Poseidon8HashToU32,
232 Poseidon8HashToU64,
233 Poseidon8HashToU128,
234 Poseidon8HashToScalar,
235
236 SHA3_256HashToAddress,
237 SHA3_256HashToField,
238 SHA3_256HashToGroup,
239 SHA3_256HashToI8,
240 SHA3_256HashToI16,
241 SHA3_256HashToI32,
242 SHA3_256HashToI64,
243 SHA3_256HashToI128,
244 SHA3_256HashToU8,
245 SHA3_256HashToU16,
246 SHA3_256HashToU32,
247 SHA3_256HashToU64,
248 SHA3_256HashToU128,
249 SHA3_256HashToScalar,
250
251 SHA3_384HashToAddress,
252 SHA3_384HashToField,
253 SHA3_384HashToGroup,
254 SHA3_384HashToI8,
255 SHA3_384HashToI16,
256 SHA3_384HashToI32,
257 SHA3_384HashToI64,
258 SHA3_384HashToI128,
259 SHA3_384HashToU8,
260 SHA3_384HashToU16,
261 SHA3_384HashToU32,
262 SHA3_384HashToU64,
263 SHA3_384HashToU128,
264 SHA3_384HashToScalar,
265
266 SHA3_512HashToAddress,
267 SHA3_512HashToField,
268 SHA3_512HashToGroup,
269 SHA3_512HashToI8,
270 SHA3_512HashToI16,
271 SHA3_512HashToI32,
272 SHA3_512HashToI64,
273 SHA3_512HashToI128,
274 SHA3_512HashToU8,
275 SHA3_512HashToU16,
276 SHA3_512HashToU32,
277 SHA3_512HashToU64,
278 SHA3_512HashToU128,
279 SHA3_512HashToScalar,
280
281 MappingGet,
282 MappingGetOrUse,
283 MappingSet,
284 MappingRemove,
285 MappingContains,
286
287 GroupToXCoordinate,
288 GroupToYCoordinate,
289
290 SignatureVerify,
291 FutureAwait,
292
293 CheatCodePrintMapping,
294 CheatCodeSetBlockHeight,
295}
296
297impl CoreFunction {
298 pub fn from_symbols(module: Symbol, function: Symbol) -> Option<Self> {
300 Some(match (module, function) {
301 (sym::BHP256, sym::commit_to_address) => Self::BHP256CommitToAddress,
302 (sym::BHP256, sym::commit_to_field) => Self::BHP256CommitToField,
303 (sym::BHP256, sym::commit_to_group) => Self::BHP256CommitToGroup,
304
305 (sym::BHP256, sym::hash_to_address) => Self::BHP256HashToAddress,
306 (sym::BHP256, sym::hash_to_field) => Self::BHP256HashToField,
307 (sym::BHP256, sym::hash_to_group) => Self::BHP256HashToGroup,
308 (sym::BHP256, sym::hash_to_i8) => Self::BHP256HashToI8,
309 (sym::BHP256, sym::hash_to_i16) => Self::BHP256HashToI16,
310 (sym::BHP256, sym::hash_to_i32) => Self::BHP256HashToI32,
311 (sym::BHP256, sym::hash_to_i64) => Self::BHP256HashToI64,
312 (sym::BHP256, sym::hash_to_i128) => Self::BHP256HashToI128,
313 (sym::BHP256, sym::hash_to_u8) => Self::BHP256HashToU8,
314 (sym::BHP256, sym::hash_to_u16) => Self::BHP256HashToU16,
315 (sym::BHP256, sym::hash_to_u32) => Self::BHP256HashToU32,
316 (sym::BHP256, sym::hash_to_u64) => Self::BHP256HashToU64,
317 (sym::BHP256, sym::hash_to_u128) => Self::BHP256HashToU128,
318 (sym::BHP256, sym::hash_to_scalar) => Self::BHP256HashToScalar,
319
320 (sym::BHP512, sym::commit_to_address) => Self::BHP512CommitToAddress,
321 (sym::BHP512, sym::commit_to_field) => Self::BHP512CommitToField,
322 (sym::BHP512, sym::commit_to_group) => Self::BHP512CommitToGroup,
323 (sym::BHP512, sym::hash_to_address) => Self::BHP512HashToAddress,
324 (sym::BHP512, sym::hash_to_field) => Self::BHP512HashToField,
325 (sym::BHP512, sym::hash_to_group) => Self::BHP512HashToGroup,
326 (sym::BHP512, sym::hash_to_i8) => Self::BHP512HashToI8,
327 (sym::BHP512, sym::hash_to_i16) => Self::BHP512HashToI16,
328 (sym::BHP512, sym::hash_to_i32) => Self::BHP512HashToI32,
329 (sym::BHP512, sym::hash_to_i64) => Self::BHP512HashToI64,
330 (sym::BHP512, sym::hash_to_i128) => Self::BHP512HashToI128,
331 (sym::BHP512, sym::hash_to_u8) => Self::BHP512HashToU8,
332 (sym::BHP512, sym::hash_to_u16) => Self::BHP512HashToU16,
333 (sym::BHP512, sym::hash_to_u32) => Self::BHP512HashToU32,
334 (sym::BHP512, sym::hash_to_u64) => Self::BHP512HashToU64,
335 (sym::BHP512, sym::hash_to_u128) => Self::BHP512HashToU128,
336 (sym::BHP512, sym::hash_to_scalar) => Self::BHP512HashToScalar,
337
338 (sym::BHP768, sym::commit_to_address) => Self::BHP768CommitToAddress,
339 (sym::BHP768, sym::commit_to_field) => Self::BHP768CommitToField,
340 (sym::BHP768, sym::commit_to_group) => Self::BHP768CommitToGroup,
341 (sym::BHP768, sym::hash_to_address) => Self::BHP768HashToAddress,
342 (sym::BHP768, sym::hash_to_field) => Self::BHP768HashToField,
343 (sym::BHP768, sym::hash_to_group) => Self::BHP768HashToGroup,
344 (sym::BHP768, sym::hash_to_i8) => Self::BHP768HashToI8,
345 (sym::BHP768, sym::hash_to_i16) => Self::BHP768HashToI16,
346 (sym::BHP768, sym::hash_to_i32) => Self::BHP768HashToI32,
347 (sym::BHP768, sym::hash_to_i64) => Self::BHP768HashToI64,
348 (sym::BHP768, sym::hash_to_i128) => Self::BHP768HashToI128,
349 (sym::BHP768, sym::hash_to_u8) => Self::BHP768HashToU8,
350 (sym::BHP768, sym::hash_to_u16) => Self::BHP768HashToU16,
351 (sym::BHP768, sym::hash_to_u32) => Self::BHP768HashToU32,
352 (sym::BHP768, sym::hash_to_u64) => Self::BHP768HashToU64,
353 (sym::BHP768, sym::hash_to_u128) => Self::BHP768HashToU128,
354 (sym::BHP768, sym::hash_to_scalar) => Self::BHP768HashToScalar,
355
356 (sym::BHP1024, sym::commit_to_address) => Self::BHP1024CommitToAddress,
357 (sym::BHP1024, sym::commit_to_field) => Self::BHP1024CommitToField,
358 (sym::BHP1024, sym::commit_to_group) => Self::BHP1024CommitToGroup,
359 (sym::BHP1024, sym::hash_to_address) => Self::BHP1024HashToAddress,
360 (sym::BHP1024, sym::hash_to_field) => Self::BHP1024HashToField,
361 (sym::BHP1024, sym::hash_to_group) => Self::BHP1024HashToGroup,
362 (sym::BHP1024, sym::hash_to_i8) => Self::BHP1024HashToI8,
363 (sym::BHP1024, sym::hash_to_i16) => Self::BHP1024HashToI16,
364 (sym::BHP1024, sym::hash_to_i32) => Self::BHP1024HashToI32,
365 (sym::BHP1024, sym::hash_to_i64) => Self::BHP1024HashToI64,
366 (sym::BHP1024, sym::hash_to_i128) => Self::BHP1024HashToI128,
367 (sym::BHP1024, sym::hash_to_u8) => Self::BHP1024HashToU8,
368 (sym::BHP1024, sym::hash_to_u16) => Self::BHP1024HashToU16,
369 (sym::BHP1024, sym::hash_to_u32) => Self::BHP1024HashToU32,
370 (sym::BHP1024, sym::hash_to_u64) => Self::BHP1024HashToU64,
371 (sym::BHP1024, sym::hash_to_u128) => Self::BHP1024HashToU128,
372 (sym::BHP1024, sym::hash_to_scalar) => Self::BHP1024HashToScalar,
373
374 (sym::ChaCha, sym::rand_address) => Self::ChaChaRandAddress,
375 (sym::ChaCha, sym::rand_bool) => Self::ChaChaRandBool,
376 (sym::ChaCha, sym::rand_field) => Self::ChaChaRandField,
377 (sym::ChaCha, sym::rand_group) => Self::ChaChaRandGroup,
378 (sym::ChaCha, sym::rand_i8) => Self::ChaChaRandI8,
379 (sym::ChaCha, sym::rand_i16) => Self::ChaChaRandI16,
380 (sym::ChaCha, sym::rand_i32) => Self::ChaChaRandI32,
381 (sym::ChaCha, sym::rand_i64) => Self::ChaChaRandI64,
382 (sym::ChaCha, sym::rand_i128) => Self::ChaChaRandI128,
383 (sym::ChaCha, sym::rand_scalar) => Self::ChaChaRandScalar,
384 (sym::ChaCha, sym::rand_u8) => Self::ChaChaRandU8,
385 (sym::ChaCha, sym::rand_u16) => Self::ChaChaRandU16,
386 (sym::ChaCha, sym::rand_u32) => Self::ChaChaRandU32,
387 (sym::ChaCha, sym::rand_u64) => Self::ChaChaRandU64,
388 (sym::ChaCha, sym::rand_u128) => Self::ChaChaRandU128,
389
390 (sym::Keccak256, sym::hash_to_address) => Self::Keccak256HashToAddress,
391 (sym::Keccak256, sym::hash_to_field) => Self::Keccak256HashToField,
392 (sym::Keccak256, sym::hash_to_group) => Self::Keccak256HashToGroup,
393 (sym::Keccak256, sym::hash_to_i8) => Self::Keccak256HashToI8,
394 (sym::Keccak256, sym::hash_to_i16) => Self::Keccak256HashToI16,
395 (sym::Keccak256, sym::hash_to_i32) => Self::Keccak256HashToI32,
396 (sym::Keccak256, sym::hash_to_i64) => Self::Keccak256HashToI64,
397 (sym::Keccak256, sym::hash_to_i128) => Self::Keccak256HashToI128,
398 (sym::Keccak256, sym::hash_to_u8) => Self::Keccak256HashToU8,
399 (sym::Keccak256, sym::hash_to_u16) => Self::Keccak256HashToU16,
400 (sym::Keccak256, sym::hash_to_u32) => Self::Keccak256HashToU32,
401 (sym::Keccak256, sym::hash_to_u64) => Self::Keccak256HashToU64,
402 (sym::Keccak256, sym::hash_to_u128) => Self::Keccak256HashToU128,
403 (sym::Keccak256, sym::hash_to_scalar) => Self::Keccak256HashToScalar,
404
405 (sym::Keccak384, sym::hash_to_address) => Self::Keccak384HashToAddress,
406 (sym::Keccak384, sym::hash_to_field) => Self::Keccak384HashToField,
407 (sym::Keccak384, sym::hash_to_group) => Self::Keccak384HashToGroup,
408 (sym::Keccak384, sym::hash_to_i8) => Self::Keccak384HashToI8,
409 (sym::Keccak384, sym::hash_to_i16) => Self::Keccak384HashToI16,
410 (sym::Keccak384, sym::hash_to_i32) => Self::Keccak384HashToI32,
411 (sym::Keccak384, sym::hash_to_i64) => Self::Keccak384HashToI64,
412 (sym::Keccak384, sym::hash_to_i128) => Self::Keccak384HashToI128,
413 (sym::Keccak384, sym::hash_to_u8) => Self::Keccak384HashToU8,
414 (sym::Keccak384, sym::hash_to_u16) => Self::Keccak384HashToU16,
415 (sym::Keccak384, sym::hash_to_u32) => Self::Keccak384HashToU32,
416 (sym::Keccak384, sym::hash_to_u64) => Self::Keccak384HashToU64,
417 (sym::Keccak384, sym::hash_to_u128) => Self::Keccak384HashToU128,
418 (sym::Keccak384, sym::hash_to_scalar) => Self::Keccak384HashToScalar,
419
420 (sym::Keccak512, sym::hash_to_address) => Self::Keccak512HashToAddress,
421 (sym::Keccak512, sym::hash_to_field) => Self::Keccak512HashToField,
422 (sym::Keccak512, sym::hash_to_group) => Self::Keccak512HashToGroup,
423 (sym::Keccak512, sym::hash_to_i8) => Self::Keccak512HashToI8,
424 (sym::Keccak512, sym::hash_to_i16) => Self::Keccak512HashToI16,
425 (sym::Keccak512, sym::hash_to_i32) => Self::Keccak512HashToI32,
426 (sym::Keccak512, sym::hash_to_i64) => Self::Keccak512HashToI64,
427 (sym::Keccak512, sym::hash_to_i128) => Self::Keccak512HashToI128,
428 (sym::Keccak512, sym::hash_to_u8) => Self::Keccak512HashToU8,
429 (sym::Keccak512, sym::hash_to_u16) => Self::Keccak512HashToU16,
430 (sym::Keccak512, sym::hash_to_u32) => Self::Keccak512HashToU32,
431 (sym::Keccak512, sym::hash_to_u64) => Self::Keccak512HashToU64,
432 (sym::Keccak512, sym::hash_to_u128) => Self::Keccak512HashToU128,
433 (sym::Keccak512, sym::hash_to_scalar) => Self::Keccak512HashToScalar,
434
435 (sym::Pedersen64, sym::commit_to_address) => Self::Pedersen64CommitToAddress,
436 (sym::Pedersen64, sym::commit_to_field) => Self::Pedersen64CommitToField,
437 (sym::Pedersen64, sym::commit_to_group) => Self::Pedersen64CommitToGroup,
438 (sym::Pedersen64, sym::hash_to_address) => Self::Pedersen64HashToAddress,
439 (sym::Pedersen64, sym::hash_to_field) => Self::Pedersen64HashToField,
440 (sym::Pedersen64, sym::hash_to_group) => Self::Pedersen64HashToGroup,
441 (sym::Pedersen64, sym::hash_to_i8) => Self::Pedersen64HashToI8,
442 (sym::Pedersen64, sym::hash_to_i16) => Self::Pedersen64HashToI16,
443 (sym::Pedersen64, sym::hash_to_i32) => Self::Pedersen64HashToI32,
444 (sym::Pedersen64, sym::hash_to_i64) => Self::Pedersen64HashToI64,
445 (sym::Pedersen64, sym::hash_to_i128) => Self::Pedersen64HashToI128,
446 (sym::Pedersen64, sym::hash_to_u8) => Self::Pedersen64HashToU8,
447 (sym::Pedersen64, sym::hash_to_u16) => Self::Pedersen64HashToU16,
448 (sym::Pedersen64, sym::hash_to_u32) => Self::Pedersen64HashToU32,
449 (sym::Pedersen64, sym::hash_to_u64) => Self::Pedersen64HashToU64,
450 (sym::Pedersen64, sym::hash_to_u128) => Self::Pedersen64HashToU128,
451 (sym::Pedersen64, sym::hash_to_scalar) => Self::Pedersen64HashToScalar,
452
453 (sym::Pedersen128, sym::commit_to_address) => Self::Pedersen128CommitToAddress,
454 (sym::Pedersen128, sym::commit_to_field) => Self::Pedersen128CommitToField,
455 (sym::Pedersen128, sym::commit_to_group) => Self::Pedersen128CommitToGroup,
456 (sym::Pedersen128, sym::hash_to_address) => Self::Pedersen128HashToAddress,
457 (sym::Pedersen128, sym::hash_to_field) => Self::Pedersen128HashToField,
458 (sym::Pedersen128, sym::hash_to_group) => Self::Pedersen128HashToGroup,
459 (sym::Pedersen128, sym::hash_to_i8) => Self::Pedersen128HashToI8,
460 (sym::Pedersen128, sym::hash_to_i16) => Self::Pedersen128HashToI16,
461 (sym::Pedersen128, sym::hash_to_i32) => Self::Pedersen128HashToI32,
462 (sym::Pedersen128, sym::hash_to_i64) => Self::Pedersen128HashToI64,
463 (sym::Pedersen128, sym::hash_to_i128) => Self::Pedersen128HashToI128,
464 (sym::Pedersen128, sym::hash_to_u8) => Self::Pedersen128HashToU8,
465 (sym::Pedersen128, sym::hash_to_u16) => Self::Pedersen128HashToU16,
466 (sym::Pedersen128, sym::hash_to_u32) => Self::Pedersen128HashToU32,
467 (sym::Pedersen128, sym::hash_to_u64) => Self::Pedersen128HashToU64,
468 (sym::Pedersen128, sym::hash_to_u128) => Self::Pedersen128HashToU128,
469 (sym::Pedersen128, sym::hash_to_scalar) => Self::Pedersen128HashToScalar,
470
471 (sym::Poseidon2, sym::hash_to_address) => Self::Poseidon2HashToAddress,
472 (sym::Poseidon2, sym::hash_to_field) => Self::Poseidon2HashToField,
473 (sym::Poseidon2, sym::hash_to_group) => Self::Poseidon2HashToGroup,
474 (sym::Poseidon2, sym::hash_to_i8) => Self::Poseidon2HashToI8,
475 (sym::Poseidon2, sym::hash_to_i16) => Self::Poseidon2HashToI16,
476 (sym::Poseidon2, sym::hash_to_i32) => Self::Poseidon2HashToI32,
477 (sym::Poseidon2, sym::hash_to_i64) => Self::Poseidon2HashToI64,
478 (sym::Poseidon2, sym::hash_to_i128) => Self::Poseidon2HashToI128,
479 (sym::Poseidon2, sym::hash_to_u8) => Self::Poseidon2HashToU8,
480 (sym::Poseidon2, sym::hash_to_u16) => Self::Poseidon2HashToU16,
481 (sym::Poseidon2, sym::hash_to_u32) => Self::Poseidon2HashToU32,
482 (sym::Poseidon2, sym::hash_to_u64) => Self::Poseidon2HashToU64,
483 (sym::Poseidon2, sym::hash_to_u128) => Self::Poseidon2HashToU128,
484 (sym::Poseidon2, sym::hash_to_scalar) => Self::Poseidon2HashToScalar,
485
486 (sym::Poseidon4, sym::hash_to_address) => Self::Poseidon4HashToAddress,
487 (sym::Poseidon4, sym::hash_to_field) => Self::Poseidon4HashToField,
488 (sym::Poseidon4, sym::hash_to_group) => Self::Poseidon4HashToGroup,
489 (sym::Poseidon4, sym::hash_to_i8) => Self::Poseidon4HashToI8,
490 (sym::Poseidon4, sym::hash_to_i16) => Self::Poseidon4HashToI16,
491 (sym::Poseidon4, sym::hash_to_i32) => Self::Poseidon4HashToI32,
492 (sym::Poseidon4, sym::hash_to_i64) => Self::Poseidon4HashToI64,
493 (sym::Poseidon4, sym::hash_to_i128) => Self::Poseidon4HashToI128,
494 (sym::Poseidon4, sym::hash_to_u8) => Self::Poseidon4HashToU8,
495 (sym::Poseidon4, sym::hash_to_u16) => Self::Poseidon4HashToU16,
496 (sym::Poseidon4, sym::hash_to_u32) => Self::Poseidon4HashToU32,
497 (sym::Poseidon4, sym::hash_to_u64) => Self::Poseidon4HashToU64,
498 (sym::Poseidon4, sym::hash_to_u128) => Self::Poseidon4HashToU128,
499 (sym::Poseidon4, sym::hash_to_scalar) => Self::Poseidon4HashToScalar,
500
501 (sym::Poseidon8, sym::hash_to_address) => Self::Poseidon8HashToAddress,
502 (sym::Poseidon8, sym::hash_to_field) => Self::Poseidon8HashToField,
503 (sym::Poseidon8, sym::hash_to_group) => Self::Poseidon8HashToGroup,
504 (sym::Poseidon8, sym::hash_to_i8) => Self::Poseidon8HashToI8,
505 (sym::Poseidon8, sym::hash_to_i16) => Self::Poseidon8HashToI16,
506 (sym::Poseidon8, sym::hash_to_i32) => Self::Poseidon8HashToI32,
507 (sym::Poseidon8, sym::hash_to_i64) => Self::Poseidon8HashToI64,
508 (sym::Poseidon8, sym::hash_to_i128) => Self::Poseidon8HashToI128,
509 (sym::Poseidon8, sym::hash_to_u8) => Self::Poseidon8HashToU8,
510 (sym::Poseidon8, sym::hash_to_u16) => Self::Poseidon8HashToU16,
511 (sym::Poseidon8, sym::hash_to_u32) => Self::Poseidon8HashToU32,
512 (sym::Poseidon8, sym::hash_to_u64) => Self::Poseidon8HashToU64,
513 (sym::Poseidon8, sym::hash_to_u128) => Self::Poseidon8HashToU128,
514 (sym::Poseidon8, sym::hash_to_scalar) => Self::Poseidon8HashToScalar,
515
516 (sym::SHA3_256, sym::hash_to_address) => Self::SHA3_256HashToAddress,
517 (sym::SHA3_256, sym::hash_to_field) => Self::SHA3_256HashToField,
518 (sym::SHA3_256, sym::hash_to_group) => Self::SHA3_256HashToGroup,
519 (sym::SHA3_256, sym::hash_to_i8) => Self::SHA3_256HashToI8,
520 (sym::SHA3_256, sym::hash_to_i16) => Self::SHA3_256HashToI16,
521 (sym::SHA3_256, sym::hash_to_i32) => Self::SHA3_256HashToI32,
522 (sym::SHA3_256, sym::hash_to_i64) => Self::SHA3_256HashToI64,
523 (sym::SHA3_256, sym::hash_to_i128) => Self::SHA3_256HashToI128,
524 (sym::SHA3_256, sym::hash_to_u8) => Self::SHA3_256HashToU8,
525 (sym::SHA3_256, sym::hash_to_u16) => Self::SHA3_256HashToU16,
526 (sym::SHA3_256, sym::hash_to_u32) => Self::SHA3_256HashToU32,
527 (sym::SHA3_256, sym::hash_to_u64) => Self::SHA3_256HashToU64,
528 (sym::SHA3_256, sym::hash_to_u128) => Self::SHA3_256HashToU128,
529 (sym::SHA3_256, sym::hash_to_scalar) => Self::SHA3_256HashToScalar,
530
531 (sym::SHA3_384, sym::hash_to_address) => Self::SHA3_384HashToAddress,
532 (sym::SHA3_384, sym::hash_to_field) => Self::SHA3_384HashToField,
533 (sym::SHA3_384, sym::hash_to_group) => Self::SHA3_384HashToGroup,
534 (sym::SHA3_384, sym::hash_to_i8) => Self::SHA3_384HashToI8,
535 (sym::SHA3_384, sym::hash_to_i16) => Self::SHA3_384HashToI16,
536 (sym::SHA3_384, sym::hash_to_i32) => Self::SHA3_384HashToI32,
537 (sym::SHA3_384, sym::hash_to_i64) => Self::SHA3_384HashToI64,
538 (sym::SHA3_384, sym::hash_to_i128) => Self::SHA3_384HashToI128,
539 (sym::SHA3_384, sym::hash_to_u8) => Self::SHA3_384HashToU8,
540 (sym::SHA3_384, sym::hash_to_u16) => Self::SHA3_384HashToU16,
541 (sym::SHA3_384, sym::hash_to_u32) => Self::SHA3_384HashToU32,
542 (sym::SHA3_384, sym::hash_to_u64) => Self::SHA3_384HashToU64,
543 (sym::SHA3_384, sym::hash_to_u128) => Self::SHA3_384HashToU128,
544 (sym::SHA3_384, sym::hash_to_scalar) => Self::SHA3_384HashToScalar,
545
546 (sym::SHA3_512, sym::hash_to_address) => Self::SHA3_512HashToAddress,
547 (sym::SHA3_512, sym::hash_to_field) => Self::SHA3_512HashToField,
548 (sym::SHA3_512, sym::hash_to_group) => Self::SHA3_512HashToGroup,
549 (sym::SHA3_512, sym::hash_to_i8) => Self::SHA3_512HashToI8,
550 (sym::SHA3_512, sym::hash_to_i16) => Self::SHA3_512HashToI16,
551 (sym::SHA3_512, sym::hash_to_i32) => Self::SHA3_512HashToI32,
552 (sym::SHA3_512, sym::hash_to_i64) => Self::SHA3_512HashToI64,
553 (sym::SHA3_512, sym::hash_to_i128) => Self::SHA3_512HashToI128,
554 (sym::SHA3_512, sym::hash_to_u8) => Self::SHA3_512HashToU8,
555 (sym::SHA3_512, sym::hash_to_u16) => Self::SHA3_512HashToU16,
556 (sym::SHA3_512, sym::hash_to_u32) => Self::SHA3_512HashToU32,
557 (sym::SHA3_512, sym::hash_to_u64) => Self::SHA3_512HashToU64,
558 (sym::SHA3_512, sym::hash_to_u128) => Self::SHA3_512HashToU128,
559 (sym::SHA3_512, sym::hash_to_scalar) => Self::SHA3_512HashToScalar,
560
561 (sym::Mapping, sym::get) => Self::MappingGet,
562 (sym::Mapping, sym::get_or_use) => Self::MappingGetOrUse,
563 (sym::Mapping, sym::set) => Self::MappingSet,
564 (sym::Mapping, sym::remove) => Self::MappingRemove,
565 (sym::Mapping, sym::contains) => Self::MappingContains,
566
567 (sym::group, sym::to_x_coordinate) => Self::GroupToXCoordinate,
568 (sym::group, sym::to_y_coordinate) => Self::GroupToYCoordinate,
569
570 (sym::signature, sym::verify) => Self::SignatureVerify,
571 (sym::Future, sym::Await) => Self::FutureAwait,
572
573 (sym::CheatCode, sym::print_mapping) => Self::CheatCodePrintMapping,
574 (sym::CheatCode, sym::set_block_height) => Self::CheatCodeSetBlockHeight,
575 _ => return None,
576 })
577 }
578
579 pub fn num_args(&self) -> usize {
581 match self {
582 Self::BHP256CommitToAddress => 2,
583 Self::BHP256CommitToField => 2,
584 Self::BHP256CommitToGroup => 2,
585
586 Self::BHP256HashToAddress => 1,
587 Self::BHP256HashToField => 1,
588 Self::BHP256HashToGroup => 1,
589 Self::BHP256HashToI8 => 1,
590 Self::BHP256HashToI16 => 1,
591 Self::BHP256HashToI32 => 1,
592 Self::BHP256HashToI64 => 1,
593 Self::BHP256HashToI128 => 1,
594 Self::BHP256HashToU8 => 1,
595 Self::BHP256HashToU16 => 1,
596 Self::BHP256HashToU32 => 1,
597 Self::BHP256HashToU64 => 1,
598 Self::BHP256HashToU128 => 1,
599 Self::BHP256HashToScalar => 1,
600
601 Self::BHP512CommitToAddress => 2,
602 Self::BHP512CommitToField => 2,
603 Self::BHP512CommitToGroup => 2,
604 Self::BHP512HashToAddress => 1,
605 Self::BHP512HashToField => 1,
606 Self::BHP512HashToGroup => 1,
607 Self::BHP512HashToI8 => 1,
608 Self::BHP512HashToI16 => 1,
609 Self::BHP512HashToI32 => 1,
610 Self::BHP512HashToI64 => 1,
611 Self::BHP512HashToI128 => 1,
612 Self::BHP512HashToU8 => 1,
613 Self::BHP512HashToU16 => 1,
614 Self::BHP512HashToU32 => 1,
615 Self::BHP512HashToU64 => 1,
616 Self::BHP512HashToU128 => 1,
617 Self::BHP512HashToScalar => 1,
618
619 Self::BHP768CommitToAddress => 2,
620 Self::BHP768CommitToField => 2,
621 Self::BHP768CommitToGroup => 2,
622 Self::BHP768HashToAddress => 1,
623 Self::BHP768HashToField => 1,
624 Self::BHP768HashToGroup => 1,
625 Self::BHP768HashToI8 => 1,
626 Self::BHP768HashToI16 => 1,
627 Self::BHP768HashToI32 => 1,
628 Self::BHP768HashToI64 => 1,
629 Self::BHP768HashToI128 => 1,
630 Self::BHP768HashToU8 => 1,
631 Self::BHP768HashToU16 => 1,
632 Self::BHP768HashToU32 => 1,
633 Self::BHP768HashToU64 => 1,
634 Self::BHP768HashToU128 => 1,
635 Self::BHP768HashToScalar => 1,
636
637 Self::BHP1024CommitToAddress => 2,
638 Self::BHP1024CommitToField => 2,
639 Self::BHP1024CommitToGroup => 2,
640 Self::BHP1024HashToAddress => 1,
641 Self::BHP1024HashToField => 1,
642 Self::BHP1024HashToGroup => 1,
643 Self::BHP1024HashToI8 => 1,
644 Self::BHP1024HashToI16 => 1,
645 Self::BHP1024HashToI32 => 1,
646 Self::BHP1024HashToI64 => 1,
647 Self::BHP1024HashToI128 => 1,
648 Self::BHP1024HashToU8 => 1,
649 Self::BHP1024HashToU16 => 1,
650 Self::BHP1024HashToU32 => 1,
651 Self::BHP1024HashToU64 => 1,
652 Self::BHP1024HashToU128 => 1,
653 Self::BHP1024HashToScalar => 1,
654
655 Self::ChaChaRandAddress => 0,
656 Self::ChaChaRandBool => 0,
657 Self::ChaChaRandField => 0,
658 Self::ChaChaRandGroup => 0,
659 Self::ChaChaRandI8 => 0,
660 Self::ChaChaRandI16 => 0,
661 Self::ChaChaRandI32 => 0,
662 Self::ChaChaRandI64 => 0,
663 Self::ChaChaRandI128 => 0,
664 Self::ChaChaRandU8 => 0,
665 Self::ChaChaRandU16 => 0,
666 Self::ChaChaRandU32 => 0,
667 Self::ChaChaRandU64 => 0,
668 Self::ChaChaRandU128 => 0,
669 Self::ChaChaRandScalar => 0,
670
671 Self::Keccak256HashToAddress => 1,
672 Self::Keccak256HashToField => 1,
673 Self::Keccak256HashToGroup => 1,
674 Self::Keccak256HashToI8 => 1,
675 Self::Keccak256HashToI16 => 1,
676 Self::Keccak256HashToI32 => 1,
677 Self::Keccak256HashToI64 => 1,
678 Self::Keccak256HashToI128 => 1,
679 Self::Keccak256HashToU8 => 1,
680 Self::Keccak256HashToU16 => 1,
681 Self::Keccak256HashToU32 => 1,
682 Self::Keccak256HashToU64 => 1,
683 Self::Keccak256HashToU128 => 1,
684 Self::Keccak256HashToScalar => 1,
685
686 Self::Keccak384HashToAddress => 1,
687 Self::Keccak384HashToField => 1,
688 Self::Keccak384HashToGroup => 1,
689 Self::Keccak384HashToI8 => 1,
690 Self::Keccak384HashToI16 => 1,
691 Self::Keccak384HashToI32 => 1,
692 Self::Keccak384HashToI64 => 1,
693 Self::Keccak384HashToI128 => 1,
694 Self::Keccak384HashToU8 => 1,
695 Self::Keccak384HashToU16 => 1,
696 Self::Keccak384HashToU32 => 1,
697 Self::Keccak384HashToU64 => 1,
698 Self::Keccak384HashToU128 => 1,
699 Self::Keccak384HashToScalar => 1,
700
701 Self::Keccak512HashToAddress => 1,
702 Self::Keccak512HashToField => 1,
703 Self::Keccak512HashToGroup => 1,
704 Self::Keccak512HashToI8 => 1,
705 Self::Keccak512HashToI16 => 1,
706 Self::Keccak512HashToI32 => 1,
707 Self::Keccak512HashToI64 => 1,
708 Self::Keccak512HashToI128 => 1,
709 Self::Keccak512HashToU8 => 1,
710 Self::Keccak512HashToU16 => 1,
711 Self::Keccak512HashToU32 => 1,
712 Self::Keccak512HashToU64 => 1,
713 Self::Keccak512HashToU128 => 1,
714 Self::Keccak512HashToScalar => 1,
715
716 Self::Pedersen64CommitToAddress => 2,
717 Self::Pedersen64CommitToField => 2,
718 Self::Pedersen64CommitToGroup => 2,
719 Self::Pedersen64HashToAddress => 1,
720 Self::Pedersen64HashToField => 1,
721 Self::Pedersen64HashToGroup => 1,
722 Self::Pedersen64HashToI8 => 1,
723 Self::Pedersen64HashToI16 => 1,
724 Self::Pedersen64HashToI32 => 1,
725 Self::Pedersen64HashToI64 => 1,
726 Self::Pedersen64HashToI128 => 1,
727 Self::Pedersen64HashToU8 => 1,
728 Self::Pedersen64HashToU16 => 1,
729 Self::Pedersen64HashToU32 => 1,
730 Self::Pedersen64HashToU64 => 1,
731 Self::Pedersen64HashToU128 => 1,
732 Self::Pedersen64HashToScalar => 1,
733
734 Self::Pedersen128CommitToAddress => 2,
735 Self::Pedersen128CommitToField => 2,
736 Self::Pedersen128CommitToGroup => 2,
737 Self::Pedersen128HashToAddress => 1,
738 Self::Pedersen128HashToField => 1,
739 Self::Pedersen128HashToGroup => 1,
740 Self::Pedersen128HashToI8 => 1,
741 Self::Pedersen128HashToI16 => 1,
742 Self::Pedersen128HashToI32 => 1,
743 Self::Pedersen128HashToI64 => 1,
744 Self::Pedersen128HashToI128 => 1,
745 Self::Pedersen128HashToU8 => 1,
746 Self::Pedersen128HashToU16 => 1,
747 Self::Pedersen128HashToU32 => 1,
748 Self::Pedersen128HashToU64 => 1,
749 Self::Pedersen128HashToU128 => 1,
750 Self::Pedersen128HashToScalar => 1,
751
752 Self::Poseidon2HashToAddress => 1,
753 Self::Poseidon2HashToField => 1,
754 Self::Poseidon2HashToGroup => 1,
755 Self::Poseidon2HashToI8 => 1,
756 Self::Poseidon2HashToI16 => 1,
757 Self::Poseidon2HashToI32 => 1,
758 Self::Poseidon2HashToI64 => 1,
759 Self::Poseidon2HashToI128 => 1,
760 Self::Poseidon2HashToU8 => 1,
761 Self::Poseidon2HashToU16 => 1,
762 Self::Poseidon2HashToU32 => 1,
763 Self::Poseidon2HashToU64 => 1,
764 Self::Poseidon2HashToU128 => 1,
765 Self::Poseidon2HashToScalar => 1,
766
767 Self::Poseidon4HashToAddress => 1,
768 Self::Poseidon4HashToField => 1,
769 Self::Poseidon4HashToGroup => 1,
770 Self::Poseidon4HashToI8 => 1,
771 Self::Poseidon4HashToI16 => 1,
772 Self::Poseidon4HashToI32 => 1,
773 Self::Poseidon4HashToI64 => 1,
774 Self::Poseidon4HashToI128 => 1,
775 Self::Poseidon4HashToU8 => 1,
776 Self::Poseidon4HashToU16 => 1,
777 Self::Poseidon4HashToU32 => 1,
778 Self::Poseidon4HashToU64 => 1,
779 Self::Poseidon4HashToU128 => 1,
780 Self::Poseidon4HashToScalar => 1,
781
782 Self::Poseidon8HashToAddress => 1,
783 Self::Poseidon8HashToField => 1,
784 Self::Poseidon8HashToGroup => 1,
785 Self::Poseidon8HashToI8 => 1,
786 Self::Poseidon8HashToI16 => 1,
787 Self::Poseidon8HashToI32 => 1,
788 Self::Poseidon8HashToI64 => 1,
789 Self::Poseidon8HashToI128 => 1,
790 Self::Poseidon8HashToU8 => 1,
791 Self::Poseidon8HashToU16 => 1,
792 Self::Poseidon8HashToU32 => 1,
793 Self::Poseidon8HashToU64 => 1,
794 Self::Poseidon8HashToU128 => 1,
795 Self::Poseidon8HashToScalar => 1,
796
797 Self::SHA3_256HashToAddress => 1,
798 Self::SHA3_256HashToField => 1,
799 Self::SHA3_256HashToGroup => 1,
800 Self::SHA3_256HashToI8 => 1,
801 Self::SHA3_256HashToI16 => 1,
802 Self::SHA3_256HashToI32 => 1,
803 Self::SHA3_256HashToI64 => 1,
804 Self::SHA3_256HashToI128 => 1,
805 Self::SHA3_256HashToU8 => 1,
806 Self::SHA3_256HashToU16 => 1,
807 Self::SHA3_256HashToU32 => 1,
808 Self::SHA3_256HashToU64 => 1,
809 Self::SHA3_256HashToU128 => 1,
810 Self::SHA3_256HashToScalar => 1,
811
812 Self::SHA3_384HashToAddress => 1,
813 Self::SHA3_384HashToField => 1,
814 Self::SHA3_384HashToGroup => 1,
815 Self::SHA3_384HashToI8 => 1,
816 Self::SHA3_384HashToI16 => 1,
817 Self::SHA3_384HashToI32 => 1,
818 Self::SHA3_384HashToI64 => 1,
819 Self::SHA3_384HashToI128 => 1,
820 Self::SHA3_384HashToU8 => 1,
821 Self::SHA3_384HashToU16 => 1,
822 Self::SHA3_384HashToU32 => 1,
823 Self::SHA3_384HashToU64 => 1,
824 Self::SHA3_384HashToU128 => 1,
825 Self::SHA3_384HashToScalar => 1,
826
827 Self::SHA3_512HashToAddress => 1,
828 Self::SHA3_512HashToField => 1,
829 Self::SHA3_512HashToGroup => 1,
830 Self::SHA3_512HashToI8 => 1,
831 Self::SHA3_512HashToI16 => 1,
832 Self::SHA3_512HashToI32 => 1,
833 Self::SHA3_512HashToI64 => 1,
834 Self::SHA3_512HashToI128 => 1,
835 Self::SHA3_512HashToU8 => 1,
836 Self::SHA3_512HashToU16 => 1,
837 Self::SHA3_512HashToU32 => 1,
838 Self::SHA3_512HashToU64 => 1,
839 Self::SHA3_512HashToU128 => 1,
840 Self::SHA3_512HashToScalar => 1,
841
842 Self::MappingGet => 2,
843 Self::MappingGetOrUse => 3,
844 Self::MappingSet => 3,
845 Self::MappingRemove => 2,
846 Self::MappingContains => 2,
847
848 Self::GroupToXCoordinate => 1,
849 Self::GroupToYCoordinate => 1,
850
851 Self::SignatureVerify => 3,
852 Self::FutureAwait => 1,
853
854 Self::CheatCodePrintMapping => 1,
855 Self::CheatCodeSetBlockHeight => 1,
856 }
857 }
858
859 pub fn is_finalize_command(&self) -> bool {
861 match self {
862 CoreFunction::FutureAwait
863 | CoreFunction::ChaChaRandAddress
864 | CoreFunction::ChaChaRandBool
865 | CoreFunction::ChaChaRandField
866 | CoreFunction::ChaChaRandGroup
867 | CoreFunction::ChaChaRandI8
868 | CoreFunction::ChaChaRandI16
869 | CoreFunction::ChaChaRandI32
870 | CoreFunction::ChaChaRandI64
871 | CoreFunction::ChaChaRandI128
872 | CoreFunction::ChaChaRandU8
873 | CoreFunction::ChaChaRandU16
874 | CoreFunction::ChaChaRandU32
875 | CoreFunction::ChaChaRandU64
876 | CoreFunction::ChaChaRandU128
877 | CoreFunction::MappingGet
878 | CoreFunction::MappingGetOrUse
879 | CoreFunction::ChaChaRandScalar
880 | CoreFunction::MappingSet
881 | CoreFunction::MappingRemove
882 | CoreFunction::MappingContains => true,
883 CoreFunction::BHP256CommitToAddress
884 | CoreFunction::BHP256CommitToField
885 | CoreFunction::BHP256CommitToGroup
886 | CoreFunction::BHP256HashToAddress
887 | CoreFunction::BHP256HashToField
888 | CoreFunction::BHP256HashToGroup
889 | CoreFunction::BHP256HashToI8
890 | CoreFunction::BHP256HashToI16
891 | CoreFunction::BHP256HashToI32
892 | CoreFunction::BHP256HashToI64
893 | CoreFunction::BHP256HashToI128
894 | CoreFunction::BHP256HashToU8
895 | CoreFunction::BHP256HashToU16
896 | CoreFunction::BHP256HashToU32
897 | CoreFunction::BHP256HashToU64
898 | CoreFunction::BHP256HashToU128
899 | CoreFunction::BHP256HashToScalar
900 | CoreFunction::BHP512CommitToAddress
901 | CoreFunction::BHP512CommitToField
902 | CoreFunction::BHP512CommitToGroup
903 | CoreFunction::BHP512HashToAddress
904 | CoreFunction::BHP512HashToField
905 | CoreFunction::BHP512HashToGroup
906 | CoreFunction::BHP512HashToI8
907 | CoreFunction::BHP512HashToI16
908 | CoreFunction::BHP512HashToI32
909 | CoreFunction::BHP512HashToI64
910 | CoreFunction::BHP512HashToI128
911 | CoreFunction::BHP512HashToU8
912 | CoreFunction::BHP512HashToU16
913 | CoreFunction::BHP512HashToU32
914 | CoreFunction::BHP512HashToU64
915 | CoreFunction::BHP512HashToU128
916 | CoreFunction::BHP512HashToScalar
917 | CoreFunction::BHP768CommitToAddress
918 | CoreFunction::BHP768CommitToField
919 | CoreFunction::BHP768CommitToGroup
920 | CoreFunction::BHP768HashToAddress
921 | CoreFunction::BHP768HashToField
922 | CoreFunction::BHP768HashToGroup
923 | CoreFunction::BHP768HashToI8
924 | CoreFunction::BHP768HashToI16
925 | CoreFunction::BHP768HashToI32
926 | CoreFunction::BHP768HashToI64
927 | CoreFunction::BHP768HashToI128
928 | CoreFunction::BHP768HashToU8
929 | CoreFunction::BHP768HashToU16
930 | CoreFunction::BHP768HashToU32
931 | CoreFunction::BHP768HashToU64
932 | CoreFunction::BHP768HashToU128
933 | CoreFunction::BHP768HashToScalar
934 | CoreFunction::BHP1024CommitToAddress
935 | CoreFunction::BHP1024CommitToField
936 | CoreFunction::BHP1024CommitToGroup
937 | CoreFunction::BHP1024HashToAddress
938 | CoreFunction::BHP1024HashToField
939 | CoreFunction::BHP1024HashToGroup
940 | CoreFunction::BHP1024HashToI8
941 | CoreFunction::BHP1024HashToI16
942 | CoreFunction::BHP1024HashToI32
943 | CoreFunction::BHP1024HashToI64
944 | CoreFunction::BHP1024HashToI128
945 | CoreFunction::BHP1024HashToU8
946 | CoreFunction::BHP1024HashToU16
947 | CoreFunction::BHP1024HashToU32
948 | CoreFunction::BHP1024HashToU64
949 | CoreFunction::BHP1024HashToU128
950 | CoreFunction::BHP1024HashToScalar
951 | CoreFunction::Keccak256HashToAddress
952 | CoreFunction::Keccak256HashToField
953 | CoreFunction::Keccak256HashToGroup
954 | CoreFunction::Keccak256HashToI8
955 | CoreFunction::Keccak256HashToI16
956 | CoreFunction::Keccak256HashToI32
957 | CoreFunction::Keccak256HashToI64
958 | CoreFunction::Keccak256HashToI128
959 | CoreFunction::Keccak256HashToU8
960 | CoreFunction::Keccak256HashToU16
961 | CoreFunction::Keccak256HashToU32
962 | CoreFunction::Keccak256HashToU64
963 | CoreFunction::Keccak256HashToU128
964 | CoreFunction::Keccak256HashToScalar
965 | CoreFunction::Keccak384HashToAddress
966 | CoreFunction::Keccak384HashToField
967 | CoreFunction::Keccak384HashToGroup
968 | CoreFunction::Keccak384HashToI8
969 | CoreFunction::Keccak384HashToI16
970 | CoreFunction::Keccak384HashToI32
971 | CoreFunction::Keccak384HashToI64
972 | CoreFunction::Keccak384HashToI128
973 | CoreFunction::Keccak384HashToU8
974 | CoreFunction::Keccak384HashToU16
975 | CoreFunction::Keccak384HashToU32
976 | CoreFunction::Keccak384HashToU64
977 | CoreFunction::Keccak384HashToU128
978 | CoreFunction::Keccak384HashToScalar
979 | CoreFunction::Keccak512HashToAddress
980 | CoreFunction::Keccak512HashToField
981 | CoreFunction::Keccak512HashToGroup
982 | CoreFunction::Keccak512HashToI8
983 | CoreFunction::Keccak512HashToI16
984 | CoreFunction::Keccak512HashToI32
985 | CoreFunction::Keccak512HashToI64
986 | CoreFunction::Keccak512HashToI128
987 | CoreFunction::Keccak512HashToU8
988 | CoreFunction::Keccak512HashToU16
989 | CoreFunction::Keccak512HashToU32
990 | CoreFunction::Keccak512HashToU64
991 | CoreFunction::Keccak512HashToU128
992 | CoreFunction::Keccak512HashToScalar
993 | CoreFunction::Pedersen64CommitToAddress
994 | CoreFunction::Pedersen64CommitToField
995 | CoreFunction::Pedersen64CommitToGroup
996 | CoreFunction::Pedersen64HashToAddress
997 | CoreFunction::Pedersen64HashToField
998 | CoreFunction::Pedersen64HashToGroup
999 | CoreFunction::Pedersen64HashToI8
1000 | CoreFunction::Pedersen64HashToI16
1001 | CoreFunction::Pedersen64HashToI32
1002 | CoreFunction::Pedersen64HashToI64
1003 | CoreFunction::Pedersen64HashToI128
1004 | CoreFunction::Pedersen64HashToU8
1005 | CoreFunction::Pedersen64HashToU16
1006 | CoreFunction::Pedersen64HashToU32
1007 | CoreFunction::Pedersen64HashToU64
1008 | CoreFunction::Pedersen64HashToU128
1009 | CoreFunction::Pedersen64HashToScalar
1010 | CoreFunction::Pedersen128CommitToAddress
1011 | CoreFunction::Pedersen128CommitToField
1012 | CoreFunction::Pedersen128CommitToGroup
1013 | CoreFunction::Pedersen128HashToAddress
1014 | CoreFunction::Pedersen128HashToField
1015 | CoreFunction::Pedersen128HashToGroup
1016 | CoreFunction::Pedersen128HashToI8
1017 | CoreFunction::Pedersen128HashToI16
1018 | CoreFunction::Pedersen128HashToI32
1019 | CoreFunction::Pedersen128HashToI64
1020 | CoreFunction::Pedersen128HashToI128
1021 | CoreFunction::Pedersen128HashToU8
1022 | CoreFunction::Pedersen128HashToU16
1023 | CoreFunction::Pedersen128HashToU32
1024 | CoreFunction::Pedersen128HashToU64
1025 | CoreFunction::Pedersen128HashToU128
1026 | CoreFunction::Pedersen128HashToScalar
1027 | CoreFunction::Poseidon2HashToAddress
1028 | CoreFunction::Poseidon2HashToField
1029 | CoreFunction::Poseidon2HashToGroup
1030 | CoreFunction::Poseidon2HashToI8
1031 | CoreFunction::Poseidon2HashToI16
1032 | CoreFunction::Poseidon2HashToI32
1033 | CoreFunction::Poseidon2HashToI64
1034 | CoreFunction::Poseidon2HashToI128
1035 | CoreFunction::Poseidon2HashToU8
1036 | CoreFunction::Poseidon2HashToU16
1037 | CoreFunction::Poseidon2HashToU32
1038 | CoreFunction::Poseidon2HashToU64
1039 | CoreFunction::Poseidon2HashToU128
1040 | CoreFunction::Poseidon2HashToScalar
1041 | CoreFunction::Poseidon4HashToAddress
1042 | CoreFunction::Poseidon4HashToField
1043 | CoreFunction::Poseidon4HashToGroup
1044 | CoreFunction::Poseidon4HashToI8
1045 | CoreFunction::Poseidon4HashToI16
1046 | CoreFunction::Poseidon4HashToI32
1047 | CoreFunction::Poseidon4HashToI64
1048 | CoreFunction::Poseidon4HashToI128
1049 | CoreFunction::Poseidon4HashToU8
1050 | CoreFunction::Poseidon4HashToU16
1051 | CoreFunction::Poseidon4HashToU32
1052 | CoreFunction::Poseidon4HashToU64
1053 | CoreFunction::Poseidon4HashToU128
1054 | CoreFunction::Poseidon4HashToScalar
1055 | CoreFunction::Poseidon8HashToAddress
1056 | CoreFunction::Poseidon8HashToField
1057 | CoreFunction::Poseidon8HashToGroup
1058 | CoreFunction::Poseidon8HashToI8
1059 | CoreFunction::Poseidon8HashToI16
1060 | CoreFunction::Poseidon8HashToI32
1061 | CoreFunction::Poseidon8HashToI64
1062 | CoreFunction::Poseidon8HashToI128
1063 | CoreFunction::Poseidon8HashToU8
1064 | CoreFunction::Poseidon8HashToU16
1065 | CoreFunction::Poseidon8HashToU32
1066 | CoreFunction::Poseidon8HashToU64
1067 | CoreFunction::Poseidon8HashToU128
1068 | CoreFunction::Poseidon8HashToScalar
1069 | CoreFunction::SHA3_256HashToAddress
1070 | CoreFunction::SHA3_256HashToField
1071 | CoreFunction::SHA3_256HashToGroup
1072 | CoreFunction::SHA3_256HashToI8
1073 | CoreFunction::SHA3_256HashToI16
1074 | CoreFunction::SHA3_256HashToI32
1075 | CoreFunction::SHA3_256HashToI64
1076 | CoreFunction::SHA3_256HashToI128
1077 | CoreFunction::SHA3_256HashToU8
1078 | CoreFunction::SHA3_256HashToU16
1079 | CoreFunction::SHA3_256HashToU32
1080 | CoreFunction::SHA3_256HashToU64
1081 | CoreFunction::SHA3_256HashToU128
1082 | CoreFunction::SHA3_256HashToScalar
1083 | CoreFunction::SHA3_384HashToAddress
1084 | CoreFunction::SHA3_384HashToField
1085 | CoreFunction::SHA3_384HashToGroup
1086 | CoreFunction::SHA3_384HashToI8
1087 | CoreFunction::SHA3_384HashToI16
1088 | CoreFunction::SHA3_384HashToI32
1089 | CoreFunction::SHA3_384HashToI64
1090 | CoreFunction::SHA3_384HashToI128
1091 | CoreFunction::SHA3_384HashToU8
1092 | CoreFunction::SHA3_384HashToU16
1093 | CoreFunction::SHA3_384HashToU32
1094 | CoreFunction::SHA3_384HashToU64
1095 | CoreFunction::SHA3_384HashToU128
1096 | CoreFunction::SHA3_384HashToScalar
1097 | CoreFunction::SHA3_512HashToAddress
1098 | CoreFunction::SHA3_512HashToField
1099 | CoreFunction::SHA3_512HashToGroup
1100 | CoreFunction::SHA3_512HashToI8
1101 | CoreFunction::SHA3_512HashToI16
1102 | CoreFunction::SHA3_512HashToI32
1103 | CoreFunction::SHA3_512HashToI64
1104 | CoreFunction::SHA3_512HashToI128
1105 | CoreFunction::SHA3_512HashToU8
1106 | CoreFunction::SHA3_512HashToU16
1107 | CoreFunction::SHA3_512HashToU32
1108 | CoreFunction::SHA3_512HashToU64
1109 | CoreFunction::SHA3_512HashToU128
1110 | CoreFunction::SHA3_512HashToScalar
1111 | CoreFunction::GroupToXCoordinate
1112 | CoreFunction::GroupToYCoordinate
1113 | CoreFunction::SignatureVerify
1114 | CoreFunction::CheatCodePrintMapping
1115 | CoreFunction::CheatCodeSetBlockHeight => false,
1116 }
1117 }
1118}