alloy-dyn-abi 0.8.11

Run-time ABI and EIP-712 implementations
Documentation
[package]
name = "alloy-dyn-abi"
description = "Run-time ABI and EIP-712 implementations"
keywords = ["ethereum", "abi", "encoding", "evm", "solidity"]
categories = ["no-std", "encoding", "cryptography::cryptocurrencies"]
homepage = "https://github.com/alloy-rs/core/tree/main/crates/dyn-abi"

version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
exclude.workspace = true

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

[lints]
workspace = true

[dependencies]
alloy-json-abi.workspace = true
alloy-sol-type-parser.workspace = true
alloy-sol-types.workspace = true
alloy-primitives.workspace = true

hex.workspace = true
itoa.workspace = true
winnow.workspace = true

# eip712
derive_more = { workspace = true, optional = true, features = [
    "deref",
    "deref_mut",
    "from",
    "into",
    "into_iterator",
] }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }

# arbitrary
arbitrary = { workspace = true, optional = true }
derive_arbitrary = { workspace = true, optional = true }
proptest = { workspace = true, optional = true }

[dev-dependencies]
alloy-dyn-abi = { path = ".", version = ">=0", features = ["std"] }
criterion.workspace = true
ethabi = "18"
rand = "0.8"
serde_json.workspace = true

[features]
default = ["std"]
std = [
    "alloy-json-abi/std",
    "alloy-sol-types/std",
    "alloy-sol-type-parser/std",
    "alloy-primitives/std",
    "hex/std",
    "serde?/std",
    "serde_json?/std",
]
eip712 = [
    "alloy-sol-types/eip712-serde",
    "dep:derive_more",
    "dep:serde",
    "dep:serde_json",
]
arbitrary = [
    "std",
    "alloy-sol-types/arbitrary",
    "dep:arbitrary",
    "dep:derive_arbitrary",
    "dep:proptest",
]

# Debug winnow parsers; intentionally doesn't enable `winnow/debug`
debug = ["std", "alloy-sol-type-parser/debug"]

[[bench]]
name = "abi"
path = "benches/abi.rs"
harness = false

[[bench]]
name = "types"
path = "benches/types.rs"
harness = false