[package]
edition = "2021"
rust-version = "1.88"
name = "alloy"
version = "1.5.2"
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-json = [
"rpc-types",
"alloy-rpc-types?/jsonrpsee-types",
]
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.5.2"
optional = true
default-features = false
[dependencies.alloy-contract]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-core]
version = "1.4.1"
default-features = false
[dependencies.alloy-eips]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-ens]
version = "1.5.2"
features = [
"contract",
"provider",
]
optional = true
default-features = false
[dependencies.alloy-genesis]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-json-rpc]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-network]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-node-bindings]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-provider]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-pubsub]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-rpc-client]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-rpc-types]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-serde]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-signer]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-signer-aws]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-signer-gcp]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-signer-ledger]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-signer-local]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-signer-trezor]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-signer-turnkey]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-transport]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-transport-http]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-transport-ipc]
version = "1.5.2"
optional = true
default-features = false
[dependencies.alloy-transport-ws]
version = "1.5.2"
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"