[workspace]
resolver = "2"
members = [
  "common/std-shims",
  "common/zalloc",
  "common/db",
  "common/env",

  "crypto/transcript",

  "crypto/ff-group-tests",
  "crypto/dalek-ff-group",
  "crypto/ed448",
  "crypto/ciphersuite",

  "crypto/multiexp",

  "crypto/schnorr",
  "crypto/dleq",
  "crypto/dkg",
  "crypto/frost",
  "crypto/schnorrkel",

  "coins/bitcoin",
  "coins/ethereum",
  "coins/monero/generators",
  "coins/monero",

  "message-queue",

  "processor/messages",
  "processor",

  "coordinator/tributary/tendermint",
  "coordinator/tributary",
  "coordinator",

  "substrate/primitives",

  "substrate/tokens/primitives",
  "substrate/tokens/pallet",

  "substrate/in-instructions/primitives",
  "substrate/in-instructions/pallet",

  "substrate/validator-sets/primitives",
  "substrate/validator-sets/pallet",

  "substrate/runtime",
  "substrate/node",

  "substrate/client",

  "tests/no-std",

  "tests/docker",
  "tests/message-queue",
  "tests/processor",
  "tests/reproducible-runtime",
]

# Always compile Monero (and a variety of dependencies) with optimizations due
# to the extensive operations required for Bulletproofs
[profile.dev.package]
subtle = { opt-level = 3 }
curve25519-dalek = { opt-level = 3 }

ff = { opt-level = 3 }
group = { opt-level = 3 }

crypto-bigint = { opt-level = 3 }
dalek-ff-group = { opt-level = 3 }
minimal-ed448 = { opt-level = 3 }

multiexp = { opt-level = 3 }

monero-serai = { opt-level = 3 }

[profile.release]
panic = "unwind"

[patch.crates-io]
# subxt *can* pull these off crates.io yet there's no benefit to this
sp-core-hashing = { git = "https://github.com/serai-dex/substrate" }
sp-std = { git = "https://github.com/serai-dex/substrate" }