[workspace]
resolver = "2"
default-members = ["crates/revm"]
members = [
    # binary 
    "bins/revme",

    # libraries
    "crates/revm",
    "crates/primitives",
    "crates/interpreter",
    "crates/inspector",
    "crates/precompile",
    "crates/database",
    "crates/database/interface",
    "crates/bytecode",
    "crates/state",
    "crates/wiring",
    "crates/wiring/transaction",
    "crates/specification",
    "crates/statetest-types",

    # variants
    "crates/optimism",

    # examples
    "examples/block_traces",
    "examples/contract_deployment",
    "examples/database_components",
    "examples/database_ref",
    "examples/uniswap_get_reserves",
    "examples/uniswap_v2_usdc_swap",
    #"examples/custom_opcodes",
]

[workspace.dependencies]
# revm
revm = { path = "crates/revm", version = "14.0.1", default-features = false }
primitives = { path = "crates/primitives", package = "revm-primitives", version = "9.0.1", default-features = false }
bytecode = { path = "crates/bytecode", package = "revm-bytecode", version = "1.0.0", default-features = false }
database = { path = "crates/database", package = "revm-database", version = "1.0.0", default-features = false }
database-interface = { path = "crates/database/interface", package = "revm-database-interface", version = "1.0.0", default-features = false }
specification = { path = "crates/specification", package = "revm-specification", version = "1.0.0", default-features = false }
state = { path = "crates/state", package = "revm-state", version = "1.0.0", default-features = false }
wiring = { path = "crates/wiring", package = "revm-wiring", version = "1.0.0", default-features = false }
transaction = { path = "crates/wiring/transaction", package = "revm-transaction", version = "1.0.0", default-features = false }
interpreter = { path = "crates/interpreter", package = "revm-interpreter", version = "10.0.1", default-features = false }
inspector = { path = "crates/inspector", package = "revm-inspector", version = "1.0.0", default-features = false }
precompile = { path = "crates/precompile", package = "revm-precompile", version = "11.0.1", default-features = false }
statetest-types = { path = "crates/statetest-types", package = "revm-statetest-types", version = "1.0.0", default-features = false }

[workspace.package]
license = "MIT"
authors = ["Dragan Rakita <dragan0rakita@gmail.com>"]
categories = ["no-std", "compilers", "cryptography::cryptocurrencies"]
keywords = ["revm", "evm", "ethereum", "blockchain", "no_std"]
repository = "https://github.com/bluealloy/revm"
documentation = "https://bluealloy.github.io/revm/"
homepage = ""
edition = "2021"

[workspace.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[profile.release]
lto = true
codegen-units = 1
debug = true

[profile.ethtests]
inherits = "test"
opt-level = 3