[package]
name = "linera-alloy-rpc-types"
description = "Alloy RPC types"

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

[lints]
workspace = true

[dependencies]
# ethereum
alloy-rlp = { workspace = true, features = ["arrayvec", "derive"] }
linera-alloy-primitives = { workspace = true, features = ["rlp", "serde", "std"] }
linera-alloy-serde.workspace = true
linera-alloy-genesis.workspace = true

linera-alloy-consensus = { workspace = true, features = ["std", "serde"] }
linera-alloy-eips = { workspace = true, features = ["std", "serde"] }

itertools.workspace = true
serde = { workspace = true, features = ["derive"] }
serde_json.workspace = true
thiserror.workspace = true


# arbitrary
arbitrary = { version = "1.3", features = ["derive"], optional = true }
proptest = { version = "1.4", optional = true }
proptest-derive = { version = "0.4", optional = true }

# jsonrpsee
jsonrpsee-types = { version = "0.22", optional = true }
linera-alloy-sol-types.workspace = true

[features]
arbitrary = [
    "dep:arbitrary",
    "dep:proptest-derive",
    "dep:proptest",
    "linera-alloy-primitives/arbitrary",
    "linera-alloy-eips/arbitrary",
]
jsonrpsee-types = ["dep:jsonrpsee-types"]
ssz = ["linera-alloy-primitives/ssz", "linera-alloy-eips/ssz"]
k256 = ["linera-alloy-consensus/k256"]

[dev-dependencies]
linera-alloy-primitives = { workspace = true, features = [
    "rand",
    "rlp",
    "serde",
    "arbitrary",
] }
linera-alloy-consensus = { workspace = true, features = ["std", "arbitrary"] }

arbitrary = { workspace = true, features = ["derive"] }
proptest.workspace = true
proptest-derive.workspace = true
rand.workspace = true
similar-asserts.workspace = true