Skip to main content

fluentbase_types/
sys_func_idx.rs

1use 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    // input/output & state control (0x00)
8    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    // PREIMAGE_SIZE = 0x000e,
21    // PREIMAGE_COPY = 0x000f,
22    DEBUG_LOG = 0x0010,
23    CHARGE_FUEL = 0x0011,
24    ENTER_UNCONSTRAINED = 0x0012,
25    EXIT_UNCONSTRAINED = 0x0013,
26    WRITE_FD = 0x0014,
27
28    // hashing functions (0x01)
29    // #[deprecated(note = "use permute instead")]
30    KECCAK256 = 0x0101,
31    KECCAK256_PERMUTE = 0x0102,
32    POSEIDON = 0x0103,
33    // POSEIDON_HASH = 0x0104,
34    SHA256_EXTEND = 0x0105,
35    SHA256_COMPRESS = 0x0106,
36    // #[deprecated(note = "use extend/compress instead")]
37    SHA256 = 0x0118,
38    BLAKE3 = 0x0117,
39
40    // ed25519 (0x02)
41    ED25519_DECOMPRESS = 0x0201,
42    ED25519_ADD = 0x0202,
43
44    // fp1/fp2 tower field (0x03)
45    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 (0x04)
59    SECP256K1_ADD = 0x0401,
60    SECP256K1_DECOMPRESS = 0x0402,
61    SECP256K1_DOUBLE = 0x0403,
62
63    // secp256r1 (0x05)
64    SECP256R1_ADD = 0x0501,
65    SECP256R1_DECOMPRESS = 0x0502,
66    SECP256R1_DOUBLE = 0x0503,
67
68    // bls12381 (0x06)
69    BLS12381_ADD = 0x0601,
70    BLS12381_DECOMPRESS = 0x0602,
71    BLS12381_DOUBLE = 0x0603,
72
73    // bn254 (0x07)
74    BN254_ADD = 0x0701,
75    BN254_DOUBLE = 0x0702,
76
77    // uint256 (0x08)
78    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}