From 18f5d4084d248a555a36e15468da8afa2718d3c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bogdan-=C8=98tefan=20Neac=C5=9Fu?= Date: Mon, 26 Jul 2021 12:55:59 +0300 Subject: [PATCH] Feature/default values (#700) * Put endpoints and contract address in one place * Put common ports in one place * Split cache version from route * Share validator-api port value between server and client * Put BECH32 prefix in defaults * Put DENOM in defaults * Put network monitor address in defaults * Fix clippy * Fix another clippy + tests import of DENOM --- clients/client-core/src/config/mod.rs | 8 +- clients/native/src/commands/upgrade.rs | 3 +- clients/socks5/src/commands/upgrade.rs | 3 +- .../client-libs/validator-client/src/lib.rs | 14 +- .../validator-client/src/validator_api/mod.rs | 16 +- common/config/src/defaults.rs | 20 ++ common/config/src/lib.rs | 1 + contracts/mixnet/Cargo.lock | 213 +++++++++++++++++- contracts/mixnet/Cargo.toml | 1 + contracts/mixnet/src/contract.rs | 7 +- contracts/mixnet/src/error.rs | 2 +- contracts/mixnet/src/queries.rs | 2 +- contracts/mixnet/src/storage.rs | 2 +- contracts/mixnet/src/support/tests.rs | 2 +- contracts/mixnet/src/transactions.rs | 2 +- gateway/src/commands/upgrade.rs | 2 +- gateway/src/config/mod.rs | 10 +- mixnode/src/commands/sign.rs | 10 +- mixnode/src/commands/upgrade.rs | 4 +- mixnode/src/config/mod.rs | 12 +- validator-api/src/cache/mod.rs | 8 +- validator-api/src/config/mod.rs | 4 +- validator-api/src/main.rs | 7 +- 23 files changed, 281 insertions(+), 72 deletions(-) create mode 100644 common/config/src/defaults.rs diff --git a/clients/client-core/src/config/mod.rs b/clients/client-core/src/config/mod.rs index 7d8b43efdd..38b1237d58 100644 --- a/clients/client-core/src/config/mod.rs +++ b/clients/client-core/src/config/mod.rs @@ -1,6 +1,7 @@ // Copyright 2021 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 +use config::defaults::*; use config::{deserialize_duration, deserialize_validators, NymConfig}; use serde::{Deserialize, Serialize}; use std::marker::PhantomData; @@ -11,13 +12,6 @@ pub mod persistence; pub const MISSING_VALUE: &str = "MISSING VALUE"; -// 'CLIENT' -pub const DEFAULT_VALIDATOR_REST_ENDPOINTS: &[&str] = &[ - "http://testnet-milhon-validator1.nymtech.net:1317", - "http://testnet-milhon-validator2.nymtech.net:1317", -]; -pub const DEFAULT_MIXNET_CONTRACT_ADDRESS: &str = "punk10pyejy66429refv3g35g2t7am0was7yalwrzen"; - // 'DEBUG' const DEFAULT_ACK_WAIT_MULTIPLIER: f64 = 1.5; diff --git a/clients/native/src/commands/upgrade.rs b/clients/native/src/commands/upgrade.rs index 99966838fa..049354b19f 100644 --- a/clients/native/src/commands/upgrade.rs +++ b/clients/native/src/commands/upgrade.rs @@ -3,7 +3,8 @@ use crate::client::config::{Config, MISSING_VALUE}; use clap::{App, Arg, ArgMatches}; -use client_core::config::{default_validator_rest_endpoints, DEFAULT_MIXNET_CONTRACT_ADDRESS}; +use client_core::config::default_validator_rest_endpoints; +use config::defaults::DEFAULT_MIXNET_CONTRACT_ADDRESS; use config::NymConfig; use std::fmt::Display; use std::process; diff --git a/clients/socks5/src/commands/upgrade.rs b/clients/socks5/src/commands/upgrade.rs index 83fd82b521..bd4cda6f71 100644 --- a/clients/socks5/src/commands/upgrade.rs +++ b/clients/socks5/src/commands/upgrade.rs @@ -3,7 +3,8 @@ use crate::client::config::{Config, MISSING_VALUE}; use clap::{App, Arg, ArgMatches}; -use client_core::config::{default_validator_rest_endpoints, DEFAULT_MIXNET_CONTRACT_ADDRESS}; +use client_core::config::default_validator_rest_endpoints; +use config::defaults::DEFAULT_MIXNET_CONTRACT_ADDRESS; use config::NymConfig; use std::fmt::Display; use std::process; diff --git a/common/client-libs/validator-client/src/lib.rs b/common/client-libs/validator-client/src/lib.rs index 51d32e4010..93e1ba086b 100644 --- a/common/client-libs/validator-client/src/lib.rs +++ b/common/client-libs/validator-client/src/lib.rs @@ -17,7 +17,7 @@ use url::Url; mod error; mod models; pub(crate) mod serde_helpers; -mod validator_api; +pub mod validator_api; // Implement caching with a global hashmap that has two fields, queryresponse and as_at, there is a side process pub struct Config { @@ -208,7 +208,11 @@ impl Client { } pub async fn get_cached_mix_nodes(&self) -> Result, ValidatorClientError> { - let query_content = validator_api::VALIDATOR_API_MIXNODES.to_string(); + let query_content = format!( + "{}{}", + validator_api::VALIDATOR_API_CACHE_VERSION.to_string(), + validator_api::VALIDATOR_API_MIXNODES.to_string() + ); self.query_validators(query_content, true).await } @@ -246,7 +250,11 @@ impl Client { } pub async fn get_cached_gateways(&self) -> Result, ValidatorClientError> { - let query_content = validator_api::VALIDATOR_API_GATEWAYS.to_string(); + let query_content = format!( + "{}{}", + validator_api::VALIDATOR_API_CACHE_VERSION.to_string(), + validator_api::VALIDATOR_API_GATEWAYS.to_string() + ); self.query_validators(query_content, true).await } diff --git a/common/client-libs/validator-client/src/validator_api/mod.rs b/common/client-libs/validator-client/src/validator_api/mod.rs index 971ac076f3..45e0e18ea3 100644 --- a/common/client-libs/validator-client/src/validator_api/mod.rs +++ b/common/client-libs/validator-client/src/validator_api/mod.rs @@ -5,15 +5,21 @@ use crate::validator_api::error::ValidatorAPIClientError; use serde::Deserialize; use url::Url; -// TODO: This should be linked to the validator-api as well -pub(crate) const VALIDATOR_API_PORT: u16 = 8080; -pub(crate) const VALIDATOR_API_MIXNODES: &str = "v1/mixnodes"; -pub(crate) const VALIDATOR_API_GATEWAYS: &str = "v1/gateways"; +pub const VALIDATOR_API_PORT: u16 = 8080; +pub const VALIDATOR_API_CACHE_VERSION: &str = "/v1"; +pub(crate) const VALIDATOR_API_MIXNODES: &str = "/mixnodes"; +pub(crate) const VALIDATOR_API_GATEWAYS: &str = "/gateways"; pub struct Client { reqwest_client: reqwest::Client, } +impl Default for Client { + fn default() -> Self { + Client::new() + } +} + impl Client { pub fn new() -> Self { let reqwest_client = reqwest::Client::new(); @@ -32,7 +38,7 @@ impl Client { validator_api_url .set_port(Some(VALIDATOR_API_PORT)) .unwrap(); - let query_url = format!("{}/{}", validator_api_url.as_str(), query); + let query_url = format!("{}{}", validator_api_url.as_str(), query); Ok(self .reqwest_client .get(query_url) diff --git a/common/config/src/defaults.rs b/common/config/src/defaults.rs new file mode 100644 index 0000000000..e67cc413cc --- /dev/null +++ b/common/config/src/defaults.rs @@ -0,0 +1,20 @@ +// Copyright 2020 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +pub const DEFAULT_VALIDATOR_REST_ENDPOINTS: &[&str] = &[ + "http://testnet-milhon-validator1.nymtech.net:1317", + "http://testnet-milhon-validator2.nymtech.net:1317", +]; +pub const DEFAULT_MIXNET_CONTRACT_ADDRESS: &str = "punk10pyejy66429refv3g35g2t7am0was7yalwrzen"; +pub const NETWORK_MONITOR_ADDRESS: &str = "punk1v9qauwdq5terag6uvfsdytcs2d0sdmfdy7hgk3"; +pub const BECH32_PREFIX: &str = "punk"; +pub const DENOM: &str = "upunk"; + +pub const DEFAULT_MIX_LISTENING_PORT: u16 = 1789; + +// 'GATEWAY' +pub const DEFAULT_CLIENT_LISTENING_PORT: u16 = 9000; + +// 'MIXNODE' +pub const DEFAULT_VERLOC_LISTENING_PORT: u16 = 1790; +pub const DEFAULT_HTTP_API_LISTENING_PORT: u16 = 8000; diff --git a/common/config/src/lib.rs b/common/config/src/lib.rs index b0436c9e2a..85616e9af2 100644 --- a/common/config/src/lib.rs +++ b/common/config/src/lib.rs @@ -7,6 +7,7 @@ use serde::Serialize; use std::path::PathBuf; use std::{fs, io}; +pub mod defaults; pub mod helpers; pub use helpers::{deserialize_duration, deserialize_validators}; diff --git a/contracts/mixnet/Cargo.lock b/contracts/mixnet/Cargo.lock index 5ed48b2d71..1ef54fd3cd 100644 --- a/contracts/mixnet/Cargo.lock +++ b/contracts/mixnet/Cargo.lock @@ -19,15 +19,42 @@ dependencies = [ "wyz", ] +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding", + "byte-tools", + "byteorder", + "generic-array 0.12.4", +] + [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array", + "generic-array 0.14.4", ] +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + [[package]] name = "byteorder" version = "1.4.3" @@ -40,6 +67,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "config" +version = "0.1.0" +dependencies = [ + "handlebars", + "humantime-serde", + "serde", + "toml", +] + [[package]] name = "const-oid" version = "0.4.5" @@ -52,7 +89,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "038089cdadfe61e4e85617d91cecec2c49f828db8e5986bb85e29d0b29c59b77" dependencies = [ - "digest", + "digest 0.9.0", "ed25519-zebra", "k256", "rand_core", @@ -125,7 +162,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6" dependencies = [ - "generic-array", + "generic-array 0.14.4", "subtle", ] @@ -136,7 +173,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3" dependencies = [ "byteorder", - "digest", + "digest 0.9.0", "rand_core", "subtle", "zeroize", @@ -151,13 +188,22 @@ dependencies = [ "const-oid", ] +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.4", +] + [[package]] name = "digest" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array", + "generic-array 0.14.4", ] [[package]] @@ -198,10 +244,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2db227e61a43a34915680bdda462ec0e212095518020a88a1f91acd16092c39" dependencies = [ "bitvec", - "digest", + "digest 0.9.0", "ff", "funty", - "generic-array", + "generic-array 0.14.4", "group", "pkcs8", "rand_core", @@ -209,6 +255,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "fake-simd" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + [[package]] name = "ff" version = "0.8.0" @@ -226,6 +278,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + [[package]] name = "generic-array" version = "0.14.4" @@ -258,6 +319,20 @@ dependencies = [ "subtle", ] +[[package]] +name = "handlebars" +version = "3.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3" +dependencies = [ + "log", + "pest", + "pest_derive", + "quick-error", + "serde", + "serde_json", +] + [[package]] name = "hex" version = "0.4.3" @@ -271,7 +346,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" dependencies = [ "crypto-mac", - "digest", + "digest 0.9.0", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "humantime-serde" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac34a56cfd4acddb469cc7fff187ed5ac36f498ba085caf8bbc725e3ff474058" +dependencies = [ + "humantime", + "serde", ] [[package]] @@ -298,6 +389,21 @@ version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36" +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + [[package]] name = "mixnet-contract" version = "0.1.0" @@ -312,6 +418,7 @@ dependencies = [ name = "mixnet-contracts" version = "0.1.0" dependencies = [ + "config", "cosmwasm-schema", "cosmwasm-std", "cosmwasm-storage", @@ -321,12 +428,61 @@ dependencies = [ "thiserror", ] +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + [[package]] name = "opaque-debug" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "pest" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +dependencies = [ + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pest_meta" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +dependencies = [ + "maplit", + "pest", + "sha-1", +] + [[package]] name = "pkcs8" version = "0.3.3" @@ -345,6 +501,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + [[package]] name = "quote" version = "1.0.8" @@ -461,17 +623,29 @@ dependencies = [ "syn", ] +[[package]] +name = "sha-1" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", +] + [[package]] name = "sha2" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12" dependencies = [ - "block-buffer", + "block-buffer 0.9.0", "cfg-if", "cpufeatures", - "digest", - "opaque-debug", + "digest 0.9.0", + "opaque-debug 0.3.0", ] [[package]] @@ -480,7 +654,7 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210" dependencies = [ - "digest", + "digest 0.9.0", "rand_core", ] @@ -527,12 +701,27 @@ dependencies = [ "syn", ] +[[package]] +name = "toml" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +dependencies = [ + "serde", +] + [[package]] name = "typenum" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" +[[package]] +name = "ucd-trie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" + [[package]] name = "uint" version = "0.9.0" diff --git a/contracts/mixnet/Cargo.toml b/contracts/mixnet/Cargo.toml index 7dcd59bcb2..174a0f2dcf 100644 --- a/contracts/mixnet/Cargo.toml +++ b/contracts/mixnet/Cargo.toml @@ -34,6 +34,7 @@ backtraces = ["cosmwasm-std/backtraces"] [dependencies] mixnet-contract = { path = "../../common/mixnet-contract" } +config = { path = "../../common/config"} cosmwasm-std = { version = "0.14.1", features = ["iterator"] } cosmwasm-storage = { version = "0.14.1", features = ["iterator"] } schemars = "0.8" diff --git a/contracts/mixnet/src/contract.rs b/contracts/mixnet/src/contract.rs index 58ce4ff41a..77cd2a913f 100644 --- a/contracts/mixnet/src/contract.rs +++ b/contracts/mixnet/src/contract.rs @@ -3,6 +3,7 @@ use crate::msg::{ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg}; use crate::state::{State, StateParams}; use crate::storage::{config, layer_distribution}; use crate::{error::ContractError, queries, transactions}; +use config::defaults::NETWORK_MONITOR_ADDRESS; use cosmwasm_std::{ entry_point, to_binary, Addr, Decimal, Deps, DepsMut, Env, MessageInfo, QueryResponse, Response, Uint128, @@ -22,11 +23,6 @@ pub const INITIAL_GATEWAY_BOND_REWARD_RATE: u64 = 110; pub const INITIAL_MIXNODE_ACTIVE_SET_SIZE: u32 = 100; -const NETWORK_MONITOR_ADDRESS: &str = "punk1v9qauwdq5terag6uvfsdytcs2d0sdmfdy7hgk3"; - -/// Constant specifying denomination of the coin used for bonding -pub const DENOM: &str = "upunk"; - fn default_initial_state(owner: Addr) -> State { let mixnode_bond_reward_rate = Decimal::percent(INITIAL_MIXNODE_BOND_REWARD_RATE); let gateway_bond_reward_rate = Decimal::percent(INITIAL_GATEWAY_BOND_REWARD_RATE); @@ -176,6 +172,7 @@ pub fn migrate(_deps: DepsMut, _env: Env, _msg: MigrateMsg) -> Result(from_version: D1, to_version: D2) -> ! { diff --git a/gateway/src/config/mod.rs b/gateway/src/config/mod.rs index 5fdee001e8..d263d6f423 100644 --- a/gateway/src/config/mod.rs +++ b/gateway/src/config/mod.rs @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use crate::config::template::config_template; +use config::defaults::*; use config::{deserialize_duration, deserialize_validators, NymConfig}; use log::error; use serde::{Deserialize, Serialize}; @@ -14,15 +15,6 @@ mod template; pub(crate) const MISSING_VALUE: &str = "MISSING VALUE"; -// 'GATEWAY' -const DEFAULT_MIX_LISTENING_PORT: u16 = 1789; -const DEFAULT_CLIENT_LISTENING_PORT: u16 = 9000; -pub(crate) const DEFAULT_VALIDATOR_REST_ENDPOINTS: &[&str] = &[ - "http://testnet-milhon-validator1.nymtech.net:1317", - "http://testnet-milhon-validator2.nymtech.net:1317", -]; -pub const DEFAULT_MIXNET_CONTRACT_ADDRESS: &str = "punk10pyejy66429refv3g35g2t7am0was7yalwrzen"; - // 'DEBUG' // where applicable, the below are defined in milliseconds const DEFAULT_PRESENCE_SENDING_DELAY: Duration = Duration::from_millis(10_000); diff --git a/mixnode/src/commands/sign.rs b/mixnode/src/commands/sign.rs index 833cf62797..5fc88453aa 100644 --- a/mixnode/src/commands/sign.rs +++ b/mixnode/src/commands/sign.rs @@ -2,6 +2,7 @@ use crate::commands::*; use crate::config::{persistence::pathfinder::MixNodePathfinder, Config}; use clap::{App, Arg, ArgMatches}; use colored::*; +use config::defaults::BECH32_PREFIX; use config::NymConfig; use crypto::asymmetric::identity; use log::error; @@ -59,10 +60,10 @@ pub fn execute(matches: &ArgMatches) { let channel_name = "https://t.me/nympunkbot".bright_cyan(); - // the text should consists of two parts, telegram handle and punk address - we can perform some very basic validation here already + // the text should consists of two parts, telegram handle and wallet address - we can perform some very basic validation here already let split = text.split(' ').collect::>(); if split.len() != 2 { - let error_message = r#"You haven't provided correct sign arguments. You need to provide --text "@your_telegram_handle your_punk_wallet_address" with the quotes and space in between"#.red(); + let error_message = format!(r#"You haven't provided correct sign arguments. You need to provide --text "@your_telegram_handle your_{}_wallet_address" with the quotes and space in between"#, BECH32_PREFIX).red(); println!("{}", error_message); process::exit(1); } @@ -73,8 +74,9 @@ pub fn execute(matches: &ArgMatches) { process::exit(1); } - if !split[1].starts_with("punk") { - let error_message = "Your wallet address must start with a 'punk'".red(); + if !split[1].starts_with(BECH32_PREFIX) { + let error_message = + format!("Your wallet address must start with a '{}'", BECH32_PREFIX).red(); println!("{}", error_message); process::exit(1); } diff --git a/mixnode/src/commands/upgrade.rs b/mixnode/src/commands/upgrade.rs index 89e6ae0b51..8f4afdaf5f 100644 --- a/mixnode/src/commands/upgrade.rs +++ b/mixnode/src/commands/upgrade.rs @@ -3,11 +3,11 @@ use crate::commands::*; use crate::config::{ - default_validator_rest_endpoints, missing_string_value, Config, - DEFAULT_MIXNET_CONTRACT_ADDRESS, MISSING_VALUE, + default_validator_rest_endpoints, missing_string_value, Config, MISSING_VALUE, }; use crate::node::node_description::{NodeDescription, DESCRIPTION_FILE}; use clap::{App, Arg, ArgMatches}; +use config::defaults::DEFAULT_MIXNET_CONTRACT_ADDRESS; use config::NymConfig; use crypto::asymmetric::identity; use serde::Deserialize; diff --git a/mixnode/src/config/mod.rs b/mixnode/src/config/mod.rs index 7c73640c81..967535af6b 100644 --- a/mixnode/src/config/mod.rs +++ b/mixnode/src/config/mod.rs @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use crate::config::template::config_template; +use config::defaults::*; use config::{deserialize_duration, deserialize_validators, NymConfig}; use serde::{Deserialize, Deserializer, Serialize}; use std::net::{IpAddr, SocketAddr}; @@ -14,17 +15,6 @@ mod template; pub(crate) const MISSING_VALUE: &str = "MISSING VALUE"; -// 'MIXNODE' -const DEFAULT_MIX_LISTENING_PORT: u16 = 1789; -const DEFAULT_VERLOC_LISTENING_PORT: u16 = 1790; -const DEFAULT_HTTP_API_LISTENING_PORT: u16 = 8000; - -pub(crate) const DEFAULT_VALIDATOR_REST_ENDPOINTS: &[&str] = &[ - "http://testnet-milhon-validator1.nymtech.net:1317", - "http://testnet-milhon-validator2.nymtech.net:1317", -]; -pub const DEFAULT_MIXNET_CONTRACT_ADDRESS: &str = "punk10pyejy66429refv3g35g2t7am0was7yalwrzen"; - // 'RTT MEASUREMENT' const DEFAULT_PACKETS_PER_NODE: usize = 100; const DEFAULT_CONNECTION_TIMEOUT: Duration = Duration::from_millis(5000); diff --git a/validator-api/src/cache/mod.rs b/validator-api/src/cache/mod.rs index 0f121f7120..cd1d8d33b3 100644 --- a/validator-api/src/cache/mod.rs +++ b/validator-api/src/cache/mod.rs @@ -10,6 +10,7 @@ use std::sync::Arc; use std::time::{Duration, SystemTime, UNIX_EPOCH}; use tokio::sync::RwLock; use tokio::time; +use validator_client::validator_api::VALIDATOR_API_CACHE_VERSION; use validator_client::Client; pub(crate) mod routes; @@ -111,9 +112,10 @@ impl ValidatorCache { pub fn stage() -> AdHoc { AdHoc::on_ignite("Validator Cache Stage", |rocket| async { - rocket - .manage(Self::new()) - .mount("/v1", routes![routes::get_mixnodes, routes::get_gateways]) + rocket.manage(Self::new()).mount( + VALIDATOR_API_CACHE_VERSION, + routes![routes::get_mixnodes, routes::get_gateways], + ) }) } diff --git a/validator-api/src/config/mod.rs b/validator-api/src/config/mod.rs index 4793d72d5f..7f3ec67c15 100644 --- a/validator-api/src/config/mod.rs +++ b/validator-api/src/config/mod.rs @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use crate::config::template::config_template; +use config::defaults::DEFAULT_MIXNET_CONTRACT_ADDRESS; use config::NymConfig; use serde::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; @@ -10,7 +11,6 @@ use std::time::Duration; mod template; const DEFAULT_VALIDATOR_REST_ENDPOINTS: &[&str] = &["http://localhost:1317"]; -const DEFAULT_MIXNET_CONTRACT: &str = "punk10pyejy66429refv3g35g2t7am0was7yalwrzen"; const DEFAULT_GATEWAY_SENDING_RATE: usize = 500; const DEFAULT_MAX_CONCURRENT_GATEWAY_CLIENTS: usize = 50; @@ -81,7 +81,7 @@ impl Default for Base { .iter() .map(|&endpoint| endpoint.to_string()) .collect(), - mixnet_contract_address: DEFAULT_MIXNET_CONTRACT.to_string(), + mixnet_contract_address: DEFAULT_MIXNET_CONTRACT_ADDRESS.to_string(), } } } diff --git a/validator-api/src/main.rs b/validator-api/src/main.rs index 2a1d0b9435..0a0627e82b 100644 --- a/validator-api/src/main.rs +++ b/validator-api/src/main.rs @@ -17,6 +17,7 @@ use log::info; use rocket::http::Method; use rocket_cors::{AllowedHeaders, AllowedOrigins, Cors}; use std::process; +use validator_client::validator_api::VALIDATOR_API_PORT; pub(crate) mod cache; pub(crate) mod config; @@ -195,7 +196,11 @@ async fn main() -> Result<()> { let config = override_config(config, &matches); // let's build our rocket! - let rocket = rocket::build() + let rocket_config = rocket::config::Config { + port: VALIDATOR_API_PORT, + ..Default::default() + }; + let rocket = rocket::custom(rocket_config) .attach(setup_cors()?) .attach(ValidatorCache::stage());