[package]
name = "maili-interop"
description = "Interop types for Optimism"

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

[lints]
workspace = true

[dependencies]
# Alloy
alloy-rlp.workspace = true
alloy-eips.workspace = true
alloy-sol-types.workspace = true
alloy-consensus.workspace = true
alloy-primitives = { workspace = true, features = ["map"] }

# Misc
thiserror.workspace = true
derive_more = { workspace = true, default-features = false, features = ["from", "as_ref"] }

# `arbitrary` feature
arbitrary = { workspace = true, features = ["derive"], optional = true }

# `serde` feature
serde = { workspace = true, optional = true }

[dev-dependencies]
serde_json.workspace = true
rand = { workspace = true, features = ["small_rng"] }
arbitrary = { workspace = true, features = ["derive"] }

[features]
default = ["serde", "std"]
std = [
	"alloy-consensus/std",
	"alloy-eips/std",
	"alloy-primitives/std",
	"alloy-rlp/std",
	"alloy-sol-types/std",
	"derive_more/std",
	"serde?/std",
	"thiserror/std"
]
serde = [
	"dep:serde",
	"alloy-eips/serde",
	"alloy-primitives/serde",
	"alloy-consensus/serde",
]
arbitrary = [
  "std",
  "dep:arbitrary",
  "alloy-consensus/arbitrary",
  "alloy-eips/arbitrary",
  "alloy-primitives/rand",
  "alloy-primitives/arbitrary",
]
