114d92f93f
* changed NymConfigTemplate trait to call 'template' by reference * network requester lib * introduced generic parameter to 'MixTrafficController' to allow non-remote gateways * allowing for custom gateway sender * types cleanup * minor gateway cmds refactor + initial NR work * wip * running a NR inside gateway note: this NR isnt tied to the gateway yet * rebase fixes * propagating same shutdown handle * wip * starting NR with appropriate local transceiver * fixed premature shutdown * wiring up PacketRouter * both ends wired together * actually working so much cleanup to do now * started removing dead code * wip * temp: hardcode gateway * further cleanup * fixed build of other binaries * setup-network-requester subcmd * overriding NR config in gateway init/run * wip making it wasm-compatible [again] * refactored 'GatewaySetup' * clippy and friends * removed debug code * rust 1.72 lints * ensuring local gateway is available + some comments * correctly putting network requester data in the same underlying details struct * improved gateway errors * changed 'network_requester_config' deserialization * missing clap annotation for 'enabled' flag in 'setup-network-requester' command * saving config file after 'setup-network-requester' * removed dead code * review comments * make embedded NR wait for gateway to come online (for at most 70min) * fixed shutdown on successful gateway wait * updated NR config override
43 lines
1.4 KiB
Rust
43 lines
1.4 KiB
Rust
use futures::StreamExt;
|
|
use nym_network_defaults::setup_env;
|
|
use nym_sdk::mixnet;
|
|
use nym_sdk::mixnet::MixnetMessageSender;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> anyhow::Result<()> {
|
|
nym_bin_common::logging::setup_logging();
|
|
// right now, only sandbox has coconut setup
|
|
// this should be run from the `sdk/rust/nym-sdk` directory
|
|
setup_env(Some("../../../envs/sandbox.env"));
|
|
|
|
let sandbox_network = mixnet::NymNetworkDetails::new_from_env();
|
|
let mnemonic = String::from("my super secret mnemonic");
|
|
|
|
let mixnet_client = mixnet::MixnetClientBuilder::new_ephemeral()
|
|
.network_details(sandbox_network)
|
|
.enable_credentials_mode()
|
|
.build()?;
|
|
|
|
let bandwidth_client = mixnet_client.create_bandwidth_client(mnemonic)?;
|
|
|
|
// Get a bandwidth credential worth 1000000 unym for the mixnet_client
|
|
bandwidth_client.acquire(1000000).await?;
|
|
|
|
// Connect using paid bandwidth credential
|
|
let mut client = mixnet_client.connect_to_mixnet().await?;
|
|
|
|
let our_address = client.nym_address();
|
|
|
|
// Send a message throughout the mixnet to ourselves
|
|
client
|
|
.send_plain_message(*our_address, "hello there")
|
|
.await?;
|
|
|
|
println!("Waiting for message");
|
|
let received = client.next().await.unwrap();
|
|
println!("Received: {}", String::from_utf8_lossy(&received.message));
|
|
|
|
client.disconnect().await;
|
|
Ok(())
|
|
}
|