Cargo Features

[dependencies]
revm-precompile = { version = "15.0.0", default-features = false, features = ["std", "hashbrown", "asm-keccak", "optimism", "optimism-default-handler", "negate-optimism-default-handler", "secp256r1", "c-kzg", "kzg-rs", "portable", "secp256k1", "blst"] }
default = blst, c-kzg, portable, secp256k1, std

These default features are set whenever revm-precompile is added without default-features = false somewhere in the dependency tree.

std default

Enables std of sha2

SHA2-256 and RIPEMD-160

and std of optional c-kzg ^1.0.3

KZG point evaluation precompile

and std of k256, once_cell, revm-primitives, ripemd, and optional secp256k1 >=0.28, <=0.29

k256:

ecRecover

hashbrown

Enables hashbrown of revm-primitives

asm-keccak

Enables asm-keccak of revm-primitives

optimism optimism-default-handler? = secp256r1

Enables optimism of revm-primitives

optimism-default-handler = optimism

Optimism default handler enabled Optimism handler register by default in EvmBuilder.

Enables optimism-default-handler of revm-primitives

negate-optimism-default-handler

Enables negate-optimism-default-handler of revm-primitives

secp256r1 optimism?

Enables the p256verify precompile.

Enables p256

p256verify precompile

Affects revm-precompile::secp256r1

c-kzg default

These libraries may not work on all no_std platforms as they depend on C.

Enables the KZG point evaluation precompile.

Enables c-kzg ^1.0.3, c-kzg of revm-primitives

Affects revm-precompile::kzg_point_evaluation

kzg-rs

kzg-rs is not audited but useful for no_std environment, use it with causing and default to c-kzg if possible.

Enables kzg-rs of revm-primitives and kzg-rs

Optionally use kzg-rs for a pure Rust implementation of KZG point evaluation.

Affects revm-precompile::kzg_point_evaluation

portable default

Enables portable of optional c-kzg ^1.0.3 and revm-primitives

secp256k1 default

Use secp256k1 as a faster alternative to k256. The problem that secp256k1 has is it fails to build for wasm target on Windows and Mac as it is c lib. In Linux it passes. If you don't require to build wasm on win/mac, it is safe to use it and it is enabled by default.

Enables secp256k1 >=0.28, <=0.29

blst default

Enables the BLS12-381 precompiles.

Enables blst

BLS12-381 precompiles

Affects revm-precompile::bls12_381