[package]
name = "blockstack-core"
version = "0.0.1"
authors = [ "Jude Nelson <jude@stacks.org>",
            "Aaron Blankstein <aaron@blockstack.com>",
            "Ludo Galabru <ludovic@blockstack.com>" ]
license = "GPLv3"
homepage = "https://github.com/blockstack/stacks-blockchain"
repository = "https://github.com/blockstack/stacks-blockchain"
description = "Reference implementation of the Stacks 2.0 Blockchain"
keywords = [ "stacks", "stx", "bitcoin", "crypto", "blockstack", "decentralized", "dapps", "blockchain" ]
readme = "README.md"
resolver = "2"
edition = "2021"

[profile.release]
debug = true

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

[[bin]]
name = "stacks-inspect"
path = "src/main.rs"

[[bin]]
name = "clarity-cli"
path = "src/clarity_cli_main.rs"

[[bin]]
name = "blockstack-cli"
path = "src/blockstack_cli.rs"

[[bench]]
name = "marf_bench"
harness = false

[[bench]]
name = "large_contract_bench"
harness = false

[[bench]]
name = "block_limits"
harness = false

[[bench]]
name = "c32_bench"
harness = false

[dependencies]
rand = "0.7.3"
rand_chacha = "=0.2.2"
serde = "1"
serde_derive = "1"
serde_stacker = "0.1"
sha3 = "0.10.1"
ripemd = "0.1.1"
regex = "1"
mio = "0.6"
lazy_static = "1.4.0"
url = "2.1.0"
percent-encoding = "2.1.0"
prometheus = { version = "0.9", optional = true }
integer-sqrt = "0.1.3"
slog = { version = "2.5.2", features = [ "max_level_trace" ] }
slog-term = "2.6.0"
slog-json = { version = "2.3.0", optional = true }
chrono = "0.4.19"
libc = "0.2.82"
clarity = { package = "clarity", path = "./clarity/." }
stacks_common = { package = "stacks-common", path = "./stacks-common/." }
siphasher = "0.3.7"

[target.'cfg(unix)'.dependencies]
nix = "0.23"

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["consoleapi", "handleapi", "synchapi", "winbase"] }

[target.'cfg(windows)'.dev-dependencies]
winapi = { version = "0.3", features = ["fileapi", "processenv", "winnt"] }

[dependencies.serde_json]
version = "1.0"
features = ["arbitrary_precision", "unbounded_depth"]

[dependencies.secp256k1]
version = "0.21.0"
features = ["serde", "recovery"]

[dependencies.rusqlite]
version = "=0.24.2"
features = ["blob", "serde_json", "i128_blob", "bundled", "trace"]

[dependencies.ed25519-dalek]
version = "=1.0.0-pre.3"
features = ["serde"]

[dependencies.curve25519-dalek]
version = "=2.0.0"
features = ["serde"]

[dependencies.time]
version = "0.2.23"
features = ["std"]

[dev-dependencies]
assert-json-diff = "1.0.0"
criterion = "0.3.5"
stx_genesis = { package = "stx-genesis", path = "./stx-genesis/."}
clarity = { package = "clarity", features = ["default", "testing"], path = "./clarity/." }
stacks_common = { package = "stacks-common", features = ["default", "testing"], path = "./stacks-common/." }

[features]
default = ["developer-mode"]
developer-mode = []
monitoring_prom = ["prometheus"]
slog_json = ["slog-json", "stacks_common/slog_json", "clarity/slog_json"]


[profile.dev.package.regex]
opt-level = 2

[target.'cfg(all(any(target_arch = "x86_64", target_arch = "x86", target_arch = "aarch64"), not(target_env = "msvc")))'.dependencies]
sha2 = { version = "0.10", features = ["asm"] }

[target.'cfg(any(not(any(target_arch = "x86_64", target_arch = "x86", target_arch = "aarch64")), target_env = "msvc"))'.dependencies]
sha2 = { version = "0.10" }

[workspace]
members = [
    ".",
    "clarity",
    "stx-genesis",
    "testnet/stacks-node",
    "testnet/puppet-chain"]
