fluentbase_types/
sys_func_idx.rs1use strum_macros::{Display, FromRepr};
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Display, FromRepr)]
4#[repr(u32)]
5#[allow(non_camel_case_types)]
6pub enum SysFuncIdx {
7 EXIT = 0x0001,
9 STATE = 0x0002,
10 READ_INPUT = 0x0003,
11 INPUT_SIZE = 0x0004,
12 WRITE_OUTPUT = 0x0005,
13 OUTPUT_SIZE = 0x0006,
14 READ_OUTPUT = 0x0007,
15 EXEC = 0x0009,
16 RESUME = 0x000a,
17 FORWARD_OUTPUT = 0x000b,
18 CHARGE_FUEL_MANUALLY = 0x000c,
19 FUEL = 0x000d,
20 DEBUG_LOG = 0x0010,
23 CHARGE_FUEL = 0x0011,
24 ENTER_UNCONSTRAINED = 0x0012,
25 EXIT_UNCONSTRAINED = 0x0013,
26 WRITE_FD = 0x0014,
27
28 KECCAK256 = 0x0101,
31 KECCAK256_PERMUTE = 0x0102,
32 POSEIDON = 0x0103,
33 SHA256_EXTEND = 0x0105,
35 SHA256_COMPRESS = 0x0106,
36 SHA256 = 0x0118,
38 BLAKE3 = 0x0117,
39
40 ED25519_DECOMPRESS = 0x0201,
42 ED25519_ADD = 0x0202,
43
44 TOWER_FP1_BN254_ADD = 0x0301,
46 TOWER_FP1_BN254_SUB = 0x0302,
47 TOWER_FP1_BN254_MUL = 0x0303,
48 TOWER_FP1_BLS12381_ADD = 0x0304,
49 TOWER_FP1_BLS12381_SUB = 0x0305,
50 TOWER_FP1_BLS12381_MUL = 0x0306,
51 TOWER_FP2_BN254_ADD = 0x0307,
52 TOWER_FP2_BN254_SUB = 0x0308,
53 TOWER_FP2_BN254_MUL = 0x0309,
54 TOWER_FP2_BLS12381_ADD = 0x030a,
55 TOWER_FP2_BLS12381_SUB = 0x030b,
56 TOWER_FP2_BLS12381_MUL = 0x030c,
57
58 SECP256K1_ADD = 0x0401,
60 SECP256K1_DECOMPRESS = 0x0402,
61 SECP256K1_DOUBLE = 0x0403,
62
63 SECP256R1_ADD = 0x0501,
65 SECP256R1_DECOMPRESS = 0x0502,
66 SECP256R1_DOUBLE = 0x0503,
67
68 BLS12381_ADD = 0x0601,
70 BLS12381_DECOMPRESS = 0x0602,
71 BLS12381_DOUBLE = 0x0603,
72
73 BN254_ADD = 0x0701,
75 BN254_DOUBLE = 0x0702,
76
77 UINT256_MUL_MOD = 0x0801,
79 UINT256_X2048_MUL = 0x0802,
80}
81
82impl From<SysFuncIdx> for u32 {
83 fn from(value: SysFuncIdx) -> Self {
84 value as u32
85 }
86}