From a4e5b2af93e0ec4382dae3c10a9dd9ba9b6463c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Stuczy=C5=84ski?= Date: Mon, 11 Mar 2024 11:31:01 +0000 Subject: [PATCH] further wasm fixes --- Cargo.lock | 8 ++--- .../src/client/base_client/storage/mod.rs | 2 +- common/wasm/client-core/Cargo.toml | 1 + nym-browser-extension/storage/Cargo.toml | 2 +- .../desktop/src-tauri/src/config/mod.rs | 4 ++- nym-connect/desktop/src-tauri/src/tasks.rs | 4 ++- .../examples/manually_handle_storage.rs | 7 ++--- sdk/rust/nym-sdk/src/mixnet.rs | 7 ++++- .../codegen/contract-clients/package.json | 2 +- sdk/typescript/docs/package.json | 2 +- .../packages/mix-fetch-node/package.json | 2 +- .../packages/mix-fetch/package.json | 2 +- .../packages/node-tester/package.json | 2 +- .../packages/nodejs-client/package.json | 2 +- .../packages/sdk-react/package.json | 2 +- sdk/typescript/packages/sdk/package.json | 2 +- wasm/client/Cargo.toml | 2 +- wasm/mix-fetch/Cargo.toml | 2 +- wasm/node-tester/Cargo.toml | 2 +- wasm/node-tester/src/tester.rs | 29 +++++++++++-------- 20 files changed, 49 insertions(+), 37 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 966999d607..23c3ccf211 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2549,7 +2549,7 @@ dependencies = [ [[package]] name = "extension-storage" -version = "1.2.4-rc.2" +version = "1.3.0-rc.0" dependencies = [ "bip39", "console_error_panic_hook", @@ -4557,7 +4557,7 @@ dependencies = [ [[package]] name = "mix-fetch-wasm" -version = "1.2.4-rc.2" +version = "1.3.0-rc.0" dependencies = [ "async-trait", "futures", @@ -5313,7 +5313,7 @@ dependencies = [ [[package]] name = "nym-client-wasm" -version = "1.2.4-rc.2" +version = "1.3.0-rc.0" dependencies = [ "anyhow", "futures", @@ -6117,7 +6117,7 @@ dependencies = [ [[package]] name = "nym-node-tester-wasm" -version = "1.2.4-rc.2" +version = "1.3.0-rc.0" dependencies = [ "futures", "js-sys", diff --git a/common/client-core/src/client/base_client/storage/mod.rs b/common/client-core/src/client/base_client/storage/mod.rs index 2680707e35..e7c15315a6 100644 --- a/common/client-core/src/client/base_client/storage/mod.rs +++ b/common/client-core/src/client/base_client/storage/mod.rs @@ -27,7 +27,7 @@ use crate::{ use nym_credential_storage::persistent_storage::PersistentStorage as PersistentCredentialStorage; pub use nym_client_core_gateways_storage as gateways_storage; -use nym_client_core_gateways_storage::{GatewaysDetailsStore, InMemGatewaysDetails}; +pub use nym_client_core_gateways_storage::{GatewaysDetailsStore, InMemGatewaysDetails}; #[cfg(all(not(target_arch = "wasm32"), feature = "fs-gateways-storage"))] pub use nym_client_core_gateways_storage::{OnDiskGatewaysDetails, StorageError}; diff --git a/common/wasm/client-core/Cargo.toml b/common/wasm/client-core/Cargo.toml index 3e8ec57163..5e6a701883 100644 --- a/common/wasm/client-core/Cargo.toml +++ b/common/wasm/client-core/Cargo.toml @@ -15,6 +15,7 @@ rand = { version = "0.7.3", features = ["wasm-bindgen"] } serde = { workspace = true, features = ["derive"] } serde-wasm-bindgen = { workspace = true } thiserror = { workspace = true } +time = { workspace = true, features = ["wasm-bindgen"] } tsify = { workspace = true, features = ["js"] } url = { workspace = true } wasm-bindgen = { workspace = true } diff --git a/nym-browser-extension/storage/Cargo.toml b/nym-browser-extension/storage/Cargo.toml index 037386774c..68ed96e26b 100644 --- a/nym-browser-extension/storage/Cargo.toml +++ b/nym-browser-extension/storage/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "extension-storage" -version = "1.2.4-rc.2" +version = "1.3.0-rc.0" edition = "2021" license = "Apache-2.0" repository = "https://github.com/nymtech/nym" diff --git a/nym-connect/desktop/src-tauri/src/config/mod.rs b/nym-connect/desktop/src-tauri/src/config/mod.rs index 2a855b82ba..83c72dde79 100644 --- a/nym-connect/desktop/src-tauri/src/config/mod.rs +++ b/nym-connect/desktop/src-tauri/src/config/mod.rs @@ -6,7 +6,9 @@ use crate::config::template::CONFIG_TEMPLATE; use crate::config::upgrade::try_upgrade_config; use crate::error::{BackendError, Result}; use nym_client_core::client::base_client::non_wasm_helpers::setup_fs_gateways_storage; -use nym_client_core::client::base_client::storage::{GatewayDetails, RemoteGatewayDetails}; +use nym_client_core::client::base_client::storage::gateways_storage::{ + GatewayDetails, RemoteGatewayDetails, +}; use nym_client_core::client::key_manager::persistence::OnDiskKeys; use nym_client_core::error::ClientCoreError; use nym_client_core::init::generate_new_client_keys; diff --git a/nym-connect/desktop/src-tauri/src/tasks.rs b/nym-connect/desktop/src-tauri/src/tasks.rs index 6431979fa2..d2f2e1c3a7 100644 --- a/nym-connect/desktop/src-tauri/src/tasks.rs +++ b/nym-connect/desktop/src-tauri/src/tasks.rs @@ -1,5 +1,7 @@ use futures::{channel::mpsc, StreamExt}; -use nym_client_core::client::base_client::storage::{GatewayDetails, GatewaysDetailsStore}; +use nym_client_core::client::base_client::storage::gateways_storage::{ + GatewayDetails, GatewaysDetailsStore, +}; use nym_client_core::{ client::base_client::storage::{MixnetClientStorage, OnDiskPersistent}, config::{GroupBy, TopologyStructure}, diff --git a/sdk/rust/nym-sdk/examples/manually_handle_storage.rs b/sdk/rust/nym-sdk/examples/manually_handle_storage.rs index 529a69688f..298502458c 100644 --- a/sdk/rust/nym-sdk/examples/manually_handle_storage.rs +++ b/sdk/rust/nym-sdk/examples/manually_handle_storage.rs @@ -1,9 +1,6 @@ -use nym_client_core::client::base_client::storage::{ - ActiveGateway, BadGateway, GatewayRegistration, GatewaysDetailsStore, -}; use nym_sdk::mixnet::{ - self, ClientKeys, EmptyReplyStorage, EphemeralCredentialStorage, KeyStore, MixnetClientStorage, - MixnetMessageSender, + self, ActiveGateway, BadGateway, ClientKeys, EmptyReplyStorage, EphemeralCredentialStorage, + GatewayRegistration, GatewaysDetailsStore, KeyStore, MixnetClientStorage, MixnetMessageSender, }; use nym_topology::provider_trait::async_trait; diff --git a/sdk/rust/nym-sdk/src/mixnet.rs b/sdk/rust/nym-sdk/src/mixnet.rs index 23c951119b..c89229fb28 100644 --- a/sdk/rust/nym-sdk/src/mixnet.rs +++ b/sdk/rust/nym-sdk/src/mixnet.rs @@ -44,7 +44,12 @@ pub use native_client::MixnetClient; pub use native_client::MixnetClientSender; pub use nym_client_core::{ client::{ - base_client::storage::{Ephemeral, MixnetClientStorage, OnDiskPersistent}, + base_client::storage::{ + gateways_storage::{ + ActiveGateway, BadGateway, GatewayRegistration, GatewaysDetailsStore, + }, + Ephemeral, MixnetClientStorage, OnDiskPersistent, + }, inbound_messages::InputMessage, key_manager::{ persistence::{InMemEphemeralKeys, KeyStore, OnDiskKeys}, diff --git a/sdk/typescript/codegen/contract-clients/package.json b/sdk/typescript/codegen/contract-clients/package.json index b4f91a948b..f429659cbb 100644 --- a/sdk/typescript/codegen/contract-clients/package.json +++ b/sdk/typescript/codegen/contract-clients/package.json @@ -1,6 +1,6 @@ { "name": "@nymproject/contract-clients", - "version": "1.2.4-rc.2", + "version": "1.3.0-rc.0", "description": "A client for all Nym smart contracts", "license": "Apache-2.0", "author": "Nym Technologies SA", diff --git a/sdk/typescript/docs/package.json b/sdk/typescript/docs/package.json index 4d0bb71c80..abdf67048a 100644 --- a/sdk/typescript/docs/package.json +++ b/sdk/typescript/docs/package.json @@ -1,6 +1,6 @@ { "name": "@nymproject/ts-sdk-docs", - "version": "1.2.4-rc.2", + "version": "1.3.0-rc.0", "description": "Nym Typescript SDK Docs", "license": "Apache-2.0", "author": "Nym Technologies SA", diff --git a/sdk/typescript/packages/mix-fetch-node/package.json b/sdk/typescript/packages/mix-fetch-node/package.json index 3367b87244..e1618cb318 100644 --- a/sdk/typescript/packages/mix-fetch-node/package.json +++ b/sdk/typescript/packages/mix-fetch-node/package.json @@ -1,6 +1,6 @@ { "name": "@nymproject/mix-fetch-node", - "version": "1.2.4-rc.2", + "version": "1.3.0-rc.0", "description": "This package is a drop-in replacement for `fetch` in NodeJS to send HTTP requests over the Nym Mixnet.", "license": "Apache-2.0", "author": "Nym Technologies SA", diff --git a/sdk/typescript/packages/mix-fetch/package.json b/sdk/typescript/packages/mix-fetch/package.json index 381ea96372..9af4e116f2 100644 --- a/sdk/typescript/packages/mix-fetch/package.json +++ b/sdk/typescript/packages/mix-fetch/package.json @@ -1,6 +1,6 @@ { "name": "@nymproject/mix-fetch", - "version": "1.2.4-rc.2", + "version": "1.3.0-rc.0", "description": "This package is a drop-in replacement for `fetch` to send HTTP requests over the Nym Mixnet.", "license": "Apache-2.0", "author": "Nym Technologies SA", diff --git a/sdk/typescript/packages/node-tester/package.json b/sdk/typescript/packages/node-tester/package.json index eb377423bd..de487b0729 100644 --- a/sdk/typescript/packages/node-tester/package.json +++ b/sdk/typescript/packages/node-tester/package.json @@ -1,6 +1,6 @@ { "name": "@nymproject/node-tester", - "version": "1.2.4-rc.2", + "version": "1.3.0-rc.0", "description": "This package provides a tester that can send test packets to mixnode that is part of the Nym Mixnet.", "license": "Apache-2.0", "author": "Nym Technologies SA", diff --git a/sdk/typescript/packages/nodejs-client/package.json b/sdk/typescript/packages/nodejs-client/package.json index e8df393fc4..7cd003087c 100644 --- a/sdk/typescript/packages/nodejs-client/package.json +++ b/sdk/typescript/packages/nodejs-client/package.json @@ -1,6 +1,6 @@ { "name": "@nymproject/nodejs-client", - "version": "1.2.4-rc.2", + "version": "1.3.0-rc.0", "license": "Apache-2.0", "author": "Nym Technologies SA", "files": [ diff --git a/sdk/typescript/packages/sdk-react/package.json b/sdk/typescript/packages/sdk-react/package.json index 6a163d7269..e67263157f 100644 --- a/sdk/typescript/packages/sdk-react/package.json +++ b/sdk/typescript/packages/sdk-react/package.json @@ -1,6 +1,6 @@ { "name": "@nymproject/sdk-react", - "version": "1.2.4-rc.2", + "version": "1.3.0-rc.0", "license": "Apache-2.0", "author": "Nym Technologies SA", "files": [ diff --git a/sdk/typescript/packages/sdk/package.json b/sdk/typescript/packages/sdk/package.json index fabc99574a..0a416329f4 100644 --- a/sdk/typescript/packages/sdk/package.json +++ b/sdk/typescript/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nymproject/sdk", - "version": "1.2.4-rc.2", + "version": "1.3.0-rc.0", "license": "Apache-2.0", "author": "Nym Technologies SA", "files": [ diff --git a/wasm/client/Cargo.toml b/wasm/client/Cargo.toml index 6961325d61..2232c88877 100644 --- a/wasm/client/Cargo.toml +++ b/wasm/client/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "nym-client-wasm" authors = ["Dave Hrycyszyn ", "Jedrzej Stuczynski "] -version = "1.2.4-rc.2" +version = "1.3.0-rc.0" edition = "2021" keywords = ["nym", "sphinx", "wasm", "webassembly", "privacy", "client"] license = "Apache-2.0" diff --git a/wasm/mix-fetch/Cargo.toml b/wasm/mix-fetch/Cargo.toml index 336cee63e3..373b6d423f 100644 --- a/wasm/mix-fetch/Cargo.toml +++ b/wasm/mix-fetch/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "mix-fetch-wasm" authors = ["Jedrzej Stuczynski "] -version = "1.2.4-rc.2" +version = "1.3.0-rc.0" edition = "2021" keywords = ["nym", "fetch", "wasm", "webassembly", "privacy"] license = "Apache-2.0" diff --git a/wasm/node-tester/Cargo.toml b/wasm/node-tester/Cargo.toml index 6a3d8126e7..fd295cd0e3 100644 --- a/wasm/node-tester/Cargo.toml +++ b/wasm/node-tester/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "nym-node-tester-wasm" authors = ["Jedrzej Stuczynski "] -version = "1.2.4-rc.2" +version = "1.3.0-rc.0" edition = "2021" keywords = ["nym", "sphinx", "webassembly", "privacy", "tester"] license = "Apache-2.0" diff --git a/wasm/node-tester/src/tester.rs b/wasm/node-tester/src/tester.rs index 1da2ee7a4f..790c80257d 100644 --- a/wasm/node-tester/src/tester.rs +++ b/wasm/node-tester/src/tester.rs @@ -20,16 +20,16 @@ use tokio::sync::Mutex as AsyncMutex; use tsify::Tsify; use wasm_bindgen::prelude::*; use wasm_bindgen_futures::future_to_promise; +use wasm_client_core::client::base_client::storage::gateways_storage::GatewayDetails; use wasm_client_core::client::mix_traffic::transceiver::PacketRouter; use wasm_client_core::helpers::{ current_network_topology_async, setup_from_topology, EphemeralCredentialStorage, }; -use wasm_client_core::init::types::GatewayDetails; use wasm_client_core::storage::ClientStorage; use wasm_client_core::topology::SerializableNymTopology; use wasm_client_core::{ - nym_task, BandwidthController, GatewayClient, GatewayConfig, IdentityKey, InitialisationResult, - ManagedKeys, NodeIdentity, NymTopology, QueryReqwestRpcNyxdClient, Recipient, + nym_task, BandwidthController, ClientKeys, GatewayClient, GatewayConfig, IdentityKey, + InitialisationResult, NodeIdentity, NymTopology, QueryReqwestRpcNyxdClient, Recipient, }; use wasm_utils::check_promise_result; use wasm_utils::error::PromisableResult; @@ -77,10 +77,10 @@ pub struct NymNodeTesterBuilder { Option>, } -fn address(keys: &ManagedKeys, gateway_identity: NodeIdentity) -> Recipient { +fn address(keys: &ClientKeys, gateway_identity: NodeIdentity) -> Recipient { Recipient::new( - *keys.identity_public_key(), - *keys.encryption_public_key(), + *keys.identity_keypair().public_key(), + *keys.encryption_keypair().public_key(), gateway_identity, ) } @@ -161,13 +161,14 @@ impl NymNodeTesterBuilder { let client_store = ClientStorage::new_async(&storage_id, None).await?; let initialisation_result = self.gateway_info(&client_store).await?; - let GatewayDetails::Configured(gateway_endpoint) = initialisation_result.gateway_details + let GatewayDetails::Remote(gateway_info) = + initialisation_result.gateway_registration.details else { // don't bother supporting it panic!("unsupported custom gateway configuration in wasm node tester") }; - let managed_keys = initialisation_result.managed_keys; + let managed_keys = initialisation_result.client_keys; let (mixnet_message_sender, mixnet_message_receiver) = mpsc::unbounded(); let (ack_sender, ack_receiver) = mpsc::unbounded(); @@ -179,8 +180,7 @@ impl NymNodeTesterBuilder { gateway_task.fork("packet_router"), ); - let gateway_config: GatewayConfig = gateway_endpoint.try_into()?; - let gateway_identity = gateway_config.gateway_identity; + let gateway_identity = gateway_info.gateway_id; let mut gateway_client = if let Some(existing_client) = initialisation_result.authenticated_ephemeral_client { @@ -190,10 +190,15 @@ impl NymNodeTesterBuilder { gateway_task, ) } else { + let cfg = GatewayConfig::new( + gateway_info.gateway_id, + Some(gateway_info.gateway_owner_address.to_string()), + gateway_info.gateway_listener.to_string(), + ); GatewayClient::new( - gateway_config, + cfg, managed_keys.identity_keypair(), - Some(managed_keys.must_get_gateway_shared_key()), + Some(gateway_info.derived_aes128_ctr_blake3_hmac_keys), packet_router, self.bandwidth_controller.take(), gateway_task,