revm_precompile/
bls12_381.rs

1use crate::PrecompileWithAddress;
2
3cfg_if::cfg_if! {
4    if #[cfg(feature = "blst")]{
5        mod blst;
6        use blst as crypto_backend;
7    } else {
8        mod arkworks;
9        use arkworks as crypto_backend;
10    }
11}
12
13pub mod g1_add;
14pub mod g1_msm;
15pub mod g2_add;
16pub mod g2_msm;
17pub mod map_fp2_to_g2;
18pub mod map_fp_to_g1;
19pub mod pairing;
20mod utils;
21
22/// Returns the BLS12-381 precompiles with their addresses.
23pub fn precompiles() -> impl Iterator<Item = PrecompileWithAddress> {
24    [
25        g1_add::PRECOMPILE,
26        g1_msm::PRECOMPILE,
27        g2_add::PRECOMPILE,
28        g2_msm::PRECOMPILE,
29        pairing::PRECOMPILE,
30        map_fp_to_g1::PRECOMPILE,
31        map_fp2_to_g2::PRECOMPILE,
32    ]
33    .into_iter()
34}