[package]
name = "ethers-core"
license = "MIT OR Apache-2.0"
version = "1.0.2"
rust-version = "1.62"
authors = ["Georgios Konstantopoulos <me@gakonst.com>"]
edition = "2018"
description = "Core structures for the ethers-rs crate"
homepage = "https://docs.rs/ethers"
repository = "https://github.com/gakonst/ethers-rs"
keywords = ["ethereum", "web3", "celo", "ethers"]

[dependencies]
open-fastrlp = { version = "0.1.4", features = ["std", "derive", "ethereum-types"] }
rlp = { version = "0.5.2", default-features = false, features = ["std"] }
ethabi = { version = "18.0.0", default-features = false, features = ["full-serde", "rlp"] }
arrayvec = { version = "0.7.2", default-features = false }
rlp-derive = { version = "0.1.0", default-features = false }

# crypto
elliptic-curve = { version = "0.12.3", default-features = false }
generic-array = { version = "0.14.6", default-features = false }
k256 = { version = "0.11", default-features = false, features = ["keccak256", "ecdsa", "std"] }
rand = { version = "0.8.5", default-features = false }
tiny-keccak = { version = "2.0.2", default-features = false }

# misc
chrono = { version = "0.4", default-features = false }
serde = { version = "1.0.124", default-features = false, features = ["derive"] }
serde_json = { version = "1.0.64", default-features = false }
thiserror = { version = "1.0", default-features = false }
bytes = { version = "1.3.0", features = ["serde"] }
hex = { version = "0.4.3", default-features = false, features = ["std"] }
once_cell = { version = "1.16.0", optional = true }
unicode-xid = "0.2.4"
strum = { version = "0.24", features = ["derive"] }

# macros feature enabled dependencies
cargo_metadata = { version = "0.15.2", optional = true }

# eip712 feature enabled dependencies
convert_case = { version = "0.6.0", optional = true }
syn = { version = "1.0.103", optional = true }
proc-macro2 = { version = "1.0.47", optional = true }

[dev-dependencies]
serde_json = { version = "1.0.64", default-features = false }
bincode = { version = "1.3.3", default-features = false }
once_cell = { version = "1.16.0" }
hex-literal = "0.3.4"
rand = "0.8.5"

[features]
celo = ["legacy"] # celo support extends the transaction format with extra fields
legacy = []
eip712 = ["convert_case", "syn", "proc-macro2"]
macros = ["syn", "cargo_metadata", "once_cell"]

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