[package] authors = ["Dragan Rakita "] description = "revm - Rust Ethereum Virtual Machine" edition = "2021" keywords = ["no_std", "ethereum", "evm", "revm"] license = "MIT" name = "revm" repository = "https://github.com/bluealloy/revm" version = "18.0.0" readme = "../../README.md" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [lints.rust] unreachable_pub = "warn" unused_must_use = "deny" rust_2018_idioms = "deny" [lints.rustdoc] all = "warn" [dependencies] # revm revm-interpreter = { path = "../interpreter", version = "14.0.0", default-features = false } revm-precompile = { path = "../precompile", version = "15.0.0", default-features = false } # misc auto_impl = { version = "1.2", default-features = false } cfg-if = "1.0" dyn-clone = "1.0" # Optional serde = { version = "1.0", default-features = false, features = [ "derive", "rc", ], optional = true } serde_json = { version = "1.0", default-features = false, features = [ "alloc", ], optional = true } # ethersdb tokio = { version = "1.40", features = [ "rt-multi-thread", "macros", ], optional = true } ethers-providers = { version = "2.0", optional = true } ethers-core = { version = "2.0", optional = true } # alloydb alloy-provider = { version = "0.5.4", optional = true, default-features = false } alloy-eips = { version = "0.5.4", optional = true, default-features = false } alloy-transport = { version = "0.5.4", optional = true, default-features = false } [dev-dependencies] alloy-sol-types = { version = "0.8.2", default-features = false, features = [ "std", ] } ethers-contract = { version = "2.0.14", default-features = false } anyhow = "1.0.87" criterion = "0.5" indicatif = "0.17" reqwest = { version = "0.12" } rstest = "0.22.0" alloy-provider = "0.5.3" [features] default = ["std", "c-kzg", "secp256k1", "portable", "blst"] std = [ "serde?/std", "serde_json?/std", "serde_json?/preserve_order", "revm-interpreter/std", "revm-precompile/std", ] hashbrown = ["revm-interpreter/hashbrown", "revm-precompile/hashbrown"] serde = ["dep:serde", "revm-interpreter/serde"] serde-json = ["serde", "dep:serde_json"] arbitrary = ["revm-interpreter/arbitrary"] asm-keccak = ["revm-interpreter/asm-keccak", "revm-precompile/asm-keccak"] portable = ["revm-precompile/portable", "revm-interpreter/portable"] test-utils = [] optimism = ["revm-interpreter/optimism", "revm-precompile/optimism"] # Optimism default handler enabled Optimism handler register by default in EvmBuilder. optimism-default-handler = [ "optimism", "revm-precompile/optimism-default-handler", "revm-interpreter/optimism-default-handler", ] negate-optimism-default-handler = [ "revm-precompile/negate-optimism-default-handler", "revm-interpreter/negate-optimism-default-handler", ] ethersdb = ["std", "dep:tokio", "dep:ethers-providers", "dep:ethers-core"] alloydb = [ "std", "dep:tokio", "dep:alloy-provider", "dep:alloy-eips", "dep:alloy-transport", ] dev = [ "memory_limit", "optional_balance_check", "optional_block_gas_limit", "optional_eip3607", "optional_gas_refund", "optional_no_base_fee", "optional_beneficiary_reward", ] memory_limit = ["revm-interpreter/memory_limit"] optional_balance_check = ["revm-interpreter/optional_balance_check"] optional_block_gas_limit = ["revm-interpreter/optional_block_gas_limit"] optional_eip3607 = ["revm-interpreter/optional_eip3607"] optional_gas_refund = ["revm-interpreter/optional_gas_refund"] optional_no_base_fee = ["revm-interpreter/optional_no_base_fee"] optional_beneficiary_reward = ["revm-interpreter/optional_beneficiary_reward"] # See comments in `revm-precompile` secp256k1 = ["revm-precompile/secp256k1"] c-kzg = ["revm-precompile/c-kzg"] # `kzg-rs` is not audited but useful for `no_std` environment, use it with causing and default to `c-kzg` if possible. kzg-rs = ["revm-precompile/kzg-rs"] blst = ["revm-precompile/blst"] [[example]] name = "fork_ref_transact" path = "../../examples/fork_ref_transact.rs" required-features = ["ethersdb"] [[example]] name = "generate_block_traces" path = "../../examples/generate_block_traces.rs" required-features = ["std", "serde-json", "ethersdb"] [[example]] name = "db_by_ref" path = "../../examples/db_by_ref.rs" required-features = ["std", "serde-json"] #[[example]] #name = "uniswap_v2_usdc_swap" #path = "../../examples/uniswap_v2_usdc_swap.rs" #required-features = ["alloydb"] [[bench]] name = "bench" path = "benches/bench.rs" harness = false