diff --git a/Cargo.lock b/Cargo.lock index 7ce237d55d..a8c9f07c74 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -967,9 +967,9 @@ dependencies = [ "coconut-interface", "cosmrs", "crypto", + "nym-api-requests", "rand 0.7.3", "thiserror", - "validator-api-requests", "validator-client", ] @@ -3091,6 +3091,21 @@ dependencies = [ "libc", ] +[[package]] +name = "nym-api-requests" +version = "0.1.0" +dependencies = [ + "bs58", + "coconut-interface", + "cosmrs", + "cosmwasm-std", + "getset", + "mixnet-contract-common", + "schemars", + "serde", + "ts-rs", +] + [[package]] name = "nym-bity-integration" version = "0.1.0" @@ -3225,6 +3240,7 @@ dependencies = [ "mixnet-client", "mixnode-common", "network-defaults", + "nym-api-requests", "nymsphinx", "once_cell", "pemstore", @@ -3240,7 +3256,6 @@ dependencies = [ "tokio-tungstenite 0.14.0", "tokio-util 0.7.3", "url", - "validator-api-requests", "validator-client", "vergen 5.1.17", "version-checker", @@ -3436,6 +3451,7 @@ dependencies = [ "logging", "mixnet-contract-common", "multisig-contract-common", + "nym-api-requests", "nymcoconut", "nymsphinx", "okapi", @@ -3461,7 +3477,6 @@ dependencies = [ "topology", "ts-rs", "url", - "validator-api-requests", "validator-client", "vergen 7.2.1", "version-checker", @@ -6195,10 +6210,10 @@ version = "0.1.0" dependencies = [ "anyhow", "mixnet-contract-common", + "nym-api-requests", "nym-types", "nym-wallet-types", "ts-rs", - "validator-api-requests", "validator-client", "vesting-contract-common", "walkdir", @@ -6404,21 +6419,6 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -[[package]] -name = "validator-api-requests" -version = "0.1.0" -dependencies = [ - "bs58", - "coconut-interface", - "cosmrs", - "cosmwasm-std", - "getset", - "mixnet-contract-common", - "schemars", - "serde", - "ts-rs", -] - [[package]] name = "validator-client" version = "0.1.0" @@ -6443,6 +6443,7 @@ dependencies = [ "mixnet-contract-common", "multisig-contract-common", "network-defaults", + "nym-api-requests", "prost 0.10.3", "reqwest", "serde", @@ -6452,7 +6453,6 @@ dependencies = [ "tokio", "ts-rs", "url", - "validator-api-requests", "vesting-contract", "vesting-contract-common", ] diff --git a/Cargo.toml b/Cargo.toml index e03bd46aeb..faaa945330 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -74,8 +74,8 @@ members = [ "mixnode", "service-providers/network-requester", "service-providers/network-statistics", - "validator-api", - "validator-api/validator-api-requests", + "nym-api", + "nym-api/nym-api-requests", "tools/nym-cli", "tools/ts-rs-cli" ] @@ -87,7 +87,7 @@ default-members = [ "service-providers/network-requester", "service-providers/network-statistics", "mixnode", - "validator-api", + "nym-api", "explorer-api", ] diff --git a/clients/client-core/src/client/base_client/mod.rs b/clients/client-core/src/client/base_client/mod.rs index 932fb77b31..6db0280019 100644 --- a/clients/client-core/src/client/base_client/mod.rs +++ b/clients/client-core/src/client/base_client/mod.rs @@ -85,7 +85,7 @@ pub struct BaseClientBuilder<'a, B> { gateway_config: &'a GatewayEndpointConfig, debug_config: &'a DebugConfig, disabled_credentials: bool, - validator_api_endpoints: Vec, + nym_api_endpoints: Vec, reply_storage_backend: B, bandwidth_controller: Option, @@ -106,7 +106,7 @@ where gateway_config: base_config.get_gateway_endpoint_config(), debug_config: base_config.get_debug_config(), disabled_credentials: base_config.get_disabled_credentials_mode(), - validator_api_endpoints: base_config.get_validator_api_endpoints(), + nym_api_endpoints: base_config.get_nym_api_endpoints(), bandwidth_controller, reply_storage_backend, key_manager, @@ -120,13 +120,13 @@ where bandwidth_controller: Option, reply_storage_backend: B, disabled_credentials: bool, - validator_api_endpoints: Vec, + nym_api_endpoints: Vec, ) -> BaseClientBuilder<'a, B> { BaseClientBuilder { gateway_config, debug_config, disabled_credentials, - validator_api_endpoints, + nym_api_endpoints, bandwidth_controller, reply_storage_backend, key_manager, @@ -281,13 +281,13 @@ where // future responsible for periodically polling directory server and updating // the current global view of topology async fn start_topology_refresher( - validator_api_urls: Vec, + nym_api_urls: Vec, refresh_rate: Duration, topology_accessor: TopologyAccessor, shutdown: ShutdownListener, ) -> Result<(), ClientCoreError> { let topology_refresher_config = TopologyRefresherConfig::new( - validator_api_urls, + nym_api_urls, refresh_rate, env!("CARGO_PKG_VERSION").to_string(), ); @@ -386,7 +386,7 @@ where .await?; Self::start_topology_refresher( - self.validator_api_endpoints.clone(), + self.nym_api_endpoints.clone(), self.debug_config.topology_refresh_rate, shared_topology_accessor.clone(), shutdown.subscribe(), diff --git a/clients/client-core/src/client/topology_control.rs b/clients/client-core/src/client/topology_control.rs index ad9e4a4ce6..897d6a0e3b 100644 --- a/clients/client-core/src/client/topology_control.rs +++ b/clients/client-core/src/client/topology_control.rs @@ -136,19 +136,15 @@ impl Default for TopologyAccessor { } pub struct TopologyRefresherConfig { - validator_api_urls: Vec, + nym_api_urls: Vec, refresh_rate: Duration, client_version: String, } impl TopologyRefresherConfig { - pub fn new( - validator_api_urls: Vec, - refresh_rate: Duration, - client_version: String, - ) -> Self { + pub fn new(nym_api_urls: Vec, refresh_rate: Duration, client_version: String) -> Self { TopologyRefresherConfig { - validator_api_urls, + nym_api_urls, refresh_rate, client_version, } @@ -159,7 +155,7 @@ pub struct TopologyRefresher { validator_client: validator_client::client::ApiClient, client_version: String, - validator_api_urls: Vec, + nym_api_urls: Vec, topology_accessor: TopologyAccessor, refresh_rate: Duration, @@ -169,14 +165,12 @@ pub struct TopologyRefresher { impl TopologyRefresher { pub fn new(mut cfg: TopologyRefresherConfig, topology_accessor: TopologyAccessor) -> Self { - cfg.validator_api_urls.shuffle(&mut thread_rng()); + cfg.nym_api_urls.shuffle(&mut thread_rng()); TopologyRefresher { - validator_client: validator_client::client::ApiClient::new( - cfg.validator_api_urls[0].clone(), - ), + validator_client: validator_client::client::ApiClient::new(cfg.nym_api_urls[0].clone()), client_version: cfg.client_version, - validator_api_urls: cfg.validator_api_urls, + nym_api_urls: cfg.nym_api_urls, topology_accessor, refresh_rate: cfg.refresh_rate, currently_used_api: 0, @@ -184,15 +178,15 @@ impl TopologyRefresher { } } - fn use_next_validator_api(&mut self) { - if self.validator_api_urls.len() == 1 { - warn!("There's only a single validator API available - it won't be possible to use a different one"); + fn use_next_nym_api(&mut self) { + if self.nym_api_urls.len() == 1 { + warn!("There's only a single nym API available - it won't be possible to use a different one"); return; } - self.currently_used_api = (self.currently_used_api + 1) % self.validator_api_urls.len(); + self.currently_used_api = (self.currently_used_api + 1) % self.nym_api_urls.len(); self.validator_client - .change_validator_api(self.validator_api_urls[self.currently_used_api].clone()) + .change_nym_api(self.nym_api_urls[self.currently_used_api].clone()) } /// Verifies whether nodes a reasonably distributed among all mix layers. @@ -288,7 +282,7 @@ impl TopologyRefresher { let new_topology = self.get_current_compatible_topology().await; if new_topology.is_none() { - self.use_next_validator_api(); + self.use_next_nym_api(); } if new_topology.is_none() && self.was_latest_valid { diff --git a/clients/client-core/src/config/mod.rs b/clients/client-core/src/config/mod.rs index 0ce94ba646..a6c53db51e 100644 --- a/clients/client-core/src/config/mod.rs +++ b/clients/client-core/src/config/mod.rs @@ -160,8 +160,8 @@ impl Config { self.client.validator_urls = validator_urls; } - pub fn set_custom_validator_apis(&mut self, validator_api_urls: Vec) { - self.client.validator_api_urls = validator_api_urls; + pub fn set_custom_nym_apis(&mut self, nym_api_urls: Vec) { + self.client.nym_api_urls = nym_api_urls; } pub fn set_high_default_traffic_volume(&mut self) { @@ -221,8 +221,8 @@ impl Config { self.client.validator_urls.clone() } - pub fn get_validator_api_endpoints(&self) -> Vec { - self.client.validator_api_urls.clone() + pub fn get_nym_api_endpoints(&self) -> Vec { + self.client.nym_api_urls.clone() } pub fn get_gateway_id(&self) -> String { @@ -409,7 +409,8 @@ pub struct Client { validator_urls: Vec, /// Addresses to APIs running on validator from which the client gets the view of the network. - validator_api_urls: Vec, + #[serde(alias = "validator_api_urls")] + nym_api_urls: Vec, /// Path to file containing private identity key. private_identity_key_file: PathBuf, @@ -456,7 +457,7 @@ impl Default for Client { id: "".to_string(), disabled_credentials_mode: true, validator_urls: vec![], - validator_api_urls: vec![], + nym_api_urls: vec![], private_identity_key_file: Default::default(), public_identity_key_file: Default::default(), private_encryption_key_file: Default::default(), diff --git a/clients/client-core/src/error.rs b/clients/client-core/src/error.rs index 3b179567d1..44973c5f30 100644 --- a/clients/client-core/src/error.rs +++ b/clients/client-core/src/error.rs @@ -30,8 +30,8 @@ pub enum ClientCoreError { #[error("Failed to setup gateway")] FailedToSetupGateway, - #[error("List of validator apis is empty")] - ListOfValidatorApisIsEmpty, + #[error("List of nym apis is empty")] + ListOfNymApisIsEmpty, #[error("Could not load existing gateway configuration: {0}")] CouldNotLoadExistingGatewayConfiguration(std::io::Error), diff --git a/clients/client-core/src/init/helpers.rs b/clients/client-core/src/init/helpers.rs index 7947d614a1..31d76e86da 100644 --- a/clients/client-core/src/init/helpers.rs +++ b/clients/client-core/src/init/helpers.rs @@ -24,12 +24,12 @@ pub(super) async fn query_gateway_details( where B: ReplyStorageBackend, { - let validator_api = validator_servers + let nym_api = validator_servers .choose(&mut thread_rng()) - .ok_or(ClientCoreError::ListOfValidatorApisIsEmpty)?; - let validator_client = validator_client::client::ApiClient::new(validator_api.clone()); + .ok_or(ClientCoreError::ListOfNymApisIsEmpty)?; + let validator_client = validator_client::client::ApiClient::new(nym_api.clone()); - log::trace!("Fetching list of gateways from: {}", validator_api); + log::trace!("Fetching list of gateways from: {}", nym_api); let gateways = validator_client.get_cached_gateways().await?; let valid_gateways = gateways .into_iter() diff --git a/clients/client-core/src/init/mod.rs b/clients/client-core/src/init/mod.rs index f01bc74dcd..fa6c62c097 100644 --- a/clients/client-core/src/init/mod.rs +++ b/clients/client-core/src/init/mod.rs @@ -96,7 +96,7 @@ where { println!("Configuring gateway"); let gateway = - query_gateway_details(config.get_validator_api_endpoints(), user_chosen_gateway_id).await?; + query_gateway_details(config.get_nym_api_endpoints(), user_chosen_gateway_id).await?; log::debug!("Querying gateway gives: {}", gateway); // Registering with gateway by setting up and writing shared keys to disk @@ -120,11 +120,8 @@ where T: NymConfig, { println!("Using gateway provided by user, keeping existing keys"); - let gateway = query_gateway_details( - config.get_validator_api_endpoints(), - Some(user_chosen_gateway_id), - ) - .await?; + let gateway = + query_gateway_details(config.get_nym_api_endpoints(), Some(user_chosen_gateway_id)).await?; log::debug!("Querying gateway gives: {}", gateway); Ok(gateway.into()) } diff --git a/clients/native/src/client/config/template.rs b/clients/native/src/client/config/template.rs index 31ca091282..54d4032799 100644 --- a/clients/native/src/client/config/template.rs +++ b/clients/native/src/client/config/template.rs @@ -31,8 +31,8 @@ validator_urls = [ ] # Addresses to APIs running on validator from which the client gets the view of the network. -validator_api_urls = [ - {{#each client.validator_api_urls }} +nym_api_urls = [ + {{#each client.nym_api_urls }} '{{this}}', {{/each}} ] diff --git a/clients/native/src/client/mod.rs b/clients/native/src/client/mod.rs index cabe049c45..0d61b502ab 100644 --- a/clients/native/src/client/mod.rs +++ b/clients/native/src/client/mod.rs @@ -56,7 +56,7 @@ impl SocketClient { .expect("No nymd validator endpoint provided"); let api_url = config .get_base() - .get_validator_api_endpoints() + .get_nym_api_endpoints() .pop() .expect("No validator api endpoint provided"); // overwrite env configuration with config URLs diff --git a/clients/native/src/commands/mod.rs b/clients/native/src/commands/mod.rs index 9dc6a2ac33..4ad9d414dc 100644 --- a/clients/native/src/commands/mod.rs +++ b/clients/native/src/commands/mod.rs @@ -114,13 +114,13 @@ pub(crate) fn override_config(mut config: Config, args: OverrideConfig) -> Confi if let Some(raw_validators) = args.api_validators { config .get_base_mut() - .set_custom_validator_apis(config::parse_validators(&raw_validators)); + .set_custom_nym_apis(config::parse_validators(&raw_validators)); } else if std::env::var(network_defaults::var_names::CONFIGURED).is_ok() { let raw_validators = std::env::var(network_defaults::var_names::API_VALIDATOR) .expect("api validator not set"); config .get_base_mut() - .set_custom_validator_apis(config::parse_validators(&raw_validators)); + .set_custom_nym_apis(config::parse_validators(&raw_validators)); } if args.disable_socket { diff --git a/clients/socks5/src/client/config/template.rs b/clients/socks5/src/client/config/template.rs index 527da38274..90029fb5fd 100644 --- a/clients/socks5/src/client/config/template.rs +++ b/clients/socks5/src/client/config/template.rs @@ -31,8 +31,8 @@ validator_urls = [ ] # Addresses to APIs running on validator from which the client gets the view of the network. -validator_api_urls = [ - {{#each client.validator_api_urls }} +nym_api_urls = [ + {{#each client.nym_api_urls }} '{{this}}', {{/each}} ] diff --git a/clients/socks5/src/client/mod.rs b/clients/socks5/src/client/mod.rs index 2b4bff7852..45c9ffad7f 100644 --- a/clients/socks5/src/client/mod.rs +++ b/clients/socks5/src/client/mod.rs @@ -67,7 +67,7 @@ impl NymClient { .expect("No nymd validator endpoint provided"); let api_url = config .get_base() - .get_validator_api_endpoints() + .get_nym_api_endpoints() .pop() .expect("No validator api endpoint provided"); // overwrite env configuration with config URLs diff --git a/clients/socks5/src/commands/mod.rs b/clients/socks5/src/commands/mod.rs index 5f5bfda1de..4d4345f1ce 100644 --- a/clients/socks5/src/commands/mod.rs +++ b/clients/socks5/src/commands/mod.rs @@ -116,11 +116,11 @@ pub(crate) fn override_config(mut config: Config, args: OverrideConfig) -> Confi if let Some(raw_validators) = args.api_validators { config .get_base_mut() - .set_custom_validator_apis(parse_validators(&raw_validators)); + .set_custom_nym_apis(parse_validators(&raw_validators)); } else if let Ok(raw_validators) = std::env::var(network_defaults::var_names::API_VALIDATOR) { config .get_base_mut() - .set_custom_validator_apis(parse_validators(&raw_validators)); + .set_custom_nym_apis(parse_validators(&raw_validators)); } if args.use_anonymous_sender_tag { diff --git a/clients/socks5/src/commands/run.rs b/clients/socks5/src/commands/run.rs index 10d2d60ea6..ddcd068a76 100644 --- a/clients/socks5/src/commands/run.rs +++ b/clients/socks5/src/commands/run.rs @@ -43,9 +43,9 @@ pub(crate) struct Run { #[clap(long)] nymd_validators: Option, - /// Comma separated list of rest endpoints of the API validators + /// Comma separated list of rest endpoints of the Nym APIs #[clap(long)] - api_validators: Option, + nym_apis: Option, /// Port for the socket to listen on #[clap(short, long)] @@ -71,7 +71,7 @@ impl From for OverrideConfig { fn from(run_config: Run) -> Self { OverrideConfig { nymd_validators: run_config.nymd_validators, - api_validators: run_config.api_validators, + api_validators: run_config.nym_apis, port: run_config.port, use_anonymous_sender_tag: run_config.use_anonymous_sender_tag, fastmode: run_config.fastmode, diff --git a/clients/validator/src/index.ts b/clients/validator/src/index.ts index 642fc2b077..cfbc862a9e 100644 --- a/clients/validator/src/index.ts +++ b/clients/validator/src/index.ts @@ -86,7 +86,7 @@ export default class ValidatorClient implements INymClient { static async connect( mnemonic: string, nymdUrl: string, - validatorApiUrl: string, + nymApiUrl: string, prefix: string, mixnetContract: string, vestingContract: string, @@ -94,19 +94,19 @@ export default class ValidatorClient implements INymClient { ): Promise { const wallet = await ValidatorClient.buildWallet(mnemonic, prefix); - const signingClient = await SigningClient.connectWithNymSigner(wallet, nymdUrl, validatorApiUrl, prefix, denom); + const signingClient = await SigningClient.connectWithNymSigner(wallet, nymdUrl, nymApiUrl, prefix, denom); return new ValidatorClient(signingClient, prefix, mixnetContract, vestingContract, denom); } static async connectForQuery( nymdUrl: string, - validatorApiUrl: string, + nymApiUrl: string, prefix: string, mixnetContract: string, vestingContract: string, denom: string, ): Promise { - const queryClient = await QueryClient.connectWithNym(nymdUrl, validatorApiUrl); + const queryClient = await QueryClient.connectWithNym(nymdUrl, nymApiUrl); return new ValidatorClient(queryClient, prefix, mixnetContract, vestingContract, denom); } diff --git a/clients/validator/src/validator-api-querier.ts b/clients/validator/src/nym-api-querier.ts similarity index 58% rename from clients/validator/src/validator-api-querier.ts rename to clients/validator/src/nym-api-querier.ts index 7c61f91bd7..3fa0471804 100644 --- a/clients/validator/src/validator-api-querier.ts +++ b/clients/validator/src/nym-api-querier.ts @@ -6,13 +6,13 @@ import axios from 'axios'; import { GatewayBond, MixNodeBond } from './types'; -export const VALIDATOR_API_VERSION = '/v1'; -export const VALIDATOR_API_GATEWAYS_PATH = `${VALIDATOR_API_VERSION}/gateways`; -export const VALIDATOR_API_MIXNODES_PATH = `${VALIDATOR_API_VERSION}/mixnodes`; -export const VALIDATOR_API_ACTIVE_MIXNODES_PATH = `${VALIDATOR_API_VERSION}/mixnodes/active`; -export const VALIDATOR_API_REWARDED_MIXNODES_PATH = `${VALIDATOR_API_VERSION}/mixnodes/rewarded`; +export const NYM_API_VERSION = '/v1'; +export const NYM_API_GATEWAYS_PATH = `${NYM_API_VERSION}/gateways`; +export const NYM_API_MIXNODES_PATH = `${NYM_API_VERSION}/mixnodes`; +export const NYM_API_ACTIVE_MIXNODES_PATH = `${NYM_API_VERSION}/mixnodes/active`; +export const NYM_API_REWARDED_MIXNODES_PATH = `${NYM_API_VERSION}/mixnodes/rewarded`; -export interface IValidatorApiQuery { +export interface INymApiQuery { getCachedMixnodes(): Promise; getCachedGateways(): Promise; @@ -22,16 +22,16 @@ export interface IValidatorApiQuery { getRewardedMixnodes(): Promise; } -export default class ValidatorApiQuerier implements IValidatorApiQuery { - validatorApiUrl: string; +export default class NymApiQuerier implements INymApiQuery { + nymApiUrl: string; - constructor(validatorApiUrl: string) { - this.validatorApiUrl = validatorApiUrl; + constructor(nymApiUrl: string) { + this.nymApiUrl = nymApiUrl; } async getCachedMixnodes(): Promise { - const url = new URL(this.validatorApiUrl); - url.pathname += VALIDATOR_API_MIXNODES_PATH; + const url = new URL(this.nymApiUrl); + url.pathname += NYM_API_MIXNODES_PATH; const response = await axios.get(url.toString()); if (response.status === 200) { @@ -41,8 +41,8 @@ export default class ValidatorApiQuerier implements IValidatorApiQuery { } async getCachedGateways(): Promise { - const url = new URL(this.validatorApiUrl); - url.pathname += VALIDATOR_API_GATEWAYS_PATH; + const url = new URL(this.nymApiUrl); + url.pathname += NYM_API_GATEWAYS_PATH; const response = await axios.get(url.toString()); if (response.status === 200) { @@ -52,8 +52,8 @@ export default class ValidatorApiQuerier implements IValidatorApiQuery { } async getActiveMixnodes(): Promise { - const url = new URL(this.validatorApiUrl); - url.pathname += VALIDATOR_API_ACTIVE_MIXNODES_PATH; + const url = new URL(this.nymApiUrl); + url.pathname += NYM_API_ACTIVE_MIXNODES_PATH; const response = await axios.get(url.toString()); if (response.status === 200) { @@ -63,8 +63,8 @@ export default class ValidatorApiQuerier implements IValidatorApiQuery { } async getRewardedMixnodes(): Promise { - const url = new URL(this.validatorApiUrl); - url.pathname += VALIDATOR_API_REWARDED_MIXNODES_PATH; + const url = new URL(this.nymApiUrl); + url.pathname += NYM_API_REWARDED_MIXNODES_PATH; const response = await axios.get(url.toString()); if (response.status === 200) { diff --git a/clients/validator/src/query-client.ts b/clients/validator/src/query-client.ts index 9e3937a89e..de477f7fd9 100644 --- a/clients/validator/src/query-client.ts +++ b/clients/validator/src/query-client.ts @@ -29,7 +29,7 @@ import { PagedMixnodeResponse, RewardingStatus, } from './types'; -import ValidatorApiQuerier, { IValidatorApiQuery } from './validator-api-querier'; +import NymApiQuerier, { INymApiQuery as INymApiQuery } from './nym-api-querier'; export interface ICosmWasmQuery { // methods exposed by `CosmWasmClient` @@ -93,22 +93,22 @@ export interface INymdQuery { ): Promise; } -export interface IQueryClient extends ICosmWasmQuery, INymdQuery, IValidatorApiQuery {} +export interface IQueryClient extends ICosmWasmQuery, INymdQuery, INymApiQuery { } export default class QueryClient extends CosmWasmClient implements IQueryClient { private nymdQuerier: NymdQuerier; - private validatorApiQuerier: ValidatorApiQuerier; + private nymApiQuerier: NymApiQuerier; - private constructor(tmClient: Tendermint34Client, validatorApiUrl: string) { + private constructor(tmClient: Tendermint34Client, nymApiUrl: string) { super(tmClient); this.nymdQuerier = new NymdQuerier(this); - this.validatorApiQuerier = new ValidatorApiQuerier(validatorApiUrl); + this.nymApiQuerier = new NymApiQuerier(nymApiUrl); } - public static async connectWithNym(nymdUrl: string, validatorApiUrl: string): Promise { + public static async connectWithNym(nymdUrl: string, nymApiUrl: string): Promise { const tmClient = await Tendermint34Client.connect(nymdUrl); - return new QueryClient(tmClient, validatorApiUrl); + return new QueryClient(tmClient, nymApiUrl); } getContractVersion(mixnetContractAddress: string): Promise { @@ -194,18 +194,18 @@ export default class QueryClient extends CosmWasmClient implements IQueryClient } getCachedGateways(): Promise { - return this.validatorApiQuerier.getCachedGateways(); + return this.nymApiQuerier.getCachedGateways(); } getCachedMixnodes(): Promise { - return this.validatorApiQuerier.getCachedMixnodes(); + return this.nymApiQuerier.getCachedMixnodes(); } getActiveMixnodes(): Promise { - return this.validatorApiQuerier.getActiveMixnodes(); + return this.nymApiQuerier.getActiveMixnodes(); } getRewardedMixnodes(): Promise { - return this.validatorApiQuerier.getRewardedMixnodes(); + return this.nymApiQuerier.getRewardedMixnodes(); } } diff --git a/clients/validator/src/signing-client.ts b/clients/validator/src/signing-client.ts index ef8913243d..382077f0a9 100644 --- a/clients/validator/src/signing-client.ts +++ b/clients/validator/src/signing-client.ts @@ -33,7 +33,7 @@ import { PagedMixnodeResponse, RewardingStatus, } from './types'; -import ValidatorApiQuerier from './validator-api-querier'; +import NymApiQuerier from './nym-api-querier'; // methods exposed by `SigningCosmWasmClient` export interface ICosmWasmSigning { @@ -199,13 +199,13 @@ export interface ISigningClient extends IQueryClient, ICosmWasmSigning, INymSign export default class SigningClient extends SigningCosmWasmClient implements ISigningClient { private nymdQuerier: NymdQuerier; - private validatorApiQuerier: ValidatorApiQuerier; + private nymApiQuerier: NymApiQuerier; clientAddress: string; private constructor( clientAddress: string, - validatorApiUrl: string, + nymApiUrl: string, tmClient: Tendermint34Client, wallet: DirectSecp256k1HdWallet, signerOptions: SigningCosmWasmClientOptions, @@ -213,13 +213,13 @@ export default class SigningClient extends SigningCosmWasmClient implements ISig super(tmClient, wallet, signerOptions); this.clientAddress = clientAddress; this.nymdQuerier = new NymdQuerier(this); - this.validatorApiQuerier = new ValidatorApiQuerier(validatorApiUrl); + this.nymApiQuerier = new NymApiQuerier(nymApiUrl); } public static async connectWithNymSigner( wallet: DirectSecp256k1HdWallet, nymdUrl: string, - validatorApiUrl: string, + nymApiUrl: string, prefix: string, denom: string, ): Promise { @@ -229,7 +229,7 @@ export default class SigningClient extends SigningCosmWasmClient implements ISig gasPrice: nymGasPrice(denom), }; const tmClient = await Tendermint34Client.connect(nymdUrl); - return new SigningClient(address, validatorApiUrl, tmClient, wallet, signerOptions); + return new SigningClient(address, nymApiUrl, tmClient, wallet, signerOptions); } // query related: @@ -317,19 +317,19 @@ export default class SigningClient extends SigningCosmWasmClient implements ISig } getCachedGateways(): Promise { - return this.validatorApiQuerier.getCachedGateways(); + return this.nymApiQuerier.getCachedGateways(); } getCachedMixnodes(): Promise { - return this.validatorApiQuerier.getCachedMixnodes(); + return this.nymApiQuerier.getCachedMixnodes(); } getActiveMixnodes(): Promise { - return this.validatorApiQuerier.getActiveMixnodes(); + return this.nymApiQuerier.getActiveMixnodes(); } getRewardedMixnodes(): Promise { - return this.validatorApiQuerier.getRewardedMixnodes(); + return this.nymApiQuerier.getRewardedMixnodes(); } // signing related: diff --git a/clients/validator/tests/query/balance.test.ts b/clients/validator/tests/query/balance.test.ts index 254e54a745..97be47c2ce 100644 --- a/clients/validator/tests/query/balance.test.ts +++ b/clients/validator/tests/query/balance.test.ts @@ -1,4 +1,4 @@ -import ValidatorClient from '../../dist'; +import ValidatorClient from '../../validator/index'; import expect from 'expect'; describe('Query: balances', () => { diff --git a/clients/webassembly/src/client/config.rs b/clients/webassembly/src/client/config.rs index 4740a02b2a..4efefeba21 100644 --- a/clients/webassembly/src/client/config.rs +++ b/clients/webassembly/src/client/config.rs @@ -17,7 +17,7 @@ pub struct Config { /// ID specifies the human readable ID of this particular client. pub(crate) id: String, - pub(crate) validator_api_url: Url, + pub(crate) nym_api_url: Url, pub(crate) disabled_credentials_mode: bool, @@ -38,7 +38,7 @@ impl Config { ) -> Self { Config { id, - validator_api_url: validator_server + nym_api_url: validator_server .parse() .expect("provided url was malformed"), disabled_credentials_mode: true, diff --git a/clients/webassembly/src/client/mod.rs b/clients/webassembly/src/client/mod.rs index 9c3aefe8c6..9c9f20b2c6 100644 --- a/clients/webassembly/src/client/mod.rs +++ b/clients/webassembly/src/client/mod.rs @@ -99,7 +99,7 @@ impl NymClientBuilder { self.bandwidth_controller, self.reply_surb_storage_backend, self.disabled_credentials, - vec![self.config.validator_api_url.clone()], + vec![self.config.nym_api_url.clone()], ); let self_address = base_builder.as_mix_recipient().to_string(); diff --git a/common/client-libs/validator-client/Cargo.toml b/common/client-libs/validator-client/Cargo.toml index ec842828e7..18096c3db0 100644 --- a/common/client-libs/validator-client/Cargo.toml +++ b/common/client-libs/validator-client/Cargo.toml @@ -29,7 +29,7 @@ futures = "0.3" coconut-interface = { path = "../../coconut-interface" } network-defaults = { path = "../../network-defaults" } -validator-api-requests = { path = "../../../validator-api/validator-api-requests", features = ["coconut"] } +nym-api-requests = { path = "../../../nym-api/nym-api-requests", features = ["coconut"] } # required for nymd-client # at some point it might be possible to make it wasm-compatible diff --git a/common/client-libs/validator-client/src/client.rs b/common/client-libs/validator-client/src/client.rs index b5746ea06c..396efb4c3c 100644 --- a/common/client-libs/validator-client/src/client.rs +++ b/common/client-libs/validator-client/src/client.rs @@ -1,16 +1,16 @@ // Copyright 2021-2022 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 -use crate::{validator_api, ValidatorClientError}; +use crate::{nym_api, ValidatorClientError}; use coconut_dkg_common::types::NodeIndex; use coconut_interface::VerificationKey; use mixnet_contract_common::mixnode::MixNodeDetails; use mixnet_contract_common::MixId; use mixnet_contract_common::{GatewayBond, IdentityKeyRef}; -use validator_api_requests::coconut::{ +use nym_api_requests::coconut::{ BlindSignRequestBody, BlindedSignatureResponse, VerifyCredentialBody, VerifyCredentialResponse, }; -use validator_api_requests::models::{ +use nym_api_requests::models::{ GatewayCoreStatusResponse, MixnodeCoreStatusResponse, MixnodeStatusResponse, RewardEstimationResponse, StakeSaturationResponse, }; @@ -37,10 +37,10 @@ use mixnet_contract_common::{ #[cfg(feature = "nymd-client")] use network_defaults::NymNetworkDetails; #[cfg(feature = "nymd-client")] +use nym_api_requests::models::MixNodeBondAnnotated; +#[cfg(feature = "nymd-client")] use std::str::FromStr; use url::Url; -#[cfg(feature = "nymd-client")] -use validator_api_requests::models::MixNodeBondAnnotated; #[cfg(feature = "nymd-client")] #[must_use] @@ -142,7 +142,7 @@ pub struct Client { proposals_page_limit: Option, // ideally they would have been read-only, but unfortunately rust doesn't have such features - pub validator_api: validator_api::Client, + pub nym_api: nym_api::Client, pub nymd: NymdClient, } @@ -152,7 +152,7 @@ impl Client { config: Config, mnemonic: bip39::Mnemonic, ) -> Result, ValidatorClientError> { - let validator_api_client = validator_api::Client::new(config.api_url.clone()); + let nym_api_client = nym_api::Client::new(config.api_url.clone()); let nymd_client = NymdClient::connect_with_mnemonic( config.nymd_config.clone(), config.nymd_url.as_str(), @@ -169,7 +169,7 @@ impl Client { dealers_page_limit: config.dealers_page_limit, verification_key_page_limit: config.verification_key_page_limit, proposals_page_limit: config.proposals_page_limit, - validator_api: validator_api_client, + nym_api: nym_api_client, nymd: nymd_client, }) } @@ -192,7 +192,7 @@ impl Client { #[cfg(feature = "nymd-client")] impl Client { pub fn new_query(config: Config) -> Result, ValidatorClientError> { - let validator_api_client = validator_api::Client::new(config.api_url.clone()); + let nym_api_client = nym_api::Client::new(config.api_url.clone()); let nymd_client = NymdClient::connect(config.nymd_config.clone(), config.nymd_url.as_str())?; @@ -205,7 +205,7 @@ impl Client { dealers_page_limit: config.dealers_page_limit, verification_key_page_limit: config.verification_key_page_limit, proposals_page_limit: config.proposals_page_limit, - validator_api: validator_api_client, + nym_api: nym_api_client, nymd: nymd_client, }) } @@ -731,53 +731,53 @@ impl Client { // validator-api wrappers #[cfg(feature = "nymd-client")] impl Client { - pub fn change_validator_api(&mut self, new_endpoint: Url) { - self.validator_api.change_url(new_endpoint) + pub fn change_nym_api(&mut self, new_endpoint: Url) { + self.nym_api.change_url(new_endpoint) } pub async fn get_cached_mixnodes(&self) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_mixnodes().await?) + Ok(self.nym_api.get_mixnodes().await?) } pub async fn get_cached_mixnodes_detailed( &self, ) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_mixnodes_detailed().await?) + Ok(self.nym_api.get_mixnodes_detailed().await?) } pub async fn get_cached_rewarded_mixnodes( &self, ) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_rewarded_mixnodes().await?) + Ok(self.nym_api.get_rewarded_mixnodes().await?) } pub async fn get_cached_rewarded_mixnodes_detailed( &self, ) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_rewarded_mixnodes_detailed().await?) + Ok(self.nym_api.get_rewarded_mixnodes_detailed().await?) } pub async fn get_cached_active_mixnodes( &self, ) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_active_mixnodes().await?) + Ok(self.nym_api.get_active_mixnodes().await?) } pub async fn get_cached_active_mixnodes_detailed( &self, ) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_active_mixnodes_detailed().await?) + Ok(self.nym_api.get_active_mixnodes_detailed().await?) } pub async fn get_cached_gateways(&self) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_gateways().await?) + Ok(self.nym_api.get_gateways().await?) } pub async fn blind_sign( &self, request_body: &BlindSignRequestBody, ) -> Result { - Ok(self.validator_api.blind_sign(request_body).await?) + Ok(self.nym_api.blind_sign(request_body).await?) } } @@ -827,42 +827,40 @@ impl CoconutApiClient { #[derive(Clone)] pub struct ApiClient { - pub validator_api: validator_api::Client, + pub nym_api_client: nym_api::Client, // TODO: perhaps if we really need it at some (currently I don't see any reasons for it) // we could re-implement the communication with the REST API on port 1317 } impl ApiClient { pub fn new(api_url: Url) -> Self { - let validator_api_client = validator_api::Client::new(api_url); + let nym_api_client = nym_api::Client::new(api_url); - ApiClient { - validator_api: validator_api_client, - } + ApiClient { nym_api_client } } - pub fn change_validator_api(&mut self, new_endpoint: Url) { - self.validator_api.change_url(new_endpoint); + pub fn change_nym_api(&mut self, new_endpoint: Url) { + self.nym_api_client.change_url(new_endpoint); } pub async fn get_cached_active_mixnodes( &self, ) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_active_mixnodes().await?) + Ok(self.nym_api_client.get_active_mixnodes().await?) } pub async fn get_cached_rewarded_mixnodes( &self, ) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_rewarded_mixnodes().await?) + Ok(self.nym_api_client.get_rewarded_mixnodes().await?) } pub async fn get_cached_mixnodes(&self) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_mixnodes().await?) + Ok(self.nym_api_client.get_mixnodes().await?) } pub async fn get_cached_gateways(&self) -> Result, ValidatorClientError> { - Ok(self.validator_api.get_gateways().await?) + Ok(self.nym_api_client.get_gateways().await?) } pub async fn get_gateway_core_status_count( @@ -871,7 +869,7 @@ impl ApiClient { since: Option, ) -> Result { Ok(self - .validator_api + .nym_api_client .get_gateway_core_status_count(identity, since) .await?) } @@ -882,7 +880,7 @@ impl ApiClient { since: Option, ) -> Result { Ok(self - .validator_api + .nym_api_client .get_mixnode_core_status_count(mix_id, since) .await?) } @@ -891,7 +889,7 @@ impl ApiClient { &self, mix_id: MixId, ) -> Result { - Ok(self.validator_api.get_mixnode_status(mix_id).await?) + Ok(self.nym_api_client.get_mixnode_status(mix_id).await?) } pub async fn get_mixnode_reward_estimation( @@ -899,7 +897,7 @@ impl ApiClient { mix_id: MixId, ) -> Result { Ok(self - .validator_api + .nym_api_client .get_mixnode_reward_estimation(mix_id) .await?) } @@ -909,7 +907,7 @@ impl ApiClient { mix_id: MixId, ) -> Result { Ok(self - .validator_api + .nym_api_client .get_mixnode_stake_saturation(mix_id) .await?) } @@ -918,7 +916,7 @@ impl ApiClient { &self, request_body: &BlindSignRequestBody, ) -> Result { - Ok(self.validator_api.blind_sign(request_body).await?) + Ok(self.nym_api_client.blind_sign(request_body).await?) } pub async fn partial_bandwidth_credential( @@ -926,7 +924,7 @@ impl ApiClient { request_body: &str, ) -> Result { Ok(self - .validator_api + .nym_api_client .partial_bandwidth_credential(request_body) .await?) } @@ -936,7 +934,7 @@ impl ApiClient { request_body: &VerifyCredentialBody, ) -> Result { Ok(self - .validator_api + .nym_api_client .verify_bandwidth_credential(request_body) .await?) } diff --git a/common/client-libs/validator-client/src/error.rs b/common/client-libs/validator-client/src/error.rs index e832b12618..70ac98b30d 100644 --- a/common/client-libs/validator-client/src/error.rs +++ b/common/client-libs/validator-client/src/error.rs @@ -1,15 +1,15 @@ // Copyright 2021 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 -use crate::validator_api; +use crate::nym_api; use thiserror::Error; #[derive(Error, Debug)] pub enum ValidatorClientError { #[error("There was an issue with the validator api request - {source}")] - ValidatorAPIError { + NymAPIError { #[from] - source: validator_api::error::ValidatorAPIError, + source: nym_api::error::NymAPIError, }, #[error("One of the provided URLs was malformed - {0}")] diff --git a/common/client-libs/validator-client/src/lib.rs b/common/client-libs/validator-client/src/lib.rs index 2a5e010338..5cf81f09d7 100644 --- a/common/client-libs/validator-client/src/lib.rs +++ b/common/client-libs/validator-client/src/lib.rs @@ -5,14 +5,14 @@ pub mod client; #[cfg(feature = "nymd-client")] pub mod connection_tester; mod error; +pub mod nym_api; #[cfg(feature = "nymd-client")] pub mod nymd; -pub mod validator_api; #[cfg(feature = "nymd-client")] pub use crate::client::{ApiClient, CoconutApiClient}; pub use crate::error::ValidatorClientError; -pub use validator_api_requests::*; +pub use nym_api_requests::*; #[cfg(feature = "nymd-client")] pub use client::{Client, Config}; diff --git a/common/client-libs/validator-client/src/validator_api/error.rs b/common/client-libs/validator-client/src/nym_api/error.rs similarity index 60% rename from common/client-libs/validator-client/src/validator_api/error.rs rename to common/client-libs/validator-client/src/nym_api/error.rs index 9d7cd1d50d..1c3f7b11a4 100644 --- a/common/client-libs/validator-client/src/validator_api/error.rs +++ b/common/client-libs/validator-client/src/nym_api/error.rs @@ -1,8 +1,8 @@ +use nym_api_requests::models::RequestError; use thiserror::Error; -use validator_api_requests::models::RequestError; #[derive(Error, Debug)] -pub enum ValidatorAPIError { +pub enum NymAPIError { #[error("There was an issue with the REST request - {source}")] ReqwestClientError { #[from] @@ -12,6 +12,6 @@ pub enum ValidatorAPIError { #[error("Request failed with error message - {0}")] GenericRequestFailure(String), - #[error("The validator API has failed to resolve our request. It returned status code {status} and additional error message: {}", error.message())] + #[error("The nym API has failed to resolve our request. It returned status code {status} and additional error message: {}", error.message())] ApiRequestFailure { status: u16, error: RequestError }, } diff --git a/common/client-libs/validator-client/src/validator_api/mod.rs b/common/client-libs/validator-client/src/nym_api/mod.rs similarity index 82% rename from common/client-libs/validator-client/src/validator_api/mod.rs rename to common/client-libs/validator-client/src/nym_api/mod.rs index 3cb7ae2ce9..00fd839d4e 100644 --- a/common/client-libs/validator-client/src/validator_api/mod.rs +++ b/common/client-libs/validator-client/src/nym_api/mod.rs @@ -1,22 +1,22 @@ // Copyright 2021-2022 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 -use crate::validator_api::error::ValidatorAPIError; -use crate::validator_api::routes::{CORE_STATUS_COUNT, SINCE_ARG}; +use crate::nym_api::error::NymAPIError; +use crate::nym_api::routes::{CORE_STATUS_COUNT, SINCE_ARG}; use mixnet_contract_common::mixnode::MixNodeDetails; use mixnet_contract_common::{GatewayBond, IdentityKeyRef, MixId}; -use reqwest::Response; -use serde::{Deserialize, Serialize}; -use url::Url; -use validator_api_requests::coconut::{ +use nym_api_requests::coconut::{ BlindSignRequestBody, BlindedSignatureResponse, VerifyCredentialBody, VerifyCredentialResponse, }; -use validator_api_requests::models::{ +use nym_api_requests::models::{ GatewayCoreStatusResponse, GatewayStatusReportResponse, GatewayUptimeHistoryResponse, InclusionProbabilityResponse, MixNodeBondAnnotated, MixnodeCoreStatusResponse, MixnodeStatusReportResponse, MixnodeStatusResponse, MixnodeUptimeHistoryResponse, RequestError, RewardEstimationResponse, StakeSaturationResponse, UptimeResponse, }; +use reqwest::Response; +use serde::{Deserialize, Serialize}; +use url::Url; pub mod error; pub mod routes; @@ -53,7 +53,7 @@ impl Client { &self, path: PathSegments<'_>, params: Params<'_, K, V>, - ) -> Result + ) -> Result where K: AsRef, V: AsRef, @@ -62,11 +62,11 @@ impl Client { Ok(self.reqwest_client.get(url).send().await?) } - async fn query_validator_api( + async fn query_nym_api( &self, path: PathSegments<'_>, params: Params<'_, K, V>, - ) -> Result + ) -> Result where for<'a> T: Deserialize<'a>, K: AsRef, @@ -76,16 +76,16 @@ impl Client { if res.status().is_success() { Ok(res.json().await?) } else { - Err(ValidatorAPIError::GenericRequestFailure(res.text().await?)) + Err(NymAPIError::GenericRequestFailure(res.text().await?)) } } // This works for endpoints returning Result, ErrorResponse> - async fn query_validator_api_fallible( + async fn query_nym_api_fallible( &self, path: PathSegments<'_>, params: Params<'_, K, V>, - ) -> Result + ) -> Result where for<'a> T: Deserialize<'a>, K: AsRef, @@ -97,19 +97,19 @@ impl Client { Ok(res.json().await?) } else { let request_error: RequestError = res.json().await?; - Err(ValidatorAPIError::ApiRequestFailure { + Err(NymAPIError::ApiRequestFailure { status: status.as_u16(), error: request_error, }) } } - async fn post_validator_api( + async fn post_nym_api( &self, path: PathSegments<'_>, params: Params<'_, K, V>, json_body: &B, - ) -> Result + ) -> Result where B: Serialize + ?Sized, for<'a> T: Deserialize<'a>, @@ -121,21 +121,17 @@ impl Client { if response.status().is_success() { Ok(response.json().await?) } else { - Err(ValidatorAPIError::GenericRequestFailure( - response.text().await?, - )) + Err(NymAPIError::GenericRequestFailure(response.text().await?)) } } - pub async fn get_mixnodes(&self) -> Result, ValidatorAPIError> { - self.query_validator_api(&[routes::API_VERSION, routes::MIXNODES], NO_PARAMS) + pub async fn get_mixnodes(&self) -> Result, NymAPIError> { + self.query_nym_api(&[routes::API_VERSION, routes::MIXNODES], NO_PARAMS) .await } - pub async fn get_mixnodes_detailed( - &self, - ) -> Result, ValidatorAPIError> { - self.query_validator_api( + pub async fn get_mixnodes_detailed(&self) -> Result, NymAPIError> { + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS, @@ -147,13 +143,13 @@ impl Client { .await } - pub async fn get_gateways(&self) -> Result, ValidatorAPIError> { - self.query_validator_api(&[routes::API_VERSION, routes::GATEWAYS], NO_PARAMS) + pub async fn get_gateways(&self) -> Result, NymAPIError> { + self.query_nym_api(&[routes::API_VERSION, routes::GATEWAYS], NO_PARAMS) .await } - pub async fn get_active_mixnodes(&self) -> Result, ValidatorAPIError> { - self.query_validator_api( + pub async fn get_active_mixnodes(&self) -> Result, NymAPIError> { + self.query_nym_api( &[routes::API_VERSION, routes::MIXNODES, routes::ACTIVE], NO_PARAMS, ) @@ -162,8 +158,8 @@ impl Client { pub async fn get_active_mixnodes_detailed( &self, - ) -> Result, ValidatorAPIError> { - self.query_validator_api( + ) -> Result, NymAPIError> { + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS, @@ -176,8 +172,8 @@ impl Client { .await } - pub async fn get_rewarded_mixnodes(&self) -> Result, ValidatorAPIError> { - self.query_validator_api( + pub async fn get_rewarded_mixnodes(&self) -> Result, NymAPIError> { + self.query_nym_api( &[routes::API_VERSION, routes::MIXNODES, routes::REWARDED], NO_PARAMS, ) @@ -187,8 +183,8 @@ impl Client { pub async fn get_mixnode_report( &self, mix_id: MixId, - ) -> Result { - self.query_validator_api( + ) -> Result { + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS, @@ -204,8 +200,8 @@ impl Client { pub async fn get_gateway_report( &self, identity: IdentityKeyRef<'_>, - ) -> Result { - self.query_validator_api( + ) -> Result { + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS, @@ -221,8 +217,8 @@ impl Client { pub async fn get_mixnode_history( &self, mix_id: MixId, - ) -> Result { - self.query_validator_api( + ) -> Result { + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS, @@ -238,8 +234,8 @@ impl Client { pub async fn get_gateway_history( &self, identity: IdentityKeyRef<'_>, - ) -> Result { - self.query_validator_api( + ) -> Result { + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS, @@ -254,8 +250,8 @@ impl Client { pub async fn get_rewarded_mixnodes_detailed( &self, - ) -> Result, ValidatorAPIError> { - self.query_validator_api( + ) -> Result, NymAPIError> { + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS, @@ -272,9 +268,9 @@ impl Client { &self, identity: IdentityKeyRef<'_>, since: Option, - ) -> Result { + ) -> Result { if let Some(since) = since { - self.query_validator_api( + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS_ROUTES, @@ -286,7 +282,7 @@ impl Client { ) .await } else { - self.query_validator_api( + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS_ROUTES, @@ -303,9 +299,9 @@ impl Client { &self, mix_id: MixId, since: Option, - ) -> Result { + ) -> Result { if let Some(since) = since { - self.query_validator_api( + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS_ROUTES, @@ -317,7 +313,7 @@ impl Client { ) .await } else { - self.query_validator_api( + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS_ROUTES, @@ -334,8 +330,8 @@ impl Client { pub async fn get_mixnode_status( &self, mix_id: MixId, - ) -> Result { - self.query_validator_api( + ) -> Result { + self.query_nym_api( &[ routes::API_VERSION, routes::STATUS_ROUTES, @@ -351,8 +347,8 @@ impl Client { pub async fn get_mixnode_reward_estimation( &self, mix_id: MixId, - ) -> Result { - self.query_validator_api_fallible( + ) -> Result { + self.query_nym_api_fallible( &[ routes::API_VERSION, routes::STATUS_ROUTES, @@ -368,8 +364,8 @@ impl Client { pub async fn get_mixnode_stake_saturation( &self, mix_id: MixId, - ) -> Result { - self.query_validator_api_fallible( + ) -> Result { + self.query_nym_api_fallible( &[ routes::API_VERSION, routes::STATUS_ROUTES, @@ -385,8 +381,8 @@ impl Client { pub async fn get_mixnode_inclusion_probability( &self, mix_id: MixId, - ) -> Result { - self.query_validator_api_fallible( + ) -> Result { + self.query_nym_api_fallible( &[ routes::API_VERSION, routes::STATUS_ROUTES, @@ -402,8 +398,8 @@ impl Client { pub async fn get_mixnode_avg_uptime( &self, mix_id: MixId, - ) -> Result { - self.query_validator_api_fallible( + ) -> Result { + self.query_nym_api_fallible( &[ routes::API_VERSION, routes::STATUS_ROUTES, @@ -419,8 +415,8 @@ impl Client { pub async fn blind_sign( &self, request_body: &BlindSignRequestBody, - ) -> Result { - self.post_validator_api( + ) -> Result { + self.post_nym_api( &[ routes::API_VERSION, routes::COCONUT_ROUTES, @@ -436,8 +432,8 @@ impl Client { pub async fn partial_bandwidth_credential( &self, request_body: &str, - ) -> Result { - self.post_validator_api( + ) -> Result { + self.post_nym_api( &[ routes::API_VERSION, routes::COCONUT_ROUTES, @@ -453,8 +449,8 @@ impl Client { pub async fn verify_bandwidth_credential( &self, request_body: &VerifyCredentialBody, - ) -> Result { - self.post_validator_api( + ) -> Result { + self.post_nym_api( &[ routes::API_VERSION, routes::COCONUT_ROUTES, diff --git a/common/client-libs/validator-client/src/validator_api/routes.rs b/common/client-libs/validator-client/src/nym_api/routes.rs similarity index 92% rename from common/client-libs/validator-client/src/validator_api/routes.rs rename to common/client-libs/validator-client/src/nym_api/routes.rs index 66a822b4fd..5b3d1c266d 100644 --- a/common/client-libs/validator-client/src/validator_api/routes.rs +++ b/common/client-libs/validator-client/src/nym_api/routes.rs @@ -1,9 +1,9 @@ // Copyright 2021 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 -use network_defaults::VALIDATOR_API_VERSION; +use network_defaults::NYM_API_VERSION; -pub const API_VERSION: &str = VALIDATOR_API_VERSION; +pub const API_VERSION: &str = NYM_API_VERSION; pub const MIXNODES: &str = "mixnodes"; pub const GATEWAYS: &str = "gateways"; diff --git a/common/commands/src/context/mod.rs b/common/commands/src/context/mod.rs index 98709d6d98..3a21634afb 100644 --- a/common/commands/src/context/mod.rs +++ b/common/commands/src/context/mod.rs @@ -7,8 +7,8 @@ use network_defaults::{ NymNetworkDetails, }; use tap::prelude::*; +pub use validator_client::nym_api::Client as NymApiClient; use validator_client::nymd::{self, AccountId, NymdClient, QueryNymdClient, SigningNymdClient}; -pub use validator_client::validator_api::Client as ValidatorApiClient; use crate::context::errors::ContextError; @@ -16,14 +16,14 @@ pub mod errors; pub type SigningClient = validator_client::nymd::NymdClient; pub type QueryClient = validator_client::nymd::NymdClient; -pub type SigningClientWithValidatorAPI = validator_client::Client; -pub type QueryClientWithValidatorAPI = validator_client::Client; +pub type SigningClientWithNymd = validator_client::Client; +pub type QueryClientWithNymd = validator_client::Client; #[derive(Debug)] pub struct ClientArgs { pub config_env_file: Option, pub nymd_url: Option, - pub validator_api_url: Option, + pub nym_api_url: Option, pub mnemonic: Option, pub mixnet_contract_address: Option, pub vesting_contract_address: Option, @@ -38,8 +38,8 @@ pub fn get_network_details(args: &ClientArgs) -> Result Result { +) -> Result { let client_config = validator_client::Config::try_from_nym_network_details(network_details) .tap_err(|err| log::error!("Failed to get client config - {err}"))?; @@ -126,9 +126,9 @@ pub fn create_signing_client_with_validator_api( } } -pub fn create_query_client_with_validator_api( +pub fn create_query_client_with_nym_api( network_details: &NymNetworkDetails, -) -> Result { +) -> Result { let client_config = validator_client::Config::try_from_nym_network_details(network_details) .tap_err(|err| log::error!("Failed to get client config - {err}"))?; diff --git a/common/commands/src/validator/mixnet/delegators/query_for_delegations.rs b/common/commands/src/validator/mixnet/delegators/query_for_delegations.rs index d816e65a0c..6867f51e81 100644 --- a/common/commands/src/validator/mixnet/delegators/query_for_delegations.rs +++ b/common/commands/src/validator/mixnet/delegators/query_for_delegations.rs @@ -4,7 +4,7 @@ use clap::Parser; use log::info; -use crate::context::SigningClientWithValidatorAPI; +use crate::context::SigningClientWithNymd; use crate::utils::{pretty_cosmwasm_coin, show_error_passthrough}; use comfy_table::Table; @@ -14,7 +14,7 @@ use mixnet_contract_common::{Delegation, PendingEpochEvent, PendingEpochEventKin #[derive(Debug, Parser)] pub struct Args {} -pub async fn execute(_args: Args, client: SigningClientWithValidatorAPI) { +pub async fn execute(_args: Args, client: SigningClientWithNymd) { info!( "Getting delegations for account {}...", client.nymd.address() @@ -48,14 +48,14 @@ pub async fn execute(_args: Args, client: SigningClientWithValidatorAPI) { } } -async fn to_iso_timestamp(block_height: u32, client: &SigningClientWithValidatorAPI) -> String { +async fn to_iso_timestamp(block_height: u32, client: &SigningClientWithNymd) -> String { match client.nymd.get_block_timestamp(Some(block_height)).await { Ok(res) => res.to_rfc3339(), Err(_e) => "-".to_string(), } } -async fn print_delegations(delegations: Vec, client: &SigningClientWithValidatorAPI) { +async fn print_delegations(delegations: Vec, client: &SigningClientWithNymd) { let mut table = Table::new(); table.set_header(vec!["Timestamp", "Mix Id", "Delegation", "Proxy"]); @@ -75,10 +75,7 @@ async fn print_delegations(delegations: Vec, client: &SigningClientW println!("{table}"); } -async fn print_delegation_events( - events: Vec, - client: &SigningClientWithValidatorAPI, -) { +async fn print_delegation_events(events: Vec, client: &SigningClientWithNymd) { let mut table = Table::new(); table.set_header(vec![ diff --git a/common/commands/src/validator/mixnet/query/query_all_gateways.rs b/common/commands/src/validator/mixnet/query/query_all_gateways.rs index 679ac08bcd..7904af2c4d 100644 --- a/common/commands/src/validator/mixnet/query/query_all_gateways.rs +++ b/common/commands/src/validator/mixnet/query/query_all_gateways.rs @@ -4,7 +4,7 @@ use clap::Parser; use comfy_table::Table; -use crate::context::QueryClientWithValidatorAPI; +use crate::context::QueryClientWithNymd; use crate::utils::{pretty_cosmwasm_coin, show_error}; #[derive(Debug, Parser)] @@ -14,8 +14,8 @@ pub struct Args { pub identity_key: Option, } -pub async fn query(args: Args, client: &QueryClientWithValidatorAPI) { - match client.validator_api.get_gateways().await { +pub async fn query(args: Args, client: &QueryClientWithNymd) { + match client.nym_api.get_gateways().await { Ok(res) => match args.identity_key { Some(identity_key) => { let node = res.iter().find(|node| { diff --git a/common/commands/src/validator/mixnet/query/query_all_mixnodes.rs b/common/commands/src/validator/mixnet/query/query_all_mixnodes.rs index 4ec6b25b7b..cdcd70672f 100644 --- a/common/commands/src/validator/mixnet/query/query_all_mixnodes.rs +++ b/common/commands/src/validator/mixnet/query/query_all_mixnodes.rs @@ -4,7 +4,7 @@ use clap::Parser; use comfy_table::Table; -use crate::context::QueryClientWithValidatorAPI; +use crate::context::QueryClientWithNymd; use crate::utils::{pretty_decimal_with_denom, show_error}; #[derive(Debug, Parser)] @@ -14,8 +14,8 @@ pub struct Args { pub identity_key: Option, } -pub async fn query(args: Args, client: &QueryClientWithValidatorAPI) { - match client.validator_api.get_mixnodes().await { +pub async fn query(args: Args, client: &QueryClientWithNymd) { + match client.nym_api.get_mixnodes().await { Ok(res) => match args.identity_key { Some(identity_key) => { let node = res.iter().find(|node| { diff --git a/common/credentials/Cargo.toml b/common/credentials/Cargo.toml index 58d43af03f..2f754253cc 100644 --- a/common/credentials/Cargo.toml +++ b/common/credentials/Cargo.toml @@ -13,7 +13,7 @@ thiserror = "1.0" # I guess temporarily until we get serde support in coconut up and running coconut-interface = { path = "../coconut-interface" } crypto = { path = "../crypto", features = ["rand", "asymmetric", "symmetric", "hashing"] } -validator-api-requests = { path = "../../validator-api/validator-api-requests" } +nym-api-requests = { path = "../../nym-api/nym-api-requests" } validator-client = { path = "../client-libs/validator-client" } [dev-dependencies] diff --git a/common/credentials/src/coconut/params.rs b/common/credentials/src/coconut/params.rs index 42b9205ebb..7e2260bc10 100644 --- a/common/credentials/src/coconut/params.rs +++ b/common/credentials/src/coconut/params.rs @@ -9,7 +9,7 @@ type Aes128Ctr = ctr::Ctr64LE; /// Hashing algorithm used during hkdf for ephemeral shared key generation per blinded signature /// response encryption. -pub type ValidatorApiCredentialHkdfAlgorithm = blake3::Hasher; +pub type NymApiCredentialHkdfAlgorithm = blake3::Hasher; /// Encryption algorithm used for end-to-end encryption of blinded signature response -pub type ValidatorApiCredentialEncryptionAlgorithm = Aes128Ctr; +pub type NymApiCredentialEncryptionAlgorithm = Aes128Ctr; diff --git a/common/credentials/src/coconut/utils.rs b/common/credentials/src/coconut/utils.rs index f701938d59..0305bb845b 100644 --- a/common/credentials/src/coconut/utils.rs +++ b/common/credentials/src/coconut/utils.rs @@ -8,13 +8,11 @@ use coconut_interface::{ use crypto::asymmetric::encryption::PublicKey; use crypto::shared_key::recompute_shared_key; use crypto::symmetric::stream_cipher; -use validator_api_requests::coconut::BlindSignRequestBody; +use nym_api_requests::coconut::BlindSignRequestBody; use validator_client::client::CoconutApiClient; use crate::coconut::bandwidth::{BandwidthVoucher, PRIVATE_ATTRIBUTES, PUBLIC_ATTRIBUTES}; -use crate::coconut::params::{ - ValidatorApiCredentialEncryptionAlgorithm, ValidatorApiCredentialHkdfAlgorithm, -}; +use crate::coconut::params::{NymApiCredentialEncryptionAlgorithm, NymApiCredentialHkdfAlgorithm}; use crate::error::Error; pub async fn obtain_aggregate_verification_key( @@ -66,11 +64,11 @@ async fn obtain_partial_credential( let remote_key = PublicKey::from_bytes(&response.remote_key)?; let encryption_key = recompute_shared_key::< - ValidatorApiCredentialEncryptionAlgorithm, - ValidatorApiCredentialHkdfAlgorithm, + NymApiCredentialEncryptionAlgorithm, + NymApiCredentialHkdfAlgorithm, >(&remote_key, attributes.encryption_key()); - let zero_iv = stream_cipher::zero_iv::(); - let blinded_signature_bytes = stream_cipher::decrypt::( + let zero_iv = stream_cipher::zero_iv::(); + let blinded_signature_bytes = stream_cipher::decrypt::( &encryption_key, &zero_iv, &encrypted_signature, diff --git a/common/mixnode-common/src/verloc/mod.rs b/common/mixnode-common/src/verloc/mod.rs index 48e9a7b483..fc7e19332a 100644 --- a/common/mixnode-common/src/verloc/mod.rs +++ b/common/mixnode-common/src/verloc/mod.rs @@ -69,8 +69,8 @@ pub struct Config { /// due to being unable to get the list of nodes. retry_timeout: Duration, - /// URLs to the validator apis for obtaining network topology. - validator_api_urls: Vec, + /// URLs to the nym apis for obtaining network topology. + nym_api_urls: Vec, } impl Config { @@ -132,15 +132,15 @@ impl ConfigBuilder { self } - pub fn validator_api_urls(mut self, validator_api_urls: Vec) -> Self { - self.0.validator_api_urls = validator_api_urls; + pub fn nym_api_urls(mut self, nym_api_urls: Vec) -> Self { + self.0.nym_api_urls = nym_api_urls; self } pub fn build(self) -> Config { // panics here are fine as those are only ever constructed at the initial setup assert!( - !self.0.validator_api_urls.is_empty(), + !self.0.nym_api_urls.is_empty(), "at least one validator endpoint must be provided", ); self.0 @@ -159,7 +159,7 @@ impl Default for ConfigBuilder { tested_nodes_batch_size: DEFAULT_BATCH_SIZE, testing_interval: DEFAULT_TESTING_INTERVAL, retry_timeout: DEFAULT_RETRY_TIMEOUT, - validator_api_urls: vec![], + nym_api_urls: vec![], }) } } @@ -186,7 +186,7 @@ impl VerlocMeasurer { identity: Arc, shutdown_listener: ShutdownListener, ) -> Self { - config.validator_api_urls.shuffle(&mut thread_rng()); + config.nym_api_urls.shuffle(&mut thread_rng()); VerlocMeasurer { packet_sender: Arc::new(PacketSender::new( @@ -204,24 +204,21 @@ impl VerlocMeasurer { )), shutdown_listener, currently_used_api: 0, - validator_client: validator_client::ApiClient::new( - config.validator_api_urls[0].clone(), - ), + validator_client: validator_client::ApiClient::new(config.nym_api_urls[0].clone()), config, results: AtomicVerlocResult::new(), } } - fn use_next_validator_api(&mut self) { - if self.config.validator_api_urls.len() == 1 { + fn use_next_nym_api(&mut self) { + if self.config.nym_api_urls.len() == 1 { warn!("There's only a single validator API available - it won't be possible to use a different one"); return; } - self.currently_used_api = - (self.currently_used_api + 1) % self.config.validator_api_urls.len(); + self.currently_used_api = (self.currently_used_api + 1) % self.config.nym_api_urls.len(); self.validator_client - .change_validator_api(self.config.validator_api_urls[self.currently_used_api].clone()) + .change_nym_api(self.config.nym_api_urls[self.currently_used_api].clone()) } pub fn get_verloc_results_pointer(&self) -> AtomicVerlocResult { @@ -308,7 +305,7 @@ impl VerlocMeasurer { "failed to obtain list of mixnodes from the validator - {}. Going to attempt to use another validator API in the next run", err ); - self.use_next_validator_api(); + self.use_next_nym_api(); sleep(self.config.retry_timeout).await; continue; } diff --git a/common/network-defaults/src/lib.rs b/common/network-defaults/src/lib.rs index d7b01622b1..3a2daeed42 100644 --- a/common/network-defaults/src/lib.rs +++ b/common/network-defaults/src/lib.rs @@ -355,14 +355,14 @@ pub const DEFAULT_WEBSOCKET_LISTENING_PORT: u16 = 1977; // 'SOCKS5' CLIENT pub const DEFAULT_SOCKS5_LISTENING_PORT: u16 = 1080; -// VALIDATOR-API -pub const DEFAULT_VALIDATOR_API_PORT: u16 = 8080; +// NYM-API +pub const DEFAULT_NYM_API_PORT: u16 = 8080; -pub const VALIDATOR_API_VERSION: &str = "v1"; +pub const NYM_API_VERSION: &str = "v1"; // REWARDING -/// We'll be assuming a few more things, profit margin and cost function. Since we don't have relialable package measurement, we'll be using uptime. We'll also set the value of 1 Nym to 1 $, to be able to translate interval costs to Nyms. We'll also assume a cost of 40$ per interval(month), converting that to Nym at our 1$ rate translates to 40_000_000 uNyms +/// We'll be assuming a few more things, profit margin and cost function. Since we don't have reliable package measurement, we'll be using uptime. We'll also set the value of 1 Nym to 1 $, to be able to translate interval costs to Nyms. We'll also assume a cost of 40$ per interval(month), converting that to Nym at our 1$ rate translates to 40_000_000 uNyms // pub const DEFAULT_OPERATOR_INTERVAL_COST: u64 = 40_000_000; // 40$/(30 days) at 1 Nym == 1$ // pub const DEFAULT_OPERATOR_INTERVAL_COST: u64 = 55_556; // 40$/1hr at 1 Nym == 1$ // pub const DEFAULT_OPERATOR_INTERVAL_COST: u64 = 9259; // 40$/1hr/6 at 1 Nym == 1$ diff --git a/common/types/src/error.rs b/common/types/src/error.rs index b0874ba7aa..864a6f6eb2 100644 --- a/common/types/src/error.rs +++ b/common/types/src/error.rs @@ -1,7 +1,7 @@ use serde::{Serialize, Serializer}; use std::io; use thiserror::Error; -use validator_client::validator_api::error::ValidatorAPIError; +use validator_client::nym_api::error::NymAPIError; use validator_client::{nymd::error::NymdError, ValidatorClientError}; // TODO: ask @MS why this even exists @@ -23,9 +23,9 @@ pub enum TypesError { source: eyre::Report, }, #[error("{source}")] - ValidatorApiError { + NymApiError { #[from] - source: ValidatorAPIError, + source: NymAPIError, }, #[error("{source}")] IOError { @@ -52,8 +52,8 @@ pub enum TypesError { #[from] source: cosmwasm_std::DecimalRangeExceeded, }, - #[error("No validator API URL configured")] - NoValidatorApiUrlConfigured, + #[error("No nym API URL configured")] + NoNymApiUrlConfigured, #[error("{0} is not a valid amount string")] InvalidAmount(String), #[error("{0} is not a valid denomination string")] @@ -88,10 +88,10 @@ impl Serialize for TypesError { impl From for TypesError { fn from(e: ValidatorClientError) -> Self { match e { - ValidatorClientError::ValidatorAPIError { source } => source.into(), + ValidatorClientError::NymAPIError { source } => source.into(), ValidatorClientError::MalformedUrlProvided(e) => e.into(), ValidatorClientError::NymdError(e) => e.into(), - ValidatorClientError::NoAPIUrlAvailable => TypesError::NoValidatorApiUrlConfigured, + ValidatorClientError::NoAPIUrlAvailable => TypesError::NoNymApiUrlConfigured, } } } diff --git a/contracts/mixnet/src/rewards/transactions.rs b/contracts/mixnet/src/rewards/transactions.rs index e25e4c1bd8..d1552bb50b 100644 --- a/contracts/mixnet/src/rewards/transactions.rs +++ b/contracts/mixnet/src/rewards/transactions.rs @@ -408,7 +408,7 @@ pub mod tests { let env = test.env(); // note: we don't have to test for cases where `is_unbonding` is set to true on a mixnode - // since before performing the validator-api should clear out the event queue + // since before performing the nym-api should clear out the event queue // manually adjust delegation info as to indicate the rewarding information shouldnt get removed let mut rewarding_details = storage::MIXNODE_REWARDING diff --git a/explorer-api/src/client.rs b/explorer-api/src/client.rs index 129a394d31..717a0800e5 100644 --- a/explorer-api/src/client.rs +++ b/explorer-api/src/client.rs @@ -21,7 +21,7 @@ impl ThreadsafeValidatorClient { } pub(crate) fn api_endpoint(&self) -> &Url { - self.0.validator_api.current_url() + self.0.nym_api.current_url() } } diff --git a/explorer-api/src/main.rs b/explorer-api/src/main.rs index 47dddf9f54..5154c87e78 100644 --- a/explorer-api/src/main.rs +++ b/explorer-api/src/main.rs @@ -54,8 +54,8 @@ impl ExplorerApi { async fn run(&mut self) { info!("Explorer API starting up..."); - let validator_api_url = self.state.inner.validator_client.api_endpoint(); - info!("Using validator API - {}", validator_api_url); + let nym_api_url = self.state.inner.validator_client.api_endpoint(); + info!("Using validator API - {}", nym_api_url); let shutdown = ShutdownNotifier::default(); diff --git a/explorer-api/src/mix_node/econ_stats.rs b/explorer-api/src/mix_node/econ_stats.rs index cde29d3a86..30d89a29b2 100644 --- a/explorer-api/src/mix_node/econ_stats.rs +++ b/explorer-api/src/mix_node/econ_stats.rs @@ -13,31 +13,26 @@ pub(crate) async fn retrieve_mixnode_econ_stats( ) -> Option { let stake_saturation = client .0 - .validator_api + .nym_api .get_mixnode_stake_saturation(mix_id) .await .ok()?; let inclusion_probability = client .0 - .validator_api + .nym_api .get_mixnode_inclusion_probability(mix_id) .await .ok()?; let reward_estimation = client .0 - .validator_api + .nym_api .get_mixnode_reward_estimation(mix_id) .await .ok()?; - let uptime_response = client - .0 - .validator_api - .get_mixnode_avg_uptime(mix_id) - .await - .ok()?; + let uptime_response = client.0.nym_api.get_mixnode_avg_uptime(mix_id).await.ok()?; Some(EconomicDynamicsStats { stake_saturation: best_effort_small_dec_to_f64(stake_saturation.saturation) as f32, diff --git a/explorer/.env.prod b/explorer/.env.prod index b1b1fe0d4c..70bd50c7ca 100644 --- a/explorer/.env.prod +++ b/explorer/.env.prod @@ -1,5 +1,5 @@ EXPLORER_API_URL=https://explorer.nymtech.net/api/v1 -VALIDATOR_API_URL=https://validator.nymtech.net +NYM_API_URL=https://validator.nymtech.net VALIDATOR_URL=https://rpc.nymtech.net BIG_DIPPER_URL=https://blocks.nymtech.net CURRENCY_DENOM=unym diff --git a/explorer/.env.qa b/explorer/.env.qa index 60b30e1bd1..dd7052ce4d 100644 --- a/explorer/.env.qa +++ b/explorer/.env.qa @@ -1,5 +1,5 @@ EXPLORER_API_URL=https://qa-explorer.nymtech.net/api/v1 -VALIDATOR_API_URL=https://qa-validator-api.nymtech.net +NYM_API_URL=https://qa-validator-api.nymtech.net VALIDATOR_URL=https://qa-validator.nymtech.net BIG_DIPPER_URL=https://qa-blocks.nymtech.net CURRENCY_DENOM=unym diff --git a/explorer/src/api/constants.ts b/explorer/src/api/constants.ts index fb7216b64f..dc6124c53d 100644 --- a/explorer/src/api/constants.ts +++ b/explorer/src/api/constants.ts @@ -1,6 +1,6 @@ // master APIs export const API_BASE_URL = process.env.EXPLORER_API_URL; -export const VALIDATOR_API_BASE_URL = process.env.VALIDATOR_API_URL; +export const NYM_API_BASE_URL = process.env.NYM_API_URL; export const VALIDATOR_BASE_URL = process.env.VALIDATOR_URL; export const BIG_DIPPER = process.env.BIG_DIPPER_URL; @@ -9,12 +9,12 @@ export const OVERVIEW_API = `${API_BASE_URL}/overview`; export const MIXNODE_PING = `${API_BASE_URL}/ping`; export const MIXNODES_API = `${API_BASE_URL}/mix-nodes`; export const MIXNODE_API = `${API_BASE_URL}/mix-node`; -export const GATEWAYS_API = `${VALIDATOR_API_BASE_URL}/api/v1/gateways`; +export const GATEWAYS_API = `${NYM_API_BASE_URL}/api/v1/gateways`; export const VALIDATORS_API = `${VALIDATOR_BASE_URL}/validators`; -export const BLOCK_API = `${VALIDATOR_API_BASE_URL}/block`; +export const BLOCK_API = `${NYM_API_BASE_URL}/block`; export const COUNTRY_DATA_API = `${API_BASE_URL}/countries`; -export const UPTIME_STORY_API = `${VALIDATOR_API_BASE_URL}/api/v1/status/mixnode`; // add ID then '/history' to this. -export const UPTIME_STORY_API_GATEWAY = `${VALIDATOR_API_BASE_URL}/api/v1/status/gateway`; // add ID then '/history' or '/report' to this. +export const UPTIME_STORY_API = `${NYM_API_BASE_URL}/api/v1/status/mixnode`; // add ID then '/history' to this. +export const UPTIME_STORY_API_GATEWAY = `${NYM_API_BASE_URL}/api/v1/status/gateway`; // add ID then '/history' or '/report' to this. // errors export const MIXNODE_API_ERROR = "We're having trouble finding that record, please try again or Contact Us."; diff --git a/gateway/Cargo.toml b/gateway/Cargo.toml index ab26fccea7..a531722d06 100644 --- a/gateway/Cargo.toml +++ b/gateway/Cargo.toml @@ -64,7 +64,7 @@ network-defaults = { path = "../common/network-defaults" } nymsphinx = { path = "../common/nymsphinx" } pemstore = { path = "../common/pemstore" } statistics-common = { path = "../common/statistics" } -validator-api-requests = { path = "../validator-api/validator-api-requests" } +nym-api-requests = { path = "../nym-api/nym-api-requests" } validator-client = { path = "../common/client-libs/validator-client", features = [ "nymd-client", ] } @@ -75,7 +75,7 @@ coconut = [ "coconut-interface", "gateway-requests/coconut", "credentials/coconut", - "validator-api-requests/coconut", + "nym-api-requests/coconut", ] [build-dependencies] diff --git a/gateway/src/commands/init.rs b/gateway/src/commands/init.rs index dca393213a..abd668b33f 100644 --- a/gateway/src/commands/init.rs +++ b/gateway/src/commands/init.rs @@ -39,9 +39,9 @@ pub struct Init { #[clap(long)] datastore: Option, - /// Comma separated list of endpoints of the validators APIs + /// Comma separated list of endpoints of nym APIs #[clap(long)] - validator_apis: Option, + nym_apis: Option, /// Comma separated list of endpoints of the validator #[clap(long)] @@ -75,7 +75,7 @@ impl From for OverrideConfig { clients_port: init_config.clients_port, datastore: init_config.datastore, announce_host: init_config.announce_host, - validator_apis: init_config.validator_apis, + nym_apis: init_config.nym_apis, validators: init_config.validators, mnemonic: init_config.mnemonic, @@ -165,7 +165,7 @@ mod tests { clients_port: Some(43), announce_host: Some("foo-announce-host".to_string()), datastore: Some("foo-datastore".to_string()), - validator_apis: None, + nym_apis: None, validators: None, mnemonic: None, statistics_service_url: None, diff --git a/gateway/src/commands/mod.rs b/gateway/src/commands/mod.rs index ef2ec235e8..b3fbb6f537 100644 --- a/gateway/src/commands/mod.rs +++ b/gateway/src/commands/mod.rs @@ -55,7 +55,7 @@ pub(crate) struct OverrideConfig { announce_host: Option, enabled_statistics: Option, statistics_service_url: Option, - validator_apis: Option, + nym_apis: Option, validators: Option, mnemonic: Option, @@ -119,11 +119,11 @@ pub(crate) fn override_config(mut config: Config, args: OverrideConfig) -> Confi } } - if let Some(raw_validators) = args.validator_apis { - config = config.with_custom_validator_apis(parse_validators(&raw_validators)); + if let Some(raw_validators) = args.nym_apis { + config = config.with_custom_nym_apis(parse_validators(&raw_validators)); } else if std::env::var(CONFIGURED).is_ok() { if let Some(raw_validators) = read_var_if_not_default(API_VALIDATOR) { - config = config.with_custom_validator_apis(::config::parse_validators(&raw_validators)) + config = config.with_custom_nym_apis(::config::parse_validators(&raw_validators)) } } diff --git a/gateway/src/commands/run.rs b/gateway/src/commands/run.rs index 37320877fe..e91f260d1b 100644 --- a/gateway/src/commands/run.rs +++ b/gateway/src/commands/run.rs @@ -39,9 +39,9 @@ pub struct Run { #[clap(long)] datastore: Option, - /// Comma separated list of endpoints of the validators APIs + /// Comma separated list of endpoints of the nym APIs #[clap(long)] - validator_apis: Option, + nym_apis: Option, /// Comma separated list of endpoints of the validator #[clap(long)] @@ -75,7 +75,7 @@ impl From for OverrideConfig { clients_port: run_config.clients_port, datastore: run_config.datastore, announce_host: run_config.announce_host, - validator_apis: run_config.validator_apis, + nym_apis: run_config.nym_apis, validators: run_config.validators, mnemonic: run_config.mnemonic, diff --git a/gateway/src/config/mod.rs b/gateway/src/config/mod.rs index ac4f734dad..9eb15c1c5a 100644 --- a/gateway/src/config/mod.rs +++ b/gateway/src/config/mod.rs @@ -144,8 +144,8 @@ impl Config { self } - pub fn with_custom_validator_apis(mut self, validator_api_urls: Vec) -> Self { - self.gateway.validator_api_urls = validator_api_urls; + pub fn with_custom_nym_apis(mut self, nym_api_urls: Vec) -> Self { + self.gateway.nym_api_urls = nym_api_urls; self } @@ -240,8 +240,8 @@ impl Config { self.gateway.statistics_service_url.clone() } - pub fn get_validator_api_endpoints(&self) -> Vec { - self.gateway.validator_api_urls.clone() + pub fn get_nym_api_endpoints(&self) -> Vec { + self.gateway.nym_api_urls.clone() } #[cfg(feature = "coconut")] @@ -359,8 +359,8 @@ pub struct Gateway { /// Domain address of the statistics service statistics_service_url: Url, - /// Addresses to APIs running on validator from which the node gets the view of the network. - validator_api_urls: Vec, + /// Addresses to APIs from which the node gets the view of the network. + nym_api_urls: Vec, /// Addresses to validators which the node uses to check for double spending of ERC20 tokens. validator_nymd_urls: Vec, @@ -418,7 +418,7 @@ impl Default for Gateway { public_sphinx_key_file: Default::default(), enabled_statistics: false, statistics_service_url: Url::from_str(STATISTICS_SERVICE_DOMAIN_ADDRESS).expect("Invalid default statistics service URL"), - validator_api_urls: vec![Url::from_str(API_VALIDATOR).expect("Invalid default API URL")], + nym_api_urls: vec![Url::from_str(API_VALIDATOR).expect("Invalid default API URL")], validator_nymd_urls: vec![Url::from_str(NYMD_VALIDATOR).expect("Invalid default nymd URL")], cosmos_mnemonic: bip39::Mnemonic::from_str("exact antique hybrid width raise anchor puzzle degree fee quit long crack net vague hip despair write put useless civil mechanic broom music day").unwrap(), nym_root_directory: Config::default_root_directory(), diff --git a/gateway/src/config/template.rs b/gateway/src/config/template.rs index faba004a50..0d1759e820 100644 --- a/gateway/src/config/template.rs +++ b/gateway/src/config/template.rs @@ -60,8 +60,8 @@ enabled_statistics = {{ gateway.enabled_statistics }} statistics_service_url = '{{ gateway.statistics_service_url }}' # Addresses to APIs running on validator from which the node gets the view of the network. -validator_api_urls = [ - {{#each gateway.validator_api_urls }} +nym_api_urls = [ + {{#each gateway.nym_api_urls }} '{{this}}', {{/each}} ] diff --git a/gateway/src/node/client_handling/websocket/connection_handler/authenticated.rs b/gateway/src/node/client_handling/websocket/connection_handler/authenticated.rs index e7c2658daa..40ca0d7715 100644 --- a/gateway/src/node/client_handling/websocket/connection_handler/authenticated.rs +++ b/gateway/src/node/client_handling/websocket/connection_handler/authenticated.rs @@ -56,8 +56,8 @@ pub(crate) enum RequestHandlingError { APIError(#[from] validator_client::ValidatorClientError), #[cfg(feature = "coconut")] - #[error("Not enough validator API endpoints provided. Needed {needed}, received {received}")] - NotEnoughValidatorAPIs { received: usize, needed: usize }, + #[error("Not enough nym API endpoints provided. Needed {needed}, received {received}")] + NotEnoughNymAPIs { received: usize, needed: usize }, #[cfg(feature = "coconut")] #[error("There was a problem with the proposal id: {reason}")] diff --git a/gateway/src/node/client_handling/websocket/connection_handler/coconut.rs b/gateway/src/node/client_handling/websocket/connection_handler/coconut.rs index e83c23e5e9..ba53fe4dbd 100644 --- a/gateway/src/node/client_handling/websocket/connection_handler/coconut.rs +++ b/gateway/src/node/client_handling/websocket/connection_handler/coconut.rs @@ -21,7 +21,7 @@ const ONE_HOUR_SEC: u64 = 3600; const MAX_FEEGRANT_UNYM: u128 = 10000; pub(crate) struct CoconutVerifier { - api_clients: Vec, + nym_api_clients: Vec, nymd_client: Client, mix_denom_base: String, aggregated_verification_key: VerificationKey, @@ -35,13 +35,13 @@ impl CoconutVerifier { aggregated_verification_key: VerificationKey, ) -> Result { if api_clients.is_empty() { - return Err(RequestHandlingError::NotEnoughValidatorAPIs { + return Err(RequestHandlingError::NotEnoughNymAPIs { received: 0, needed: 1, }); } Ok(CoconutVerifier { - api_clients, + nym_api_clients: api_clients, nymd_client, mix_denom_base, aggregated_verification_key, @@ -87,12 +87,12 @@ impl CoconutVerifier { }); } - let req = validator_api_requests::coconut::VerifyCredentialBody::new( + let req = nym_api_requests::coconut::VerifyCredentialBody::new( credential.clone(), proposal_id, self.nymd_client.nymd.address().clone(), ); - for client in self.api_clients.iter() { + for client in self.nym_api_clients.iter() { self.nymd_client .nymd .grant_allowance( @@ -115,7 +115,7 @@ impl CoconutVerifier { ) .await?; if !ret?.verification_result { - debug!("Validator {} didn't accept the credential. It will probably vote No on the spending proposal", client.api_client.validator_api.current_url()); + debug!("Validator {} didn't accept the credential. It will probably vote No on the spending proposal", client.api_client.nym_api_client.current_url()); } } diff --git a/gateway/src/node/mod.rs b/gateway/src/node/mod.rs index c04091ffdc..7500302787 100644 --- a/gateway/src/node/mod.rs +++ b/gateway/src/node/mod.rs @@ -231,12 +231,12 @@ where } fn random_api_client(&self) -> validator_client::ApiClient { - let endpoints = self.config.get_validator_api_endpoints(); - let validator_api = endpoints + let endpoints = self.config.get_nym_api_endpoints(); + let nym_api = endpoints .choose(&mut thread_rng()) .expect("The list of validator apis is empty"); - validator_client::ApiClient::new(validator_api.clone()) + validator_client::ApiClient::new(nym_api.clone()) } #[cfg(feature = "coconut")] diff --git a/mixnode/src/commands/mod.rs b/mixnode/src/commands/mod.rs index 6ec353e76b..2edad136f9 100644 --- a/mixnode/src/commands/mod.rs +++ b/mixnode/src/commands/mod.rs @@ -96,10 +96,10 @@ fn override_config(mut config: Config, args: OverrideConfig) -> Config { } if let Some(ref raw_validators) = args.validators { - config = config.with_custom_validator_apis(parse_validators(raw_validators)); + config = config.with_custom_nym_apis(parse_validators(raw_validators)); } else if std::env::var(CONFIGURED).is_ok() { if let Some(raw_validators) = read_var_if_not_default(API_VALIDATOR) { - config = config.with_custom_validator_apis(::config::parse_validators(&raw_validators)) + config = config.with_custom_nym_apis(::config::parse_validators(&raw_validators)) } } diff --git a/mixnode/src/config/mod.rs b/mixnode/src/config/mod.rs index 3f5208cee8..bc9278bc85 100644 --- a/mixnode/src/config/mod.rs +++ b/mixnode/src/config/mod.rs @@ -155,8 +155,8 @@ impl Config { self } - pub fn with_custom_validator_apis(mut self, validator_api_urls: Vec) -> Self { - self.mixnode.validator_api_urls = validator_api_urls; + pub fn with_custom_nym_apis(mut self, nym_api_urls: Vec) -> Self { + self.mixnode.nym_api_urls = nym_api_urls; self } @@ -233,8 +233,8 @@ impl Config { self.mixnode.public_sphinx_key_file.clone() } - pub fn get_validator_api_endpoints(&self) -> Vec { - self.mixnode.validator_api_urls.clone() + pub fn get_nym_api_endpoints(&self) -> Vec { + self.mixnode.nym_api_urls.clone() } pub fn get_node_stats_logging_delay(&self) -> Duration { @@ -369,8 +369,8 @@ struct MixNode { /// Path to file containing public sphinx key. public_sphinx_key_file: PathBuf, - /// Addresses to APIs running on validator from which the node gets the view of the network. - validator_api_urls: Vec, + /// Addresses to nym APIs from which the node gets the view of the network. + nym_api_urls: Vec, /// nym_home_directory specifies absolute path to the home nym MixNodes directory. /// It is expected to use default value and hence .toml file should not redefine this field. @@ -412,7 +412,7 @@ impl Default for MixNode { public_identity_key_file: Default::default(), private_sphinx_key_file: Default::default(), public_sphinx_key_file: Default::default(), - validator_api_urls: vec![Url::from_str(API_VALIDATOR).expect("Invalid default API URL")], + nym_api_urls: vec![Url::from_str(API_VALIDATOR).expect("Invalid default API URL")], nym_root_directory: Config::default_root_directory(), wallet_address: "nymXXXXXXXX".to_string(), } diff --git a/mixnode/src/config/template.rs b/mixnode/src/config/template.rs index 2af12a195b..f222275083 100644 --- a/mixnode/src/config/template.rs +++ b/mixnode/src/config/template.rs @@ -54,8 +54,8 @@ verloc_port = {{ mixnode.verloc_port }} http_api_port = {{ mixnode.http_api_port }} # Addresses to APIs running on validator from which the node gets the view of the network. -validator_api_urls = [ - {{#each mixnode.validator_api_urls }} +nym_api_urls = [ + {{#each mixnode.nym_api_urls }} '{{this}}', {{/each}} ] diff --git a/mixnode/src/node/mod.rs b/mixnode/src/node/mod.rs index 0bca9b31b0..e986c4fa67 100644 --- a/mixnode/src/node/mod.rs +++ b/mixnode/src/node/mod.rs @@ -245,7 +245,7 @@ impl MixNode { .tested_nodes_batch_size(self.config.get_measurement_tested_nodes_batch_size()) .testing_interval(self.config.get_measurement_testing_interval()) .retry_timeout(self.config.get_measurement_retry_timeout()) - .validator_api_urls(self.config.get_validator_api_endpoints()) + .nym_api_urls(self.config.get_nym_api_endpoints()) .build(); let mut verloc_measurer = @@ -256,12 +256,12 @@ impl MixNode { } fn random_api_client(&self) -> validator_client::ApiClient { - let endpoints = self.config.get_validator_api_endpoints(); - let validator_api = endpoints + let endpoints = self.config.get_nym_api_endpoints(); + let nym_api = endpoints .choose(&mut thread_rng()) .expect("The list of validator apis is empty"); - validator_client::ApiClient::new(validator_api.clone()) + validator_client::ApiClient::new(nym_api.clone()) } // TODO: ask DH whether this function still makes sense in ^0.10 diff --git a/validator-api/Cargo.toml b/nym-api/Cargo.toml similarity index 97% rename from validator-api/Cargo.toml rename to nym-api/Cargo.toml index ee2c169f65..643e9ecd23 100644 --- a/validator-api/Cargo.toml +++ b/nym-api/Cargo.toml @@ -84,7 +84,7 @@ nymsphinx = { path = "../common/nymsphinx" } pemstore = { path = "../common/pemstore", optional = true } task = { path = "../common/task" } topology = { path = "../common/topology" } -validator-api-requests = { path = "validator-api-requests" } +nym-api-requests = { path = "nym-api-requests" } validator-client = { path = "../common/client-libs/validator-client", features = [ "nymd-client", ] } @@ -97,7 +97,7 @@ coconut = [ "cw3", "gateway-client/coconut", "credentials/coconut", - "validator-api-requests/coconut", + "nym-api-requests/coconut", "nymcoconut", "coconut-dkg-common", "dkg", diff --git a/validator-api/README.md b/nym-api/README.md similarity index 100% rename from validator-api/README.md rename to nym-api/README.md diff --git a/validator-api/Rocket.toml b/nym-api/Rocket.toml similarity index 100% rename from validator-api/Rocket.toml rename to nym-api/Rocket.toml diff --git a/validator-api/build.rs b/nym-api/build.rs similarity index 92% rename from validator-api/build.rs rename to nym-api/build.rs index 1e967f0aab..6c92dffc59 100644 --- a/validator-api/build.rs +++ b/nym-api/build.rs @@ -5,7 +5,7 @@ use vergen::{vergen, Config}; #[tokio::main] async fn main() { let out_dir = env::var("OUT_DIR").unwrap(); - let database_path = format!("{}/validator-api-example.sqlite", out_dir); + let database_path = format!("{}/nym-api-example.sqlite", out_dir); let mut conn = SqliteConnection::connect(&format!("sqlite://{}?mode=rwc", database_path)) .await diff --git a/validator-api/migrations/20210722120000_create_initial_tables.sql b/nym-api/migrations/20210722120000_create_initial_tables.sql similarity index 100% rename from validator-api/migrations/20210722120000_create_initial_tables.sql rename to nym-api/migrations/20210722120000_create_initial_tables.sql diff --git a/validator-api/migrations/20210819120000_monitor_runs.sql b/nym-api/migrations/20210819120000_monitor_runs.sql similarity index 100% rename from validator-api/migrations/20210819120000_monitor_runs.sql rename to nym-api/migrations/20210819120000_monitor_runs.sql diff --git a/validator-api/migrations/20210824120000_rewarding_data.sql b/nym-api/migrations/20210824120000_rewarding_data.sql similarity index 100% rename from validator-api/migrations/20210824120000_rewarding_data.sql rename to nym-api/migrations/20210824120000_rewarding_data.sql diff --git a/validator-api/migrations/20211018120000_core_nodes_testing.sql b/nym-api/migrations/20211018120000_core_nodes_testing.sql similarity index 100% rename from validator-api/migrations/20211018120000_core_nodes_testing.sql rename to nym-api/migrations/20211018120000_core_nodes_testing.sql diff --git a/validator-api/migrations/20211101110000_no_gateway_rewarding.sql b/nym-api/migrations/20211101110000_no_gateway_rewarding.sql similarity index 100% rename from validator-api/migrations/20211101110000_no_gateway_rewarding.sql rename to nym-api/migrations/20211101110000_no_gateway_rewarding.sql diff --git a/validator-api/migrations/20220121120000_epoch_interval_renaming.sql b/nym-api/migrations/20220121120000_epoch_interval_renaming.sql similarity index 100% rename from validator-api/migrations/20220121120000_epoch_interval_renaming.sql rename to nym-api/migrations/20220121120000_epoch_interval_renaming.sql diff --git a/validator-api/migrations/20220323120000_drop_foreign_keys_constraints.sql b/nym-api/migrations/20220323120000_drop_foreign_keys_constraints.sql similarity index 100% rename from validator-api/migrations/20220323120000_drop_foreign_keys_constraints.sql rename to nym-api/migrations/20220323120000_drop_foreign_keys_constraints.sql diff --git a/validator-api/migrations/20220325120000_signed_deposits.sql b/nym-api/migrations/20220325120000_signed_deposits.sql similarity index 100% rename from validator-api/migrations/20220325120000_signed_deposits.sql rename to nym-api/migrations/20220325120000_signed_deposits.sql diff --git a/validator-api/migrations/20220410222400_add_timestamp_indexes.sql b/nym-api/migrations/20220410222400_add_timestamp_indexes.sql similarity index 100% rename from validator-api/migrations/20220410222400_add_timestamp_indexes.sql rename to nym-api/migrations/20220410222400_add_timestamp_indexes.sql diff --git a/validator-api/migrations/20220804120000_mixnet_contract_v2.sql b/nym-api/migrations/20220804120000_mixnet_contract_v2.sql similarity index 100% rename from validator-api/migrations/20220804120000_mixnet_contract_v2.sql rename to nym-api/migrations/20220804120000_mixnet_contract_v2.sql diff --git a/validator-api/validator-api-requests/Cargo.toml b/nym-api/nym-api-requests/Cargo.toml similarity index 95% rename from validator-api/validator-api-requests/Cargo.toml rename to nym-api/nym-api-requests/Cargo.toml index ecd29e78a4..6787dcacfa 100644 --- a/validator-api/validator-api-requests/Cargo.toml +++ b/nym-api/nym-api-requests/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "validator-api-requests" +name = "nym-api-requests" version = "0.1.0" edition = "2021" diff --git a/validator-api/validator-api-requests/src/coconut.rs b/nym-api/nym-api-requests/src/coconut.rs similarity index 100% rename from validator-api/validator-api-requests/src/coconut.rs rename to nym-api/nym-api-requests/src/coconut.rs diff --git a/validator-api/validator-api-requests/src/lib.rs b/nym-api/nym-api-requests/src/lib.rs similarity index 100% rename from validator-api/validator-api-requests/src/lib.rs rename to nym-api/nym-api-requests/src/lib.rs diff --git a/validator-api/validator-api-requests/src/models.rs b/nym-api/nym-api-requests/src/models.rs similarity index 100% rename from validator-api/validator-api-requests/src/models.rs rename to nym-api/nym-api-requests/src/models.rs diff --git a/validator-api/src/coconut/client.rs b/nym-api/src/coconut/client.rs similarity index 100% rename from validator-api/src/coconut/client.rs rename to nym-api/src/coconut/client.rs diff --git a/validator-api/src/coconut/comm.rs b/nym-api/src/coconut/comm.rs similarity index 100% rename from validator-api/src/coconut/comm.rs rename to nym-api/src/coconut/comm.rs diff --git a/validator-api/src/coconut/deposit.rs b/nym-api/src/coconut/deposit.rs similarity index 99% rename from validator-api/src/coconut/deposit.rs rename to nym-api/src/coconut/deposit.rs index 2112b3d76a..dcee8cebc0 100644 --- a/validator-api/src/coconut/deposit.rs +++ b/nym-api/src/coconut/deposit.rs @@ -8,7 +8,7 @@ use coconut_bandwidth_contract_common::events::{ use credentials::coconut::bandwidth::BandwidthVoucher; use crypto::asymmetric::encryption; use crypto::asymmetric::identity::{self, Signature}; -use validator_api_requests::coconut::BlindSignRequestBody; +use nym_api_requests::coconut::BlindSignRequestBody; use validator_client::nymd::TxResponse; use super::error::{CoconutError, Result}; diff --git a/validator-api/src/coconut/dkg/client.rs b/nym-api/src/coconut/dkg/client.rs similarity index 100% rename from validator-api/src/coconut/dkg/client.rs rename to nym-api/src/coconut/dkg/client.rs diff --git a/validator-api/src/coconut/dkg/complaints.rs b/nym-api/src/coconut/dkg/complaints.rs similarity index 100% rename from validator-api/src/coconut/dkg/complaints.rs rename to nym-api/src/coconut/dkg/complaints.rs diff --git a/validator-api/src/coconut/dkg/controller.rs b/nym-api/src/coconut/dkg/controller.rs similarity index 100% rename from validator-api/src/coconut/dkg/controller.rs rename to nym-api/src/coconut/dkg/controller.rs diff --git a/validator-api/src/coconut/dkg/dealing.rs b/nym-api/src/coconut/dkg/dealing.rs similarity index 100% rename from validator-api/src/coconut/dkg/dealing.rs rename to nym-api/src/coconut/dkg/dealing.rs diff --git a/validator-api/src/coconut/dkg/mod.rs b/nym-api/src/coconut/dkg/mod.rs similarity index 100% rename from validator-api/src/coconut/dkg/mod.rs rename to nym-api/src/coconut/dkg/mod.rs diff --git a/validator-api/src/coconut/dkg/public_key.rs b/nym-api/src/coconut/dkg/public_key.rs similarity index 100% rename from validator-api/src/coconut/dkg/public_key.rs rename to nym-api/src/coconut/dkg/public_key.rs diff --git a/validator-api/src/coconut/dkg/state.rs b/nym-api/src/coconut/dkg/state.rs similarity index 100% rename from validator-api/src/coconut/dkg/state.rs rename to nym-api/src/coconut/dkg/state.rs diff --git a/validator-api/src/coconut/dkg/verification_key.rs b/nym-api/src/coconut/dkg/verification_key.rs similarity index 100% rename from validator-api/src/coconut/dkg/verification_key.rs rename to nym-api/src/coconut/dkg/verification_key.rs diff --git a/validator-api/src/coconut/error.rs b/nym-api/src/coconut/error.rs similarity index 96% rename from validator-api/src/coconut/error.rs rename to nym-api/src/coconut/error.rs index 00c7d9c7a0..4c3a712eb2 100644 --- a/validator-api/src/coconut/error.rs +++ b/nym-api/src/coconut/error.rs @@ -14,7 +14,7 @@ use crypto::asymmetric::{ use dkg::error::DkgError; use validator_client::nymd::error::NymdError; -use crate::node_status_api::models::ValidatorApiStorageError; +use crate::node_status_api::models::NymApiStorageError; pub type Result = std::result::Result; @@ -77,7 +77,7 @@ pub enum CoconutError { CoconutInterfaceError(#[from] coconut_interface::error::CoconutInterfaceError), #[error("Storage error - {0}")] - StorageError(#[from] ValidatorApiStorageError), + StorageError(#[from] NymApiStorageError), #[error("Credentials error - {0}")] CredentialsError(#[from] credentials::error::Error), diff --git a/validator-api/src/coconut/keypair.rs b/nym-api/src/coconut/keypair.rs similarity index 100% rename from validator-api/src/coconut/keypair.rs rename to nym-api/src/coconut/keypair.rs diff --git a/validator-api/src/coconut/mod.rs b/nym-api/src/coconut/mod.rs similarity index 91% rename from validator-api/src/coconut/mod.rs rename to nym-api/src/coconut/mod.rs index 25bcb4afa0..ba3afa12b6 100644 --- a/validator-api/src/coconut/mod.rs +++ b/nym-api/src/coconut/mod.rs @@ -13,7 +13,7 @@ pub(crate) mod tests; use crate::coconut::client::Client as LocalClient; use crate::coconut::deposit::extract_encryption_key; use crate::coconut::error::{CoconutError, Result}; -use crate::ValidatorApiStorage; +use crate::NymApiStorage; use coconut_bandwidth_contract_common::spend_credential::{ funds_from_cosmos_msgs, SpendCredentialStatus, @@ -22,19 +22,19 @@ use coconut_interface::KeyPair as CoconutKeyPair; use coconut_interface::{ Attribute, BlindSignRequest, BlindedSignature, Parameters, VerificationKey, }; -use config::defaults::VALIDATOR_API_VERSION; +use config::defaults::NYM_API_VERSION; use credentials::coconut::params::{ - ValidatorApiCredentialEncryptionAlgorithm, ValidatorApiCredentialHkdfAlgorithm, + NymApiCredentialEncryptionAlgorithm, NymApiCredentialHkdfAlgorithm, }; use crypto::asymmetric::encryption; use crypto::shared_key::new_ephemeral_shared_key; use crypto::symmetric::stream_cipher; use keypair::KeyPair; -use validator_api_requests::coconut::{ +use nym_api_requests::coconut::{ BlindSignRequestBody, BlindedSignatureResponse, VerifyCredentialBody, VerifyCredentialResponse, }; +use validator_client::nym_api::routes::{BANDWIDTH, COCONUT_ROUTES}; use validator_client::nymd::{Coin, Fee}; -use validator_client::validator_api::routes::{BANDWIDTH, COCONUT_ROUTES}; use getset::{CopyGetters, Getters}; use rand_07::rngs::OsRng; @@ -51,7 +51,7 @@ pub struct State { mix_denom: String, key_pair: KeyPair, comm_channel: Arc, - storage: ValidatorApiStorage, + storage: NymApiStorage, rng: Arc>, } @@ -61,7 +61,7 @@ impl State { mix_denom: String, key_pair: KeyPair, comm_channel: D, - storage: ValidatorApiStorage, + storage: NymApiStorage, ) -> Self where C: LocalClient + Send + Sync + 'static, @@ -100,16 +100,16 @@ impl State { let (keypair, shared_key) = { let mut rng = *self.rng.lock().await; new_ephemeral_shared_key::< - ValidatorApiCredentialEncryptionAlgorithm, - ValidatorApiCredentialHkdfAlgorithm, + NymApiCredentialEncryptionAlgorithm, + NymApiCredentialHkdfAlgorithm, _, >(&mut rng, remote_key) }; let chunk_data = signature.to_bytes(); - let zero_iv = stream_cipher::zero_iv::(); - let encrypted_data = stream_cipher::encrypt::( + let zero_iv = stream_cipher::zero_iv::(); + let encrypted_data = stream_cipher::encrypt::( &shared_key, &zero_iv, &chunk_data, @@ -169,7 +169,7 @@ impl InternalSignRequest { mix_denom: String, key_pair: KeyPair, comm_channel: D, - storage: ValidatorApiStorage, + storage: NymApiStorage, ) -> AdHoc where C: LocalClient + Send + Sync + 'static, @@ -179,10 +179,7 @@ impl InternalSignRequest { AdHoc::on_ignite("Internal Sign Request Stage", |rocket| async { rocket.manage(state).mount( // this format! is so ugly... - format!( - "/{}/{}/{}", - VALIDATOR_API_VERSION, COCONUT_ROUTES, BANDWIDTH - ), + format!("/{}/{}/{}", NYM_API_VERSION, COCONUT_ROUTES, BANDWIDTH), routes![ post_blind_sign, post_partial_bandwidth_credential, diff --git a/validator-api/src/coconut/tests.rs b/nym-api/src/coconut/tests.rs similarity index 97% rename from validator-api/src/coconut/tests.rs rename to nym-api/src/coconut/tests.rs index 2a687eef24..3d9d6c46a7 100644 --- a/validator-api/src/coconut/tests.rs +++ b/nym-api/src/coconut/tests.rs @@ -15,26 +15,26 @@ use config::defaults::VOUCHER_INFO; use cosmwasm_std::{to_binary, Addr, CosmosMsg, Decimal, WasmMsg}; use credentials::coconut::bandwidth::BandwidthVoucher; use credentials::coconut::params::{ - ValidatorApiCredentialEncryptionAlgorithm, ValidatorApiCredentialHkdfAlgorithm, + NymApiCredentialEncryptionAlgorithm, NymApiCredentialHkdfAlgorithm, }; use crypto::shared_key::recompute_shared_key; use crypto::symmetric::stream_cipher; +use nym_api_requests::coconut::{ + BlindSignRequestBody, BlindedSignatureResponse, VerifyCredentialBody, VerifyCredentialResponse, +}; use nymcoconut::tests::helpers::theta_from_keys_and_attributes; use nymcoconut::{ prepare_blind_sign, ttp_keygen, Base58, BlindSignRequest, BlindedSignature, Parameters, }; -use validator_api_requests::coconut::{ - BlindSignRequestBody, BlindedSignatureResponse, VerifyCredentialBody, VerifyCredentialResponse, -}; -use validator_client::nymd::Coin; -use validator_client::nymd::{tx::Hash, AccountId, DeliverTx, Event, Fee, Tag, TxResponse}; -use validator_client::validator_api::routes::{ +use validator_client::nym_api::routes::{ API_VERSION, BANDWIDTH, COCONUT_BLIND_SIGN, COCONUT_PARTIAL_BANDWIDTH_CREDENTIAL, COCONUT_ROUTES, COCONUT_VERIFY_BANDWIDTH_CREDENTIAL, }; +use validator_client::nymd::Coin; +use validator_client::nymd::{tx::Hash, AccountId, DeliverTx, Event, Fee, Tag, TxResponse}; use crate::coconut::State; -use crate::ValidatorApiStorage; +use crate::NymApiStorage; use async_trait::async_trait; use coconut_dkg_common::dealer::{ ContractDealing, DealerDetails, DealerDetailsResponse, DealerType, @@ -456,7 +456,7 @@ async fn signed_before() { let key_pair = ttp_keygen(¶ms, 1, 1).unwrap().remove(0); let mut db_dir = std::env::temp_dir(); db_dir.push(&key_pair.verification_key().to_bs58()[..8]); - let storage = ValidatorApiStorage::init(db_dir).await.unwrap(); + let storage = NymApiStorage::init(db_dir).await.unwrap(); let tx_db = Arc::new(RwLock::new(HashMap::new())); tx_db .write() @@ -532,7 +532,7 @@ async fn state_functions() { let key_pair = ttp_keygen(¶ms, 1, 1).unwrap().remove(0); let mut db_dir = std::env::temp_dir(); db_dir.push(&key_pair.verification_key().to_bs58()[..8]); - let storage = ValidatorApiStorage::init(db_dir).await.unwrap(); + let storage = NymApiStorage::init(db_dir).await.unwrap(); let comm_channel = DummyCommunicationChannel::new(key_pair.verification_key()); let staged_key_pair = crate::coconut::KeyPair::new(); staged_key_pair.set(key_pair).await; @@ -601,11 +601,11 @@ async fn state_functions() { crypto::asymmetric::encryption::PublicKey::from_bytes(&response.remote_key).unwrap(); let encryption_key = recompute_shared_key::< - ValidatorApiCredentialEncryptionAlgorithm, - ValidatorApiCredentialHkdfAlgorithm, + NymApiCredentialEncryptionAlgorithm, + NymApiCredentialHkdfAlgorithm, >(&remote_key, encryption_keypair.private_key()); - let zero_iv = stream_cipher::zero_iv::(); - let blinded_signature_bytes = stream_cipher::decrypt::( + let zero_iv = stream_cipher::zero_iv::(); + let blinded_signature_bytes = stream_cipher::decrypt::( &encryption_key, &zero_iv, &response.encrypted_signature, @@ -665,7 +665,7 @@ async fn blind_sign_correct() { let key_pair = ttp_keygen(¶ms, 1, 1).unwrap().remove(0); let mut db_dir = std::env::temp_dir(); db_dir.push(&key_pair.verification_key().to_bs58()[..8]); - let storage = ValidatorApiStorage::init(db_dir).await.unwrap(); + let storage = NymApiStorage::init(db_dir).await.unwrap(); let tx_db = Arc::new(RwLock::new(HashMap::new())); let mut tx_entry = tx_entry_fixture(&tx_hash.to_string()); @@ -776,7 +776,7 @@ async fn signature_test() { let key_pair = ttp_keygen(¶ms, 1, 1).unwrap().remove(0); let mut db_dir = std::env::temp_dir(); db_dir.push(&key_pair.verification_key().to_bs58()[..8]); - let storage = ValidatorApiStorage::init(db_dir).await.unwrap(); + let storage = NymApiStorage::init(db_dir).await.unwrap(); let nymd_client = DummyClient::new(AccountId::from_str(TEST_REWARDING_VALIDATOR_ADDRESS).unwrap()); let comm_channel = DummyCommunicationChannel::new(key_pair.verification_key()); @@ -865,7 +865,7 @@ async fn verification_of_bandwidth_credential() { theta_from_keys_and_attributes(¶ms, &key_pairs, &indices, &public_attributes).unwrap(); let key_pair = key_pairs.remove(0); db_dir.push(&key_pair.verification_key().to_bs58()[..8]); - let storage1 = ValidatorApiStorage::init(db_dir).await.unwrap(); + let storage1 = NymApiStorage::init(db_dir).await.unwrap(); let comm_channel = DummyCommunicationChannel::new(key_pair.verification_key()); let staged_key_pair = crate::coconut::KeyPair::new(); staged_key_pair.set(key_pair).await; diff --git a/validator-api/src/config/mod.rs b/nym-api/src/config/mod.rs similarity index 98% rename from validator-api/src/config/mod.rs rename to nym-api/src/config/mod.rs index d38acfb546..2e30bf34dd 100644 --- a/validator-api/src/config/mod.rs +++ b/nym-api/src/config/mod.rs @@ -3,7 +3,7 @@ use crate::config::template::config_template; use config::defaults::mainnet::MIXNET_CONTRACT_ADDRESS; -use config::defaults::DEFAULT_VALIDATOR_API_PORT; +use config::defaults::DEFAULT_NYM_API_PORT; use config::NymConfig; use serde::{Deserialize, Serialize}; use std::path::PathBuf; @@ -67,11 +67,11 @@ impl NymConfig for Config { dirs::home_dir() .expect("Failed to evaluate $HOME value") .join(".nym") - .join("validator-api") + .join("nym-api") } fn try_default_root_directory() -> Option { - dirs::home_dir().map(|path| path.join(".nym").join("validator-api")) + dirs::home_dir().map(|path| path.join(".nym").join("nym-api")) } fn root_directory(&self) -> PathBuf { @@ -90,7 +90,7 @@ impl NymConfig for Config { #[derive(Debug, Deserialize, PartialEq, Eq, Serialize)] #[serde(default)] pub struct Base { - /// ID specifies the human readable ID of this particular validator-api. + /// ID specifies the human readable ID of this particular nym-api. id: String, local_validator: Url, @@ -114,7 +114,7 @@ impl Default for Base { .expect("default local validator is malformed!"); let mut default_announce_address = default_validator.clone(); default_announce_address - .set_port(Some(DEFAULT_VALIDATOR_API_PORT)) + .set_port(Some(DEFAULT_NYM_API_PORT)) .expect("default local validator is malformed!"); Base { id: String::default(), diff --git a/validator-api/src/config/template.rs b/nym-api/src/config/template.rs similarity index 97% rename from validator-api/src/config/template.rs rename to nym-api/src/config/template.rs index c2a3670e28..79773f56b7 100644 --- a/validator-api/src/config/template.rs +++ b/nym-api/src/config/template.rs @@ -6,11 +6,11 @@ pub(crate) fn config_template() -> &'static str { # This is a TOML config file. # For more information, see https://github.com/toml-lang/toml -##### main base validator-api config options ##### +##### main base nym-api config options ##### [base] -# ID specifies the human readable ID of this particular validator-api. +# ID specifies the human readable ID of this particular nym-api. id = '{{ base.id }}' # Validator server to which the API will be getting information about the network. diff --git a/validator-api/src/contract_cache/mod.rs b/nym-api/src/contract_cache/mod.rs similarity index 99% rename from validator-api/src/contract_cache/mod.rs rename to nym-api/src/contract_cache/mod.rs index b4619214b8..61a7150a02 100644 --- a/validator-api/src/contract_cache/mod.rs +++ b/nym-api/src/contract_cache/mod.rs @@ -9,6 +9,7 @@ use mixnet_contract_common::{ mixnode::MixNodeDetails, reward_params::RewardingParams, GatewayBond, IdentityKey, Interval, MixId, MixNodeBond, RewardedSetNodeStatus, }; +use nym_api_requests::models::MixnodeStatus; use okapi::openapi3::OpenApi; use rocket::fairing::AdHoc; use rocket::Route; @@ -23,7 +24,6 @@ use std::time::Duration; use task::ShutdownListener; use tokio::sync::{watch, RwLock}; use tokio::time; -use validator_api_requests::models::MixnodeStatus; use validator_client::nymd::CosmWasmClient; pub(crate) mod routes; diff --git a/validator-api/src/contract_cache/routes.rs b/nym-api/src/contract_cache/routes.rs similarity index 98% rename from validator-api/src/contract_cache/routes.rs rename to nym-api/src/contract_cache/routes.rs index 6aba1ba4f9..2d6b71e606 100644 --- a/validator-api/src/contract_cache/routes.rs +++ b/nym-api/src/contract_cache/routes.rs @@ -11,7 +11,7 @@ use crate::{ use mixnet_contract_common::{ mixnode::MixNodeDetails, reward_params::RewardingParams, GatewayBond, Interval, MixId, }; -use validator_api_requests::models::MixNodeBondAnnotated; +use nym_api_requests::models::MixNodeBondAnnotated; use rocket::{serde::json::Json, State}; use rocket_okapi::openapi; diff --git a/validator-api/src/epoch_operations/error.rs b/nym-api/src/epoch_operations/error.rs similarity index 85% rename from validator-api/src/epoch_operations/error.rs rename to nym-api/src/epoch_operations/error.rs index bb94df5f49..4455dfcfcc 100644 --- a/validator-api/src/epoch_operations/error.rs +++ b/nym-api/src/epoch_operations/error.rs @@ -1,7 +1,7 @@ // Copyright 2021 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 -use crate::node_status_api::models::ValidatorApiStorageError; +use crate::node_status_api::models::NymApiStorageError; use thiserror::Error; use validator_client::nymd::error::NymdError; use validator_client::ValidatorClientError; @@ -15,7 +15,7 @@ pub enum RewardingError { // The inner error should be modified at some point... #[error("We run into storage issues - {0}")] - StorageError(ValidatorApiStorageError), + StorageError(NymApiStorageError), #[error("Failed to query the smart contract - {0}")] ValidatorClientError(ValidatorClientError), @@ -38,8 +38,8 @@ impl From for RewardingError { } } -impl From for RewardingError { - fn from(err: ValidatorApiStorageError) -> Self { +impl From for RewardingError { + fn from(err: NymApiStorageError) -> Self { RewardingError::StorageError(err) } } diff --git a/validator-api/src/epoch_operations/helpers.rs b/nym-api/src/epoch_operations/helpers.rs similarity index 100% rename from validator-api/src/epoch_operations/helpers.rs rename to nym-api/src/epoch_operations/helpers.rs diff --git a/validator-api/src/epoch_operations/mod.rs b/nym-api/src/epoch_operations/mod.rs similarity index 99% rename from validator-api/src/epoch_operations/mod.rs rename to nym-api/src/epoch_operations/mod.rs index ec7bfbfaf4..cf0233e453 100644 --- a/validator-api/src/epoch_operations/mod.rs +++ b/nym-api/src/epoch_operations/mod.rs @@ -15,7 +15,7 @@ use crate::contract_cache::ValidatorCache; use crate::nymd_client::Client; use crate::storage::models::RewardingReport; -use crate::storage::ValidatorApiStorage; +use crate::storage::NymApiStorage; use mixnet_contract_common::families::FamilyHead; use mixnet_contract_common::{ reward_params::Performance, CurrentIntervalResponse, ExecuteMsg, Interval, MixId, @@ -56,7 +56,7 @@ impl From for ExecuteMsg { pub struct RewardedSetUpdater { nymd_client: Client, validator_cache: ValidatorCache, - storage: ValidatorApiStorage, + storage: NymApiStorage, } // Weight of a layer being chose is reciprocal to current count in layer @@ -79,7 +79,7 @@ impl RewardedSetUpdater { pub(crate) async fn new( nymd_client: Client, validator_cache: ValidatorCache, - storage: ValidatorApiStorage, + storage: NymApiStorage, ) -> Result { Ok(RewardedSetUpdater { nymd_client, diff --git a/validator-api/src/main.rs b/nym-api/src/main.rs similarity index 93% rename from validator-api/src/main.rs rename to nym-api/src/main.rs index e3411b1b7f..a47068f5fc 100644 --- a/validator-api/src/main.rs +++ b/nym-api/src/main.rs @@ -9,7 +9,7 @@ use crate::contract_cache::ValidatorCacheRefresher; use crate::network_monitor::NetworkMonitorBuilder; use crate::node_status_api::uptime_updater::HistoricalUptimeUpdater; use crate::nymd_client::Client; -use crate::storage::ValidatorApiStorage; +use crate::storage::NymApiStorage; use ::config::defaults::mainnet::read_var_if_not_default; use ::config::defaults::setup_env; use ::config::defaults::var_names::{CONFIGURED, MIXNET_CONTRACT_ADDRESS, MIX_DENOM}; @@ -113,20 +113,20 @@ fn long_version() -> String { fn parse_args() -> ArgMatches { let build_details = long_version(); - let base_app = App::new("Nym Validator API") + let base_app = App::new("Nym API") .version(crate_version!()) .long_version(&*build_details) .author("Nymtech") .arg( Arg::with_name(CONFIG_ENV_FILE) - .help("Path pointing to an env file that configures the validator API") + .help("Path pointing to an env file that configures the Nym API") .long(CONFIG_ENV_FILE) .short('c') .takes_value(true) ) .arg( Arg::with_name(ID) - .help("Id of the validator-api we want to run") + .help("Id of the nym-api we want to run") .long(ID) .takes_value(true) ) @@ -145,13 +145,13 @@ fn parse_args() -> ArgMatches { ) .arg( Arg::with_name(NYMD_VALIDATOR_ARG) - .help("Endpoint to nymd part of the validator from which the monitor will grab nodes to test") + .help("Endpoint to nymd instance from which the monitor will grab nodes to test") .long(NYMD_VALIDATOR_ARG) .takes_value(true) ) .arg(Arg::with_name(MIXNET_CONTRACT_ARG) .long(MIXNET_CONTRACT_ARG) - .help("Address of the validator contract managing the network") + .help("Address of the mixnet contract managing the network") .takes_value(true), ) .arg(Arg::with_name(MNEMONIC_ARG) @@ -174,19 +174,19 @@ fn parse_args() -> ArgMatches { .arg( Arg::with_name(MIN_MIXNODE_RELIABILITY_ARG) .long(MIN_MIXNODE_RELIABILITY_ARG) - .help("Mixnodes with relialability lower the this get blacklisted by network monitor, get no traffic and cannot be selected into a rewarded set.") + .help("Mixnodes with reliability lower the this get blacklisted by network monitor, get no traffic and cannot be selected into a rewarded set.") .takes_value(true) ) .arg( Arg::with_name(MIN_GATEWAY_RELIABILITY_ARG) .long(MIN_GATEWAY_RELIABILITY_ARG) - .help("Gateways with relialability lower the this get blacklisted by network monitor, get no traffic and cannot be selected into a rewarded set.") + .help("Gateways with reliability lower the this get blacklisted by network monitor, get no traffic and cannot be selected into a rewarded set.") .takes_value(true) ) .arg( Arg::with_name(ENABLED_CREDENTIALS_MODE_ARG_NAME) .long(ENABLED_CREDENTIALS_MODE_ARG_NAME) - .help("Set this validator api to work in a enabled credentials that would attempt to use gateway with the bandwidth credential requirement") + .help("Set this nym api to work in a enabled credentials that would attempt to use gateway with the bandwidth credential requirement") ); #[cfg(feature = "coconut")] @@ -215,7 +215,7 @@ async fn wait_for_interrupt(mut shutdown: ShutdownNotifier) { log::info!("Waiting for tasks to finish... (Press ctrl-c to force)"); shutdown.wait_for_shutdown().await; - log::info!("Stopping nym validator API"); + log::info!("Stopping nym API"); } #[cfg(unix)] @@ -380,7 +380,7 @@ fn setup_network_monitor<'a>( } // get instances of managed states - let node_status_storage = rocket.state::().unwrap().clone(); + let node_status_storage = rocket.state::().unwrap().clone(); let validator_cache = rocket.state::().unwrap().clone(); Some(NetworkMonitorBuilder::new( @@ -433,7 +433,7 @@ async fn setup_rocket( // This is not a very nice approach. A lazy value would be more suitable, but that's still // a nightly feature: https://github.com/rust-lang/rust/issues/74465 let storage = if cfg!(feature = "coconut") || config.get_network_monitor_enabled() { - Some(ValidatorApiStorage::init(config.get_node_status_api_database_path()).await?) + Some(NymApiStorage::init(config.get_node_status_api_database_path()).await?) } else { None }; @@ -453,7 +453,7 @@ async fn setup_rocket( // see if we should start up network monitor let rocket = if config.get_network_monitor_enabled() { - rocket.attach(storage::ValidatorApiStorage::stage(storage.unwrap())) + rocket.attach(storage::NymApiStorage::stage(storage.unwrap())) } else { rocket }; @@ -490,7 +490,7 @@ fn get_servers() -> Vec { }] } -async fn run_validator_api(matches: ArgMatches) -> Result<()> { +async fn run_nym_api(matches: ArgMatches) -> Result<()> { let system_version = env!("CARGO_PKG_VERSION"); // try to load config from the file, if it doesn't exist, use default values @@ -565,7 +565,7 @@ async fn run_validator_api(matches: ArgMatches) -> Result<()> { // we're not starting signing client let validator_cache_listener = if config.get_network_monitor_enabled() { // Main storage - let storage = rocket.state::().unwrap().clone(); + let storage = rocket.state::().unwrap().clone(); // setup our daily uptime updater. Note that if network monitor is disabled, then we have // no data for the updates and hence we don't need to start it up @@ -610,8 +610,8 @@ async fn run_validator_api(matches: ArgMatches) -> Result<()> { // Spawn the node status cache refresher. // It is primarily refreshed in-sync with the validator cache, however provide a fallback // caching interval that is twice the validator cache - let storage = rocket.state::().cloned(); - let mut validator_api_cache_refresher = node_status_api::NodeStatusCacheRefresher::new( + let storage = rocket.state::().cloned(); + let mut nym_api_cache_refresher = node_status_api::NodeStatusCacheRefresher::new( node_status_cache, config.get_caching_interval().saturating_mul(2), validator_cache, @@ -619,12 +619,12 @@ async fn run_validator_api(matches: ArgMatches) -> Result<()> { storage, ); let shutdown_listener = shutdown.subscribe(); - tokio::spawn(async move { validator_api_cache_refresher.run(shutdown_listener).await }); + tokio::spawn(async move { nym_api_cache_refresher.run(shutdown_listener).await }); // launch the rocket! // Rocket handles shutdown on it's own, but its shutdown handling should be incorporated // with that of the rest of the tasks. - // Currently it's runtime is forcefully terminated once the validator-api exits. + // Currently it's runtime is forcefully terminated once the nym-api exits. let shutdown_handle = rocket.shutdown(); tokio::spawn(rocket.launch()); @@ -663,5 +663,5 @@ async fn main() -> Result<()> { .value_of(CONFIG_ENV_FILE) .map(|s| PathBuf::from_str(s).expect("invalid env config file")); setup_env(config_env_file); - run_validator_api(args).await + run_nym_api(args).await } diff --git a/validator-api/src/network_monitor/chunker.rs b/nym-api/src/network_monitor/chunker.rs similarity index 100% rename from validator-api/src/network_monitor/chunker.rs rename to nym-api/src/network_monitor/chunker.rs diff --git a/validator-api/src/network_monitor/gateways_reader.rs b/nym-api/src/network_monitor/gateways_reader.rs similarity index 100% rename from validator-api/src/network_monitor/gateways_reader.rs rename to nym-api/src/network_monitor/gateways_reader.rs diff --git a/validator-api/src/network_monitor/mod.rs b/nym-api/src/network_monitor/mod.rs similarity index 98% rename from validator-api/src/network_monitor/mod.rs rename to nym-api/src/network_monitor/mod.rs index 8b85d5fd5a..0048e2be02 100644 --- a/validator-api/src/network_monitor/mod.rs +++ b/nym-api/src/network_monitor/mod.rs @@ -22,7 +22,7 @@ use crate::network_monitor::monitor::sender::PacketSender; use crate::network_monitor::monitor::summary_producer::SummaryProducer; use crate::network_monitor::monitor::Monitor; use crate::nymd_client::Client; -use crate::storage::ValidatorApiStorage; +use crate::storage::NymApiStorage; pub(crate) mod chunker; pub(crate) mod gateways_reader; @@ -36,7 +36,7 @@ pub(crate) struct NetworkMonitorBuilder<'a> { config: &'a Config, _nymd_client: Client, system_version: String, - node_status_storage: ValidatorApiStorage, + node_status_storage: NymApiStorage, validator_cache: ValidatorCache, } @@ -45,7 +45,7 @@ impl<'a> NetworkMonitorBuilder<'a> { config: &'a Config, _nymd_client: Client, system_version: &str, - node_status_storage: ValidatorApiStorage, + node_status_storage: NymApiStorage, validator_cache: ValidatorCache, ) -> Self { NetworkMonitorBuilder { diff --git a/validator-api/src/network_monitor/monitor/gateway_clients_cache.rs b/nym-api/src/network_monitor/monitor/gateway_clients_cache.rs similarity index 100% rename from validator-api/src/network_monitor/monitor/gateway_clients_cache.rs rename to nym-api/src/network_monitor/monitor/gateway_clients_cache.rs diff --git a/validator-api/src/network_monitor/monitor/gateways_pinger.rs b/nym-api/src/network_monitor/monitor/gateways_pinger.rs similarity index 100% rename from validator-api/src/network_monitor/monitor/gateways_pinger.rs rename to nym-api/src/network_monitor/monitor/gateways_pinger.rs diff --git a/validator-api/src/network_monitor/monitor/mod.rs b/nym-api/src/network_monitor/monitor/mod.rs similarity index 98% rename from validator-api/src/network_monitor/monitor/mod.rs rename to nym-api/src/network_monitor/monitor/mod.rs index e2d1a07128..c333c5e883 100644 --- a/validator-api/src/network_monitor/monitor/mod.rs +++ b/nym-api/src/network_monitor/monitor/mod.rs @@ -8,7 +8,7 @@ use crate::network_monitor::monitor::sender::PacketSender; use crate::network_monitor::monitor::summary_producer::{SummaryProducer, TestSummary}; use crate::network_monitor::test_packet::TestPacket; use crate::network_monitor::test_route::TestRoute; -use crate::storage::ValidatorApiStorage; +use crate::storage::NymApiStorage; use log::{debug, error, info}; use std::collections::{HashMap, HashSet}; use std::process; @@ -29,7 +29,7 @@ pub(super) struct Monitor { packet_sender: PacketSender, received_processor: ReceivedProcessor, summary_producer: SummaryProducer, - node_status_storage: ValidatorApiStorage, + node_status_storage: NymApiStorage, run_interval: Duration, gateway_ping_interval: Duration, packet_delivery_timeout: Duration, @@ -52,7 +52,7 @@ impl Monitor { packet_sender: PacketSender, received_processor: ReceivedProcessor, summary_producer: SummaryProducer, - node_status_storage: ValidatorApiStorage, + node_status_storage: NymApiStorage, ) -> Self { Monitor { test_nonce: 1, diff --git a/validator-api/src/network_monitor/monitor/preparer.rs b/nym-api/src/network_monitor/monitor/preparer.rs similarity index 100% rename from validator-api/src/network_monitor/monitor/preparer.rs rename to nym-api/src/network_monitor/monitor/preparer.rs diff --git a/validator-api/src/network_monitor/monitor/processor.rs b/nym-api/src/network_monitor/monitor/processor.rs similarity index 100% rename from validator-api/src/network_monitor/monitor/processor.rs rename to nym-api/src/network_monitor/monitor/processor.rs diff --git a/validator-api/src/network_monitor/monitor/receiver.rs b/nym-api/src/network_monitor/monitor/receiver.rs similarity index 100% rename from validator-api/src/network_monitor/monitor/receiver.rs rename to nym-api/src/network_monitor/monitor/receiver.rs diff --git a/validator-api/src/network_monitor/monitor/sender.rs b/nym-api/src/network_monitor/monitor/sender.rs similarity index 100% rename from validator-api/src/network_monitor/monitor/sender.rs rename to nym-api/src/network_monitor/monitor/sender.rs diff --git a/validator-api/src/network_monitor/monitor/summary_producer.rs b/nym-api/src/network_monitor/monitor/summary_producer.rs similarity index 100% rename from validator-api/src/network_monitor/monitor/summary_producer.rs rename to nym-api/src/network_monitor/monitor/summary_producer.rs diff --git a/validator-api/src/network_monitor/test_packet.rs b/nym-api/src/network_monitor/test_packet.rs similarity index 100% rename from validator-api/src/network_monitor/test_packet.rs rename to nym-api/src/network_monitor/test_packet.rs diff --git a/validator-api/src/network_monitor/test_route/mod.rs b/nym-api/src/network_monitor/test_route/mod.rs similarity index 100% rename from validator-api/src/network_monitor/test_route/mod.rs rename to nym-api/src/network_monitor/test_route/mod.rs diff --git a/validator-api/src/node_status_api/cache.rs b/nym-api/src/node_status_api/cache.rs similarity index 98% rename from validator-api/src/node_status_api/cache.rs rename to nym-api/src/node_status_api/cache.rs index 289a75a3f5..f485716e8e 100644 --- a/validator-api/src/node_status_api/cache.rs +++ b/nym-api/src/node_status_api/cache.rs @@ -2,12 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 use crate::contract_cache::{Cache, CacheNotification, ValidatorCache}; -use crate::storage::ValidatorApiStorage; +use crate::storage::NymApiStorage; use mixnet_contract_common::families::FamilyHead; use mixnet_contract_common::reward_params::Performance; use mixnet_contract_common::{ IdentityKey, Interval, MixId, MixNodeDetails, RewardedSetNodeStatus, RewardingParams, }; +use nym_api_requests::models::{MixNodeBondAnnotated, MixnodeStatus}; use rocket::fairing::AdHoc; use std::collections::HashMap; use std::{sync::Arc, time::Duration}; @@ -17,7 +18,6 @@ use tokio::{ sync::{watch, RwLock}, time, }; -use validator_api_requests::models::{MixNodeBondAnnotated, MixnodeStatus}; use self::inclusion_probabilities::InclusionProbabilities; @@ -154,7 +154,7 @@ pub struct NodeStatusCacheRefresher { // Sources for when refreshing data contract_cache: ValidatorCache, contract_cache_listener: watch::Receiver, - storage: Option, + storage: Option, } impl NodeStatusCacheRefresher { @@ -163,7 +163,7 @@ impl NodeStatusCacheRefresher { fallback_caching_interval: Duration, contract_cache: ValidatorCache, contract_cache_listener: watch::Receiver, - storage: Option, + storage: Option, ) -> Self { Self { cache, @@ -320,7 +320,7 @@ impl NodeStatusCacheRefresher { .rewarding_details .uncapped_bond_saturation(&interval_reward_params); - // If the performance can't be obtained, because the validator-api was not started with + // If the performance can't be obtained, because the nym-api was not started with // the monitoring (and hence, storage), then reward estimates will be all zero let performance = self .get_performance_from_storage(mixnode.mix_id(), current_interval) diff --git a/validator-api/src/node_status_api/cache/inclusion_probabilities.rs b/nym-api/src/node_status_api/cache/inclusion_probabilities.rs similarity index 98% rename from validator-api/src/node_status_api/cache/inclusion_probabilities.rs rename to nym-api/src/node_status_api/cache/inclusion_probabilities.rs index 21c1bdcab5..80643dae27 100644 --- a/validator-api/src/node_status_api/cache/inclusion_probabilities.rs +++ b/nym-api/src/node_status_api/cache/inclusion_probabilities.rs @@ -1,9 +1,9 @@ use contracts_common::truncate_decimal; use mixnet_contract_common::{MixId, MixNodeDetails, RewardingParams}; +use nym_api_requests::models::InclusionProbability; use serde::Serialize; use std::time::Duration; use tap::TapFallible; -use validator_api_requests::models::InclusionProbability; const MAX_SIMULATION_SAMPLES: u64 = 5000; const MAX_SIMULATION_TIME_SEC: u64 = 15; diff --git a/validator-api/src/node_status_api/helpers.rs b/nym-api/src/node_status_api/helpers.rs similarity index 97% rename from validator-api/src/node_status_api/helpers.rs rename to nym-api/src/node_status_api/helpers.rs index 4b084533bc..a2d102ebdd 100644 --- a/validator-api/src/node_status_api/helpers.rs +++ b/nym-api/src/node_status_api/helpers.rs @@ -3,24 +3,24 @@ use crate::contract_cache::Cache; use crate::node_status_api::models::ErrorResponse; -use crate::storage::ValidatorApiStorage; +use crate::storage::NymApiStorage; use crate::{NodeStatusCache, ValidatorCache}; use cosmwasm_std::Decimal; use mixnet_contract_common::reward_params::Performance; use mixnet_contract_common::{Interval, MixId, RewardedSetNodeStatus}; -use rocket::http::Status; -use rocket::State; -use validator_api_requests::models::{ +use nym_api_requests::models::{ AllInclusionProbabilitiesResponse, ComputeRewardEstParam, InclusionProbabilityResponse, MixNodeBondAnnotated, MixnodeCoreStatusResponse, MixnodeStatusReportResponse, MixnodeStatusResponse, MixnodeUptimeHistoryResponse, RewardEstimationResponse, StakeSaturationResponse, UptimeResponse, }; +use rocket::http::Status; +use rocket::State; use super::reward_estimate::compute_reward_estimate; pub(crate) async fn _mixnode_report( - storage: &ValidatorApiStorage, + storage: &NymApiStorage, mix_id: MixId, ) -> Result { storage @@ -31,7 +31,7 @@ pub(crate) async fn _mixnode_report( } pub(crate) async fn _mixnode_uptime_history( - storage: &ValidatorApiStorage, + storage: &NymApiStorage, mix_id: MixId, ) -> Result { storage @@ -42,7 +42,7 @@ pub(crate) async fn _mixnode_uptime_history( } pub(crate) async fn _mixnode_core_status_count( - storage: &State, + storage: &State, mix_id: MixId, since: Option, ) -> Result { @@ -106,7 +106,7 @@ pub(crate) async fn _get_mixnode_reward_estimation( async fn average_mixnode_performance( mix_id: MixId, current_interval: Interval, - storage: &ValidatorApiStorage, + storage: &NymApiStorage, ) -> Result { storage .get_average_mixnode_uptime_in_the_last_24hrs( @@ -255,7 +255,7 @@ pub(crate) async fn _get_mixnode_inclusion_probability( pub(crate) async fn _get_mixnode_avg_uptime( cache: &ValidatorCache, - storage: &ValidatorApiStorage, + storage: &NymApiStorage, mix_id: MixId, ) -> Result { let current_interval = cache diff --git a/validator-api/src/node_status_api/local_guard.rs b/nym-api/src/node_status_api/local_guard.rs similarity index 100% rename from validator-api/src/node_status_api/local_guard.rs rename to nym-api/src/node_status_api/local_guard.rs diff --git a/validator-api/src/node_status_api/mod.rs b/nym-api/src/node_status_api/mod.rs similarity index 100% rename from validator-api/src/node_status_api/mod.rs rename to nym-api/src/node_status_api/mod.rs diff --git a/validator-api/src/node_status_api/models.rs b/nym-api/src/node_status_api/models.rs similarity index 99% rename from validator-api/src/node_status_api/models.rs rename to nym-api/src/node_status_api/models.rs index 329f9f7122..43a11627b3 100644 --- a/validator-api/src/node_status_api/models.rs +++ b/nym-api/src/node_status_api/models.rs @@ -5,6 +5,10 @@ use crate::node_status_api::utils::NodeUptimes; use crate::storage::models::NodeStatus; use mixnet_contract_common::reward_params::Performance; use mixnet_contract_common::{IdentityKey, MixId}; +use nym_api_requests::models::{ + GatewayStatusReportResponse, GatewayUptimeHistoryResponse, HistoricalUptimeResponse, + MixnodeStatusReportResponse, MixnodeUptimeHistoryResponse, RequestError, +}; use okapi::openapi3::{Responses, SchemaObject}; use rocket::http::Status; use rocket::response::{self, Responder, Response}; @@ -20,10 +24,6 @@ use serde::{Deserialize, Serialize}; use std::convert::TryFrom; use thiserror::Error; use time::OffsetDateTime; -use validator_api_requests::models::{ - GatewayStatusReportResponse, GatewayUptimeHistoryResponse, HistoricalUptimeResponse, - MixnodeStatusReportResponse, MixnodeUptimeHistoryResponse, RequestError, -}; #[derive(Error, Debug)] #[error("Received uptime value was within 0-100 range (got {received})")] @@ -373,7 +373,7 @@ impl OpenApiResponderInner for ErrorResponse { } #[derive(Debug, thiserror::Error)] -pub enum ValidatorApiStorageError { +pub enum NymApiStorageError { #[error("could not find status report associated with mixnode {mix_id}")] MixnodeReportNotFound { mix_id: MixId }, diff --git a/validator-api/src/node_status_api/reward_estimate.rs b/nym-api/src/node_status_api/reward_estimate.rs similarity index 100% rename from validator-api/src/node_status_api/reward_estimate.rs rename to nym-api/src/node_status_api/reward_estimate.rs diff --git a/validator-api/src/node_status_api/routes.rs b/nym-api/src/node_status_api/routes.rs similarity index 94% rename from validator-api/src/node_status_api/routes.rs rename to nym-api/src/node_status_api/routes.rs index 037ca7b117..70bb3db91e 100644 --- a/validator-api/src/node_status_api/routes.rs +++ b/nym-api/src/node_status_api/routes.rs @@ -10,25 +10,25 @@ use crate::node_status_api::helpers::{ _mixnode_report, _mixnode_uptime_history, }; use crate::node_status_api::models::ErrorResponse; -use crate::storage::ValidatorApiStorage; +use crate::storage::NymApiStorage; use crate::ValidatorCache; use mixnet_contract_common::MixId; -use rocket::http::Status; -use rocket::serde::json::Json; -use rocket::State; -use rocket_okapi::openapi; -use validator_api_requests::models::{ +use nym_api_requests::models::{ AllInclusionProbabilitiesResponse, ComputeRewardEstParam, GatewayCoreStatusResponse, GatewayStatusReportResponse, GatewayUptimeHistoryResponse, InclusionProbabilityResponse, MixNodeBondAnnotated, MixnodeCoreStatusResponse, MixnodeStatusReportResponse, MixnodeStatusResponse, MixnodeUptimeHistoryResponse, RewardEstimationResponse, StakeSaturationResponse, UptimeResponse, }; +use rocket::http::Status; +use rocket::serde::json::Json; +use rocket::State; +use rocket_okapi::openapi; #[openapi(tag = "status")] #[get("/gateway//report")] pub(crate) async fn gateway_report( - storage: &State, + storage: &State, identity: &str, ) -> Result, ErrorResponse> { storage @@ -42,7 +42,7 @@ pub(crate) async fn gateway_report( #[openapi(tag = "status")] #[get("/gateway//history")] pub(crate) async fn gateway_uptime_history( - storage: &State, + storage: &State, identity: &str, ) -> Result, ErrorResponse> { storage @@ -56,7 +56,7 @@ pub(crate) async fn gateway_uptime_history( #[openapi(tag = "status")] #[get("/gateway//core-status-count?")] pub(crate) async fn gateway_core_status_count( - storage: &State, + storage: &State, identity: &str, since: Option, ) -> Json { @@ -74,7 +74,7 @@ pub(crate) async fn gateway_core_status_count( #[openapi(tag = "status")] #[get("/mixnode//report")] pub(crate) async fn mixnode_report( - storage: &State, + storage: &State, mix_id: MixId, ) -> Result, ErrorResponse> { Ok(Json(_mixnode_report(storage, mix_id).await?)) @@ -83,7 +83,7 @@ pub(crate) async fn mixnode_report( #[openapi(tag = "status")] #[get("/mixnode//history")] pub(crate) async fn mixnode_uptime_history( - storage: &State, + storage: &State, mix_id: MixId, ) -> Result, ErrorResponse> { Ok(Json(_mixnode_uptime_history(storage, mix_id).await?)) @@ -92,7 +92,7 @@ pub(crate) async fn mixnode_uptime_history( #[openapi(tag = "status")] #[get("/mixnode//core-status-count?")] pub(crate) async fn mixnode_core_status_count( - storage: &State, + storage: &State, mix_id: MixId, since: Option, ) -> Result, ErrorResponse> { @@ -171,7 +171,7 @@ pub(crate) async fn get_mixnode_inclusion_probability( #[get("/mixnode//avg_uptime")] pub(crate) async fn get_mixnode_avg_uptime( cache: &State, - storage: &State, + storage: &State, mix_id: MixId, ) -> Result, ErrorResponse> { Ok(Json(_get_mixnode_avg_uptime(cache, storage, mix_id).await?)) diff --git a/validator-api/src/node_status_api/uptime_updater.rs b/nym-api/src/node_status_api/uptime_updater.rs similarity index 92% rename from validator-api/src/node_status_api/uptime_updater.rs rename to nym-api/src/node_status_api/uptime_updater.rs index dcb4f6424c..cc22d75741 100644 --- a/validator-api/src/node_status_api/uptime_updater.rs +++ b/nym-api/src/node_status_api/uptime_updater.rs @@ -2,10 +2,10 @@ // SPDX-License-Identifier: Apache-2.0 use crate::node_status_api::models::{ - GatewayStatusReport, MixnodeStatusReport, ValidatorApiStorageError, + GatewayStatusReport, MixnodeStatusReport, NymApiStorageError, }; use crate::node_status_api::ONE_DAY; -use crate::storage::ValidatorApiStorage; +use crate::storage::NymApiStorage; use log::error; use std::time::Duration; use task::ShutdownListener; @@ -13,11 +13,11 @@ use time::{OffsetDateTime, PrimitiveDateTime, Time}; use tokio::time::{interval, sleep}; pub(crate) struct HistoricalUptimeUpdater { - storage: ValidatorApiStorage, + storage: NymApiStorage, } impl HistoricalUptimeUpdater { - pub(crate) fn new(storage: ValidatorApiStorage) -> Self { + pub(crate) fn new(storage: NymApiStorage) -> Self { HistoricalUptimeUpdater { storage } } @@ -30,8 +30,7 @@ impl HistoricalUptimeUpdater { async fn get_active_nodes( &self, now: OffsetDateTime, - ) -> Result<(Vec, Vec), ValidatorApiStorageError> - { + ) -> Result<(Vec, Vec), NymApiStorageError> { let day_ago = (now - ONE_DAY).unix_timestamp(); let active_mixnodes = self .storage @@ -46,7 +45,7 @@ impl HistoricalUptimeUpdater { Ok((active_mixnodes, active_gateways)) } - async fn update_uptimes(&self) -> Result<(), ValidatorApiStorageError> { + async fn update_uptimes(&self) -> Result<(), NymApiStorageError> { let now = OffsetDateTime::now_utc(); let today_iso_8601 = now.date().to_string(); diff --git a/validator-api/src/node_status_api/utils.rs b/nym-api/src/node_status_api/utils.rs similarity index 100% rename from validator-api/src/node_status_api/utils.rs rename to nym-api/src/node_status_api/utils.rs diff --git a/validator-api/src/nymd_client.rs b/nym-api/src/nymd_client.rs similarity index 98% rename from validator-api/src/nymd_client.rs rename to nym-api/src/nymd_client.rs index 1f126d6fdc..d14a793fd4 100644 --- a/validator-api/src/nymd_client.rs +++ b/nym-api/src/nymd_client.rs @@ -3,7 +3,7 @@ use crate::config::Config; use crate::epoch_operations::MixnodeToReward; -use config::defaults::{NymNetworkDetails, DEFAULT_VALIDATOR_API_PORT}; +use config::defaults::{NymNetworkDetails, DEFAULT_NYM_API_PORT}; use mixnet_contract_common::families::{Family, FamilyHead}; use mixnet_contract_common::mixnode::MixNodeDetails; use mixnet_contract_common::reward_params::RewardingParams; @@ -59,7 +59,7 @@ impl Client { pub(crate) fn new_query(config: &Config) -> Self { // the api address is irrelevant here as **WE ARE THE API** // and we won't be talking on the socket here. - let api_url = format!("http://localhost:{}", DEFAULT_VALIDATOR_API_PORT) + let api_url = format!("http://localhost:{}", DEFAULT_NYM_API_PORT) .parse() .unwrap(); let nymd_url = config.get_nymd_validator_url(); @@ -82,7 +82,7 @@ impl Client { pub(crate) fn new_signing(config: &Config) -> Self { // the api address is irrelevant here as **WE ARE THE API** // and we won't be talking on the socket here. - let api_url = format!("http://localhost:{}", DEFAULT_VALIDATOR_API_PORT) + let api_url = format!("http://localhost:{}", DEFAULT_NYM_API_PORT) .parse() .unwrap(); let nymd_url = config.get_nymd_validator_url(); diff --git a/validator-api/src/storage/manager.rs b/nym-api/src/storage/manager.rs similarity index 100% rename from validator-api/src/storage/manager.rs rename to nym-api/src/storage/manager.rs diff --git a/validator-api/src/storage/mod.rs b/nym-api/src/storage/mod.rs similarity index 89% rename from validator-api/src/storage/mod.rs rename to nym-api/src/storage/mod.rs index 04186b7b57..1d513defdf 100644 --- a/validator-api/src/storage/mod.rs +++ b/nym-api/src/storage/mod.rs @@ -4,8 +4,8 @@ use crate::network_monitor::monitor::summary_producer::{GatewayResult, MixnodeResult}; use crate::network_monitor::test_route::TestRoute; use crate::node_status_api::models::{ - GatewayStatusReport, GatewayUptimeHistory, MixnodeStatusReport, MixnodeUptimeHistory, Uptime, - ValidatorApiStorageError, + GatewayStatusReport, GatewayUptimeHistory, MixnodeStatusReport, MixnodeUptimeHistory, + NymApiStorageError, Uptime, }; use crate::node_status_api::{ONE_DAY, ONE_HOUR}; use crate::storage::manager::StorageManager; @@ -23,13 +23,13 @@ pub(crate) mod models; // note that clone here is fine as upon cloning the same underlying pool will be used #[derive(Clone)] -pub(crate) struct ValidatorApiStorage { +pub(crate) struct NymApiStorage { pub manager: StorageManager, } -impl ValidatorApiStorage { - pub async fn init(database_path: PathBuf) -> Result { - // TODO: we can inject here more stuff based on our validator-api global config +impl NymApiStorage { + pub async fn init(database_path: PathBuf) -> Result { + // TODO: we can inject here more stuff based on our nym-api global config // struct. Maybe different pool size or timeout intervals? let mut opts = sqlx::sqlite::SqliteConnectOptions::new() .filename(&database_path) @@ -54,14 +54,14 @@ impl ValidatorApiStorage { info!("Database migration finished!"); - let storage = ValidatorApiStorage { + let storage = NymApiStorage { manager: StorageManager { connection_pool }, }; Ok(storage) } - pub(crate) fn stage(storage: ValidatorApiStorage) -> AdHoc { + pub(crate) fn stage(storage: NymApiStorage) -> AdHoc { AdHoc::try_on_ignite("SQLx Database", |rocket| async { Ok(rocket.manage(storage)) }) @@ -71,7 +71,7 @@ impl ValidatorApiStorage { pub(crate) async fn mix_identity_to_mix_ids( &self, identity: &str, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { Ok(self .manager .get_mixnode_mix_ids_by_identity(identity) @@ -82,7 +82,7 @@ impl ValidatorApiStorage { pub(crate) async fn mix_identity_to_latest_mix_id( &self, identity: &str, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { Ok(self .mix_identity_to_mix_ids(identity) .await? @@ -93,7 +93,7 @@ impl ValidatorApiStorage { pub(crate) async fn get_all_avg_gateway_reliability_in_last_24hr( &self, end_ts_secs: i64, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { let result = self .manager .get_all_avg_gateway_reliability_in_last_24hr(end_ts_secs) @@ -105,7 +105,7 @@ impl ValidatorApiStorage { pub(crate) async fn get_all_avg_mix_reliability_in_last_24hr( &self, end_ts_secs: i64, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { let result = self .manager .get_all_avg_mix_reliability_in_last_24hr(end_ts_secs) @@ -125,7 +125,7 @@ impl ValidatorApiStorage { &self, mix_id: MixId, since: i64, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { let statuses = self .manager .get_mixnode_statuses_since(mix_id, since) @@ -145,7 +145,7 @@ impl ValidatorApiStorage { &self, identity: &str, since: i64, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { let statuses = self .manager .get_gateway_statuses_since(identity, since) @@ -162,7 +162,7 @@ impl ValidatorApiStorage { pub(crate) async fn construct_mixnode_report( &self, mix_id: MixId, - ) -> Result { + ) -> Result { let now = OffsetDateTime::now_utc(); let day_ago = (now - ONE_DAY).unix_timestamp(); let hour_ago = (now - ONE_HOUR).unix_timestamp(); @@ -171,7 +171,7 @@ impl ValidatorApiStorage { // if we have no statuses, the node doesn't exist (or monitor is down), but either way, we can't make a report if statuses.is_empty() { - return Err(ValidatorApiStorageError::MixnodeReportNotFound { mix_id }); + return Err(NymApiStorageError::MixnodeReportNotFound { mix_id }); } // determine the number of runs the mixnode should have been online for @@ -206,7 +206,7 @@ impl ValidatorApiStorage { pub(crate) async fn construct_gateway_report( &self, identity: &str, - ) -> Result { + ) -> Result { let now = OffsetDateTime::now_utc(); let day_ago = (now - ONE_DAY).unix_timestamp(); let hour_ago = (now - ONE_HOUR).unix_timestamp(); @@ -215,7 +215,7 @@ impl ValidatorApiStorage { // if we have no statuses, the node doesn't exist (or monitor is down), but either way, we can't make a report if statuses.is_empty() { - return Err(ValidatorApiStorageError::GatewayReportNotFound { + return Err(NymApiStorageError::GatewayReportNotFound { identity: identity.to_owned(), }); } @@ -245,11 +245,11 @@ impl ValidatorApiStorage { pub(crate) async fn get_mixnode_uptime_history( &self, mix_id: MixId, - ) -> Result { + ) -> Result { let history = self.manager.get_mixnode_historical_uptimes(mix_id).await?; if history.is_empty() { - return Err(ValidatorApiStorageError::MixnodeUptimeHistoryNotFound { mix_id }); + return Err(NymApiStorageError::MixnodeUptimeHistoryNotFound { mix_id }); } let mixnode_owner = @@ -273,14 +273,14 @@ impl ValidatorApiStorage { pub(crate) async fn get_gateway_uptime_history( &self, identity: &str, - ) -> Result { + ) -> Result { let history = self .manager .get_gateway_historical_uptimes(identity) .await?; if history.is_empty() { - return Err(ValidatorApiStorageError::GatewayUptimeHistoryNotFound { + return Err(NymApiStorageError::GatewayUptimeHistoryNotFound { identity: identity.to_owned(), }); } @@ -301,7 +301,7 @@ impl ValidatorApiStorage { &self, mix_id: MixId, end_ts_secs: i64, - ) -> Result { + ) -> Result { let start = end_ts_secs - 86400; self.get_average_mixnode_uptime_in_time_interval(mix_id, start, end_ts_secs) .await @@ -320,7 +320,7 @@ impl ValidatorApiStorage { mix_id: MixId, start: i64, end: i64, - ) -> Result { + ) -> Result { let mixnode_database_id = match self.manager.get_mixnode_database_id(mix_id).await? { Some(id) => id, None => return Ok(Uptime::zero()), @@ -350,7 +350,7 @@ impl ValidatorApiStorage { &self, start: i64, end: i64, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { if (end - start) as u64 != ONE_DAY.as_secs() { warn!("Our current interval length breaks the 24h length assumption") } @@ -394,7 +394,7 @@ impl ValidatorApiStorage { &self, start: i64, end: i64, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { if (end - start) as u64 != ONE_DAY.as_secs() { warn!("Our current interval length breaks the 24h length assumption") } @@ -435,14 +435,14 @@ impl ValidatorApiStorage { &self, monitor_run_db_id: i64, test_route: TestRoute, - ) -> Result<(), ValidatorApiStorageError> { + ) -> Result<(), NymApiStorageError> { // we MUST have those entries in the database, otherwise the route wouldn't have been chosen // in the first place let layer1_mix_db_id = self .manager .get_mixnode_database_id(test_route.layer_one_mix().mix_id) .await? - .ok_or_else(|| ValidatorApiStorageError::DatabaseInconsistency { + .ok_or_else(|| NymApiStorageError::DatabaseInconsistency { reason: format!("could not get db id for layer1 mixnode from network monitor run {monitor_run_db_id}"), })?; @@ -450,7 +450,7 @@ impl ValidatorApiStorage { .manager .get_mixnode_database_id(test_route.layer_two_mix().mix_id) .await? - .ok_or_else(|| ValidatorApiStorageError::DatabaseInconsistency { + .ok_or_else(|| NymApiStorageError::DatabaseInconsistency { reason: format!("could not get db id for layer2 mixnode from network monitor run {monitor_run_db_id}"), })?; @@ -458,7 +458,7 @@ impl ValidatorApiStorage { .manager .get_mixnode_database_id(test_route.layer_three_mix().mix_id) .await? - .ok_or_else(|| ValidatorApiStorageError::DatabaseInconsistency { + .ok_or_else(|| NymApiStorageError::DatabaseInconsistency { reason: format!("could not get db id for layer3 mixnode from network monitor run {monitor_run_db_id}"), })?; @@ -466,7 +466,7 @@ impl ValidatorApiStorage { .manager .get_gateway_id(&test_route.gateway().identity_key.to_base58_string()) .await? - .ok_or_else(|| ValidatorApiStorageError::DatabaseInconsistency { + .ok_or_else(|| NymApiStorageError::DatabaseInconsistency { reason: format!( "could not get db id for gateway from network monitor run {monitor_run_db_id}" ), @@ -496,7 +496,7 @@ impl ValidatorApiStorage { &self, mix_id: MixId, since: Option, - ) -> Result { + ) -> Result { let db_id = self.manager.get_mixnode_database_id(mix_id).await?; if let Some(node_id) = db_id { @@ -524,7 +524,7 @@ impl ValidatorApiStorage { &self, identity: &str, since: Option, - ) -> Result { + ) -> Result { let node_id = self.manager.get_gateway_id(identity).await?; if let Some(node_id) = node_id { @@ -553,7 +553,7 @@ impl ValidatorApiStorage { mixnode_results: Vec, gateway_results: Vec, test_routes: Vec, - ) -> Result<(), ValidatorApiStorageError> { + ) -> Result<(), NymApiStorageError> { info!("Submitting new node results to the database. There are {} mixnode results and {} gateway results", mixnode_results.len(), gateway_results.len()); let now = OffsetDateTime::now_utc().unix_timestamp(); @@ -585,12 +585,12 @@ impl ValidatorApiStorage { &self, since: i64, until: i64, - ) -> Result { + ) -> Result { let run_count = self.manager.get_monitor_runs_count(since, until).await?; if run_count < 0 { // I don't think it's ever possible for SQL to return a negative value from COUNT? - return Err(ValidatorApiStorageError::DatabaseInconsistency { + return Err(NymApiStorageError::DatabaseInconsistency { reason: "Negative run count".to_string(), }); } @@ -610,7 +610,7 @@ impl ValidatorApiStorage { today_iso_8601: &str, mixnode_reports: &[MixnodeStatusReport], gateway_reports: &[GatewayStatusReport], - ) -> Result<(), ValidatorApiStorageError> { + ) -> Result<(), NymApiStorageError> { for report in mixnode_reports { // if this ever fails, we have a super weird error because we just constructed report for that node // and we never delete node data! @@ -655,7 +655,7 @@ impl ValidatorApiStorage { pub(crate) async fn check_if_historical_uptimes_exist_for_date( &self, date_iso_8601: &str, - ) -> Result { + ) -> Result { self.manager .check_for_historical_uptime_existence(date_iso_8601) .await @@ -668,10 +668,7 @@ impl ValidatorApiStorage { /// # Arguments /// /// * `until`: timestamp specifying the purge cutoff. - pub(crate) async fn purge_old_statuses( - &self, - until: i64, - ) -> Result<(), ValidatorApiStorageError> { + pub(crate) async fn purge_old_statuses(&self, until: i64) -> Result<(), NymApiStorageError> { self.manager.purge_old_mixnode_statuses(until).await?; self.manager .purge_old_gateway_statuses(until) @@ -682,7 +679,7 @@ impl ValidatorApiStorage { pub(crate) async fn insert_rewarding_report( &self, report: RewardingReport, - ) -> Result<(), ValidatorApiStorageError> { + ) -> Result<(), NymApiStorageError> { self.manager .insert_rewarding_report(report) .await @@ -692,7 +689,7 @@ impl ValidatorApiStorage { pub(crate) async fn get_rewarding_report( &self, absolute_epoch_id: EpochId, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { self.manager .get_rewarding_report(absolute_epoch_id) .await @@ -703,7 +700,7 @@ impl ValidatorApiStorage { pub(crate) async fn get_blinded_signature_response( &self, tx_hash: &str, - ) -> Result, ValidatorApiStorageError> { + ) -> Result, NymApiStorageError> { self.manager .get_blinded_signature_response(tx_hash) .await @@ -715,7 +712,7 @@ impl ValidatorApiStorage { &self, tx_hash: &str, blinded_signature_response: &str, - ) -> Result<(), ValidatorApiStorageError> { + ) -> Result<(), NymApiStorageError> { self.manager .insert_blinded_signature_response(tx_hash, blinded_signature_response) .await diff --git a/validator-api/src/storage/models.rs b/nym-api/src/storage/models.rs similarity index 100% rename from validator-api/src/storage/models.rs rename to nym-api/src/storage/models.rs diff --git a/validator-api/src/swagger.rs b/nym-api/src/swagger.rs similarity index 100% rename from validator-api/src/swagger.rs rename to nym-api/src/swagger.rs diff --git a/validator-api/tests/README.md b/nym-api/tests/README.md similarity index 100% rename from validator-api/tests/README.md rename to nym-api/tests/README.md diff --git a/validator-api/tests/functional_test/validator-api/status/status-mixnode.test.ts b/nym-api/tests/functional_test/validator-api/status/status-mixnode.test.ts similarity index 100% rename from validator-api/tests/functional_test/validator-api/status/status-mixnode.test.ts rename to nym-api/tests/functional_test/validator-api/status/status-mixnode.test.ts diff --git a/validator-api/tests/jest.config.js b/nym-api/tests/jest.config.js similarity index 100% rename from validator-api/tests/jest.config.js rename to nym-api/tests/jest.config.js diff --git a/validator-api/tests/package.json b/nym-api/tests/package.json similarity index 100% rename from validator-api/tests/package.json rename to nym-api/tests/package.json diff --git a/validator-api/tests/src/config/config.yaml b/nym-api/tests/src/config/config.yaml similarity index 100% rename from validator-api/tests/src/config/config.yaml rename to nym-api/tests/src/config/config.yaml diff --git a/validator-api/tests/src/config/configHandler.ts b/nym-api/tests/src/config/configHandler.ts similarity index 100% rename from validator-api/tests/src/config/configHandler.ts rename to nym-api/tests/src/config/configHandler.ts diff --git a/validator-api/tests/src/endpoints/Status.ts b/nym-api/tests/src/endpoints/Status.ts similarity index 100% rename from validator-api/tests/src/endpoints/Status.ts rename to nym-api/tests/src/endpoints/Status.ts diff --git a/validator-api/tests/src/endpoints/abstracts/APIClient.ts b/nym-api/tests/src/endpoints/abstracts/APIClient.ts similarity index 100% rename from validator-api/tests/src/endpoints/abstracts/APIClient.ts rename to nym-api/tests/src/endpoints/abstracts/APIClient.ts diff --git a/validator-api/tests/src/interfaces/StatusInterfaces.ts b/nym-api/tests/src/interfaces/StatusInterfaces.ts similarity index 100% rename from validator-api/tests/src/interfaces/StatusInterfaces.ts rename to nym-api/tests/src/interfaces/StatusInterfaces.ts diff --git a/validator-api/tests/src/restClient/RestClient.ts b/nym-api/tests/src/restClient/RestClient.ts similarity index 100% rename from validator-api/tests/src/restClient/RestClient.ts rename to nym-api/tests/src/restClient/RestClient.ts diff --git a/validator-api/tests/tsconfig.eslint.json b/nym-api/tests/tsconfig.eslint.json similarity index 100% rename from validator-api/tests/tsconfig.eslint.json rename to nym-api/tests/tsconfig.eslint.json diff --git a/validator-api/tests/tsconfig.json b/nym-api/tests/tsconfig.json similarity index 100% rename from validator-api/tests/tsconfig.json rename to nym-api/tests/tsconfig.json diff --git a/validator-api/tests/yarn.lock b/nym-api/tests/yarn.lock similarity index 100% rename from validator-api/tests/yarn.lock rename to nym-api/tests/yarn.lock diff --git a/nym-connect/Cargo.lock b/nym-connect/Cargo.lock index 3ba62ad4f0..7522031a5e 100644 --- a/nym-connect/Cargo.lock +++ b/nym-connect/Cargo.lock @@ -1004,8 +1004,8 @@ dependencies = [ "bls12_381 0.5.0", "coconut-interface", "crypto", + "nym-api-requests", "thiserror", - "validator-api-requests", "validator-client", ] @@ -3339,6 +3339,20 @@ dependencies = [ "syn", ] +[[package]] +name = "nym-api-requests" +version = "0.1.0" +dependencies = [ + "bs58", + "coconut-interface", + "cosmrs", + "cosmwasm-std", + "getset", + "mixnet-contract-common", + "schemars", + "serde", +] + [[package]] name = "nym-connect" version = "1.1.4" @@ -6339,20 +6353,6 @@ dependencies = [ "getrandom 0.2.7", ] -[[package]] -name = "validator-api-requests" -version = "0.1.0" -dependencies = [ - "bs58", - "coconut-interface", - "cosmrs", - "cosmwasm-std", - "getset", - "mixnet-contract-common", - "schemars", - "serde", -] - [[package]] name = "validator-client" version = "0.1.0" @@ -6377,6 +6377,7 @@ dependencies = [ "mixnet-contract-common", "multisig-contract-common", "network-defaults", + "nym-api-requests", "prost", "reqwest", "serde", @@ -6385,7 +6386,6 @@ dependencies = [ "thiserror", "tokio", "url", - "validator-api-requests", "vesting-contract", "vesting-contract-common", ] diff --git a/nym-connect/src-tauri/src/config/mod.rs b/nym-connect/src-tauri/src/config/mod.rs index c27bf6b6b7..dcbbe12135 100644 --- a/nym-connect/src-tauri/src/config/mod.rs +++ b/nym-connect/src-tauri/src/config/mod.rs @@ -123,7 +123,7 @@ pub async fn init_socks5_config(provider_address: String, chosen_gateway_id: Str if let Ok(raw_validators) = std::env::var(config_common::defaults::var_names::API_VALIDATOR) { config .get_base_mut() - .set_custom_validator_apis(config_common::parse_validators(&raw_validators)); + .set_custom_nym_apis(config_common::parse_validators(&raw_validators)); } // Setup gateway by either registering a new one, or reusing exiting keys diff --git a/nym-wallet/Cargo.lock b/nym-wallet/Cargo.lock index 200fc3a81c..e27b6da0db 100644 --- a/nym-wallet/Cargo.lock +++ b/nym-wallet/Cargo.lock @@ -2874,6 +2874,20 @@ dependencies = [ "libc", ] +[[package]] +name = "nym-api-requests" +version = "0.1.0" +dependencies = [ + "bs58", + "coconut-interface", + "cosmrs", + "cosmwasm-std", + "getset", + "mixnet-contract-common", + "schemars", + "serde", +] + [[package]] name = "nym-types" version = "1.0.0" @@ -5397,20 +5411,6 @@ dependencies = [ "getrandom 0.2.5", ] -[[package]] -name = "validator-api-requests" -version = "0.1.0" -dependencies = [ - "bs58", - "coconut-interface", - "cosmrs", - "cosmwasm-std", - "getset", - "mixnet-contract-common", - "schemars", - "serde", -] - [[package]] name = "validator-client" version = "0.1.0" @@ -5435,6 +5435,7 @@ dependencies = [ "mixnet-contract-common", "multisig-contract-common", "network-defaults", + "nym-api-requests", "prost", "reqwest", "serde", @@ -5443,7 +5444,6 @@ dependencies = [ "thiserror", "tokio", "url", - "validator-api-requests", "vesting-contract", "vesting-contract-common", ] diff --git a/nym-wallet/src-tauri/src/config/mod.rs b/nym-wallet/src-tauri/src/config/mod.rs index ee0bba8963..49d7acfdd4 100644 --- a/nym-wallet/src-tauri/src/config/mod.rs +++ b/nym-wallet/src-tauri/src/config/mod.rs @@ -255,7 +255,7 @@ impl Config { } } - pub fn select_validator_api_url(&mut self, api_url: Url, network: WalletNetwork) { + pub fn select_nym_api_url(&mut self, api_url: Url, network: WalletNetwork) { if let Some(net) = self.networks.get_mut(&network.as_key()) { net.selected_api_url = Some(api_url); } else { @@ -275,7 +275,7 @@ impl Config { .and_then(|config| config.selected_nymd_url.clone()) } - pub fn get_selected_validator_api_url(&self, network: &WalletNetwork) -> Option { + pub fn get_selected_nym_api_url(&self, network: &WalletNetwork) -> Option { self.networks .get(&network.as_key()) .and_then(|config| config.selected_api_url.clone()) diff --git a/nym-wallet/src-tauri/src/error.rs b/nym-wallet/src-tauri/src/error.rs index bceff50f54..e5a8feeef5 100644 --- a/nym-wallet/src-tauri/src/error.rs +++ b/nym-wallet/src-tauri/src/error.rs @@ -4,7 +4,7 @@ use serde::{Serialize, Serializer}; use std::io; use std::num::ParseIntError; use thiserror::Error; -use validator_client::validator_api::error::ValidatorAPIError; +use validator_client::nym_api::error::NymAPIError; use validator_client::{nymd::error::NymdError, ValidatorClientError}; #[derive(Error, Debug)] @@ -40,9 +40,9 @@ pub enum BackendError { source: eyre::Report, }, #[error("{source}")] - ValidatorApiError { + NymApiError { #[from] - source: ValidatorAPIError, + source: NymAPIError, }, #[error("{source}")] KeyDerivationError { @@ -134,12 +134,10 @@ impl Serialize for BackendError { impl From for BackendError { fn from(e: ValidatorClientError) -> Self { match e { - ValidatorClientError::ValidatorAPIError { source } => source.into(), + ValidatorClientError::NymAPIError { source } => source.into(), ValidatorClientError::MalformedUrlProvided(e) => e.into(), ValidatorClientError::NymdError(e) => e.into(), - ValidatorClientError::NoAPIUrlAvailable => { - TypesError::NoValidatorApiUrlConfigured.into() - } + ValidatorClientError::NoAPIUrlAvailable => TypesError::NoNymApiUrlConfigured.into(), } } } diff --git a/nym-wallet/src-tauri/src/main.rs b/nym-wallet/src-tauri/src/main.rs index d34a04f920..63e2a43e4f 100644 --- a/nym-wallet/src-tauri/src/main.rs +++ b/nym-wallet/src-tauri/src/main.rs @@ -10,9 +10,9 @@ use mixnet_contract_common::{Gateway, MixNode}; use crate::menu::AddDefaultSubmenus; use crate::operations::help; use crate::operations::mixnet; +use crate::operations::nym_api; use crate::operations::signatures; use crate::operations::simulate; -use crate::operations::validator_api; use crate::operations::vesting; use crate::state::WalletState; @@ -85,10 +85,10 @@ fn main() { mixnet::rewards::claim_locked_and_unlocked_delegator_reward, mixnet::send::send, network_config::add_validator, - network_config::get_validator_api_urls, + network_config::get_nym_api_urls, network_config::get_validator_nymd_urls, network_config::remove_validator, - network_config::select_validator_api_url, + network_config::select_nym_api_url, network_config::select_validator_nymd_url, network_config::update_validator_urls, state::load_config_from_files, @@ -99,13 +99,13 @@ fn main() { utils::get_old_and_incorrect_hardcoded_fee, utils::try_convert_pubkey_to_mix_id, utils::default_mixnode_cost_params, - validator_api::status::gateway_core_node_status, - validator_api::status::mixnode_core_node_status, - validator_api::status::mixnode_inclusion_probability, - validator_api::status::mixnode_reward_estimation, - validator_api::status::mixnode_stake_saturation, - validator_api::status::mixnode_status, - validator_api::status::gateway_report, + nym_api::status::gateway_core_node_status, + nym_api::status::mixnode_core_node_status, + nym_api::status::mixnode_inclusion_probability, + nym_api::status::mixnode_reward_estimation, + nym_api::status::mixnode_stake_saturation, + nym_api::status::mixnode_status, + nym_api::status::gateway_report, vesting::rewards::vesting_claim_delegator_reward, vesting::rewards::vesting_claim_operator_reward, vesting::bond::vesting_bond_gateway, diff --git a/nym-wallet/src-tauri/src/network_config.rs b/nym-wallet/src-tauri/src/network_config.rs index 43e872b717..ce976b971d 100644 --- a/nym-wallet/src-tauri/src/network_config.rs +++ b/nym-wallet/src-tauri/src/network_config.rs @@ -17,7 +17,7 @@ pub async fn get_validator_nymd_urls( } #[tauri::command] -pub async fn get_validator_api_urls( +pub async fn get_nym_api_urls( network: WalletNetwork, state: tauri::State<'_, WalletState>, ) -> Result { @@ -41,13 +41,13 @@ pub async fn select_validator_nymd_url( } #[tauri::command] -pub async fn select_validator_api_url( +pub async fn select_nym_api_url( url: &str, network: WalletNetwork, state: tauri::State<'_, WalletState>, ) -> Result<(), BackendError> { log::debug!("Selecting new validator api_url for {network}: {url}"); - state.write().await.select_validator_api_url(url, network)?; + state.write().await.select_nym_api_url(url, network)?; Ok(()) } diff --git a/nym-wallet/src-tauri/src/operations/mixnet/account.rs b/nym-wallet/src-tauri/src/operations/mixnet/account.rs index 5811c007d1..9a3afafe6d 100644 --- a/nym-wallet/src-tauri/src/operations/mixnet/account.rs +++ b/nym-wallet/src-tauri/src/operations/mixnet/account.rs @@ -128,7 +128,7 @@ async fn _connect_with_mnemonic( .map(|(network, urls)| (*network, urls.iter().next().unwrap().clone())) .collect(); - // Run connection tests on all nymd and validator-api endpoints + // Run connection tests on all nymd and nym-api endpoints let (nymd_urls, api_urls) = run_connection_test(untested_nymd_urls, untested_api_urls, &config).await; @@ -222,7 +222,7 @@ fn create_clients( }) }; - let api_url = if let Some(url) = config.get_selected_validator_api_url(&network) { + let api_url = if let Some(url) = config.get_selected_nym_api_url(&network) { log::debug!("Using selected api_url for {network}: {url}"); url.clone() } else { diff --git a/nym-wallet/src-tauri/src/operations/mixnet/bond.rs b/nym-wallet/src-tauri/src/operations/mixnet/bond.rs index 567dc84290..5807fb7270 100644 --- a/nym-wallet/src-tauri/src/operations/mixnet/bond.rs +++ b/nym-wallet/src-tauri/src/operations/mixnet/bond.rs @@ -211,7 +211,7 @@ pub async fn get_mixnode_avg_uptime( let id = details.mix_id(); log::trace!(" >>> Get average uptime percentage: mix_id = {}", id); let avg_uptime_percent = client - .validator_api + .nym_api .get_mixnode_avg_uptime(id) .await .ok() diff --git a/nym-wallet/src-tauri/src/operations/mixnet/delegate.rs b/nym-wallet/src-tauri/src/operations/mixnet/delegate.rs index dfbf46389b..8b8f615244 100644 --- a/nym-wallet/src-tauri/src/operations/mixnet/delegate.rs +++ b/nym-wallet/src-tauri/src/operations/mixnet/delegate.rs @@ -238,7 +238,7 @@ pub async fn get_all_mix_delegations( d.mix_id ); let avg_uptime_percent = client - .validator_api + .nym_api .get_mixnode_avg_uptime(d.mix_id) .await .ok() diff --git a/nym-wallet/src-tauri/src/operations/mod.rs b/nym-wallet/src-tauri/src/operations/mod.rs index 457971d8c8..c6c175ee12 100644 --- a/nym-wallet/src-tauri/src/operations/mod.rs +++ b/nym-wallet/src-tauri/src/operations/mod.rs @@ -1,6 +1,6 @@ pub mod help; pub mod mixnet; +pub mod nym_api; pub mod signatures; pub mod simulate; -pub mod validator_api; pub mod vesting; diff --git a/nym-wallet/src-tauri/src/operations/validator_api/mod.rs b/nym-wallet/src-tauri/src/operations/nym_api/mod.rs similarity index 100% rename from nym-wallet/src-tauri/src/operations/validator_api/mod.rs rename to nym-wallet/src-tauri/src/operations/nym_api/mod.rs diff --git a/nym-wallet/src-tauri/src/operations/validator_api/status.rs b/nym-wallet/src-tauri/src/operations/nym_api/status.rs similarity index 100% rename from nym-wallet/src-tauri/src/operations/validator_api/status.rs rename to nym-wallet/src-tauri/src/operations/nym_api/status.rs diff --git a/nym-wallet/src-tauri/src/state.rs b/nym-wallet/src-tauri/src/state.rs index e36dfe1b5c..319e645c57 100644 --- a/nym-wallet/src-tauri/src/state.rs +++ b/nym-wallet/src-tauri/src/state.rs @@ -300,7 +300,7 @@ impl WalletStateInner { }) } - /// Get the list of validator-api urls in the network config format, suitable for passing on to + /// Get the list of nym-api urls in the network config format, suitable for passing on to /// the UI pub fn get_api_urls( &self, @@ -425,14 +425,10 @@ impl WalletStateInner { Ok(()) } - pub fn select_validator_api_url( - &mut self, - url: &str, - network: Network, - ) -> Result<(), BackendError> { - self.config.select_validator_api_url(url.parse()?, network); + pub fn select_nym_api_url(&mut self, url: &str, network: Network) -> Result<(), BackendError> { + self.config.select_nym_api_url(url.parse()?, network); if let Ok(client) = self.client_mut(network) { - client.change_validator_api(url.parse()?); + client.change_nym_api(url.parse()?); } Ok(()) } @@ -489,7 +485,7 @@ macro_rules! nymd_client { #[macro_export] macro_rules! api_client { ($state:ident) => { - $state.read().await.current_client()?.validator_api + $state.read().await.current_client()?.nym_api }; } diff --git a/sdk/typescript/examples/plain-html/src/index.ts b/sdk/typescript/examples/plain-html/src/index.ts index 16f53c380c..d279586b72 100644 --- a/sdk/typescript/examples/plain-html/src/index.ts +++ b/sdk/typescript/examples/plain-html/src/index.ts @@ -15,11 +15,11 @@ async function main() { } // // mixnet v1 - // const validatorApiUrl = 'https://validator.nymtech.net/api'; + // const nymApiUrl = 'https://validator.nymtech.net/api'; // const preferredGatewayIdentityKey = 'E3mvZTHQCdBvhfr178Swx9g4QG3kkRUun7YnToLMcMbM'; // mixnet v2 - const validatorApiUrl = 'https://qwerty-validator-api.qa.nymte.ch/api'; // "http://localhost:8081"; + const nymApiUrl = 'https://qwerty-validator-api.qa.nymte.ch/api'; // "http://localhost:8081"; const preferredGatewayIdentityKey = undefined; // '36vfvEyBzo5cWEFbnP7fqgY39kFw9PQhvwzbispeNaxL'; // subscribe to connect event, so that we can show the client's address @@ -46,7 +46,7 @@ async function main() { // start up the client await nym.client.start({ clientId: 'My awesome client', - validatorApiUrl, + nymApiUrl, preferredGatewayIdentityKey, }); } diff --git a/sdk/typescript/examples/react-webpack-with-theme-example/src/App.tsx b/sdk/typescript/examples/react-webpack-with-theme-example/src/App.tsx index 6f6f4c2039..73c028d062 100644 --- a/sdk/typescript/examples/react-webpack-with-theme-example/src/App.tsx +++ b/sdk/typescript/examples/react-webpack-with-theme-example/src/App.tsx @@ -95,16 +95,16 @@ export const Content: React.FC = () => { React.useEffect(() => { if (isReady) { // // mixnet v1 - // const validatorApiUrl = 'https://validator.nymtech.net/api'; + // const nymApiUrl = 'https://validator.nymtech.net/api'; // const preferredGatewayIdentityKey = 'E3mvZTHQCdBvhfr178Swx9g4QG3kkRUun7YnToLMcMbM'; // mixnet v2 - const validatorApiUrl = 'https://qwerty-validator-api.qa.nymte.ch/api'; // "http://localhost:8081"; + const nymApiUrl = 'https://qwerty-validator-api.qa.nymte.ch/api'; // "http://localhost:8081"; const preferredGatewayIdentityKey = undefined; // '36vfvEyBzo5cWEFbnP7fqgY39kFw9PQhvwzbispeNaxL'; connect({ clientId: 'Example Client', - validatorApiUrl, + nymApiUrl, preferredGatewayIdentityKey, }); } diff --git a/sdk/typescript/packages/sdk/README.md b/sdk/typescript/packages/sdk/README.md index e5f2fd51c5..af847d969a 100644 --- a/sdk/typescript/packages/sdk/README.md +++ b/sdk/typescript/packages/sdk/README.md @@ -18,7 +18,7 @@ import { createNymMixnetClient } from '@nymproject/sdk'; const main = async () => { const nym = await createNymMixnetClient(); - const validatorApiUrl = 'https://validator.nymtech.net/api'; + const nymApiUrl = 'https://validator.nymtech.net/api'; // show message payload content when received nym.events.subscribeToTextMessageReceivedEvent((e) => { @@ -28,7 +28,7 @@ const main = async () => { // start the client and connect to a gateway await nym.client.start({ clientId: 'My awesome client', - validatorApiUrl, + nymApiUrl, }); // send a message to yourself diff --git a/sdk/typescript/packages/sdk/src/mixnet/wasm/types.ts b/sdk/typescript/packages/sdk/src/mixnet/wasm/types.ts index 36aacd5adb..498e1b40de 100644 --- a/sdk/typescript/packages/sdk/src/mixnet/wasm/types.ts +++ b/sdk/typescript/packages/sdk/src/mixnet/wasm/types.ts @@ -21,13 +21,13 @@ export interface NymClientConfig { /** * The URL of a validator API to query for the network topology. */ - validatorApiUrl: string; + nymApiUrl: string; /** * Optional. The identity key of the preferred gateway to connect to. */ preferredGatewayIdentityKey?: string; - + /** * Optional. The listener websocket of the preferred gateway to connect to. */ diff --git a/sdk/typescript/packages/sdk/src/mixnet/wasm/worker.ts b/sdk/typescript/packages/sdk/src/mixnet/wasm/worker.ts index cb1c8a32e4..87d44bbb4b 100644 --- a/sdk/typescript/packages/sdk/src/mixnet/wasm/worker.ts +++ b/sdk/typescript/packages/sdk/src/mixnet/wasm/worker.ts @@ -130,19 +130,19 @@ wasm_bindgen(wasmUrl) const startHandler = async (config: NymClientConfig) => { // fetch the gateway details (randomly chosen if no preferred gateway is set) const gatewayEndpoint = await wasm_bindgen.get_gateway( - config.validatorApiUrl, + config.nymApiUrl, config.preferredGatewayIdentityKey, ); - + // set a different gatewayListener in order to avoid workaround ws over https error if (config.gatewayListener) - gatewayEndpoint.gateway_listener = config.gatewayListener; - + gatewayEndpoint.gateway_listener = config.gatewayListener; + // create the client, passing handlers for events wrapper.init( new wasm_bindgen.Config( config.clientId, - config.validatorApiUrl, + config.nymApiUrl, gatewayEndpoint, config.debug || wasm_bindgen.default_debug(), ), diff --git a/tools/nym-cli/src/main.rs b/tools/nym-cli/src/main.rs index ce81cd6a56..306d383c34 100644 --- a/tools/nym-cli/src/main.rs +++ b/tools/nym-cli/src/main.rs @@ -36,7 +36,7 @@ pub(crate) struct Cli { #[clap( help = "Overrides the validator API URL provided either as an environment variable API_VALIDATOR or in a config file" )] - pub(crate) validator_api_url: Option, + pub(crate) nym_api_url: Option, #[clap(long, global = true)] #[clap( @@ -77,7 +77,7 @@ pub(crate) enum Commands { async fn execute(cli: Cli) -> anyhow::Result<()> { let args = ClientArgs { nymd_url: cli.nymd_url, - validator_api_url: cli.validator_api_url, + nym_api_url: cli.nym_api_url, mnemonic: cli.mnemonic, mixnet_contract_address: cli.mixnet_contract_address, vesting_contract_address: cli.vesting_contract_address, diff --git a/tools/nym-cli/src/validator/mixnet/delegators/mod.rs b/tools/nym-cli/src/validator/mixnet/delegators/mod.rs index ed1ac2f211..3e40d2d26a 100644 --- a/tools/nym-cli/src/validator/mixnet/delegators/mod.rs +++ b/tools/nym-cli/src/validator/mixnet/delegators/mod.rs @@ -3,7 +3,7 @@ use network_defaults::NymNetworkDetails; use nym_cli_commands::context::{ - create_signing_client, create_signing_client_with_validator_api, ClientArgs, + create_signing_client, create_signing_client_with_nym_api, ClientArgs, }; pub(crate) mod rewards; @@ -24,7 +24,7 @@ pub(crate) async fn execute( nym_cli_commands::validator::mixnet::delegators::undelegate_from_mixnode::undelegate_from_mixnode(args, create_signing_client(global_args, network_details)?).await } nym_cli_commands::validator::mixnet::delegators::MixnetDelegatorsCommands::List(args) => { - nym_cli_commands::validator::mixnet::delegators::query_for_delegations::execute(args, create_signing_client_with_validator_api(global_args, network_details)?).await + nym_cli_commands::validator::mixnet::delegators::query_for_delegations::execute(args, create_signing_client_with_nym_api(global_args, network_details)?).await } _ => unreachable!(), } diff --git a/tools/nym-cli/src/validator/mixnet/query/mod.rs b/tools/nym-cli/src/validator/mixnet/query/mod.rs index 21afb8c833..ea41ebd7d6 100644 --- a/tools/nym-cli/src/validator/mixnet/query/mod.rs +++ b/tools/nym-cli/src/validator/mixnet/query/mod.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use network_defaults::NymNetworkDetails; -use nym_cli_commands::context::create_query_client_with_validator_api; +use nym_cli_commands::context::create_query_client_with_nym_api; pub(crate) async fn execute( query: nym_cli_commands::validator::mixnet::query::MixnetQuery, @@ -12,14 +12,14 @@ pub(crate) async fn execute( nym_cli_commands::validator::mixnet::query::MixnetQueryCommands::Mixnodes(args) => { nym_cli_commands::validator::mixnet::query::query_all_mixnodes::query( args, - &create_query_client_with_validator_api(network_details)?, + &create_query_client_with_nym_api(network_details)?, ) .await } nym_cli_commands::validator::mixnet::query::MixnetQueryCommands::Gateways(args) => { nym_cli_commands::validator::mixnet::query::query_all_gateways::query( args, - &create_query_client_with_validator_api(network_details)?, + &create_query_client_with_nym_api(network_details)?, ) .await } diff --git a/tools/ts-rs-cli/Cargo.toml b/tools/ts-rs-cli/Cargo.toml index e6c3fa879e..c327083a04 100644 --- a/tools/ts-rs-cli/Cargo.toml +++ b/tools/ts-rs-cli/Cargo.toml @@ -13,7 +13,7 @@ walkdir = "2" validator-client = { path = "../../common/client-libs/validator-client", features = [ "nymd-client", "generate-ts" ] } -validator-api-requests = { path = "../../validator-api/validator-api-requests", features = ["generate-ts"] } +nym-api-requests = { path = "../../nym-api/nym-api-requests", features = ["generate-ts"] } mixnet-contract-common = { path = "../../common/cosmwasm-smart-contracts/mixnet-contract", features = [ "generate-ts" ] } vesting-contract-common = { path = "../../common/cosmwasm-smart-contracts/vesting-contract", features = [ "generate-ts" ] } nym-types = { path = "../../common/types", features = [ "generate-ts" ] } diff --git a/tools/ts-rs-cli/src/main.rs b/tools/ts-rs-cli/src/main.rs index 42217d4d8b..762dd4b03f 100644 --- a/tools/ts-rs-cli/src/main.rs +++ b/tools/ts-rs-cli/src/main.rs @@ -3,6 +3,11 @@ use mixnet_contract_common::{ Interval as ContractInterval, IntervalRewardParams, IntervalRewardingParamsUpdate, MixNode, MixNodeConfigUpdate, RewardedSetNodeStatus, RewardingParams, UnbondedMixnode, }; +use nym_api_requests::models::{ + GatewayCoreStatusResponse, InclusionProbabilityResponse, MixnodeCoreStatusResponse, + MixnodeStatus, MixnodeStatusResponse, RewardEstimationResponse, SelectionChance, + StakeSaturationResponse, +}; use nym_types::account::{Account, AccountEntry, AccountWithMnemonic, Balance}; use nym_types::currency::{CurrencyDenom, DecCoin}; use nym_types::delegation::{ @@ -27,11 +32,6 @@ use nym_wallet_types::network::Network; use nym_wallet_types::network_config::{Validator, ValidatorUrl, ValidatorUrls}; use std::path::Path; use ts_rs::TS; -use validator_api_requests::models::{ - GatewayCoreStatusResponse, InclusionProbabilityResponse, MixnodeCoreStatusResponse, - MixnodeStatus, MixnodeStatusResponse, RewardEstimationResponse, SelectionChance, - StakeSaturationResponse, -}; use vesting_contract_common::Period; use walkdir::WalkDir; @@ -112,7 +112,7 @@ fn main() { do_export!(VestingPeriod); do_export!(WrappedDelegationEvent); - // validator-api-requests + // nym-api-requests do_export!(MixnodeCoreStatusResponse); do_export!(GatewayCoreStatusResponse); do_export!(InclusionProbabilityResponse);