foundry_evm_core/
precompiles.rs

1use alloy_primitives::{Address, address};
2
3/// The ECRecover precompile address.
4pub const EC_RECOVER: Address = address!("0x0000000000000000000000000000000000000001");
5
6/// The SHA-256 precompile address.
7pub const SHA_256: Address = address!("0x0000000000000000000000000000000000000002");
8
9/// The RIPEMD-160 precompile address.
10pub const RIPEMD_160: Address = address!("0x0000000000000000000000000000000000000003");
11
12/// The Identity precompile address.
13pub const IDENTITY: Address = address!("0x0000000000000000000000000000000000000004");
14
15/// The ModExp precompile address.
16pub const MOD_EXP: Address = address!("0x0000000000000000000000000000000000000005");
17
18/// The ECAdd precompile address.
19pub const EC_ADD: Address = address!("0x0000000000000000000000000000000000000006");
20
21/// The ECMul precompile address.
22pub const EC_MUL: Address = address!("0x0000000000000000000000000000000000000007");
23
24/// The ECPairing precompile address.
25pub const EC_PAIRING: Address = address!("0x0000000000000000000000000000000000000008");
26
27/// The Blake2F precompile address.
28pub const BLAKE_2F: Address = address!("0x0000000000000000000000000000000000000009");
29
30/// The PointEvaluation precompile address.
31pub const POINT_EVALUATION: Address = address!("0x000000000000000000000000000000000000000a");
32
33/// The BLS12-381 G1ADD precompile address.
34pub const BLS12_G1ADD: Address = address!("0x000000000000000000000000000000000000000b");
35
36/// The BLS12-381 G1MSM precompile address.
37pub const BLS12_G1MSM: Address = address!("0x000000000000000000000000000000000000000c");
38
39/// The BLS12-381 G2ADD precompile address.
40pub const BLS12_G2ADD: Address = address!("0x000000000000000000000000000000000000000d");
41
42/// The BLS12-381 G2MSM precompile address.
43pub const BLS12_G2MSM: Address = address!("0x000000000000000000000000000000000000000e");
44
45/// The BLS12-381 pairing check precompile address.
46pub const BLS12_PAIRING_CHECK: Address = address!("0x000000000000000000000000000000000000000f");
47
48/// The BLS12-381 map Fp to G1 precompile address.
49pub const BLS12_MAP_FP_TO_G1: Address = address!("0x0000000000000000000000000000000000000010");
50
51/// The BLS12-381 map Fp2 to G2 precompile address.
52pub const BLS12_MAP_FP2_TO_G2: Address = address!("0x0000000000000000000000000000000000000011");
53
54/// The P256VERIFY precompile address.
55pub const P256_VERIFY: Address = address!("0x0000000000000000000000000000000000000100");
56
57/// Precompile addresses.
58pub const PRECOMPILES: &[Address] = &[
59    EC_RECOVER,
60    SHA_256,
61    RIPEMD_160,
62    IDENTITY,
63    MOD_EXP,
64    EC_ADD,
65    EC_MUL,
66    EC_PAIRING,
67    BLAKE_2F,
68    POINT_EVALUATION,
69    BLS12_G1ADD,
70    BLS12_G1MSM,
71    BLS12_G2ADD,
72    BLS12_G2MSM,
73    BLS12_PAIRING_CHECK,
74    BLS12_MAP_FP_TO_G1,
75    BLS12_MAP_FP2_TO_G2,
76    P256_VERIFY,
77];