content: [workspace]
  members = [
      "bin/cli",
      "bin/utxo-spend",
      "tests",
      "crates/node",
      "crates/protocol",
      "crates/types",
      "crates/oracle",
      "crates/abci",
      "messenger",
      "crates/grpc",
      "crates/consensus",
  ]
  resolver = "2"
  
  [workspace.package]
  version = "0.1.0"
  edition = "2024"
  description = "Open source alternative to Coinbase Custody. We provide institutions with software solutions to securely store digital assets at scale using threshold signature cryptography."
  license = "MIT"
  keywords = ["bitcoin", "cryptocurrency", "wallet", "multisig"]
  categories = ["cryptography", "blockchain"]
  readme = "README.md"
  
  [workspace.dependencies]
  tokio = { version = "1.37.0", features = ["full"] }
  serde = { version = "1.0", features = ["derive"] }
  futures = "0.3.31"
  serde_json = "1.0"
  frost-secp256k1 = "2.1.0"
  bitcoin = { version = "0.32.6", features = ["rand-std", "serde"] }
  bitcoin_hashes = "0.14.0"
  bitcoin-internals = "0.3.0"
  libp2p = { version = "0.55", features = [
      "noise",
      "ping",
      "tcp",
      "tokio",
      "yamux",
      "request-response",
      "macros",
      "identify",
      "gossipsub",
      "mdns",
      "quic",
      "cbor",
      "ed25519",
  ] }
  hex = "0.4"
  rand = "0.9.1"
  rand_core = "0.9.3"
  rand_chacha = "0.9.0"
  esplora-client = { version = "0.12.0", default-features = false, features = [
      "async-https",
      "tokio",
  ] }
  bincode = { version = "2.0.1", features = ["serde", "derive"] }
  sha2 = "0.10.9"
  rocksdb = "0.23.0"
  async-trait = "0.1.88"
  dotenvy = "0.15"
  bip39 = { version = "2.1.0", features = ["rand", "rand_core"] }
  base64 = "0.22.1"
  tonic = "0.13"
  prost = "0.13"
  prost-types = "0.13.5"
  tempfile = "3.20.0"
  uuid = { version = "1.7.0", features = ["v4", "serde"] }
  tracing = "0.1"
  
  # Additional common dependencies
  derive_more = { version = "2.0.1", features = ["full"] }
  tonic-build = "0.13"
  metrics = "0.24"
  metrics-exporter-prometheus = { version = "0.17", features = ["http-listener"] }
  actix-web = "4"
  tracing-subscriber = { version = "0.3", features = [
      "env-filter",
      "json",
      "fmt",
  ] }
  tracing-appender = "0.2"
  aes-gcm = "0.10"
  argon2 = "0.5"
  rpassword = "7.3"
  directories = "6.0.0"
  serde_yaml = "0.9.34"
  num-traits = "0.2.19"
  clap = { version = "4.4", features = ["derive"] }
  bs58 = "0.5"
  dyn-clone = "1.0.19"
  log = "0.4.27"
  assert_cmd = "2.0"
  predicates = "3.0"
  assert_matches = "1.5"
  
  # Local crates
  grpc = { path = "crates/grpc" }
  
  [workspace.lints.rust]
  unsafe_code = "warn"
  
  [workspace.lints.clippy]
  pedantic = { level = "warn", priority = -1 }
  nursery = { level = "warn", priority = -1 }
  cargo = { level = "warn", priority = -1 }
  complexity = { level = "warn", priority = -1 }
  correctness = { level = "warn", priority = -1 }
  perf = { level = "warn", priority = -1 }
  style = { level = "warn", priority = -1 }
  suspicious = { level = "warn", priority = -1 }
  
  doc_markdown = "allow"
  missing_errors_doc = "allow"
  missing_panics_doc = "allow"
  missing_safety_doc = "allow"
  cargo_common_metadata = "allow"
  multiple_crate_versions = "allow"
  too_many_lines = "allow"
  cognitive_complexity = "allow"
  