diff --git a/nym-wallet/src-tauri/examples/sandbox_families_smoke.rs b/nym-wallet/src-tauri/examples/sandbox_families_smoke.rs index ce621cce2a..c5bd0d9b8c 100644 --- a/nym-wallet/src-tauri/examples/sandbox_families_smoke.rs +++ b/nym-wallet/src-tauri/examples/sandbox_families_smoke.rs @@ -361,9 +361,58 @@ async fn poll_membership(client: &Client, node_id: NodeId, want: Option Smoke { + let account = AccountId::from_str(addr)?; + let nym_node = client.nyxd.get_owned_nymnode(&account).await?.details; + let legacy = client + .nyxd + .get_owned_mixnode(&account) + .await? + .mixnode_details; + let gateway = client.nyxd.get_owned_gateway(&account).await?.gateway; + + println!("\n=== BOND CHECK: {addr} ==="); + println!( + "mixnet contract: {}", + client + .nyxd + .mixnet_contract_address() + .map(|a| a.to_string()) + .unwrap_or_default() + ); + match (&nym_node, &legacy) { + (Some(d), _) => println!( + "✅ controls nym-node → node_id = {}", + d.bond_information.node_id + ), + (_, Some(m)) => println!( + "✅ controls legacy mixnode → node_id (mix_id) = {}", + m.bond_information.mix_id + ), + (None, None) => println!("❌ controls no nym-node and no mixnode"), + } + println!( + " gateway: {}", + if gateway.is_some() { + "yes (gateways can't be family members)" + } else { + "none" + } + ); + Ok(()) +} + #[tokio::main] async fn main() -> Smoke { - let do_write = std::env::args().any(|a| a == "--write"); + let args: Vec = std::env::args().collect(); + let do_write = args.iter().any(|a| a == "--write"); + let bond_check_addr = args + .iter() + .position(|a| a == "--bond-check") + .and_then(|i| args.get(i + 1)) + .cloned(); let mnemonic = load_mnemonic()?; let network: NymNetworkDetails = WalletNetwork::SANDBOX.into(); @@ -376,6 +425,11 @@ async fn main() -> Smoke { client.nyxd.node_families_contract_address() ); + if let Some(addr) = bond_check_addr { + bond_check(&client, &addr).await?; + return Ok(()); + } + read_smoke(&client).await?; if do_write {