Skip to main content

Crate precompile

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
bn254
BN254 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.

Macros§

eth_precompile_fn
Macro that generates a thin wrapper function converting a PrecompileEthFn into a PrecompileFn.

Structs§

DefaultCrypto
Default implementation of the Crypto trait using the existing crypto libraries.
EthPrecompileOutput
Simple precompile execution output used by individual Ethereum precompile functions.
Precompile
Precompile wrapper for simple eth function that provides complex interface on execution.
PrecompileOutput
Rich precompile execution output with gas accounting and status support.
Precompiles
Precompiles contain map of precompile addresses to functions and AddressSet of precompile addresses.

Enums§

PrecompileError
Fatal precompile error type.
PrecompileHalt
Non-fatal halt reasons for precompiles.
PrecompileId
Precompile with address and function. Unique precompile identifier.
PrecompileSpecId
Ethereum hardfork spec ids. Represents the specs where precompiles had a change.
PrecompileStatus
Status of a precompile execution.

Traits§

Crypto
Crypto operations trait for precompiles.

Functions§

calc_linear_cost
Calculate the linear cost of a precompile.
calc_linear_cost_u32Deprecated
Calculate the linear cost of a precompile.
call_eth_precompile
Calls a PrecompileEthFn and wraps the result into a PrecompileOutput.
crypto
Get the installed crypto provider, or the default if none is installed.
install_crypto
Install a custom crypto provider globally.
u64_to_address
Const function for making an address by concatenating the bytes from two given numbers.

Type Aliases§

EthPrecompileResult
A precompile operation result type for individual Ethereum precompile functions.
PrecompileEthFn
Eth precompile function type. Takes input and gas limit, returns an Eth precompile result.
PrecompileFn
Precompile function type. Takes input, gas limit and reservoir, returns a PrecompileResult.
PrecompileResult
A precompile operation result type for the precompile provider.