post rebasing fixes

This commit is contained in:
Jędrzej Stuczyński
2025-05-27 11:47:09 +01:00
parent 08ffc9f86b
commit e8e75c6b03
6 changed files with 39 additions and 20 deletions
@@ -157,6 +157,7 @@ pub async fn generate(args: Args) {
minimum: args.minimum_interval_operating_cost.amount.into(),
maximum: args.maximum_interval_operating_cost.amount.into(),
},
key_validity_in_epochs: None,
};
debug!("instantiate_msg: {:?}", instantiate_msg);
+1 -3
View File
@@ -104,9 +104,7 @@ fn read_pem_file<P: AsRef<Path>>(filepath: P) -> io::Result<ZeroizingPem> {
let mut pem_bytes = File::open(filepath)?;
let mut buf = Zeroizing::new(Vec::new());
pem_bytes.read_to_end(&mut buf)?;
pem::parse(&buf)
.map(ZeroizingPem)
.map_err(io::Error::other)
pem::parse(&buf).map(ZeroizingPem).map_err(io::Error::other)
}
fn write_pem_file<P: AsRef<Path>>(filepath: P, mut data: Vec<u8>, tag: &str) -> io::Result<()> {
+21 -8
View File
@@ -19,7 +19,7 @@ use nym_client_core::init::{
use nym_sphinx::addressing::clients::Recipient;
use nym_sphinx::anonymous_replies::requests::AnonymousSenderTag;
use nym_topology::wasm_helpers::WasmFriendlyNymTopology;
use nym_topology::{NymTopology, RoutingNode};
use nym_topology::{NymTopology, NymTopologyMetadata, RoutingNode};
use nym_validator_client::client::IdentityKey;
use nym_validator_client::{NymApiClient, UserAgent};
use rand::thread_rng;
@@ -29,7 +29,7 @@ use wasm_bindgen_futures::future_to_promise;
use wasm_utils::error::PromisableResult;
pub use nym_credential_storage::ephemeral_storage::EphemeralStorage as EphemeralCredentialStorage;
use wasm_utils::console_log;
use wasm_utils::{console_log, console_warn};
// don't get too excited about the name, under the hood it's just a big fat placeholder
// with no disk_persistence
@@ -73,14 +73,27 @@ pub async fn current_network_topology_async(
let api_client = NymApiClient::new(url);
let rewarded_set = api_client.get_current_rewarded_set().await?;
let mixnodes = api_client
.get_all_basic_active_mixing_assigned_nodes()
let mixnodes_res = api_client
.get_all_basic_active_mixing_assigned_nodes_with_metadata()
.await?;
let gateways = api_client.get_all_basic_entry_assigned_nodes().await?;
let metadata = mixnodes_res.metadata;
let mixnodes = mixnodes_res.nodes;
let mut topology = NymTopology::new_empty(rewarded_set);
topology.add_skimmed_nodes(&mixnodes);
topology.add_skimmed_nodes(&gateways);
let gateways_res = api_client.get_all_basic_entry_assigned_nodes_v2().await?;
if gateways_res.metadata != metadata {
console_warn!("inconsistent nodes metadata between mixnodes and gateways calls! {metadata:?} and {:?}", gateways_res.metadata);
return Err(WasmCoreError::UnavailableNetworkTopology);
}
let gateways = gateways_res.nodes;
let topology = NymTopology::new(
NymTopologyMetadata::new(metadata.rotation_id, metadata.absolute_epoch_id),
rewarded_set,
Vec::new(),
)
.with_skimmed_nodes(&mixnodes)
.with_skimmed_nodes(&gateways);
Ok(topology.into())
}
+1 -1
View File
@@ -1,2 +1,2 @@
#!/bin/sh
sqlite3 -init settings.sql /Users/jedrzej/workspace/nym/target/debug/build/nym-api-6c1428b6c3c63c2f/out/nym-api-example.sqlite
sqlite3 -init settings.sql /Users/jedrzej/workspace/nym/target/debug/build/nym-api-10a9906acce21392/out/nym-api-example.sqlite
+10 -6
View File
@@ -10,7 +10,7 @@ use nym_network_defaults::setup_env;
use nym_network_defaults::var_names::NYM_API;
use nym_sdk::mixnet::{self, MixnetClient};
use nym_sphinx::chunking::monitoring;
use nym_topology::{HardcodedTopologyProvider, NymTopology};
use nym_topology::{HardcodedTopologyProvider, NymTopology, NymTopologyMetadata};
use std::fs::File;
use std::io::Write;
use std::sync::LazyLock;
@@ -167,12 +167,16 @@ async fn nym_topology_from_env() -> anyhow::Result<NymTopology> {
let rewarded_set = client.get_current_rewarded_set().await?;
// just get all nodes to make our lives easier because it's just one query for the whole duration of the monitor (?)
let nodes = client.get_all_basic_nodes().await?;
let nodes_response = client.get_all_basic_nodes_with_metadata().await?;
let nodes = nodes_response.nodes;
let metadata = nodes_response.metadata;
let mut topology = NymTopology::new_empty(rewarded_set);
topology.add_skimmed_nodes(&nodes);
Ok(topology)
Ok(NymTopology::new(
NymTopologyMetadata::new(metadata.rotation_id, metadata.absolute_epoch_id),
rewarded_set,
Vec::new(),
)
.with_skimmed_nodes(&nodes))
}
#[tokio::main]
@@ -3,7 +3,7 @@
use nym_sdk::mixnet;
use nym_sdk::mixnet::MixnetMessageSender;
use nym_topology::{NymTopology, RoutingNode, SupportedRoles};
use nym_topology::{NymTopology, NymTopologyMetadata, RoutingNode, SupportedRoles};
#[tokio::main]
async fn main() {
@@ -76,7 +76,10 @@ async fn main() {
// during client initialisation to make sure we are able to send to ourselves : ) )
let gateways = starting_topology.topology.entry_capable_nodes();
let mut custom_topology = NymTopology::new_empty(rewarded_set);
// you should have obtained valid metadata information, in particular the key rotation ID!
let metadata = NymTopologyMetadata::new(u32::MAX, 123);
let mut custom_topology = NymTopology::new(metadata, rewarded_set, Vec::new());
custom_topology.add_routing_nodes(nodes);
custom_topology.add_routing_nodes(gateways);