[package]
name = "ethrex-storage-rollup"
version.workspace = true
edition.workspace = true
authors.workspace = true
documentation.workspace = true
license.workspace = true
description = "Rollup batch and prover-input storage for the ethrex L2 Ethereum client"
repository.workspace = true


[dependencies]
ethrex-common = { workspace = true, features = ["c-kzg"] }
ethrex-l2-common.workspace = true
ethereum-types.workspace = true

async-trait.workspace = true
futures.workspace = true
thiserror.workspace = true
tracing.workspace = true
libsql = { workspace = true, optional = true }
# NOTE: intentionally avoiding the workspace dep as it brings "full" features, breaking the provers
# We only need the runtime for the blocking databases to spawn blocking tasks
tokio = { workspace = true, optional = true, features = ["rt", "test-util"] }
bincode = "1.3.3"
# We do not need to enable the "unaligned" feature here since we are just using
# rkyv to store the ExecutionWitness in the database to be used by the
# ProofCoordinator process
rkyv.workspace = true

[features]
default = []
sql = ["dep:libsql", "dep:tokio"]
l2 = []

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

[lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
indexing_slicing = "deny"
as_conversions = "deny"
unnecessary_cast = "warn"
panic = "deny"
redundant_clone = "warn"
