mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 12:19:24 +00:00
It was justified when it had several libraries, which it no longer does thanks to the upstreaming with monero-oxide.
283 lines
7.6 KiB
TOML
283 lines
7.6 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
# Version patches
|
|
"patches/parking_lot_core",
|
|
"patches/parking_lot",
|
|
"patches/zstd",
|
|
"patches/rocksdb",
|
|
|
|
# std patches
|
|
"patches/matches",
|
|
"patches/is-terminal",
|
|
|
|
# Rewrites/redirects
|
|
"patches/option-ext",
|
|
"patches/directories-next",
|
|
|
|
# monero-oxide expects ciphersuite, yet the ciphersuite in-tree here has breaking changes
|
|
# This re-exports the in-tree ciphersuite _without_ changes breaking to monero-oxide
|
|
# Not included in workspace to prevent having two crates with the same name (an error)
|
|
# "patches/ciphersuite",
|
|
|
|
"common/std-shims",
|
|
"common/zalloc",
|
|
"common/patchable-async-sleep",
|
|
"common/db",
|
|
"common/env",
|
|
"common/task",
|
|
"common/request",
|
|
|
|
"crypto/transcript",
|
|
|
|
"crypto/ff-group-tests",
|
|
"crypto/dalek-ff-group",
|
|
"crypto/ed448",
|
|
"crypto/ciphersuite",
|
|
"crypto/ciphersuite/kp256",
|
|
|
|
"crypto/multiexp",
|
|
"crypto/schnorr",
|
|
|
|
"crypto/prime-field",
|
|
"crypto/short-weierstrass",
|
|
"crypto/secq256k1",
|
|
"crypto/embedwards25519",
|
|
|
|
"crypto/dkg",
|
|
"crypto/dkg/recovery",
|
|
"crypto/dkg/dealer",
|
|
"crypto/dkg/musig",
|
|
"crypto/dkg/evrf",
|
|
"crypto/frost",
|
|
"crypto/schnorrkel",
|
|
|
|
"networks/bitcoin",
|
|
|
|
"networks/ethereum/build-contracts",
|
|
"networks/ethereum/schnorr",
|
|
"networks/ethereum/alloy-simple-request-transport",
|
|
"networks/ethereum/relayer",
|
|
|
|
"message-queue",
|
|
|
|
"processor/messages",
|
|
|
|
"processor/key-gen",
|
|
"processor/view-keys",
|
|
"processor/frost-attempt-manager",
|
|
|
|
"processor/primitives",
|
|
"processor/scanner",
|
|
"processor/scheduler/primitives",
|
|
"processor/scheduler/utxo/primitives",
|
|
"processor/scheduler/utxo/standard",
|
|
"processor/scheduler/utxo/transaction-chaining",
|
|
"processor/scheduler/smart-contract",
|
|
"processor/signers",
|
|
|
|
"processor/bin",
|
|
"processor/bitcoin",
|
|
"processor/ethereum/primitives",
|
|
"processor/ethereum/test-primitives",
|
|
"processor/ethereum/deployer",
|
|
"processor/ethereum/router",
|
|
"processor/ethereum/erc20",
|
|
"processor/ethereum",
|
|
"processor/monero",
|
|
|
|
"coordinator/tributary-sdk/tendermint",
|
|
"coordinator/tributary-sdk",
|
|
"coordinator/cosign",
|
|
"coordinator/substrate",
|
|
"coordinator/tributary",
|
|
"coordinator/p2p",
|
|
"coordinator/p2p/libp2p",
|
|
"coordinator",
|
|
|
|
"substrate/primitives",
|
|
|
|
"substrate/coins/primitives",
|
|
"substrate/coins/pallet",
|
|
|
|
"substrate/dex/pallet",
|
|
|
|
"substrate/validator-sets/primitives",
|
|
"substrate/validator-sets/pallet",
|
|
|
|
"substrate/genesis-liquidity/primitives",
|
|
"substrate/genesis-liquidity/pallet",
|
|
|
|
"substrate/emissions/primitives",
|
|
"substrate/emissions/pallet",
|
|
|
|
"substrate/economic-security/pallet",
|
|
|
|
"substrate/in-instructions/primitives",
|
|
"substrate/in-instructions/pallet",
|
|
|
|
"substrate/signals/primitives",
|
|
"substrate/signals/pallet",
|
|
|
|
"substrate/abi",
|
|
|
|
"substrate/runtime",
|
|
"substrate/node",
|
|
|
|
"substrate/client",
|
|
|
|
"orchestration",
|
|
|
|
"mini",
|
|
|
|
"tests/no-std",
|
|
|
|
"tests/docker",
|
|
"tests/message-queue",
|
|
# TODO "tests/processor",
|
|
# TODO "tests/coordinator",
|
|
# TODO "tests/full-stack",
|
|
"tests/reproducible-runtime",
|
|
]
|
|
|
|
[profile.dev.package]
|
|
# Always compile Monero (and a variety of dependencies) with optimizations due
|
|
# to the extensive operations required for Bulletproofs
|
|
subtle = { opt-level = 3 }
|
|
|
|
sha3 = { opt-level = 3 }
|
|
blake2 = { opt-level = 3 }
|
|
|
|
ff = { opt-level = 3 }
|
|
group = { opt-level = 3 }
|
|
|
|
crypto-bigint = { opt-level = 3 }
|
|
curve25519-dalek = { opt-level = 3 }
|
|
dalek-ff-group = { opt-level = 3 }
|
|
|
|
multiexp = { opt-level = 3 }
|
|
|
|
monero-generators = { opt-level = 3 }
|
|
monero-borromean = { opt-level = 3 }
|
|
monero-bulletproofs = { opt-level = 3 }
|
|
monero-mlsag = { opt-level = 3 }
|
|
monero-clsag = { opt-level = 3 }
|
|
monero-oxide = { opt-level = 3 }
|
|
|
|
# Always compile the eVRF DKG tree with optimizations as well
|
|
secp256k1 = { opt-level = 3 }
|
|
secq256k1 = { opt-level = 3 }
|
|
embedwards25519 = { opt-level = 3 }
|
|
generalized-bulletproofs = { opt-level = 3 }
|
|
generalized-bulletproofs-circuit-abstraction = { opt-level = 3 }
|
|
generalized-bulletproofs-ec-gadgets = { opt-level = 3 }
|
|
|
|
# revm also effectively requires being built with optimizations
|
|
revm = { opt-level = 3 }
|
|
revm-bytecode = { opt-level = 3 }
|
|
revm-context = { opt-level = 3 }
|
|
revm-context-interface = { opt-level = 3 }
|
|
revm-database = { opt-level = 3 }
|
|
revm-database-interface = { opt-level = 3 }
|
|
revm-handler = { opt-level = 3 }
|
|
revm-inspector = { opt-level = 3 }
|
|
revm-interpreter = { opt-level = 3 }
|
|
revm-precompile = { opt-level = 3 }
|
|
revm-primitives = { opt-level = 3 }
|
|
revm-state = { opt-level = 3 }
|
|
|
|
[profile.release]
|
|
panic = "unwind"
|
|
overflow-checks = true
|
|
|
|
[patch.crates-io]
|
|
# Dependencies from monero-oxide which originate from within our own tree
|
|
std-shims = { path = "common/std-shims" }
|
|
simple-request = { path = "common/request" }
|
|
multiexp = { path = "crypto/multiexp" }
|
|
flexible-transcript = { path = "crypto/transcript" }
|
|
ciphersuite = { path = "patches/ciphersuite" }
|
|
dalek-ff-group = { path = "crypto/dalek-ff-group" }
|
|
minimal-ed448 = { path = "crypto/ed448" }
|
|
modular-frost = { path = "crypto/frost" }
|
|
|
|
# https://github.com/rust-lang-nursery/lazy-static.rs/issues/201
|
|
lazy_static = { git = "https://github.com/rust-lang-nursery/lazy-static.rs", rev = "5735630d46572f1e5377c8f2ba0f79d18f53b10c" }
|
|
|
|
parking_lot_core = { path = "patches/parking_lot_core" }
|
|
parking_lot = { path = "patches/parking_lot" }
|
|
# wasmtime pulls in an old version for this
|
|
zstd = { path = "patches/zstd" }
|
|
# Needed for WAL compression
|
|
rocksdb = { path = "patches/rocksdb" }
|
|
|
|
# is-terminal now has an std-based solution with an equivalent API
|
|
is-terminal = { path = "patches/is-terminal" }
|
|
# So does matches
|
|
matches = { path = "patches/matches" }
|
|
|
|
# directories-next was created because directories was unmaintained
|
|
# directories-next is now unmaintained while directories is maintained
|
|
# The directories author pulls in ridiculously pointless crates and prefers
|
|
# copyleft licenses
|
|
# The following two patches resolve everything
|
|
option-ext = { path = "patches/option-ext" }
|
|
directories-next = { path = "patches/directories-next" }
|
|
|
|
# Patch to include `FromUniformBytes<64>` over Scalar
|
|
k256 = { git = "https://github.com/kayabaNerve/elliptic-curves", rev = "fc92333e222b7f0cbe268d2ca92ed572f71f3e1d" }
|
|
|
|
[workspace.lints.clippy]
|
|
unwrap_or_default = "allow"
|
|
map_unwrap_or = "allow"
|
|
needless_continue = "allow"
|
|
manual_is_multiple_of = "allow"
|
|
incompatible_msrv = "allow" # Manually verified with a GitHub workflow
|
|
borrow_as_ptr = "deny"
|
|
cast_lossless = "deny"
|
|
cast_possible_truncation = "deny"
|
|
cast_possible_wrap = "deny"
|
|
cast_precision_loss = "deny"
|
|
cast_ptr_alignment = "deny"
|
|
cast_sign_loss = "deny"
|
|
checked_conversions = "deny"
|
|
cloned_instead_of_copied = "deny"
|
|
enum_glob_use = "deny"
|
|
expl_impl_clone_on_copy = "deny"
|
|
explicit_into_iter_loop = "deny"
|
|
explicit_iter_loop = "deny"
|
|
flat_map_option = "deny"
|
|
float_cmp = "deny"
|
|
fn_params_excessive_bools = "deny"
|
|
ignored_unit_patterns = "deny"
|
|
implicit_clone = "deny"
|
|
inefficient_to_string = "deny"
|
|
invalid_upcast_comparisons = "deny"
|
|
large_stack_arrays = "deny"
|
|
linkedlist = "deny"
|
|
macro_use_imports = "deny"
|
|
manual_instant_elapsed = "deny"
|
|
manual_let_else = "deny"
|
|
manual_ok_or = "deny"
|
|
manual_string_new = "deny"
|
|
match_bool = "deny"
|
|
match_same_arms = "deny"
|
|
missing_fields_in_debug = "deny"
|
|
needless_pass_by_value = "deny"
|
|
ptr_cast_constness = "deny"
|
|
range_minus_one = "deny"
|
|
range_plus_one = "deny"
|
|
redundant_closure_for_method_calls = "deny"
|
|
redundant_else = "deny"
|
|
string_add_assign = "deny"
|
|
string_slice = "deny"
|
|
unchecked_duration_subtraction = "deny"
|
|
uninlined_format_args = "deny"
|
|
unnecessary_box_returns = "deny"
|
|
unnecessary_join = "deny"
|
|
unnecessary_wraps = "deny"
|
|
unnested_or_patterns = "deny"
|
|
unused_async = "deny"
|
|
unused_self = "deny"
|
|
zero_sized_map_values = "deny"
|