Files
nym/sdk/rust/nym-sdk/examples/builder_with_storage.rs
T
Jon Häggblad b1121dabb9 Merge 4 tiny crates into nym-bin-common (#3065)
* Rename to bin-common

* Merge into new crate

* Merge 3 crates into bin-common

* WIP

* Move build.rs to the correct place

* regex nym_bin_common

* regex nym_bin_common::build_information

* regex nym_version_checker

* Update some explicit mod paths

* Makefile: add nym-connect-android

* Additional fixes

* rustfmt

* Update crate metadata

* Move completions crate into nym-bin-common

* Makefile: add examples

* Fix examples

* rustfmt
2023-02-21 11:30:23 +01:00

40 lines
1.2 KiB
Rust

use std::path::PathBuf;
use nym_sdk::mixnet;
#[tokio::main]
async fn main() {
nym_bin_common::logging::setup_logging();
// Specify some config options
let config_dir = PathBuf::from("/tmp/mixnet-client");
let storage_paths =
mixnet::StoragePaths::new_from_dir(mixnet::KeyMode::Keep, &config_dir).unwrap();
// Create the client with a storage backend, and enable it by giving it some paths
let client = mixnet::MixnetClientBuilder::new()
.enable_storage(storage_paths)
.build::<mixnet::ReplyStorage>()
.await
.unwrap();
// Now we connect to the mixnet, using ephemeral keys already created
let mut client = client.connect_to_mixnet().await.unwrap();
// Be able to get our client address
let our_address = client.nym_address();
println!("Our client nym address is: {our_address}");
// Send a message throught 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;
}