further wasm fixes

This commit is contained in:
Jędrzej Stuczyński
2024-03-11 11:31:01 +00:00
parent 67c5a36894
commit a4e5b2af93
20 changed files with 49 additions and 37 deletions
Generated
+4 -4
View File
@@ -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",
@@ -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};
+1
View File
@@ -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 }
+1 -1
View File
@@ -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"
@@ -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;
+3 -1
View File
@@ -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},
@@ -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;
+6 -1
View File
@@ -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},
@@ -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",
+1 -1
View File
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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": [
@@ -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": [
+1 -1
View File
@@ -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": [
+1 -1
View File
@@ -1,7 +1,7 @@
[package]
name = "nym-client-wasm"
authors = ["Dave Hrycyszyn <futurechimp@users.noreply.github.com>", "Jedrzej Stuczynski <andrew@nymtech.net>"]
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"
+1 -1
View File
@@ -1,7 +1,7 @@
[package]
name = "mix-fetch-wasm"
authors = ["Jedrzej Stuczynski <andrew@nymtech.net>"]
version = "1.2.4-rc.2"
version = "1.3.0-rc.0"
edition = "2021"
keywords = ["nym", "fetch", "wasm", "webassembly", "privacy"]
license = "Apache-2.0"
+1 -1
View File
@@ -1,7 +1,7 @@
[package]
name = "nym-node-tester-wasm"
authors = ["Jedrzej Stuczynski <andrew@nymtech.net>"]
version = "1.2.4-rc.2"
version = "1.3.0-rc.0"
edition = "2021"
keywords = ["nym", "sphinx", "webassembly", "privacy", "tester"]
license = "Apache-2.0"
+17 -12
View File
@@ -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<BandwidthController<QueryReqwestRpcNyxdClient, EphemeralCredentialStorage>>,
}
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,