# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.91"
name = "alloy"
version = "1.8.0"
authors = ["Alloy Contributors"]
build = false
exclude = [
    "benches/",
    "tests/",
    "testdata/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Connect applications to blockchains"
homepage = "https://github.com/alloy-rs/alloy"
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/alloy-rs/alloy"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "-Zunstable-options",
    "--generate-link-to-definition",
    "--show-type-layout",
]

[features]
arbitrary = [
    "alloy-core/arbitrary",
    "alloy-consensus?/arbitrary",
    "alloy-eips?/arbitrary",
    "alloy-rpc-types?/arbitrary",
    "alloy-serde?/arbitrary",
    "alloy-trie?/arbitrary",
]
asm-keccak = ["alloy-core/asm-keccak"]
consensus = [
    "dep:alloy-consensus",
    "rlp",
]
consensus-secp256k1 = [
    "consensus",
    "alloy-consensus?/secp256k1",
]
contract = [
    "dep:alloy-contract",
    "providers",
    "dyn-abi",
    "json-abi",
    "json",
    "sol-types",
]
default = [
    "std",
    "reqwest",
    "reqwest-rustls-tls",
    "alloy-core/default",
    "essentials",
]
dyn-abi = ["alloy-core/dyn-abi"]
eip712 = [
    "alloy-core/eip712",
    "alloy-signer?/eip712",
    "alloy-signer-aws?/eip712",
    "alloy-signer-gcp?/eip712",
    "alloy-signer-ledger?/eip712",
    "alloy-signer-local?/eip712",
    "alloy-signer-turnkey?/eip712",
]
eips = [
    "dep:alloy-eips",
    "rlp",
]
ens = ["dep:alloy-ens"]
essentials = [
    "contract",
    "provider-http",
    "rpc-types",
    "signer-local",
]
full = [
    "consensus",
    "eips",
    "essentials",
    "k256",
    "kzg",
    "network",
    "provider-ws",
    "provider-ipc",
    "provider-trace-api",
    "provider-txpool-api",
    "provider-debug-api",
    "provider-anvil-api",
    "pubsub",
    "rlp",
]
genesis = ["dep:alloy-genesis"]
getrandom = ["alloy-core/getrandom"]
hyper = [
    "alloy-rpc-client?/hyper",
    "alloy-provider?/hyper",
    "alloy-transport-http?/hyper",
]
json = ["alloy-core/json"]
json-abi = ["alloy-core/json-abi"]
json-rpc = [
    "rpc",
    "dep:alloy-json-rpc",
]
k256 = [
    "alloy-core/k256",
    "alloy-consensus?/k256",
    "alloy-network?/k256",
    "alloy-rpc-types?/k256",
    "alloy-eips?/k256",
]
kzg = [
    "alloy-consensus?/kzg",
    "alloy-rpc-types?/kzg",
]
map = ["alloy-core/map"]
map-fxhash = ["alloy-core/map-fxhash"]
map-hashbrown = ["alloy-core/map-hashbrown"]
map-indexmap = ["alloy-core/map-indexmap"]
more-tuple-impls = ["alloy-core/more-tuple-impls"]
native-keccak = ["alloy-core/native-keccak"]
network = ["dep:alloy-network"]
node-bindings = [
    "dep:alloy-node-bindings",
    "alloy-provider?/anvil-node",
]
postgres = ["alloy-core/postgres"]
provider-admin-api = [
    "providers",
    "alloy-provider?/admin-api",
    "rpc-types-admin",
]
provider-anvil-api = [
    "providers",
    "alloy-provider?/anvil-api",
    "rpc-types-anvil",
]
provider-anvil-node = [
    "providers",
    "provider-anvil-api",
    "alloy-provider?/anvil-node",
    "node-bindings",
]
provider-debug-api = [
    "providers",
    "alloy-provider?/debug-api",
    "rpc-types-debug",
    "rpc-types-trace",
]
provider-engine-api = [
    "providers",
    "alloy-provider?/engine-api",
    "rpc-types-engine",
]
provider-http = [
    "providers",
    "transport-http",
]
provider-ipc = [
    "providers",
    "alloy-provider?/ipc",
    "transport-ipc",
]
provider-mev-api = [
    "providers",
    "alloy-provider?/mev-api",
    "rpc-types-mev",
]
provider-net-api = [
    "providers",
    "alloy-provider?/net-api",
]
provider-trace-api = [
    "providers",
    "alloy-provider?/trace-api",
    "rpc-types-trace",
]
provider-txpool-api = [
    "providers",
    "alloy-provider?/txpool-api",
    "rpc-types-txpool",
]
provider-ws = [
    "providers",
    "alloy-provider?/ws",
    "transport-ws",
]
providers = [
    "dep:alloy-provider",
    "rpc-client",
    "transports",
    "eips",
    "consensus",
    "network",
]
pubsub = [
    "dep:alloy-pubsub",
    "alloy-contract?/pubsub",
    "alloy-provider?/pubsub",
    "alloy-rpc-client?/pubsub",
]
rand = ["alloy-core/rand"]
reqwest = [
    "alloy-rpc-client?/reqwest",
    "alloy-provider?/reqwest",
    "alloy-transport-http?/reqwest",
]
reqwest-default-tls = [
    "alloy-rpc-client?/reqwest",
    "alloy-provider?/reqwest",
    "alloy-transport-http?/reqwest",
    "alloy-transport-http?/reqwest-default-tls",
]
reqwest-native-tls = [
    "alloy-rpc-client?/reqwest",
    "alloy-provider?/reqwest",
    "alloy-transport-http?/reqwest",
    "alloy-transport-http?/reqwest-native-tls",
]
reqwest-rustls-tls = [
    "alloy-rpc-client?/reqwest",
    "alloy-provider?/reqwest",
    "alloy-transport-http?/reqwest",
    "alloy-transport-http?/reqwest-rustls-tls",
]
rlp = ["alloy-core/rlp"]
rpc = []
rpc-client = [
    "rpc",
    "transports",
    "transport-http",
    "dep:alloy-rpc-client",
]
rpc-client-ipc = [
    "rpc-client",
    "transport-ipc",
    "alloy-rpc-client?/ipc",
]
rpc-client-ws = [
    "rpc-client",
    "transport-ws",
    "alloy-rpc-client?/ws",
]
rpc-types = [
    "rpc",
    "serde",
    "dep:alloy-rpc-types",
    "alloy-rpc-types?/eth",
]
rpc-types-admin = [
    "rpc-types",
    "alloy-rpc-types?/admin",
    "alloy-provider?/admin-api",
]
rpc-types-anvil = [
    "rpc-types",
    "alloy-rpc-types?/anvil",
    "alloy-provider?/anvil-api",
]
rpc-types-any = [
    "rpc-types",
    "alloy-rpc-types?/any",
]
rpc-types-beacon = [
    "rpc-types",
    "alloy-rpc-types?/beacon",
]
rpc-types-debug = [
    "rpc-types",
    "alloy-rpc-types?/debug",
    "alloy-provider?/debug-api",
]
rpc-types-engine = [
    "rpc-types",
    "alloy-rpc-types?/engine",
    "alloy-provider?/engine-api",
]
rpc-types-eth = [
    "rpc-types",
    "alloy-rpc-types?/eth",
]
rpc-types-mev = [
    "rpc-types",
    "alloy-rpc-types?/mev",
]
rpc-types-trace = [
    "rpc-types",
    "alloy-rpc-types?/trace",
    "alloy-provider?/trace-api",
]
rpc-types-txpool = [
    "rpc-types",
    "alloy-rpc-types?/txpool",
    "alloy-provider?/txpool-api",
]
secp256k1 = [
    "alloy-consensus?/secp256k1",
    "alloy-signer-local?/secp256k1",
]
serde = [
    "alloy-core/serde",
    "alloy-eips?/serde",
    "alloy-consensus?/serde",
    "dep:alloy-serde",
    "alloy-trie?/serde",
]
serde-bincode-compat = ["alloy-consensus/serde-bincode-compat"]
sha3-keccak = ["alloy-core/sha3-keccak"]
signer-aws = [
    "signers",
    "dep:alloy-signer-aws",
]
signer-gcp = [
    "signers",
    "dep:alloy-signer-gcp",
]
signer-keystore = [
    "signer-local",
    "alloy-signer-local?/keystore",
]
signer-keystore-geth-compat = [
    "signer-local",
    "alloy-signer-local?/keystore-geth-compat",
]
signer-ledger = [
    "signers",
    "dep:alloy-signer-ledger",
]
signer-ledger-browser = [
    "signer-ledger",
    "alloy-signer-ledger?/browser",
]
signer-ledger-node = [
    "signer-ledger",
    "alloy-signer-ledger?/node",
]
signer-local = [
    "signers",
    "dep:alloy-signer-local",
]
signer-mnemonic = [
    "signer-local",
    "alloy-signer-local?/mnemonic",
]
signer-mnemonic-all-languages = [
    "signer-mnemonic",
    "alloy-signer-local?/mnemonic-all-languages",
]
signer-trezor = [
    "signers",
    "dep:alloy-signer-trezor",
]
signer-turnkey = [
    "signers",
    "dep:alloy-signer-turnkey",
]
signer-yubihsm = [
    "signer-local",
    "alloy-signer-local?/yubihsm",
]
signers = ["dep:alloy-signer"]
sol-types = ["alloy-core/sol-types"]
ssz = [
    "alloy-rpc-types?/ssz",
    "alloy-eips?/ssz",
]
std = [
    "alloy-core/std",
    "alloy-eips?/std",
    "alloy-genesis?/std",
    "alloy-serde?/std",
    "alloy-consensus?/std",
    "alloy-trie?/std",
]
tiny-keccak = ["alloy-core/tiny-keccak"]
transport-http = [
    "transports",
    "dep:alloy-transport-http",
]
transport-ipc = [
    "transports",
    "pubsub",
    "dep:alloy-transport-ipc",
]
transport-ipc-mock = ["alloy-transport-ipc?/mock"]
transport-throttle = [
    "transports",
    "alloy-transport?/throttle",
]
transport-ws = [
    "transports",
    "pubsub",
    "dep:alloy-transport-ws",
]
transports = ["dep:alloy-transport"]
trie = ["dep:alloy-trie"]
wasm-bindgen = ["alloy-transport?/wasm-bindgen"]

[lib]
name = "alloy"
path = "src/lib.rs"

[dependencies.alloy-consensus]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-contract]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-core]
version = "1.4.1"
default-features = false

[dependencies.alloy-eips]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-ens]
version = "1.8.0"
features = [
    "contract",
    "provider",
]
optional = true
default-features = false

[dependencies.alloy-genesis]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-json-rpc]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-network]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-node-bindings]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-provider]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-pubsub]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-rpc-client]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-rpc-types]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-serde]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-signer]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-signer-aws]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-signer-gcp]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-signer-ledger]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-signer-local]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-signer-trezor]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-signer-turnkey]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-transport]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-transport-http]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-transport-ipc]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-transport-ws]
version = "1.8.0"
optional = true
default-features = false

[dependencies.alloy-trie]
version = "0.9.2"
optional = true
default-features = false

[lints.clippy]
large-enum-variant = "allow"
missing-const-for-fn = "warn"
redundant-clone = "warn"
result-large-err = "allow"
use-self = "warn"

[lints.clippy.all]
level = "warn"
priority = -1

[lints.rust]
missing-debug-implementations = "warn"
missing-docs = "warn"
rust-2018-idioms = "deny"
unnameable-types = "warn"
unreachable-pub = "warn"
unused-must-use = "deny"

[lints.rustdoc]
all = "warn"
