diff --git a/.wellknown/wallet/connect/service-providers.json b/.wellknown/wallet/connect/service-providers.json new file mode 100644 index 0000000000..c3749d6bd8 --- /dev/null +++ b/.wellknown/wallet/connect/service-providers.json @@ -0,0 +1,14 @@ +[ + { + "id": "nym-testing", + "description": "coconuts", + "items": [ + { + "id": "nym-coconut", + "description": "nym-credentials", + "address": "", + "gateway": "" + } + ] + } +] \ No newline at end of file diff --git a/clients/socks5/src/client/mod.rs b/clients/socks5/src/client/mod.rs index bab66a7e42..47577507bb 100644 --- a/clients/socks5/src/client/mod.rs +++ b/clients/socks5/src/client/mod.rs @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use std::error::Error; +use std::str::FromStr; use crate::client::config::Config; use crate::error::Socks5ClientError; @@ -39,6 +40,7 @@ use nymsphinx::addressing::clients::Recipient; use nymsphinx::addressing::nodes::NodeIdentity; use tap::TapFallible; use task::{wait_for_signal_and_error, ShutdownListener, ShutdownNotifier}; +use url::Url; pub mod config; @@ -199,25 +201,23 @@ impl NymClient { .expect("provided gateway id is invalid!"); #[cfg(feature = "coconut")] + //temp hard code these values for testing + let qwerty_validator: Url = + Url::from_str("http://qwerty-validator.qa.nymte.ch:26657/").unwrap(); + let val_api: Url = + Url::from_str("https://qwerty-coconut-one-validator-api.qa.nymte.ch/api").unwrap(); + let bandwidth_controller = { let details = network_defaults::NymNetworkDetails::new_from_env(); let mut client_config = validator_client::Config::try_from_nym_network_details(&details) .expect("failed to construct validator client config"); - let nymd_url = self - .config - .get_base() - .get_validator_endpoints() - .pop() - .expect("No nymd validator endpoint provided"); - let api_url = self - .config - .get_base() - .get_validator_api_endpoints() - .pop() - .expect("No validator api endpoint provided"); + // overwrite env configuration with config URLs - client_config = client_config.with_urls(nymd_url, api_url); + client_config = client_config.with_urls(qwerty_validator, val_api); + + println!("{:?}", client_config); + let client = validator_client::Client::new_query(client_config) .expect("Could not construct query client"); let coconut_api_clients = diff --git a/envs/qa-qwerty.env b/envs/qa-qwerty.env index 26e5b0fe1f..2cb4c65305 100644 --- a/envs/qa-qwerty.env +++ b/envs/qa-qwerty.env @@ -1,8 +1,6 @@ CONFIGURED=true - RUST_LOG=info RUST_BACKTRACE=1 - BECH32_PREFIX=n MIX_DENOM=unym MIX_DENOM_DISPLAY=nym @@ -12,9 +10,10 @@ DENOMS_EXPONENT=6 MIXNET_CONTRACT_ADDRESS=n14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9sjyvg3g VESTING_CONTRACT_ADDRESS=n1nc5tatafv6eyq7llkr2gv50ff9e22mnf70qgjlv737ktmt4eswrq73f2nw BANDWIDTH_CLAIM_CONTRACT_ADDRESS=n19lc9u84cz0yz3fww5283nucc9yvr8gsjmgeul0 -COCONUT_BANDWIDTH_CONTRACT_ADDRESS=n19lc9u84cz0yz3fww5283nucc9yvr8gsjmgeul0 -MULTISIG_CONTRACT_ADDRESS=n19lc9u84cz0yz3fww5283nucc9yvr8gsjmgeul0 +COCONUT_BANDWIDTH_CONTRACT_ADDRESS=n12ckdkm3q7eytefs7rwu4ue3t9hxgvl9v08jddmtwgct2ve0pv50q0t8dlt +MULTISIG_CONTRACT_ADDRESS=n14krxe8ukzagwhvec0rmteexu62w8k9kp9sra9ww6em2hnmzcukqsa0utc8 +COCONUT_DKG_CONTRACT_ADDRESS=n1rl5n6cxuz2hdy3f7d9hsnw8zn0zwwwr0r4dxfz7tktgpgkcnz9zshmvksc REWARDING_VALIDATOR_ADDRESS=n10yyd98e2tuwu0f7ypz9dy3hhjw7v772q6287gy STATISTICS_SERVICE_DOMAIN_ADDRESS="https://mainnet-stats.nymte.ch:8090" NYMD_VALIDATOR="https://qwerty-validator.qa.nymte.ch/" -API_VALIDATOR="https://qwerty-validator-api.qa.nymte.ch/api" +API_VALIDATOR="https://qwerty-coconut-one-validator-api.qa.nymte.ch/api" diff --git a/nym-connect/Cargo.lock b/nym-connect/Cargo.lock index 22331cf94d..790daff951 100644 --- a/nym-connect/Cargo.lock +++ b/nym-connect/Cargo.lock @@ -630,7 +630,7 @@ dependencies = [ [[package]] name = "client-core" -version = "1.1.0" +version = "1.1.1" dependencies = [ "client-connections", "config", @@ -973,6 +973,7 @@ version = "0.1.0" dependencies = [ "bls12_381 0.5.0", "coconut-interface", + "cosmrs", "crypto", "thiserror", "validator-api-requests", @@ -1867,6 +1868,7 @@ name = "gateway-client" version = "0.1.0" dependencies = [ "async-trait", + "coconut-interface", "credential-storage", "credentials", "crypto", @@ -1885,6 +1887,7 @@ dependencies = [ "tokio-tungstenite", "tungstenite", "url", + "validator-client", "wasm-bindgen", "wasm-bindgen-futures", "wasm-timer", @@ -1896,6 +1899,7 @@ name = "gateway-requests" version = "0.1.0" dependencies = [ "bs58", + "coconut-interface", "credentials", "crypto", "futures", @@ -3351,14 +3355,16 @@ dependencies = [ [[package]] name = "nym-socks5-client" -version = "1.1.0" +version = "1.1.1" dependencies = [ "clap", "client-connections", "client-core", + "coconut-interface", "completions", "config", "credential-storage", + "credentials", "crypto", "dirs", "futures", diff --git a/nym-connect/src-tauri/Cargo.toml b/nym-connect/src-tauri/Cargo.toml index dfaf452dd1..25a60e0ec8 100644 --- a/nym-connect/src-tauri/Cargo.toml +++ b/nym-connect/src-tauri/Cargo.toml @@ -41,7 +41,7 @@ url = "2.2" client-core = { path = "../../clients/client-core" } config-common = { path = "../../common/config", package = "config" } logging = { path = "../../common/logging"} -nym-socks5-client = { path = "../../clients/socks5" } +nym-socks5-client = { path = "../../clients/socks5", features = ["coconut"] } topology = { path = "../../common/topology" } [dev-dependencies] diff --git a/nym-connect/src-tauri/src/config/mod.rs b/nym-connect/src-tauri/src/config/mod.rs index f4d260ea57..bf8a52558b 100644 --- a/nym-connect/src-tauri/src/config/mod.rs +++ b/nym-connect/src-tauri/src/config/mod.rs @@ -127,6 +127,8 @@ pub async fn init_socks5_config(provider_address: String, chosen_gateway_id: Str .set_custom_validator_apis(config_common::parse_validators(&raw_validators)); } + config.get_base_mut().with_disabled_credentials(false); + let gateway = setup_gateway( &id, register_gateway, @@ -134,6 +136,7 @@ pub async fn init_socks5_config(provider_address: String, chosen_gateway_id: Str config.get_socks5(), ) .await?; + config.get_base_mut().with_gateway_endpoint(gateway); let config_save_location = config.get_socks5().get_config_file_save_location(); diff --git a/nym-connect/src-tauri/src/main.rs b/nym-connect/src-tauri/src/main.rs index 4f4e8bb5fb..0c1c2effab 100644 --- a/nym-connect/src-tauri/src/main.rs +++ b/nym-connect/src-tauri/src/main.rs @@ -14,6 +14,7 @@ use crate::menu::AddDefaultSubmenus; use crate::menu::{create_tray_menu, tray_menu_event_handler}; use crate::state::State; use crate::window::window_toggle; +use std::path::PathBuf; mod config; mod error; @@ -26,7 +27,12 @@ mod window; fn main() { setup_logging(); - setup_env(None); + + //use qwerty environment + //path may need changing for your set up + let qwerty_environment = PathBuf::from("~/nym/envs/qa-qwerty.env"); + setup_env(Some(qwerty_environment)); + println!("Starting up..."); // As per breaking change description here diff --git a/nym-connect/src-tauri/src/operations/directory/mod.rs b/nym-connect/src-tauri/src/operations/directory/mod.rs index b6c45fa8c0..dcc618e1bb 100644 --- a/nym-connect/src-tauri/src/operations/directory/mod.rs +++ b/nym-connect/src-tauri/src/operations/directory/mod.rs @@ -1,8 +1,8 @@ use crate::error::Result; use crate::models::DirectoryService; -static SERVICE_PROVIDER_WELLKNOWN_URL: &str = - "https://nymtech.net/.wellknown/connect/service-providers.json"; +//lets host our own service file locally +static SERVICE_PROVIDER_WELLKNOWN_URL: &str = "http://localhost:3000/service-providers.json"; #[tauri::command] pub async fn get_services() -> Result> {