a21a01cf1a
* start node families topic branch * start node families topic branch * initialise node families contract * define contract storage * registering new family in storage * accepting family invitation * add_pending_invitation * revoke_pending_invitation * remove_family_member * reject_pending_invitation * disband_family * added unit tests for the storage methods * added restriction on uniquness of family names * update rustc version for node families contract common * clippy * basic queries by id * query_families_paged * change family membership storage and expose query for all members of a family * queries for pending invitations * queries for past invitations * queries for past data per node * queries for past family members * query_past_members_for_node_paged * queries for family by name and by owner * fixup family name normalisation * fixed incorrect lower bound for queries for past data * implement contract and storage initialisation * stubbing tx messages that are to be exposed by the contract * handler for updating config * removed partial fee return * wip: create family * move mixnet contract interaction traits to shared location * store original family name alongside the normalised variant * prevent family creation if owner has a node in another family * try_disband_family * try_invite_to_family + shared helpers * try_revoke_family_invitation * accept_family_invitation * stub method for node unbonding * try_reject_family_invitation * unit tests for family name normalisation * try_leave_family * try_kick_from_family * fix outdated comments and add paid fee event attribute * feat: NMv3: leave family upon node unbonding * NF contract handling of unbonding * lints * init node families contract when creating performance contract tester * clippy * avoid self-dep in the contract dev deps * introduced client traits for interacting with the node families contract * add node families contract to cache refresher * added query for all node family members (globally) and started scaffolding nym-api caches * docs and cache -> api conversion * calculating average node age based on individual timestamps * wire up node families cache * http stubs * filled in the implementation * route tests + extracting shared code * review fixes * feat: expose family information for all dvpn gateway endpoints within NS API * expose family information for explorer v3 route * clippy * review comments and optimise db family update * feat: Node Families: expose stake information inside DVpnGateway * chore: update lock files after rebase * chore: sort workspace members * explicitly require providing node families contract address for mixnet contract migration * fix missing node families contract address env export * dont swallow cache overwrite failures in fixture * pin network-defaults rustc version due to contracts dep * further version pinning * chore: update mixnet contract schema
138 lines
4.4 KiB
TOML
138 lines
4.4 KiB
TOML
# Copyright 2020 - Nym Technologies SA <contact@nymtech.net>
|
|
# SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
[package]
|
|
name = "nym-api"
|
|
version = "1.1.79"
|
|
authors.workspace = true
|
|
edition = "2021"
|
|
license = "GPL-3.0"
|
|
rust-version.workspace = true
|
|
publish = false
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
async-trait = { workspace = true }
|
|
bs58 = { workspace = true }
|
|
bip39 = { workspace = true }
|
|
bincode.workspace = true
|
|
console-subscriber = { workspace = true, optional = true } # nym-api needs to be built with RUSTFLAGS="--cfg tokio_unstable"
|
|
cfg-if = { workspace = true }
|
|
clap = { workspace = true, features = ["cargo", "derive", "env"] }
|
|
dashmap = { workspace = true }
|
|
futures = { workspace = true }
|
|
humantime-serde = { workspace = true }
|
|
moka = { workspace = true }
|
|
pin-project = { workspace = true }
|
|
rand = { workspace = true }
|
|
rand_chacha = { workspace = true }
|
|
semver = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
time = { workspace = true, features = ["serde-human-readable", "parsing"] }
|
|
tokio = { workspace = true, features = [
|
|
"rt-multi-thread",
|
|
"macros",
|
|
"signal",
|
|
"time",
|
|
] }
|
|
tokio-stream = { workspace = true }
|
|
tokio-util = { workspace = true }
|
|
url = { workspace = true }
|
|
|
|
tendermint = { workspace = true }
|
|
ts-rs = { workspace = true, optional = true }
|
|
|
|
anyhow = { workspace = true }
|
|
|
|
sqlx = { workspace = true, features = [
|
|
"runtime-tokio-rustls",
|
|
"sqlite",
|
|
"macros",
|
|
"migrate",
|
|
"time",
|
|
] }
|
|
|
|
schemars = { workspace = true, features = ["preserve_order"] }
|
|
zeroize = { workspace = true }
|
|
|
|
# for axum server
|
|
axum = { workspace = true, features = ["tokio"] }
|
|
tower-http = { workspace = true, features = ["cors", "trace", "compression-br", "compression-deflate", "compression-gzip", "compression-zstd"] }
|
|
utoipa = { workspace = true, features = ["axum_extras", "time"] }
|
|
utoipauto = { workspace = true }
|
|
utoipa-swagger-ui = { workspace = true, features = ["axum"] }
|
|
tracing = { workspace = true }
|
|
|
|
## internal
|
|
nym-cache = { workspace = true }
|
|
nym-bandwidth-controller = { workspace = true }
|
|
nym-ecash-contract-common = { workspace = true }
|
|
nym-ecash-time = { workspace = true, features = ["expiration"] }
|
|
nym-coconut-dkg-common = { workspace = true }
|
|
nym-compact-ecash = { workspace = true }
|
|
nym-credentials-interface = { workspace = true }
|
|
nym-config = { workspace = true }
|
|
cosmwasm-std = { workspace = true }
|
|
nym-credential-storage = { workspace = true, features = [
|
|
"persistent-storage",
|
|
] }
|
|
nym-credentials = { workspace = true }
|
|
nym-crypto = { workspace = true }
|
|
cw2 = { workspace = true }
|
|
cw3 = { workspace = true }
|
|
cw4 = { workspace = true }
|
|
nym-dkg = { workspace = true, features = ["cw-types"] }
|
|
nym-gateway-client = { workspace = true }
|
|
nym-mixnet-contract-common = { workspace = true, features = ["utoipa"] }
|
|
nym-contracts-common = { workspace = true, features = ["naive_float", "utoipa"] }
|
|
nym-sphinx = { workspace = true }
|
|
nym-pemstore = { workspace = true }
|
|
nym-task = { workspace = true }
|
|
nym-topology = { workspace = true }
|
|
nym-api-requests = { workspace = true }
|
|
nym-validator-client = { workspace = true }
|
|
nym-http-api-client = { workspace = true }
|
|
nym-bin-common = { workspace = true, features = ["output_format", "openapi", "basic_tracing"] }
|
|
nym-node-tester-utils = { workspace = true }
|
|
nym-node-requests = { workspace = true, features = ["client"] }
|
|
nym-types = { workspace = true }
|
|
nym-http-api-common = { workspace = true, features = ["utoipa", "output", "middleware"] }
|
|
nym-serde-helpers = { workspace = true, features = ["date"] }
|
|
nym-ticketbooks-merkle = { workspace = true }
|
|
nym-statistics-common = { workspace = true }
|
|
nym-ecash-signer-check = { workspace = true }
|
|
nym-node-families-contract-common = { workspace = true }
|
|
|
|
|
|
[features]
|
|
no-reward = []
|
|
v2-performance = []
|
|
generate-ts = ["ts-rs"]
|
|
|
|
[build-dependencies]
|
|
anyhow = { workspace = true }
|
|
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
|
|
sqlx = { workspace = true, features = [
|
|
"runtime-tokio-rustls",
|
|
"sqlite",
|
|
"macros",
|
|
"migrate",
|
|
] }
|
|
|
|
[dev-dependencies]
|
|
axum-test = { workspace = true }
|
|
reqwest = { workspace = true, features = ["json", "query"] }
|
|
tempfile = { workspace = true }
|
|
cw3 = { workspace = true }
|
|
cw-utils = { workspace = true }
|
|
rand_chacha = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
dotenvy = { workspace = true }
|
|
test-with = { workspace = true, default-features = false }
|
|
|
|
[lints]
|
|
workspace = true
|