Files
nym/sdk/rust/nym-sdk/examples/bandwidth.rs
T
Jędrzej Stuczyński 552c99389e fixed nym-sdk examples
2023-05-09 10:46:51 +01:00

43 lines
1.3 KiB
Rust

use nym_sdk::mixnet;
#[tokio::main]
async fn main() {
nym_bin_common::logging::setup_logging();
// right now, only sandbox has coconut setup
// this should be run from the `sdk/rust/nym-sdk` directory
dotenvy::from_path("../../../envs/sandbox.env").unwrap();
let sandbox_network = mixnet::NymNetworkDetails::new_from_env();
let mixnet_client = mixnet::MixnetClientBuilder::new_ephemeral()
.network_details(sandbox_network)
.enable_credentials_mode()
.build()
.await
.unwrap();
let bandwidth_client = mixnet_client
.create_bandwidth_client(String::from("very secret mnemonic"))
.unwrap();
// Get a bandwidth credential worth 1000000 unym for the mixnet_client
bandwidth_client.acquire(1000000).await.unwrap();
// Connect using paid bandwidth credential
let mut client = mixnet_client.connect_to_mixnet().await.unwrap();
let our_address = client.nym_address();
// Send a message throughout the mixnet to ourselves
client.send_str(*our_address, "hello there").await;
println!("Waiting for message");
if let Some(received) = client.wait_for_messages().await {
for r in received {
println!("Received: {}", String::from_utf8_lossy(&r.message));
}
}
client.disconnect().await;
}