mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 04:09:23 +00:00
276 lines
7.9 KiB
TOML
276 lines
7.9 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"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/erc20",
|
|
"processor/ethereum/router",
|
|
"processor/ethereum",
|
|
"processor/monero",
|
|
|
|
"coordinator/tributary-sdk/tendermint",
|
|
"coordinator/tributary-sdk",
|
|
"coordinator/cosign/types",
|
|
"coordinator/cosign",
|
|
"coordinator/substrate",
|
|
"coordinator/tributary",
|
|
"coordinator/p2p",
|
|
"coordinator/p2p/libp2p",
|
|
"coordinator",
|
|
|
|
"substrate/primitives",
|
|
"substrate/abi",
|
|
|
|
"substrate/median",
|
|
|
|
"substrate/core",
|
|
"substrate/coins",
|
|
"substrate/validator-sets",
|
|
"substrate/signals",
|
|
"substrate/dex",
|
|
"substrate/genesis-liquidity",
|
|
"substrate/economic-security",
|
|
"substrate/emissions",
|
|
"substrate/in-instructions",
|
|
|
|
"substrate/runtime",
|
|
"substrate/node",
|
|
|
|
"substrate/client/serai",
|
|
"substrate/client/bitcoin",
|
|
"substrate/client/ethereum",
|
|
"substrate/client/monero",
|
|
"substrate/client",
|
|
|
|
"orchestration",
|
|
|
|
"mini",
|
|
|
|
"tests/no-std",
|
|
|
|
"tests/docker",
|
|
"tests/message-queue",
|
|
# TODO "tests/processor",
|
|
# TODO "tests/coordinator",
|
|
"tests/substrate",
|
|
# 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-io = { opt-level = 3 }
|
|
monero-primitives = { opt-level = 3 }
|
|
monero-ed25519 = { opt-level = 3 }
|
|
monero-mlsag = { opt-level = 3 }
|
|
monero-clsag = { opt-level = 3 }
|
|
monero-borromean = { opt-level = 3 }
|
|
monero-bulletproofs-generators = { opt-level = 3 }
|
|
monero-bulletproofs = {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]
|
|
# Point to empty crates for crates unused within in our tree
|
|
alloy-eip2124 = { path = "patches/ethereum/alloy-eip2124" }
|
|
ark-ff-3 = { package = "ark-ff", path = "patches/ethereum/ark-ff-0.3" }
|
|
ark-ff-4 = { package = "ark-ff", path = "patches/ethereum/ark-ff-0.4" }
|
|
c-kzg = { path = "patches/ethereum/c-kzg" }
|
|
secp256k1-30 = { package = "secp256k1", path = "patches/ethereum/secp256k1-30" }
|
|
|
|
# Dependencies from monero-oxide which originate from within our own tree, potentially shimmed to account for deviations since publishing
|
|
std-shims = { path = "patches/std-shims" }
|
|
simple-request = { path = "patches/simple-request" }
|
|
multiexp = { path = "crypto/multiexp" }
|
|
flexible-transcript = { path = "crypto/transcript" }
|
|
ciphersuite = { path = "patches/ciphersuite" }
|
|
dalek-ff-group = { path = "patches/dalek-ff-group" }
|
|
minimal-ed448 = { path = "crypto/ed448" }
|
|
modular-frost = { path = "crypto/frost" }
|
|
|
|
# Patch due to `std` now including the required functionality
|
|
is_terminal_polyfill = { path = "./patches/is_terminal_polyfill" }
|
|
# This has a non-deprecated `std` alternative since Rust's 2024 edition
|
|
home = { path = "patches/home" }
|
|
|
|
# Updates to the latest version
|
|
darling = { path = "patches/darling" }
|
|
thiserror = { path = "patches/thiserror" }
|
|
|
|
# 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" }
|
|
|
|
# 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 from a fork back to upstream
|
|
parity-bip39 = { path = "patches/parity-bip39" }
|
|
|
|
# Patch to include `FromUniformBytes<64>` over `Scalar`
|
|
k256 = { git = "https://github.com/kayabaNerve/elliptic-curves", rev = "4994c9ab163781a88cd4a49beae812a89a44e8c3" }
|
|
p256 = { git = "https://github.com/kayabaNerve/elliptic-curves", rev = "4994c9ab163781a88cd4a49beae812a89a44e8c3" }
|
|
|
|
# `jemalloc` conflicts with `mimalloc`, so patch to a `rocksdb` which never uses `jemalloc`
|
|
librocksdb-sys = { path = "patches/librocksdb-sys" }
|
|
|
|
[workspace.lints.clippy]
|
|
incompatible_msrv = "allow" # Manually verified with a GitHub workflow
|
|
manual_is_multiple_of = "allow"
|
|
unwrap_or_default = "allow"
|
|
map_unwrap_or = "allow"
|
|
needless_continue = "allow"
|
|
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_time_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"
|
|
|
|
[workspace.lints.rust]
|
|
unused = "allow" # TODO: https://github.com/rust-lang/rust/issues/147648
|