Crate precompile

Expand description

§revm-precompile

Implementations of EVM precompiled contracts.

Modules§

blake2
Blake2 precompile. More details in run
bls12_381
BLS12-381 precompiles added in EIP-2537 For more details check modules for each precompile.
bls12_381_const
Constants specifying the precompile addresses for each precompile in EIP-2537
bls12_381_utils
Utility functions for the BLS12-381 precompiles
bn128
BN128 precompiles added in EIP-1962
hash
Hash precompiles, it contains SHA-256 and RIPEMD-160 hash precompiles More details in sha256_run and ripemd160_run
identity
Identity precompile returns
interface
Interface for the precompiles. It contains the precompile result type, the precompile output type, and the precompile error type.
kzg_point_evaluation
KZG point evaluation precompile added in EIP-4844 For more details check run function.
modexp
Modexp precompile added in EIP-198 and reprices in berlin hardfork with EIP-2565.
secp256k1
ecrecover precompile.
secp256r1
RIP-7212 secp256r1 Precompile
utilities
Utility function that precompiles use, padding and converting between types.

Structs§

PrecompileOutput
Precompile execution output
PrecompileWithAddress
Precompile with address and function.
Precompiles
Precompiles contain map of precompile addresses to functions and HashSet of precompile addresses.

Enums§

PrecompileError
Precompile error type.
PrecompileSpecId
Ethereum hardfork spec ids. Represents the specs where precompiles had a change.

Functions§

calc_linear_cost_u32
Calculate the linear cost of a precompile.
u64_to_address
Const function for making an address by concatenating the bytes from two given numbers.

Type Aliases§

PrecompileFn
Precompile function type. Takes input and gas limit and returns precompile result.
PrecompileResult
A precompile operation result type