diff --git a/sdk/rust/nym-sdk/Cargo.toml b/sdk/rust/nym-sdk/Cargo.toml index 59bd347d2f..ffd74297f3 100644 --- a/sdk/rust/nym-sdk/Cargo.toml +++ b/sdk/rust/nym-sdk/Cargo.toml @@ -49,6 +49,10 @@ nym-sphinx-addressing = { workspace = true } nym-bin-common = { workspace = true, features = [ "basic_tracing", ] } + +nym-ip-packet-client = { git = "https://github.com/nymtech/nym-vpn-client", rev = "5c3aacfce158aac73cbd3fd905d90269f8bacc01" } # max/re-export-test https://github.com/nymtech/nym-vpn-client/commit/5c3aacfce158aac73cbd3fd905d90269f8bacc01 +# nym-gateway-directory + bytecodec = { workspace = true } httpcodec = { workspace = true } bytes = { workspace = true } diff --git a/sdk/rust/nym-sdk/src/stream_wrapper.rs b/sdk/rust/nym-sdk/src/stream_wrapper.rs index 957c24fec2..c032cd6842 100644 --- a/sdk/rust/nym-sdk/src/stream_wrapper.rs +++ b/sdk/rust/nym-sdk/src/stream_wrapper.rs @@ -1,6 +1,7 @@ //! TODO mod mixnet_stream_wrapper; +mod mixnet_stream_wrapper_ipr; pub use mixnet_stream_wrapper::{MixSocket, MixStream, MixStreamReader, MixStreamWriter}; -// pub use stream_wrapper::StreamWrapperIPR; +// pub use mixnet_stream_wrapper_ipr::{} TODO diff --git a/sdk/rust/nym-sdk/src/stream_wrapper/mixnet_stream_wrapper_ipr.rs b/sdk/rust/nym-sdk/src/stream_wrapper/mixnet_stream_wrapper_ipr.rs new file mode 100644 index 0000000000..2b0b122da5 --- /dev/null +++ b/sdk/rust/nym-sdk/src/stream_wrapper/mixnet_stream_wrapper_ipr.rs @@ -0,0 +1,22 @@ +use super::mixnet_stream_wrapper::{MixSocket, MixStream, MixStreamReader, MixStreamWriter}; +use futures::StreamExt; +// use nym_gateway_directory::IpPacketRouterAddress; +// use nym_ip_packet_requests::{ +// codec::MultiIpPacketCodec, +// v8::{ +// request::{ControlRequest, IpPacketRequest, IpPacketRequestData}, +// response::{ +// ConnectResponse, ConnectResponseReply, ControlResponse, InfoLevel, IpPacketResponse, +// IpPacketResponseData, +// }, +// }, +// IpPair, +// }; +use nym_sphinx::receiver::ReconstructedMessage; +use std::io; +use std::pin::Pin; +use std::task::{Context, Poll}; +use std::time::Duration; +use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, ReadBuf}; +use tokio_util::codec::FramedRead; +use tracing::{debug, error, info, warn};