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 ProgramChecksum,
294 ProgramEdition,
295 ProgramOwner,
296
297 CheatCodePrintMapping,
298 CheatCodeSetBlockHeight,
299}
300
301impl CoreFunction {
302 pub fn from_symbols(module: Symbol, function: Symbol) -> Option<Self> {
304 Some(match (module, function) {
305 (sym::BHP256, sym::commit_to_address) => Self::BHP256CommitToAddress,
306 (sym::BHP256, sym::commit_to_field) => Self::BHP256CommitToField,
307 (sym::BHP256, sym::commit_to_group) => Self::BHP256CommitToGroup,
308
309 (sym::BHP256, sym::hash_to_address) => Self::BHP256HashToAddress,
310 (sym::BHP256, sym::hash_to_field) => Self::BHP256HashToField,
311 (sym::BHP256, sym::hash_to_group) => Self::BHP256HashToGroup,
312 (sym::BHP256, sym::hash_to_i8) => Self::BHP256HashToI8,
313 (sym::BHP256, sym::hash_to_i16) => Self::BHP256HashToI16,
314 (sym::BHP256, sym::hash_to_i32) => Self::BHP256HashToI32,
315 (sym::BHP256, sym::hash_to_i64) => Self::BHP256HashToI64,
316 (sym::BHP256, sym::hash_to_i128) => Self::BHP256HashToI128,
317 (sym::BHP256, sym::hash_to_u8) => Self::BHP256HashToU8,
318 (sym::BHP256, sym::hash_to_u16) => Self::BHP256HashToU16,
319 (sym::BHP256, sym::hash_to_u32) => Self::BHP256HashToU32,
320 (sym::BHP256, sym::hash_to_u64) => Self::BHP256HashToU64,
321 (sym::BHP256, sym::hash_to_u128) => Self::BHP256HashToU128,
322 (sym::BHP256, sym::hash_to_scalar) => Self::BHP256HashToScalar,
323
324 (sym::BHP512, sym::commit_to_address) => Self::BHP512CommitToAddress,
325 (sym::BHP512, sym::commit_to_field) => Self::BHP512CommitToField,
326 (sym::BHP512, sym::commit_to_group) => Self::BHP512CommitToGroup,
327 (sym::BHP512, sym::hash_to_address) => Self::BHP512HashToAddress,
328 (sym::BHP512, sym::hash_to_field) => Self::BHP512HashToField,
329 (sym::BHP512, sym::hash_to_group) => Self::BHP512HashToGroup,
330 (sym::BHP512, sym::hash_to_i8) => Self::BHP512HashToI8,
331 (sym::BHP512, sym::hash_to_i16) => Self::BHP512HashToI16,
332 (sym::BHP512, sym::hash_to_i32) => Self::BHP512HashToI32,
333 (sym::BHP512, sym::hash_to_i64) => Self::BHP512HashToI64,
334 (sym::BHP512, sym::hash_to_i128) => Self::BHP512HashToI128,
335 (sym::BHP512, sym::hash_to_u8) => Self::BHP512HashToU8,
336 (sym::BHP512, sym::hash_to_u16) => Self::BHP512HashToU16,
337 (sym::BHP512, sym::hash_to_u32) => Self::BHP512HashToU32,
338 (sym::BHP512, sym::hash_to_u64) => Self::BHP512HashToU64,
339 (sym::BHP512, sym::hash_to_u128) => Self::BHP512HashToU128,
340 (sym::BHP512, sym::hash_to_scalar) => Self::BHP512HashToScalar,
341
342 (sym::BHP768, sym::commit_to_address) => Self::BHP768CommitToAddress,
343 (sym::BHP768, sym::commit_to_field) => Self::BHP768CommitToField,
344 (sym::BHP768, sym::commit_to_group) => Self::BHP768CommitToGroup,
345 (sym::BHP768, sym::hash_to_address) => Self::BHP768HashToAddress,
346 (sym::BHP768, sym::hash_to_field) => Self::BHP768HashToField,
347 (sym::BHP768, sym::hash_to_group) => Self::BHP768HashToGroup,
348 (sym::BHP768, sym::hash_to_i8) => Self::BHP768HashToI8,
349 (sym::BHP768, sym::hash_to_i16) => Self::BHP768HashToI16,
350 (sym::BHP768, sym::hash_to_i32) => Self::BHP768HashToI32,
351 (sym::BHP768, sym::hash_to_i64) => Self::BHP768HashToI64,
352 (sym::BHP768, sym::hash_to_i128) => Self::BHP768HashToI128,
353 (sym::BHP768, sym::hash_to_u8) => Self::BHP768HashToU8,
354 (sym::BHP768, sym::hash_to_u16) => Self::BHP768HashToU16,
355 (sym::BHP768, sym::hash_to_u32) => Self::BHP768HashToU32,
356 (sym::BHP768, sym::hash_to_u64) => Self::BHP768HashToU64,
357 (sym::BHP768, sym::hash_to_u128) => Self::BHP768HashToU128,
358 (sym::BHP768, sym::hash_to_scalar) => Self::BHP768HashToScalar,
359
360 (sym::BHP1024, sym::commit_to_address) => Self::BHP1024CommitToAddress,
361 (sym::BHP1024, sym::commit_to_field) => Self::BHP1024CommitToField,
362 (sym::BHP1024, sym::commit_to_group) => Self::BHP1024CommitToGroup,
363 (sym::BHP1024, sym::hash_to_address) => Self::BHP1024HashToAddress,
364 (sym::BHP1024, sym::hash_to_field) => Self::BHP1024HashToField,
365 (sym::BHP1024, sym::hash_to_group) => Self::BHP1024HashToGroup,
366 (sym::BHP1024, sym::hash_to_i8) => Self::BHP1024HashToI8,
367 (sym::BHP1024, sym::hash_to_i16) => Self::BHP1024HashToI16,
368 (sym::BHP1024, sym::hash_to_i32) => Self::BHP1024HashToI32,
369 (sym::BHP1024, sym::hash_to_i64) => Self::BHP1024HashToI64,
370 (sym::BHP1024, sym::hash_to_i128) => Self::BHP1024HashToI128,
371 (sym::BHP1024, sym::hash_to_u8) => Self::BHP1024HashToU8,
372 (sym::BHP1024, sym::hash_to_u16) => Self::BHP1024HashToU16,
373 (sym::BHP1024, sym::hash_to_u32) => Self::BHP1024HashToU32,
374 (sym::BHP1024, sym::hash_to_u64) => Self::BHP1024HashToU64,
375 (sym::BHP1024, sym::hash_to_u128) => Self::BHP1024HashToU128,
376 (sym::BHP1024, sym::hash_to_scalar) => Self::BHP1024HashToScalar,
377
378 (sym::ChaCha, sym::rand_address) => Self::ChaChaRandAddress,
379 (sym::ChaCha, sym::rand_bool) => Self::ChaChaRandBool,
380 (sym::ChaCha, sym::rand_field) => Self::ChaChaRandField,
381 (sym::ChaCha, sym::rand_group) => Self::ChaChaRandGroup,
382 (sym::ChaCha, sym::rand_i8) => Self::ChaChaRandI8,
383 (sym::ChaCha, sym::rand_i16) => Self::ChaChaRandI16,
384 (sym::ChaCha, sym::rand_i32) => Self::ChaChaRandI32,
385 (sym::ChaCha, sym::rand_i64) => Self::ChaChaRandI64,
386 (sym::ChaCha, sym::rand_i128) => Self::ChaChaRandI128,
387 (sym::ChaCha, sym::rand_scalar) => Self::ChaChaRandScalar,
388 (sym::ChaCha, sym::rand_u8) => Self::ChaChaRandU8,
389 (sym::ChaCha, sym::rand_u16) => Self::ChaChaRandU16,
390 (sym::ChaCha, sym::rand_u32) => Self::ChaChaRandU32,
391 (sym::ChaCha, sym::rand_u64) => Self::ChaChaRandU64,
392 (sym::ChaCha, sym::rand_u128) => Self::ChaChaRandU128,
393
394 (sym::Keccak256, sym::hash_to_address) => Self::Keccak256HashToAddress,
395 (sym::Keccak256, sym::hash_to_field) => Self::Keccak256HashToField,
396 (sym::Keccak256, sym::hash_to_group) => Self::Keccak256HashToGroup,
397 (sym::Keccak256, sym::hash_to_i8) => Self::Keccak256HashToI8,
398 (sym::Keccak256, sym::hash_to_i16) => Self::Keccak256HashToI16,
399 (sym::Keccak256, sym::hash_to_i32) => Self::Keccak256HashToI32,
400 (sym::Keccak256, sym::hash_to_i64) => Self::Keccak256HashToI64,
401 (sym::Keccak256, sym::hash_to_i128) => Self::Keccak256HashToI128,
402 (sym::Keccak256, sym::hash_to_u8) => Self::Keccak256HashToU8,
403 (sym::Keccak256, sym::hash_to_u16) => Self::Keccak256HashToU16,
404 (sym::Keccak256, sym::hash_to_u32) => Self::Keccak256HashToU32,
405 (sym::Keccak256, sym::hash_to_u64) => Self::Keccak256HashToU64,
406 (sym::Keccak256, sym::hash_to_u128) => Self::Keccak256HashToU128,
407 (sym::Keccak256, sym::hash_to_scalar) => Self::Keccak256HashToScalar,
408
409 (sym::Keccak384, sym::hash_to_address) => Self::Keccak384HashToAddress,
410 (sym::Keccak384, sym::hash_to_field) => Self::Keccak384HashToField,
411 (sym::Keccak384, sym::hash_to_group) => Self::Keccak384HashToGroup,
412 (sym::Keccak384, sym::hash_to_i8) => Self::Keccak384HashToI8,
413 (sym::Keccak384, sym::hash_to_i16) => Self::Keccak384HashToI16,
414 (sym::Keccak384, sym::hash_to_i32) => Self::Keccak384HashToI32,
415 (sym::Keccak384, sym::hash_to_i64) => Self::Keccak384HashToI64,
416 (sym::Keccak384, sym::hash_to_i128) => Self::Keccak384HashToI128,
417 (sym::Keccak384, sym::hash_to_u8) => Self::Keccak384HashToU8,
418 (sym::Keccak384, sym::hash_to_u16) => Self::Keccak384HashToU16,
419 (sym::Keccak384, sym::hash_to_u32) => Self::Keccak384HashToU32,
420 (sym::Keccak384, sym::hash_to_u64) => Self::Keccak384HashToU64,
421 (sym::Keccak384, sym::hash_to_u128) => Self::Keccak384HashToU128,
422 (sym::Keccak384, sym::hash_to_scalar) => Self::Keccak384HashToScalar,
423
424 (sym::Keccak512, sym::hash_to_address) => Self::Keccak512HashToAddress,
425 (sym::Keccak512, sym::hash_to_field) => Self::Keccak512HashToField,
426 (sym::Keccak512, sym::hash_to_group) => Self::Keccak512HashToGroup,
427 (sym::Keccak512, sym::hash_to_i8) => Self::Keccak512HashToI8,
428 (sym::Keccak512, sym::hash_to_i16) => Self::Keccak512HashToI16,
429 (sym::Keccak512, sym::hash_to_i32) => Self::Keccak512HashToI32,
430 (sym::Keccak512, sym::hash_to_i64) => Self::Keccak512HashToI64,
431 (sym::Keccak512, sym::hash_to_i128) => Self::Keccak512HashToI128,
432 (sym::Keccak512, sym::hash_to_u8) => Self::Keccak512HashToU8,
433 (sym::Keccak512, sym::hash_to_u16) => Self::Keccak512HashToU16,
434 (sym::Keccak512, sym::hash_to_u32) => Self::Keccak512HashToU32,
435 (sym::Keccak512, sym::hash_to_u64) => Self::Keccak512HashToU64,
436 (sym::Keccak512, sym::hash_to_u128) => Self::Keccak512HashToU128,
437 (sym::Keccak512, sym::hash_to_scalar) => Self::Keccak512HashToScalar,
438
439 (sym::Pedersen64, sym::commit_to_address) => Self::Pedersen64CommitToAddress,
440 (sym::Pedersen64, sym::commit_to_field) => Self::Pedersen64CommitToField,
441 (sym::Pedersen64, sym::commit_to_group) => Self::Pedersen64CommitToGroup,
442 (sym::Pedersen64, sym::hash_to_address) => Self::Pedersen64HashToAddress,
443 (sym::Pedersen64, sym::hash_to_field) => Self::Pedersen64HashToField,
444 (sym::Pedersen64, sym::hash_to_group) => Self::Pedersen64HashToGroup,
445 (sym::Pedersen64, sym::hash_to_i8) => Self::Pedersen64HashToI8,
446 (sym::Pedersen64, sym::hash_to_i16) => Self::Pedersen64HashToI16,
447 (sym::Pedersen64, sym::hash_to_i32) => Self::Pedersen64HashToI32,
448 (sym::Pedersen64, sym::hash_to_i64) => Self::Pedersen64HashToI64,
449 (sym::Pedersen64, sym::hash_to_i128) => Self::Pedersen64HashToI128,
450 (sym::Pedersen64, sym::hash_to_u8) => Self::Pedersen64HashToU8,
451 (sym::Pedersen64, sym::hash_to_u16) => Self::Pedersen64HashToU16,
452 (sym::Pedersen64, sym::hash_to_u32) => Self::Pedersen64HashToU32,
453 (sym::Pedersen64, sym::hash_to_u64) => Self::Pedersen64HashToU64,
454 (sym::Pedersen64, sym::hash_to_u128) => Self::Pedersen64HashToU128,
455 (sym::Pedersen64, sym::hash_to_scalar) => Self::Pedersen64HashToScalar,
456
457 (sym::Pedersen128, sym::commit_to_address) => Self::Pedersen128CommitToAddress,
458 (sym::Pedersen128, sym::commit_to_field) => Self::Pedersen128CommitToField,
459 (sym::Pedersen128, sym::commit_to_group) => Self::Pedersen128CommitToGroup,
460 (sym::Pedersen128, sym::hash_to_address) => Self::Pedersen128HashToAddress,
461 (sym::Pedersen128, sym::hash_to_field) => Self::Pedersen128HashToField,
462 (sym::Pedersen128, sym::hash_to_group) => Self::Pedersen128HashToGroup,
463 (sym::Pedersen128, sym::hash_to_i8) => Self::Pedersen128HashToI8,
464 (sym::Pedersen128, sym::hash_to_i16) => Self::Pedersen128HashToI16,
465 (sym::Pedersen128, sym::hash_to_i32) => Self::Pedersen128HashToI32,
466 (sym::Pedersen128, sym::hash_to_i64) => Self::Pedersen128HashToI64,
467 (sym::Pedersen128, sym::hash_to_i128) => Self::Pedersen128HashToI128,
468 (sym::Pedersen128, sym::hash_to_u8) => Self::Pedersen128HashToU8,
469 (sym::Pedersen128, sym::hash_to_u16) => Self::Pedersen128HashToU16,
470 (sym::Pedersen128, sym::hash_to_u32) => Self::Pedersen128HashToU32,
471 (sym::Pedersen128, sym::hash_to_u64) => Self::Pedersen128HashToU64,
472 (sym::Pedersen128, sym::hash_to_u128) => Self::Pedersen128HashToU128,
473 (sym::Pedersen128, sym::hash_to_scalar) => Self::Pedersen128HashToScalar,
474
475 (sym::Poseidon2, sym::hash_to_address) => Self::Poseidon2HashToAddress,
476 (sym::Poseidon2, sym::hash_to_field) => Self::Poseidon2HashToField,
477 (sym::Poseidon2, sym::hash_to_group) => Self::Poseidon2HashToGroup,
478 (sym::Poseidon2, sym::hash_to_i8) => Self::Poseidon2HashToI8,
479 (sym::Poseidon2, sym::hash_to_i16) => Self::Poseidon2HashToI16,
480 (sym::Poseidon2, sym::hash_to_i32) => Self::Poseidon2HashToI32,
481 (sym::Poseidon2, sym::hash_to_i64) => Self::Poseidon2HashToI64,
482 (sym::Poseidon2, sym::hash_to_i128) => Self::Poseidon2HashToI128,
483 (sym::Poseidon2, sym::hash_to_u8) => Self::Poseidon2HashToU8,
484 (sym::Poseidon2, sym::hash_to_u16) => Self::Poseidon2HashToU16,
485 (sym::Poseidon2, sym::hash_to_u32) => Self::Poseidon2HashToU32,
486 (sym::Poseidon2, sym::hash_to_u64) => Self::Poseidon2HashToU64,
487 (sym::Poseidon2, sym::hash_to_u128) => Self::Poseidon2HashToU128,
488 (sym::Poseidon2, sym::hash_to_scalar) => Self::Poseidon2HashToScalar,
489
490 (sym::Poseidon4, sym::hash_to_address) => Self::Poseidon4HashToAddress,
491 (sym::Poseidon4, sym::hash_to_field) => Self::Poseidon4HashToField,
492 (sym::Poseidon4, sym::hash_to_group) => Self::Poseidon4HashToGroup,
493 (sym::Poseidon4, sym::hash_to_i8) => Self::Poseidon4HashToI8,
494 (sym::Poseidon4, sym::hash_to_i16) => Self::Poseidon4HashToI16,
495 (sym::Poseidon4, sym::hash_to_i32) => Self::Poseidon4HashToI32,
496 (sym::Poseidon4, sym::hash_to_i64) => Self::Poseidon4HashToI64,
497 (sym::Poseidon4, sym::hash_to_i128) => Self::Poseidon4HashToI128,
498 (sym::Poseidon4, sym::hash_to_u8) => Self::Poseidon4HashToU8,
499 (sym::Poseidon4, sym::hash_to_u16) => Self::Poseidon4HashToU16,
500 (sym::Poseidon4, sym::hash_to_u32) => Self::Poseidon4HashToU32,
501 (sym::Poseidon4, sym::hash_to_u64) => Self::Poseidon4HashToU64,
502 (sym::Poseidon4, sym::hash_to_u128) => Self::Poseidon4HashToU128,
503 (sym::Poseidon4, sym::hash_to_scalar) => Self::Poseidon4HashToScalar,
504
505 (sym::Poseidon8, sym::hash_to_address) => Self::Poseidon8HashToAddress,
506 (sym::Poseidon8, sym::hash_to_field) => Self::Poseidon8HashToField,
507 (sym::Poseidon8, sym::hash_to_group) => Self::Poseidon8HashToGroup,
508 (sym::Poseidon8, sym::hash_to_i8) => Self::Poseidon8HashToI8,
509 (sym::Poseidon8, sym::hash_to_i16) => Self::Poseidon8HashToI16,
510 (sym::Poseidon8, sym::hash_to_i32) => Self::Poseidon8HashToI32,
511 (sym::Poseidon8, sym::hash_to_i64) => Self::Poseidon8HashToI64,
512 (sym::Poseidon8, sym::hash_to_i128) => Self::Poseidon8HashToI128,
513 (sym::Poseidon8, sym::hash_to_u8) => Self::Poseidon8HashToU8,
514 (sym::Poseidon8, sym::hash_to_u16) => Self::Poseidon8HashToU16,
515 (sym::Poseidon8, sym::hash_to_u32) => Self::Poseidon8HashToU32,
516 (sym::Poseidon8, sym::hash_to_u64) => Self::Poseidon8HashToU64,
517 (sym::Poseidon8, sym::hash_to_u128) => Self::Poseidon8HashToU128,
518 (sym::Poseidon8, sym::hash_to_scalar) => Self::Poseidon8HashToScalar,
519
520 (sym::SHA3_256, sym::hash_to_address) => Self::SHA3_256HashToAddress,
521 (sym::SHA3_256, sym::hash_to_field) => Self::SHA3_256HashToField,
522 (sym::SHA3_256, sym::hash_to_group) => Self::SHA3_256HashToGroup,
523 (sym::SHA3_256, sym::hash_to_i8) => Self::SHA3_256HashToI8,
524 (sym::SHA3_256, sym::hash_to_i16) => Self::SHA3_256HashToI16,
525 (sym::SHA3_256, sym::hash_to_i32) => Self::SHA3_256HashToI32,
526 (sym::SHA3_256, sym::hash_to_i64) => Self::SHA3_256HashToI64,
527 (sym::SHA3_256, sym::hash_to_i128) => Self::SHA3_256HashToI128,
528 (sym::SHA3_256, sym::hash_to_u8) => Self::SHA3_256HashToU8,
529 (sym::SHA3_256, sym::hash_to_u16) => Self::SHA3_256HashToU16,
530 (sym::SHA3_256, sym::hash_to_u32) => Self::SHA3_256HashToU32,
531 (sym::SHA3_256, sym::hash_to_u64) => Self::SHA3_256HashToU64,
532 (sym::SHA3_256, sym::hash_to_u128) => Self::SHA3_256HashToU128,
533 (sym::SHA3_256, sym::hash_to_scalar) => Self::SHA3_256HashToScalar,
534
535 (sym::SHA3_384, sym::hash_to_address) => Self::SHA3_384HashToAddress,
536 (sym::SHA3_384, sym::hash_to_field) => Self::SHA3_384HashToField,
537 (sym::SHA3_384, sym::hash_to_group) => Self::SHA3_384HashToGroup,
538 (sym::SHA3_384, sym::hash_to_i8) => Self::SHA3_384HashToI8,
539 (sym::SHA3_384, sym::hash_to_i16) => Self::SHA3_384HashToI16,
540 (sym::SHA3_384, sym::hash_to_i32) => Self::SHA3_384HashToI32,
541 (sym::SHA3_384, sym::hash_to_i64) => Self::SHA3_384HashToI64,
542 (sym::SHA3_384, sym::hash_to_i128) => Self::SHA3_384HashToI128,
543 (sym::SHA3_384, sym::hash_to_u8) => Self::SHA3_384HashToU8,
544 (sym::SHA3_384, sym::hash_to_u16) => Self::SHA3_384HashToU16,
545 (sym::SHA3_384, sym::hash_to_u32) => Self::SHA3_384HashToU32,
546 (sym::SHA3_384, sym::hash_to_u64) => Self::SHA3_384HashToU64,
547 (sym::SHA3_384, sym::hash_to_u128) => Self::SHA3_384HashToU128,
548 (sym::SHA3_384, sym::hash_to_scalar) => Self::SHA3_384HashToScalar,
549
550 (sym::SHA3_512, sym::hash_to_address) => Self::SHA3_512HashToAddress,
551 (sym::SHA3_512, sym::hash_to_field) => Self::SHA3_512HashToField,
552 (sym::SHA3_512, sym::hash_to_group) => Self::SHA3_512HashToGroup,
553 (sym::SHA3_512, sym::hash_to_i8) => Self::SHA3_512HashToI8,
554 (sym::SHA3_512, sym::hash_to_i16) => Self::SHA3_512HashToI16,
555 (sym::SHA3_512, sym::hash_to_i32) => Self::SHA3_512HashToI32,
556 (sym::SHA3_512, sym::hash_to_i64) => Self::SHA3_512HashToI64,
557 (sym::SHA3_512, sym::hash_to_i128) => Self::SHA3_512HashToI128,
558 (sym::SHA3_512, sym::hash_to_u8) => Self::SHA3_512HashToU8,
559 (sym::SHA3_512, sym::hash_to_u16) => Self::SHA3_512HashToU16,
560 (sym::SHA3_512, sym::hash_to_u32) => Self::SHA3_512HashToU32,
561 (sym::SHA3_512, sym::hash_to_u64) => Self::SHA3_512HashToU64,
562 (sym::SHA3_512, sym::hash_to_u128) => Self::SHA3_512HashToU128,
563 (sym::SHA3_512, sym::hash_to_scalar) => Self::SHA3_512HashToScalar,
564
565 (sym::Mapping, sym::get) => Self::MappingGet,
566 (sym::Mapping, sym::get_or_use) => Self::MappingGetOrUse,
567 (sym::Mapping, sym::set) => Self::MappingSet,
568 (sym::Mapping, sym::remove) => Self::MappingRemove,
569 (sym::Mapping, sym::contains) => Self::MappingContains,
570
571 (sym::group, sym::to_x_coordinate) => Self::GroupToXCoordinate,
572 (sym::group, sym::to_y_coordinate) => Self::GroupToYCoordinate,
573
574 (sym::ProgramCore, sym::checksum) => Self::ProgramChecksum,
575 (sym::ProgramCore, sym::edition) => Self::ProgramEdition,
576 (sym::ProgramCore, sym::program_owner) => Self::ProgramOwner,
577
578 (sym::signature, sym::verify) => Self::SignatureVerify,
579 (sym::Future, sym::Await) => Self::FutureAwait,
580
581 (sym::CheatCode, sym::print_mapping) => Self::CheatCodePrintMapping,
582 (sym::CheatCode, sym::set_block_height) => Self::CheatCodeSetBlockHeight,
583 _ => return None,
584 })
585 }
586
587 pub fn num_args(&self) -> usize {
589 match self {
590 Self::BHP256CommitToAddress => 2,
591 Self::BHP256CommitToField => 2,
592 Self::BHP256CommitToGroup => 2,
593
594 Self::BHP256HashToAddress => 1,
595 Self::BHP256HashToField => 1,
596 Self::BHP256HashToGroup => 1,
597 Self::BHP256HashToI8 => 1,
598 Self::BHP256HashToI16 => 1,
599 Self::BHP256HashToI32 => 1,
600 Self::BHP256HashToI64 => 1,
601 Self::BHP256HashToI128 => 1,
602 Self::BHP256HashToU8 => 1,
603 Self::BHP256HashToU16 => 1,
604 Self::BHP256HashToU32 => 1,
605 Self::BHP256HashToU64 => 1,
606 Self::BHP256HashToU128 => 1,
607 Self::BHP256HashToScalar => 1,
608
609 Self::BHP512CommitToAddress => 2,
610 Self::BHP512CommitToField => 2,
611 Self::BHP512CommitToGroup => 2,
612 Self::BHP512HashToAddress => 1,
613 Self::BHP512HashToField => 1,
614 Self::BHP512HashToGroup => 1,
615 Self::BHP512HashToI8 => 1,
616 Self::BHP512HashToI16 => 1,
617 Self::BHP512HashToI32 => 1,
618 Self::BHP512HashToI64 => 1,
619 Self::BHP512HashToI128 => 1,
620 Self::BHP512HashToU8 => 1,
621 Self::BHP512HashToU16 => 1,
622 Self::BHP512HashToU32 => 1,
623 Self::BHP512HashToU64 => 1,
624 Self::BHP512HashToU128 => 1,
625 Self::BHP512HashToScalar => 1,
626
627 Self::BHP768CommitToAddress => 2,
628 Self::BHP768CommitToField => 2,
629 Self::BHP768CommitToGroup => 2,
630 Self::BHP768HashToAddress => 1,
631 Self::BHP768HashToField => 1,
632 Self::BHP768HashToGroup => 1,
633 Self::BHP768HashToI8 => 1,
634 Self::BHP768HashToI16 => 1,
635 Self::BHP768HashToI32 => 1,
636 Self::BHP768HashToI64 => 1,
637 Self::BHP768HashToI128 => 1,
638 Self::BHP768HashToU8 => 1,
639 Self::BHP768HashToU16 => 1,
640 Self::BHP768HashToU32 => 1,
641 Self::BHP768HashToU64 => 1,
642 Self::BHP768HashToU128 => 1,
643 Self::BHP768HashToScalar => 1,
644
645 Self::BHP1024CommitToAddress => 2,
646 Self::BHP1024CommitToField => 2,
647 Self::BHP1024CommitToGroup => 2,
648 Self::BHP1024HashToAddress => 1,
649 Self::BHP1024HashToField => 1,
650 Self::BHP1024HashToGroup => 1,
651 Self::BHP1024HashToI8 => 1,
652 Self::BHP1024HashToI16 => 1,
653 Self::BHP1024HashToI32 => 1,
654 Self::BHP1024HashToI64 => 1,
655 Self::BHP1024HashToI128 => 1,
656 Self::BHP1024HashToU8 => 1,
657 Self::BHP1024HashToU16 => 1,
658 Self::BHP1024HashToU32 => 1,
659 Self::BHP1024HashToU64 => 1,
660 Self::BHP1024HashToU128 => 1,
661 Self::BHP1024HashToScalar => 1,
662
663 Self::ChaChaRandAddress => 0,
664 Self::ChaChaRandBool => 0,
665 Self::ChaChaRandField => 0,
666 Self::ChaChaRandGroup => 0,
667 Self::ChaChaRandI8 => 0,
668 Self::ChaChaRandI16 => 0,
669 Self::ChaChaRandI32 => 0,
670 Self::ChaChaRandI64 => 0,
671 Self::ChaChaRandI128 => 0,
672 Self::ChaChaRandU8 => 0,
673 Self::ChaChaRandU16 => 0,
674 Self::ChaChaRandU32 => 0,
675 Self::ChaChaRandU64 => 0,
676 Self::ChaChaRandU128 => 0,
677 Self::ChaChaRandScalar => 0,
678
679 Self::Keccak256HashToAddress => 1,
680 Self::Keccak256HashToField => 1,
681 Self::Keccak256HashToGroup => 1,
682 Self::Keccak256HashToI8 => 1,
683 Self::Keccak256HashToI16 => 1,
684 Self::Keccak256HashToI32 => 1,
685 Self::Keccak256HashToI64 => 1,
686 Self::Keccak256HashToI128 => 1,
687 Self::Keccak256HashToU8 => 1,
688 Self::Keccak256HashToU16 => 1,
689 Self::Keccak256HashToU32 => 1,
690 Self::Keccak256HashToU64 => 1,
691 Self::Keccak256HashToU128 => 1,
692 Self::Keccak256HashToScalar => 1,
693
694 Self::Keccak384HashToAddress => 1,
695 Self::Keccak384HashToField => 1,
696 Self::Keccak384HashToGroup => 1,
697 Self::Keccak384HashToI8 => 1,
698 Self::Keccak384HashToI16 => 1,
699 Self::Keccak384HashToI32 => 1,
700 Self::Keccak384HashToI64 => 1,
701 Self::Keccak384HashToI128 => 1,
702 Self::Keccak384HashToU8 => 1,
703 Self::Keccak384HashToU16 => 1,
704 Self::Keccak384HashToU32 => 1,
705 Self::Keccak384HashToU64 => 1,
706 Self::Keccak384HashToU128 => 1,
707 Self::Keccak384HashToScalar => 1,
708
709 Self::Keccak512HashToAddress => 1,
710 Self::Keccak512HashToField => 1,
711 Self::Keccak512HashToGroup => 1,
712 Self::Keccak512HashToI8 => 1,
713 Self::Keccak512HashToI16 => 1,
714 Self::Keccak512HashToI32 => 1,
715 Self::Keccak512HashToI64 => 1,
716 Self::Keccak512HashToI128 => 1,
717 Self::Keccak512HashToU8 => 1,
718 Self::Keccak512HashToU16 => 1,
719 Self::Keccak512HashToU32 => 1,
720 Self::Keccak512HashToU64 => 1,
721 Self::Keccak512HashToU128 => 1,
722 Self::Keccak512HashToScalar => 1,
723
724 Self::Pedersen64CommitToAddress => 2,
725 Self::Pedersen64CommitToField => 2,
726 Self::Pedersen64CommitToGroup => 2,
727 Self::Pedersen64HashToAddress => 1,
728 Self::Pedersen64HashToField => 1,
729 Self::Pedersen64HashToGroup => 1,
730 Self::Pedersen64HashToI8 => 1,
731 Self::Pedersen64HashToI16 => 1,
732 Self::Pedersen64HashToI32 => 1,
733 Self::Pedersen64HashToI64 => 1,
734 Self::Pedersen64HashToI128 => 1,
735 Self::Pedersen64HashToU8 => 1,
736 Self::Pedersen64HashToU16 => 1,
737 Self::Pedersen64HashToU32 => 1,
738 Self::Pedersen64HashToU64 => 1,
739 Self::Pedersen64HashToU128 => 1,
740 Self::Pedersen64HashToScalar => 1,
741
742 Self::Pedersen128CommitToAddress => 2,
743 Self::Pedersen128CommitToField => 2,
744 Self::Pedersen128CommitToGroup => 2,
745 Self::Pedersen128HashToAddress => 1,
746 Self::Pedersen128HashToField => 1,
747 Self::Pedersen128HashToGroup => 1,
748 Self::Pedersen128HashToI8 => 1,
749 Self::Pedersen128HashToI16 => 1,
750 Self::Pedersen128HashToI32 => 1,
751 Self::Pedersen128HashToI64 => 1,
752 Self::Pedersen128HashToI128 => 1,
753 Self::Pedersen128HashToU8 => 1,
754 Self::Pedersen128HashToU16 => 1,
755 Self::Pedersen128HashToU32 => 1,
756 Self::Pedersen128HashToU64 => 1,
757 Self::Pedersen128HashToU128 => 1,
758 Self::Pedersen128HashToScalar => 1,
759
760 Self::Poseidon2HashToAddress => 1,
761 Self::Poseidon2HashToField => 1,
762 Self::Poseidon2HashToGroup => 1,
763 Self::Poseidon2HashToI8 => 1,
764 Self::Poseidon2HashToI16 => 1,
765 Self::Poseidon2HashToI32 => 1,
766 Self::Poseidon2HashToI64 => 1,
767 Self::Poseidon2HashToI128 => 1,
768 Self::Poseidon2HashToU8 => 1,
769 Self::Poseidon2HashToU16 => 1,
770 Self::Poseidon2HashToU32 => 1,
771 Self::Poseidon2HashToU64 => 1,
772 Self::Poseidon2HashToU128 => 1,
773 Self::Poseidon2HashToScalar => 1,
774
775 Self::Poseidon4HashToAddress => 1,
776 Self::Poseidon4HashToField => 1,
777 Self::Poseidon4HashToGroup => 1,
778 Self::Poseidon4HashToI8 => 1,
779 Self::Poseidon4HashToI16 => 1,
780 Self::Poseidon4HashToI32 => 1,
781 Self::Poseidon4HashToI64 => 1,
782 Self::Poseidon4HashToI128 => 1,
783 Self::Poseidon4HashToU8 => 1,
784 Self::Poseidon4HashToU16 => 1,
785 Self::Poseidon4HashToU32 => 1,
786 Self::Poseidon4HashToU64 => 1,
787 Self::Poseidon4HashToU128 => 1,
788 Self::Poseidon4HashToScalar => 1,
789
790 Self::Poseidon8HashToAddress => 1,
791 Self::Poseidon8HashToField => 1,
792 Self::Poseidon8HashToGroup => 1,
793 Self::Poseidon8HashToI8 => 1,
794 Self::Poseidon8HashToI16 => 1,
795 Self::Poseidon8HashToI32 => 1,
796 Self::Poseidon8HashToI64 => 1,
797 Self::Poseidon8HashToI128 => 1,
798 Self::Poseidon8HashToU8 => 1,
799 Self::Poseidon8HashToU16 => 1,
800 Self::Poseidon8HashToU32 => 1,
801 Self::Poseidon8HashToU64 => 1,
802 Self::Poseidon8HashToU128 => 1,
803 Self::Poseidon8HashToScalar => 1,
804
805 Self::SHA3_256HashToAddress => 1,
806 Self::SHA3_256HashToField => 1,
807 Self::SHA3_256HashToGroup => 1,
808 Self::SHA3_256HashToI8 => 1,
809 Self::SHA3_256HashToI16 => 1,
810 Self::SHA3_256HashToI32 => 1,
811 Self::SHA3_256HashToI64 => 1,
812 Self::SHA3_256HashToI128 => 1,
813 Self::SHA3_256HashToU8 => 1,
814 Self::SHA3_256HashToU16 => 1,
815 Self::SHA3_256HashToU32 => 1,
816 Self::SHA3_256HashToU64 => 1,
817 Self::SHA3_256HashToU128 => 1,
818 Self::SHA3_256HashToScalar => 1,
819
820 Self::SHA3_384HashToAddress => 1,
821 Self::SHA3_384HashToField => 1,
822 Self::SHA3_384HashToGroup => 1,
823 Self::SHA3_384HashToI8 => 1,
824 Self::SHA3_384HashToI16 => 1,
825 Self::SHA3_384HashToI32 => 1,
826 Self::SHA3_384HashToI64 => 1,
827 Self::SHA3_384HashToI128 => 1,
828 Self::SHA3_384HashToU8 => 1,
829 Self::SHA3_384HashToU16 => 1,
830 Self::SHA3_384HashToU32 => 1,
831 Self::SHA3_384HashToU64 => 1,
832 Self::SHA3_384HashToU128 => 1,
833 Self::SHA3_384HashToScalar => 1,
834
835 Self::SHA3_512HashToAddress => 1,
836 Self::SHA3_512HashToField => 1,
837 Self::SHA3_512HashToGroup => 1,
838 Self::SHA3_512HashToI8 => 1,
839 Self::SHA3_512HashToI16 => 1,
840 Self::SHA3_512HashToI32 => 1,
841 Self::SHA3_512HashToI64 => 1,
842 Self::SHA3_512HashToI128 => 1,
843 Self::SHA3_512HashToU8 => 1,
844 Self::SHA3_512HashToU16 => 1,
845 Self::SHA3_512HashToU32 => 1,
846 Self::SHA3_512HashToU64 => 1,
847 Self::SHA3_512HashToU128 => 1,
848 Self::SHA3_512HashToScalar => 1,
849
850 Self::MappingGet => 2,
851 Self::MappingGetOrUse => 3,
852 Self::MappingSet => 3,
853 Self::MappingRemove => 2,
854 Self::MappingContains => 2,
855
856 Self::GroupToXCoordinate => 1,
857 Self::GroupToYCoordinate => 1,
858
859 Self::SignatureVerify => 3,
860 Self::FutureAwait => 1,
861
862 Self::ProgramChecksum => 1,
863 Self::ProgramEdition => 1,
864 Self::ProgramOwner => 1,
865 Self::CheatCodePrintMapping => 1,
866 Self::CheatCodeSetBlockHeight => 1,
867 }
868 }
869
870 pub fn is_finalize_command(&self) -> bool {
872 match self {
873 CoreFunction::FutureAwait
874 | CoreFunction::ChaChaRandAddress
875 | CoreFunction::ChaChaRandBool
876 | CoreFunction::ChaChaRandField
877 | CoreFunction::ChaChaRandGroup
878 | CoreFunction::ChaChaRandI8
879 | CoreFunction::ChaChaRandI16
880 | CoreFunction::ChaChaRandI32
881 | CoreFunction::ChaChaRandI64
882 | CoreFunction::ChaChaRandI128
883 | CoreFunction::ChaChaRandU8
884 | CoreFunction::ChaChaRandU16
885 | CoreFunction::ChaChaRandU32
886 | CoreFunction::ChaChaRandU64
887 | CoreFunction::ChaChaRandU128
888 | CoreFunction::MappingGet
889 | CoreFunction::MappingGetOrUse
890 | CoreFunction::ChaChaRandScalar
891 | CoreFunction::MappingSet
892 | CoreFunction::MappingRemove
893 | CoreFunction::MappingContains
894 | CoreFunction::ProgramChecksum
895 | CoreFunction::ProgramEdition
896 | CoreFunction::ProgramOwner => true,
897 CoreFunction::BHP256CommitToAddress
898 | CoreFunction::BHP256CommitToField
899 | CoreFunction::BHP256CommitToGroup
900 | CoreFunction::BHP256HashToAddress
901 | CoreFunction::BHP256HashToField
902 | CoreFunction::BHP256HashToGroup
903 | CoreFunction::BHP256HashToI8
904 | CoreFunction::BHP256HashToI16
905 | CoreFunction::BHP256HashToI32
906 | CoreFunction::BHP256HashToI64
907 | CoreFunction::BHP256HashToI128
908 | CoreFunction::BHP256HashToU8
909 | CoreFunction::BHP256HashToU16
910 | CoreFunction::BHP256HashToU32
911 | CoreFunction::BHP256HashToU64
912 | CoreFunction::BHP256HashToU128
913 | CoreFunction::BHP256HashToScalar
914 | CoreFunction::BHP512CommitToAddress
915 | CoreFunction::BHP512CommitToField
916 | CoreFunction::BHP512CommitToGroup
917 | CoreFunction::BHP512HashToAddress
918 | CoreFunction::BHP512HashToField
919 | CoreFunction::BHP512HashToGroup
920 | CoreFunction::BHP512HashToI8
921 | CoreFunction::BHP512HashToI16
922 | CoreFunction::BHP512HashToI32
923 | CoreFunction::BHP512HashToI64
924 | CoreFunction::BHP512HashToI128
925 | CoreFunction::BHP512HashToU8
926 | CoreFunction::BHP512HashToU16
927 | CoreFunction::BHP512HashToU32
928 | CoreFunction::BHP512HashToU64
929 | CoreFunction::BHP512HashToU128
930 | CoreFunction::BHP512HashToScalar
931 | CoreFunction::BHP768CommitToAddress
932 | CoreFunction::BHP768CommitToField
933 | CoreFunction::BHP768CommitToGroup
934 | CoreFunction::BHP768HashToAddress
935 | CoreFunction::BHP768HashToField
936 | CoreFunction::BHP768HashToGroup
937 | CoreFunction::BHP768HashToI8
938 | CoreFunction::BHP768HashToI16
939 | CoreFunction::BHP768HashToI32
940 | CoreFunction::BHP768HashToI64
941 | CoreFunction::BHP768HashToI128
942 | CoreFunction::BHP768HashToU8
943 | CoreFunction::BHP768HashToU16
944 | CoreFunction::BHP768HashToU32
945 | CoreFunction::BHP768HashToU64
946 | CoreFunction::BHP768HashToU128
947 | CoreFunction::BHP768HashToScalar
948 | CoreFunction::BHP1024CommitToAddress
949 | CoreFunction::BHP1024CommitToField
950 | CoreFunction::BHP1024CommitToGroup
951 | CoreFunction::BHP1024HashToAddress
952 | CoreFunction::BHP1024HashToField
953 | CoreFunction::BHP1024HashToGroup
954 | CoreFunction::BHP1024HashToI8
955 | CoreFunction::BHP1024HashToI16
956 | CoreFunction::BHP1024HashToI32
957 | CoreFunction::BHP1024HashToI64
958 | CoreFunction::BHP1024HashToI128
959 | CoreFunction::BHP1024HashToU8
960 | CoreFunction::BHP1024HashToU16
961 | CoreFunction::BHP1024HashToU32
962 | CoreFunction::BHP1024HashToU64
963 | CoreFunction::BHP1024HashToU128
964 | CoreFunction::BHP1024HashToScalar
965 | CoreFunction::Keccak256HashToAddress
966 | CoreFunction::Keccak256HashToField
967 | CoreFunction::Keccak256HashToGroup
968 | CoreFunction::Keccak256HashToI8
969 | CoreFunction::Keccak256HashToI16
970 | CoreFunction::Keccak256HashToI32
971 | CoreFunction::Keccak256HashToI64
972 | CoreFunction::Keccak256HashToI128
973 | CoreFunction::Keccak256HashToU8
974 | CoreFunction::Keccak256HashToU16
975 | CoreFunction::Keccak256HashToU32
976 | CoreFunction::Keccak256HashToU64
977 | CoreFunction::Keccak256HashToU128
978 | CoreFunction::Keccak256HashToScalar
979 | CoreFunction::Keccak384HashToAddress
980 | CoreFunction::Keccak384HashToField
981 | CoreFunction::Keccak384HashToGroup
982 | CoreFunction::Keccak384HashToI8
983 | CoreFunction::Keccak384HashToI16
984 | CoreFunction::Keccak384HashToI32
985 | CoreFunction::Keccak384HashToI64
986 | CoreFunction::Keccak384HashToI128
987 | CoreFunction::Keccak384HashToU8
988 | CoreFunction::Keccak384HashToU16
989 | CoreFunction::Keccak384HashToU32
990 | CoreFunction::Keccak384HashToU64
991 | CoreFunction::Keccak384HashToU128
992 | CoreFunction::Keccak384HashToScalar
993 | CoreFunction::Keccak512HashToAddress
994 | CoreFunction::Keccak512HashToField
995 | CoreFunction::Keccak512HashToGroup
996 | CoreFunction::Keccak512HashToI8
997 | CoreFunction::Keccak512HashToI16
998 | CoreFunction::Keccak512HashToI32
999 | CoreFunction::Keccak512HashToI64
1000 | CoreFunction::Keccak512HashToI128
1001 | CoreFunction::Keccak512HashToU8
1002 | CoreFunction::Keccak512HashToU16
1003 | CoreFunction::Keccak512HashToU32
1004 | CoreFunction::Keccak512HashToU64
1005 | CoreFunction::Keccak512HashToU128
1006 | CoreFunction::Keccak512HashToScalar
1007 | CoreFunction::Pedersen64CommitToAddress
1008 | CoreFunction::Pedersen64CommitToField
1009 | CoreFunction::Pedersen64CommitToGroup
1010 | CoreFunction::Pedersen64HashToAddress
1011 | CoreFunction::Pedersen64HashToField
1012 | CoreFunction::Pedersen64HashToGroup
1013 | CoreFunction::Pedersen64HashToI8
1014 | CoreFunction::Pedersen64HashToI16
1015 | CoreFunction::Pedersen64HashToI32
1016 | CoreFunction::Pedersen64HashToI64
1017 | CoreFunction::Pedersen64HashToI128
1018 | CoreFunction::Pedersen64HashToU8
1019 | CoreFunction::Pedersen64HashToU16
1020 | CoreFunction::Pedersen64HashToU32
1021 | CoreFunction::Pedersen64HashToU64
1022 | CoreFunction::Pedersen64HashToU128
1023 | CoreFunction::Pedersen64HashToScalar
1024 | CoreFunction::Pedersen128CommitToAddress
1025 | CoreFunction::Pedersen128CommitToField
1026 | CoreFunction::Pedersen128CommitToGroup
1027 | CoreFunction::Pedersen128HashToAddress
1028 | CoreFunction::Pedersen128HashToField
1029 | CoreFunction::Pedersen128HashToGroup
1030 | CoreFunction::Pedersen128HashToI8
1031 | CoreFunction::Pedersen128HashToI16
1032 | CoreFunction::Pedersen128HashToI32
1033 | CoreFunction::Pedersen128HashToI64
1034 | CoreFunction::Pedersen128HashToI128
1035 | CoreFunction::Pedersen128HashToU8
1036 | CoreFunction::Pedersen128HashToU16
1037 | CoreFunction::Pedersen128HashToU32
1038 | CoreFunction::Pedersen128HashToU64
1039 | CoreFunction::Pedersen128HashToU128
1040 | CoreFunction::Pedersen128HashToScalar
1041 | CoreFunction::Poseidon2HashToAddress
1042 | CoreFunction::Poseidon2HashToField
1043 | CoreFunction::Poseidon2HashToGroup
1044 | CoreFunction::Poseidon2HashToI8
1045 | CoreFunction::Poseidon2HashToI16
1046 | CoreFunction::Poseidon2HashToI32
1047 | CoreFunction::Poseidon2HashToI64
1048 | CoreFunction::Poseidon2HashToI128
1049 | CoreFunction::Poseidon2HashToU8
1050 | CoreFunction::Poseidon2HashToU16
1051 | CoreFunction::Poseidon2HashToU32
1052 | CoreFunction::Poseidon2HashToU64
1053 | CoreFunction::Poseidon2HashToU128
1054 | CoreFunction::Poseidon2HashToScalar
1055 | CoreFunction::Poseidon4HashToAddress
1056 | CoreFunction::Poseidon4HashToField
1057 | CoreFunction::Poseidon4HashToGroup
1058 | CoreFunction::Poseidon4HashToI8
1059 | CoreFunction::Poseidon4HashToI16
1060 | CoreFunction::Poseidon4HashToI32
1061 | CoreFunction::Poseidon4HashToI64
1062 | CoreFunction::Poseidon4HashToI128
1063 | CoreFunction::Poseidon4HashToU8
1064 | CoreFunction::Poseidon4HashToU16
1065 | CoreFunction::Poseidon4HashToU32
1066 | CoreFunction::Poseidon4HashToU64
1067 | CoreFunction::Poseidon4HashToU128
1068 | CoreFunction::Poseidon4HashToScalar
1069 | CoreFunction::Poseidon8HashToAddress
1070 | CoreFunction::Poseidon8HashToField
1071 | CoreFunction::Poseidon8HashToGroup
1072 | CoreFunction::Poseidon8HashToI8
1073 | CoreFunction::Poseidon8HashToI16
1074 | CoreFunction::Poseidon8HashToI32
1075 | CoreFunction::Poseidon8HashToI64
1076 | CoreFunction::Poseidon8HashToI128
1077 | CoreFunction::Poseidon8HashToU8
1078 | CoreFunction::Poseidon8HashToU16
1079 | CoreFunction::Poseidon8HashToU32
1080 | CoreFunction::Poseidon8HashToU64
1081 | CoreFunction::Poseidon8HashToU128
1082 | CoreFunction::Poseidon8HashToScalar
1083 | CoreFunction::SHA3_256HashToAddress
1084 | CoreFunction::SHA3_256HashToField
1085 | CoreFunction::SHA3_256HashToGroup
1086 | CoreFunction::SHA3_256HashToI8
1087 | CoreFunction::SHA3_256HashToI16
1088 | CoreFunction::SHA3_256HashToI32
1089 | CoreFunction::SHA3_256HashToI64
1090 | CoreFunction::SHA3_256HashToI128
1091 | CoreFunction::SHA3_256HashToU8
1092 | CoreFunction::SHA3_256HashToU16
1093 | CoreFunction::SHA3_256HashToU32
1094 | CoreFunction::SHA3_256HashToU64
1095 | CoreFunction::SHA3_256HashToU128
1096 | CoreFunction::SHA3_256HashToScalar
1097 | CoreFunction::SHA3_384HashToAddress
1098 | CoreFunction::SHA3_384HashToField
1099 | CoreFunction::SHA3_384HashToGroup
1100 | CoreFunction::SHA3_384HashToI8
1101 | CoreFunction::SHA3_384HashToI16
1102 | CoreFunction::SHA3_384HashToI32
1103 | CoreFunction::SHA3_384HashToI64
1104 | CoreFunction::SHA3_384HashToI128
1105 | CoreFunction::SHA3_384HashToU8
1106 | CoreFunction::SHA3_384HashToU16
1107 | CoreFunction::SHA3_384HashToU32
1108 | CoreFunction::SHA3_384HashToU64
1109 | CoreFunction::SHA3_384HashToU128
1110 | CoreFunction::SHA3_384HashToScalar
1111 | CoreFunction::SHA3_512HashToAddress
1112 | CoreFunction::SHA3_512HashToField
1113 | CoreFunction::SHA3_512HashToGroup
1114 | CoreFunction::SHA3_512HashToI8
1115 | CoreFunction::SHA3_512HashToI16
1116 | CoreFunction::SHA3_512HashToI32
1117 | CoreFunction::SHA3_512HashToI64
1118 | CoreFunction::SHA3_512HashToI128
1119 | CoreFunction::SHA3_512HashToU8
1120 | CoreFunction::SHA3_512HashToU16
1121 | CoreFunction::SHA3_512HashToU32
1122 | CoreFunction::SHA3_512HashToU64
1123 | CoreFunction::SHA3_512HashToU128
1124 | CoreFunction::SHA3_512HashToScalar
1125 | CoreFunction::GroupToXCoordinate
1126 | CoreFunction::GroupToYCoordinate
1127 | CoreFunction::SignatureVerify
1128 | CoreFunction::CheatCodePrintMapping
1129 | CoreFunction::CheatCodeSetBlockHeight => false,
1130 }
1131 }
1132}