post rebasing fixes
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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<()> {
|
||||
|
||||
@@ -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
@@ -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,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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user