[package]
name = "ergo-lib"
version = "0.24.0"
license = "CC0-1.0"
authors = ["Denys Zadorozhnyi <denys@zadorozhnyi.com>"]
repository.workspace = true
edition.workspace = true
description = "ErgoTree interpreter and wallet-like features for Ergo"
exclude = [
    "proptest-regressions/*"
]

[lib]
crate-type = ["cdylib", "rlib"]

[dependencies]
sigma-ser = { workspace = true }
sigma-util = { workspace = true }
ergo-chain-types = { workspace = true }
ergotree-ir = { workspace = true }
ergotree-interpreter = { workspace = true }
ergo-nipopow = { workspace = true }
ergoscript-compiler = { workspace = true, optional = true}
ergo-merkle-tree = { workspace = true }
ergo-rest = { workspace = true, optional = true}
indexmap = { workspace = true }
base16 = { workspace = true }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
thiserror = { workspace = true }
derive_more = { workspace = true }
bounded-vec = { workspace = true }
num-bigint = { workspace = true, features = ["serde"] }
proptest-derive = {workspace = true, optional = true }
k256 = { workspace = true }
sha2 = { workspace = true }
hmac = { version = "0.12" }
pbkdf2 = "0.11"
rand = { workspace = true }
bitvec = { workspace = true, optional = true }
unicode-normalization = "0.1.19"
lazy_static = { workspace = true }
proptest = { workspace = true , optional = true }
serde_with = { workspace = true, optional = true }
itertools = { workspace = true }


[features]
default = ["json"]
json = ["serde", "serde_json", "serde_with", "bounded-vec/serde"]
compiler = ["ergoscript-compiler"]
arbitrary = ["proptest", "proptest-derive", "ergotree-ir/arbitrary", "ergo-chain-types/arbitrary", "ergotree-interpreter/arbitrary"]
mnemonic_gen = ["bitvec"]
rest = ["ergo-rest"]

[dev-dependencies]
wasm-bindgen-test = { workspace = true }
ergotree-ir = { workspace = true, features = ["arbitrary"] }
ergotree-interpreter = { workspace = true, features = ["arbitrary"] }
ergo-merkle-tree = { workspace = true, features = ["arbitrary"] }
sigma-test-util = { workspace = true }
pretty_assertions = { workspace = true }
bs58 = { workspace = true }
byteorder = { workspace = true }
expect-test = { workspace = true }
