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
105 lines
3.8 KiB
TOML
105 lines
3.8 KiB
TOML
[package]
|
|
name = "nym-validator-client"
|
|
description = "Client for interacting with Nyx Cosmos SDK blockchain"
|
|
version.workspace = true
|
|
authors = ["Jędrzej Stuczyński <andrew@nymtech.net>"]
|
|
edition = "2021"
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
homepage.workspace = true
|
|
documentation.workspace = true
|
|
rust-version = "1.85"
|
|
readme.workspace = true
|
|
publish = true
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
base64 = { workspace = true }
|
|
colored = { workspace = true }
|
|
|
|
nym-coconut-dkg-common = { workspace = true }
|
|
nym-contracts-common = { workspace = true }
|
|
nym-mixnet-contract-common = { workspace = true }
|
|
nym-vesting-contract-common = { workspace = true }
|
|
nym-ecash-contract-common = { workspace = true }
|
|
nym-multisig-contract-common = { workspace = true }
|
|
nym-group-contract-common = { workspace = true }
|
|
nym-performance-contract-common = { workspace = true }
|
|
nym-node-families-contract-common = { workspace = true }
|
|
nym-serde-helpers = { workspace = true, features = ["hex", "base64"] }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true }
|
|
nym-http-api-client = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tracing = { workspace = true }
|
|
url = { workspace = true, features = ["serde"] }
|
|
tokio = { workspace = true, features = ["sync", "time"] }
|
|
time = { workspace = true, features = ["formatting"] }
|
|
futures = { workspace = true }
|
|
|
|
nym-compact-ecash = { workspace = true }
|
|
nym-network-defaults = { workspace = true }
|
|
nym-api-requests = { workspace = true }
|
|
|
|
async-trait = { workspace = true }
|
|
bip39 = { workspace = true, features = ["rand"] }
|
|
nym-config = { workspace = true }
|
|
cosmrs = { workspace = true, features = ["bip32", "cosmwasm"] }
|
|
# note that this has the same version as used by cosmrs
|
|
|
|
# import it just for the `Client` trait
|
|
tendermint-rpc = { workspace = true }
|
|
|
|
# this is an extremely nasty import. we're explicitly bringing in bip32 so that via the magic (or curse, pick your poison)
|
|
# of cargo's feature unification we'd get `bip32/std` meaning we'd get `std::error::Error` for the re-exported (via cosmrs) bip32::Error type
|
|
bip32 = { workspace = true, default-features = false, features = ["std"] }
|
|
|
|
eyre = { workspace = true }
|
|
cw-utils = { workspace = true }
|
|
cw2 = { workspace = true }
|
|
cw3 = { workspace = true }
|
|
cw4 = { workspace = true }
|
|
cw-controllers = { workspace = true }
|
|
prost = { workspace = true, default-features = false }
|
|
flate2 = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
itertools = { workspace = true }
|
|
zeroize = { workspace = true, features = ["zeroize_derive"] }
|
|
cosmwasm-std = { workspace = true }
|
|
|
|
# required for polling for broadcast result
|
|
[target."cfg(target_arch = \"wasm32\")".dependencies.wasmtimer]
|
|
workspace = true
|
|
features = ["tokio"]
|
|
|
|
[target."cfg(target_arch = \"wasm32\")".dependencies.reqwest]
|
|
workspace = true
|
|
features = ["json"]
|
|
|
|
[target."cfg(not(target_arch = \"wasm32\"))".dependencies.reqwest]
|
|
workspace = true
|
|
features = ["json", "rustls"]
|
|
|
|
[dev-dependencies]
|
|
anyhow = { workspace = true }
|
|
bip39 = { workspace = true }
|
|
cosmrs = { workspace = true, features = ["bip32"] }
|
|
ts-rs = { workspace = true }
|
|
|
|
[[example]]
|
|
name = "offline_signing"
|
|
# it should only really require the "signing" feature,
|
|
# but that would require another round of refactoring to make it possible
|
|
# (traits would need to be moved around and refactored themselves)
|
|
required-features = ["http-client"]
|
|
|
|
[features]
|
|
default = ["http-client"]
|
|
http-client = ["cosmrs/rpc"]
|
|
generate-ts = []
|
|
contract-testing = ["nym-mixnet-contract-common/contract-testing"]
|
|
# Features below are added to make clippy happy, it seems like they're unused we should remove them
|
|
tendermint-rpc-http-client = ["tendermint-rpc/http-client"]
|
|
tendermint-rpc-websocket-client = ["tendermint-rpc/websocket-client"]
|