blob: 2599b648643ea6c285bc9134e96a2fe126215f70 [file] [log] [blame]
Mohammed Naser3415a2a2025-03-06 21:16:12 -05001use crate::transports::{Receiver, Sender, codec::JsonCodec};
2use futures_util::stream::StreamExt;
3use jsonrpsee::core::client::{TransportReceiverT, TransportSenderT};
4use std::io::Error;
5use tokio::net::{TcpStream, ToSocketAddrs};
6use tokio_util::codec::Framed;
7
8pub async fn connect(
9 socket: impl ToSocketAddrs,
10) -> Result<(impl TransportSenderT + Send, impl TransportReceiverT + Send), Error> {
11 let connection = TcpStream::connect(socket).await?;
12 let (sink, stream) = Framed::new(connection, JsonCodec).split();
13
14 let sender = Sender { inner: sink };
15 let receiver = Receiver { inner: stream };
16
17 Ok((sender, receiver))
18}