[workspace] resolver = "2" members = [ "common/std-shims", "common/zalloc", "common/db", "common/env", "common/request", "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/tree-cleanup/is-terminal", "substrate/tree-cleanup/option-ext", "substrate/tree-cleanup/directories-next", "substrate/tree-cleanup/bandersnatch_vrfs", "substrate/tree-cleanup/w3f-bls", "substrate/primitives", "substrate/coins/primitives", "substrate/coins/pallet", "substrate/in-instructions/primitives", "substrate/in-instructions/pallet", "substrate/validator-sets/primitives", "substrate/validator-sets/pallet", "substrate/signals/primitives", "substrate/signals/pallet", "substrate/abi", "substrate/runtime", "substrate/node", "substrate/client", "mini", "tests/no-std", "tests/docker", "tests/message-queue", "tests/processor", "tests/coordinator", "tests/full-stack", "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] # 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" } # subxt *can* pull these off crates.io yet there's no benefit to this sp-core-hashing = { git = "https://github.com/serai-dex/polkadot-sdk", branch = "experimental" } sp-std = { git = "https://github.com/serai-dex/polkadot-sdk", branch = "experimental" } # is-terminal now has an std-based solution with an equivalent API is-terminal = { path = "substrate/tree-cleanup/is-terminal" } # So does matches matches = { path = "substrate/tree-cleanup/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 # Serai's polkadot-sdk consolidated to directories-next, as directories-next is # acceptable and because we couldn't consolidate to directories without forking # wasmtime # The following two patches resolve everything option-ext = { path = "substrate/tree-cleanup/option-ext" } directories-next = { path = "substrate/tree-cleanup/directories-next" } # mach is unmaintained, so this wraps mach2 as mach mach = { path = "substrate/tree-cleanup/mach" } # cargo believes the following are in-tree despite no features activating them # We provide empty crates to not only prove they're unused, yet also clean up # our Cargo.lock w3f-bls = { path = "substrate/tree-cleanup/w3f-bls" } [patch."https://github.com/w3f/ring-vrf"] bandersnatch_vrfs = { path = "substrate/tree-cleanup/bandersnatch_vrfs" } [workspace.lints.clippy] unwrap_or_default = "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" map_unwrap_or = "deny" match_bool = "deny" match_same_arms = "deny" missing_fields_in_debug = "deny" needless_continue = "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" 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"