[package]
name = "tempo-primitives"
description = "Tempo primitive types"

version = "1.8.1"
edition = "2024"
rust-version = "1.93.0"
authors = ["Tempo Contributors"]
license = "MIT OR Apache-2.0"
homepage = "https://docs.tempo.xyz"
repository = "https://github.com/tempoxyz/tempo"
categories = ["cryptography::cryptocurrencies"]
keywords = ["blockchain", "ethereum", "evm", "payments", "tempo"]
publish = true

[dependencies]
tempo-contracts = { version = "1.8.1", default-features = false }

# revm
revm = { version = "40.0.3", default-features = false, optional = true }

# Alloy
alloy-consensus = { version = "2.0.5", default-features = false, features = ["k256"] }
alloy-eips = { version = "2.0.5", default-features = false }
alloy-primitives = { version = "1.6.0", default-features = false }
alloy-rlp = { version = "0.3.15", default-features = false }
alloy-serde = { version = "2.0.5", default-features = false, optional = true }

# Utils
arbitrary = { version = "1.4", features = ["derive"], optional = true }
derive_more = { version = "2.1.1", default-features = false }
serde = { version = "1.0.228", default-features = false, features = ["derive"] }
serde_json = { version = "1.0.149", default-features = false }
once_cell = { version = "1.21", default-features = false }

# Cryptography
aws-lc-rs = { version = "1.16.2", optional = true, default-features = false, features = ["alloc", "non-fips", "ring-sig-verify"] }
base64 = { version = "0.22", default-features = false }
ed25519-consensus = { version = "2.1.0", default-features = false }
p256 = { version = "0.13", default-features = false, features = ["ecdsa"] }
sha2 = { version = "0.10", default-features = false }

[dev-dependencies]
arbitrary = { version = "1.4" }
proptest = { version = "1.9" }
proptest-arbitrary-interop = { version = "0.1.0" }
alloy-consensus = { version = "2.0.5", default-features = false, features = ["arbitrary"] }
alloy-primitives = { version = "1.6.0", default-features = false, features = [ 	"arbitrary", 	"getrandom", 	"rand", ] }
alloy-signer = { version = "2.0.5" }
alloy-sol-types = { version = "1.6.0", default-features = false }
alloy-signer-local = { version = "2.0.5" }
rand = { version = "0.9" }
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }

[features]
default = ["std", "evm", "serde"]
std = [
	"alloy-consensus/secp256k1",
	"alloy-consensus/std",
	"alloy-eips/std",
	"alloy-primitives/std",
	"alloy-rlp/std",
	"alloy-serde?/std",
	"dep:aws-lc-rs",
	"ed25519-consensus/std",
	"base64/std",
	"derive_more/std",
	"once_cell/std",
	"p256/std",
	"revm?/std",
	"revm?/blst",
	"revm?/c-kzg",
	"serde/std",
	"serde_json/std",
	"sha2/std",
	"alloy-sol-types/std",
	"tempo-contracts/std",
]
serde = [
	"dep:alloy-serde",
	"alloy-consensus/serde",
	"alloy-eips/serde",
	"alloy-primitives/serde",
	"p256/serde",
	"revm?/serde",
	"tempo-contracts/serde",
]
evm = ["dep:revm"]
arbitrary = [
	"std",
	"dep:arbitrary",
	"serde",
	"alloy-consensus/arbitrary",
	"alloy-primitives/arbitrary",
	"alloy-eips/arbitrary",
	"alloy-serde?/arbitrary",
	"revm?/arbitrary",
	"alloy-sol-types/arbitrary",
]
