7f43f38879
post rebasing fixes AuthenticatorVersion helpers additional nits allow unwraps in mocks fixed linux build clippy integrating upgrade mode into authenticator fixed build after adding wrappers to response types conditionally updating peer handle bandwidth cleanup negotiate initial protocol during registration change auth to use highest protocol handler for JWT message dont meter client bandwidth in upgrade mode handling recheck requests sending information about upgrade_mode on client messages gateway watching for upgrade mode attestation wip: gateways to disable bandwidth metering on upgrade mode
470 lines
13 KiB
TOML
470 lines
13 KiB
TOML
# Copyright 2020 - Nym Technologies SA <contact@nymtech.net>
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
[profile.release]
|
|
panic = "abort"
|
|
opt-level = "s"
|
|
overflow-checks = true
|
|
|
|
[profile.dev]
|
|
panic = "abort"
|
|
|
|
[profile.test]
|
|
# equivalent of running in `--release` (but since we're in test profile we're keeping overflow checks and all of those by default)
|
|
opt-level = 3
|
|
|
|
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"clients/native",
|
|
"clients/native/websocket-requests",
|
|
"clients/socks5",
|
|
"common/async-file-watcher",
|
|
"common/authenticator-requests",
|
|
"common/bandwidth-controller",
|
|
"common/bin-common",
|
|
"common/client-core",
|
|
"common/client-core/config-types",
|
|
"common/client-core/gateways-storage",
|
|
"common/client-core/surb-storage",
|
|
"common/client-libs/gateway-client",
|
|
"common/client-libs/mixnet-client",
|
|
"common/client-libs/validator-client",
|
|
"common/commands",
|
|
"common/nym-common",
|
|
"common/config",
|
|
"common/cosmwasm-smart-contracts/coconut-dkg",
|
|
"common/cosmwasm-smart-contracts/contracts-common",
|
|
"common/cosmwasm-smart-contracts/contracts-common-testing",
|
|
"common/cosmwasm-smart-contracts/easy_addr",
|
|
"common/cosmwasm-smart-contracts/ecash-contract",
|
|
"common/cosmwasm-smart-contracts/group-contract",
|
|
"common/cosmwasm-smart-contracts/mixnet-contract",
|
|
"common/cosmwasm-smart-contracts/multisig-contract",
|
|
"common/cosmwasm-smart-contracts/nym-performance-contract",
|
|
"common/cosmwasm-smart-contracts/nym-pool-contract",
|
|
"common/cosmwasm-smart-contracts/vesting-contract",
|
|
"common/credential-proxy",
|
|
"common/credential-storage",
|
|
"common/credential-utils",
|
|
"common/credential-verification",
|
|
"common/credentials",
|
|
"common/credentials-interface",
|
|
"common/crypto",
|
|
"common/dkg",
|
|
"common/ecash-signer-check",
|
|
"common/ecash-signer-check-types",
|
|
"common/ecash-time",
|
|
"common/exit-policy",
|
|
"common/gateway-requests",
|
|
"common/gateway-stats-storage",
|
|
"common/gateway-storage",
|
|
"common/http-api-client",
|
|
"common/http-api-client-macro",
|
|
"common/http-api-common",
|
|
"common/inclusion-probability",
|
|
"common/ip-packet-requests",
|
|
"common/ledger",
|
|
"common/mixnode-common",
|
|
"common/network-defaults",
|
|
"common/node-tester-utils",
|
|
"common/nonexhaustive-delayqueue",
|
|
"common/nym-cache",
|
|
"common/nym-connection-monitor",
|
|
"common/nym-id",
|
|
"common/nym-metrics",
|
|
"common/nym_offline_compact_ecash",
|
|
"common/nymnoise",
|
|
"common/nymnoise/keys",
|
|
"common/nymsphinx",
|
|
"common/nymsphinx/acknowledgements",
|
|
"common/nymsphinx/addressing",
|
|
"common/nymsphinx/anonymous-replies",
|
|
"common/nymsphinx/chunking",
|
|
"common/nymsphinx/cover",
|
|
"common/nymsphinx/forwarding",
|
|
"common/nymsphinx/framing",
|
|
"common/nymsphinx/params",
|
|
"common/nymsphinx/routing",
|
|
"common/nymsphinx/types",
|
|
"common/nyxd-scraper",
|
|
"common/pemstore",
|
|
"common/registration",
|
|
"common/serde-helpers",
|
|
"common/service-provider-requests-common",
|
|
"common/socks5-client-core",
|
|
"common/socks5/proxy-helpers",
|
|
"common/socks5/requests",
|
|
"common/statistics",
|
|
"common/store-cipher",
|
|
"common/task",
|
|
"common/test-utils",
|
|
"common/ticketbooks-merkle",
|
|
"common/topology",
|
|
"common/tun",
|
|
"common/types",
|
|
"common/upgrade-mode-check",
|
|
"common/verloc",
|
|
"common/wasm/client-core",
|
|
"common/wasm/storage",
|
|
"common/wasm/utils",
|
|
"common/wireguard",
|
|
"common/wireguard-private-metadata/client",
|
|
"common/wireguard-private-metadata/server",
|
|
"common/wireguard-private-metadata/shared",
|
|
"common/wireguard-private-metadata/tests",
|
|
"common/wireguard-types",
|
|
"common/zulip-client",
|
|
"documentation/autodoc",
|
|
"gateway",
|
|
"nym-api",
|
|
"nym-api/nym-api-requests",
|
|
"nym-authenticator-client",
|
|
"nym-browser-extension/storage",
|
|
"nym-credential-proxy/nym-credential-proxy",
|
|
"nym-credential-proxy/nym-credential-proxy-requests",
|
|
"nym-credential-proxy/vpn-api-lib-wasm",
|
|
"nym-ip-packet-client",
|
|
"nym-network-monitor",
|
|
"nym-node",
|
|
"nym-node-status-api/nym-node-status-agent",
|
|
"nym-node-status-api/nym-node-status-api",
|
|
"nym-node-status-api/nym-node-status-client",
|
|
"nym-node/nym-node-metrics",
|
|
"nym-node/nym-node-requests",
|
|
"nym-outfox",
|
|
"nym-registration-client",
|
|
"nym-signers-monitor",
|
|
"nym-statistics-api",
|
|
"nym-validator-rewarder",
|
|
"nyx-chain-watcher",
|
|
"sdk/ffi/cpp",
|
|
"sdk/ffi/go",
|
|
"sdk/ffi/shared",
|
|
"sdk/rust/nym-sdk",
|
|
"service-providers/common",
|
|
"service-providers/ip-packet-router",
|
|
"service-providers/network-requester",
|
|
"sqlx-pool-guard",
|
|
"tools/echo-server",
|
|
"tools/internal/contract-state-importer/importer-cli",
|
|
"tools/internal/contract-state-importer/importer-contract",
|
|
"tools/internal/mixnet-connectivity-check",
|
|
# "tools/internal/sdk-version-bump",
|
|
"tools/internal/ssl-inject",
|
|
"tools/internal/testnet-manager",
|
|
"tools/internal/testnet-manager/dkg-bypass-contract",
|
|
"tools/internal/validator-status-check",
|
|
"tools/nym-cli",
|
|
"tools/nym-id-cli",
|
|
"tools/nym-nr-query",
|
|
"tools/nymvisor",
|
|
"tools/ts-rs-cli",
|
|
"wasm/client",
|
|
# "wasm/full-nym-wasm", # If we uncomment this again, remember to also uncomment the profile settings below
|
|
"wasm/mix-fetch",
|
|
"wasm/node-tester",
|
|
"wasm/zknym-lib",
|
|
"nym-gateway-probe"
|
|
]
|
|
|
|
default-members = [
|
|
"clients/native",
|
|
"clients/socks5",
|
|
"nym-authenticator-client",
|
|
"nym-api",
|
|
"nym-credential-proxy/nym-credential-proxy",
|
|
"nym-node",
|
|
"nym-node-status-api/nym-node-status-agent",
|
|
"nym-node-status-api/nym-node-status-api",
|
|
"nym-statistics-api",
|
|
"nym-validator-rewarder",
|
|
"nyx-chain-watcher",
|
|
"service-providers/ip-packet-router",
|
|
"service-providers/network-requester",
|
|
"tools/nymvisor",
|
|
]
|
|
|
|
exclude = ["contracts", "nym-wallet", "cpu-cycles"]
|
|
|
|
[workspace.package]
|
|
authors = ["Nym Technologies SA"]
|
|
repository = "https://github.com/nymtech/nym"
|
|
homepage = "https://nymtech.net"
|
|
documentation = "https://nymtech.net"
|
|
edition = "2024"
|
|
license = "Apache-2.0"
|
|
rust-version = "1.85"
|
|
readme = "README.md"
|
|
|
|
[workspace.dependencies]
|
|
addr = "0.15.6"
|
|
aead = "0.5.2"
|
|
aes = "0.8.1"
|
|
aes-gcm = "0.10.1"
|
|
aes-gcm-siv = "0.11.1"
|
|
ammonia = "4"
|
|
anyhow = "1.0.98"
|
|
arc-swap = "1.7.1"
|
|
argon2 = "0.5.0"
|
|
async-trait = "0.1.88"
|
|
axum = "0.7.5"
|
|
axum-client-ip = "0.6.1"
|
|
axum-extra = "0.9.4"
|
|
axum-test = "16.2.0"
|
|
base64 = "0.22.1"
|
|
base85rs = "0.1.3"
|
|
bincode = "1.3.3"
|
|
bip39 = { version = "2.0.0", features = ["zeroize"] }
|
|
bitvec = "1.0.0"
|
|
blake3 = "1.7.0"
|
|
bloomfilter = "3.0.1"
|
|
bs58 = "0.5.1"
|
|
bytecodec = "0.4.15"
|
|
bytes = "1.10.1"
|
|
cargo_metadata = "0.19.2"
|
|
celes = "2.6.0"
|
|
cfg-if = "1.0.0"
|
|
chacha20 = "0.9.0"
|
|
chacha20poly1305 = "0.10.1"
|
|
chrono = "0.4.41"
|
|
cipher = "0.4.3"
|
|
clap = "4.5.38"
|
|
clap_complete = "4.5"
|
|
clap_complete_fig = "4.5"
|
|
colored = "2.2"
|
|
comfy-table = "7.1.4"
|
|
console = "0.16.0"
|
|
console-subscriber = "0.4.1"
|
|
console_error_panic_hook = "0.1"
|
|
const-str = "0.5.6"
|
|
const_format = "0.2.34"
|
|
criterion = "0.5"
|
|
csv = "1.3.1"
|
|
ctr = "0.9.1"
|
|
cupid = "0.6.1"
|
|
dashmap = "5.5.3"
|
|
# We want https://github.com/DefGuard/wireguard-rs/pull/64 , but there's no crates.io release being pushed out anymore
|
|
defguard_wireguard_rs = { git = "https://github.com/DefGuard/wireguard-rs.git", rev = "v0.4.7" }
|
|
digest = "0.10.7"
|
|
dirs = "6.0"
|
|
dotenvy = "0.15.6"
|
|
dyn-clone = "1.0.19"
|
|
ecdsa = "0.16"
|
|
ed25519-dalek = "2.1"
|
|
encoding_rs = "0.8.35"
|
|
env_logger = "0.11.8"
|
|
envy = "0.4"
|
|
etherparse = "0.13.0"
|
|
eyre = "0.6.9"
|
|
fastrand = "2.1.1"
|
|
flate2 = "1.1.1"
|
|
futures = "0.3.31"
|
|
futures-util = "0.3"
|
|
generic-array = "0.14.7"
|
|
getrandom = "0.2.10"
|
|
handlebars = "3.5.5"
|
|
hex = "0.4.3"
|
|
hickory-resolver = "0.25"
|
|
hkdf = "0.12.3"
|
|
hmac = "0.12.1"
|
|
http = "1"
|
|
http-body-util = "0.1"
|
|
httpcodec = "0.2.3"
|
|
human-repr = "1.1.0"
|
|
humantime = "2.2.0"
|
|
humantime-serde = "1.1.1"
|
|
hyper = "1.6.0"
|
|
hyper-util = "0.1"
|
|
indicatif = "0.18.0"
|
|
inquire = "0.6.2"
|
|
inventory = "0.3.21"
|
|
ip_network = "0.4.1"
|
|
ipnetwork = "0.20"
|
|
itertools = "0.14.0"
|
|
jwt-simple = { version = "0.12.12", default-features = false, features = ["pure-rust"] }
|
|
k256 = "0.13"
|
|
lazy_static = "1.5.0"
|
|
ledger-transport = "0.10.0"
|
|
ledger-transport-hid = "0.10.0"
|
|
log = "0.4"
|
|
mime = "0.3.17"
|
|
moka = { version = "0.12", features = ["future"] }
|
|
nix = "0.27.1"
|
|
notify = "5.1.0"
|
|
once_cell = "1.21.3"
|
|
opentelemetry = "0.19.0"
|
|
opentelemetry-jaeger = "0.18.0"
|
|
parking_lot = "0.12.3"
|
|
pem = "0.8"
|
|
petgraph = "0.6.5"
|
|
pin-project = "1.1"
|
|
pnet_packet = "0.35.0"
|
|
publicsuffix = "2.3.0"
|
|
proc_pidinfo = "0.1.3"
|
|
quote = "1"
|
|
rand = "0.8.5"
|
|
rand_chacha = "0.3"
|
|
rand_core = "0.6.3"
|
|
rand_distr = "0.4"
|
|
rayon = "1.5.1"
|
|
regex = "1.10.6"
|
|
reqwest = { version = "0.12.15", default-features = false }
|
|
rs_merkle = "1.5.0"
|
|
schemars = "0.8.22"
|
|
semver = "1.0.26"
|
|
serde = "1.0.219"
|
|
serde_bytes = "0.11.17"
|
|
serde_derive = "1.0"
|
|
serde_json = "1.0.140"
|
|
serde_json_path = "0.7.2"
|
|
serde_repr = "0.1"
|
|
serde_with = "3.9.0"
|
|
serde_yaml = "0.9.25"
|
|
serde_plain = "1.0.2"
|
|
sha2 = "0.10.9"
|
|
si-scale = "0.2.3"
|
|
snow = "0.9.6"
|
|
sphinx-packet = "=0.6.0"
|
|
sqlx = "0.8.6"
|
|
strum = "0.27.2"
|
|
strum_macros = "0.27.2"
|
|
subtle-encoding = "0.5"
|
|
syn = "2"
|
|
sysinfo = "0.37.0"
|
|
tap = "1.0.1"
|
|
tar = "0.4.44"
|
|
test-with = { version = "0.15.4", default-features = false }
|
|
tempfile = "3.20"
|
|
thiserror = "2.0"
|
|
time = "0.3.41"
|
|
tokio = "1.47"
|
|
tokio-postgres = "0.7"
|
|
tokio-stream = "0.1.17"
|
|
tokio-test = "0.4.4"
|
|
tokio-tun = "0.11.5"
|
|
tokio-tungstenite = { version = "0.20.1" }
|
|
tokio-util = "0.7.15"
|
|
toml = "0.8.22"
|
|
tower = "0.5.2"
|
|
tower-http = "0.5.2"
|
|
tracing = "0.1.41"
|
|
tracing-log = "0.2"
|
|
tracing-opentelemetry = "0.19.0"
|
|
tracing-subscriber = "0.3.19"
|
|
tracing-tree = "0.2.2"
|
|
tracing-indicatif = "0.3.9"
|
|
tracing-test = "0.2.5"
|
|
ts-rs = "10.1.0"
|
|
tungstenite = { version = "0.20.1", default-features = false }
|
|
typed-builder = "0.23.0"
|
|
uniffi = "0.29.2"
|
|
uniffi_build = "0.29.0"
|
|
url = "2.5"
|
|
utoipa = "5.2"
|
|
utoipa-swagger-ui = "8.1"
|
|
utoipauto = "0.2"
|
|
uuid = "*"
|
|
vergen = { version = "=8.3.1", default-features = false }
|
|
vergen-gitcl = { version = "1.0.8", default-features = false }
|
|
walkdir = "2"
|
|
x25519-dalek = "2.0.0"
|
|
zeroize = "1.7.0"
|
|
|
|
prometheus = { version = "0.14.0" }
|
|
|
|
# coconut/DKG related
|
|
# unfortunately until https://github.com/zkcrypto/bls12_381/issues/10 is resolved, we have to rely on the fork
|
|
# as we need to be able to serialize Gt so that we could create the lookup table for baby-step-giant-step algorithm
|
|
# plus to make our live easier we need serde support from https://github.com/zkcrypto/bls12_381/pull/125
|
|
bls12_381 = { git = "https://github.com/jstuczyn/bls12_381", default-features = false, branch = "temp/experimental-serdect-updated" }
|
|
group = { version = "0.13.0", default-features = false }
|
|
ff = { version = "0.13.1", default-features = false }
|
|
subtle = "2.5.0"
|
|
|
|
# cosmwasm-related
|
|
cosmwasm-schema = "=2.2.2"
|
|
cosmwasm-std = "=2.2.2"
|
|
# same version as used by cosmwasm
|
|
cw-utils = "=2.0.0"
|
|
cw-storage-plus = "=2.0.0"
|
|
cw2 = { version = "=2.0.0" }
|
|
cw3 = { version = "=2.0.0" }
|
|
cw4 = { version = "=2.0.0" }
|
|
cw-controllers = { version = "=2.0.0" }
|
|
cw-multi-test = "=2.3.2"
|
|
|
|
# cosmrs-related
|
|
bip32 = { version = "0.5.3", default-features = false }
|
|
|
|
|
|
cosmrs = { version = "0.21.1" }
|
|
tendermint = "0.40.4"
|
|
tendermint-rpc = "0.40.4"
|
|
prost = { version = "0.13", default-features = false }
|
|
|
|
# wasm-related dependencies
|
|
gloo-utils = "0.2.0"
|
|
gloo-net = "0.6.0"
|
|
gloo-timers = "0.3.0"
|
|
|
|
indexed_db_futures = "0.6.4"
|
|
js-sys = "0.3.76"
|
|
serde-wasm-bindgen = "0.6.5"
|
|
tsify = "0.4.5"
|
|
tokio_with_wasm = { version = "0.8.7" }
|
|
wasm-bindgen = "0.2.99"
|
|
wasm-bindgen-futures = "0.4.49"
|
|
wasm-bindgen-test = "0.3.49"
|
|
wasmtimer = "0.4.1"
|
|
web-sys = "0.3.76"
|
|
|
|
# for local development:
|
|
#[patch.crates-io]
|
|
#sphinx-packet = { path = "../sphinx" }
|
|
|
|
# Profile settings for individual crates
|
|
|
|
# Compile-time verified queries do quite a bit of work at compile time. Incremental
|
|
# actions like cargo check and cargo build can be significantly faster when
|
|
# using an optimized build
|
|
[profile.dev.package.sqlx-macros]
|
|
opt-level = 3
|
|
|
|
[profile.release.package.nym-client-wasm]
|
|
# lto = true
|
|
opt-level = 'z'
|
|
|
|
[profile.release.package.nym-node-tester-wasm]
|
|
# lto = true
|
|
opt-level = 'z'
|
|
|
|
# Commented out since the crate is also commented out from the inclusion in the
|
|
# workspace above. We should uncomment this if we re-include it in the
|
|
# workspace
|
|
#[profile.release.package.nym-wasm-sdk]
|
|
## lto = true
|
|
#opt-level = 'z'
|
|
|
|
[profile.release.package.mix-fetch-wasm]
|
|
# lto = true
|
|
opt-level = 'z'
|
|
|
|
[workspace.lints.rust]
|
|
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] }
|
|
|
|
[workspace.lints.clippy]
|
|
suspicious = "deny"
|
|
complexity = "deny"
|
|
perf = "deny"
|
|
style = "deny"
|
|
|
|
unwrap_used = "deny"
|
|
expect_used = "deny"
|
|
todo = "deny"
|
|
dbg_macro = "deny"
|
|
exit = "deny"
|
|
panic = "deny"
|
|
unimplemented = "deny"
|
|
unreachable = "deny"
|