Retry works by checking if an non-protocol error happened during the call, if so an attempt to take a write lock on the client is made and a new client attempted if both operationare succesfull the old_client is substituted with the new one. Timeout is a single parameter for connect,read and write TCP timeouts, special handling is required for the following situation: cannot set a timeout with a proxy and cannot set timeout with multipl SocketAddrs Since configurations parameter grow, a Config struct with a builder has been introduced Some new errors variant has been introduced Errors in reading input in the reader thread now warns other eventual threads with ChannelMessage::Error Add github actions equivalent to travis cause travis is slow
24 lines
822 B
Rust
24 lines
822 B
Rust
extern crate electrum_client;
|
|
|
|
use electrum_client::{Client, ConfigBuilder, ElectrumApi, Socks5Config};
|
|
|
|
fn main() {
|
|
// NOTE: This assumes Tor is running localy, with an unauthenticated Socks5 listening at
|
|
// localhost:9050
|
|
let proxy = Socks5Config::new("127.0.0.1:9050");
|
|
let config = ConfigBuilder::new().socks5(Some(proxy)).unwrap().build();
|
|
|
|
let client = Client::from_config("tcp://explorernuoc63nb.onion:110", config.clone()).unwrap();
|
|
let res = client.server_features();
|
|
println!("{:#?}", res);
|
|
|
|
// works both with onion v2/v3 (if your Tor supports them)
|
|
let client = Client::from_config(
|
|
"tcp://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion:110",
|
|
config,
|
|
)
|
|
.unwrap();
|
|
let res = client.server_features();
|
|
println!("{:#?}", res);
|
|
}
|