Struct electrum_client::client::Client
source · pub struct Client { /* private fields */ }
Expand description
Generalized Electrum client that supports multiple backends. Can re-instantiate client_type if connections drops
Implementations§
source§impl Client
impl Client
sourcepub fn new(url: &str) -> Result<Self, Error>
pub fn new(url: &str) -> Result<Self, Error>
Default constructor supporting multiple backends by providing a prefix
Supported prefixes are:
- tcp:// for a TCP plaintext client.
- ssl:// for an SSL-encrypted client. The server certificate will be verified.
If no prefix is specified, then tcp://
is assumed.
See Client::from_config for more configuration options
Examples found in repository?
More examples
sourcepub fn from_config(url: &str, config: Config) -> Result<Self, Error>
pub fn from_config(url: &str, config: Config) -> Result<Self, Error>
Generic constructor that supports multiple backends and allows configuration through the Config
Examples found in repository?
examples/tor.rs (line 11)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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)).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);
}
Trait Implementations§
source§impl ElectrumApi for Client
impl ElectrumApi for Client
source§fn raw_call(
&self,
method_name: &str,
params: impl IntoIterator<Item = Param>
) -> Result<Value, Error>
fn raw_call( &self, method_name: &str, params: impl IntoIterator<Item = Param> ) -> Result<Value, Error>
Executes the requested API call returning the raw answer.
source§fn batch_call(&self, batch: &Batch) -> Result<Vec<Value>, Error>
fn batch_call(&self, batch: &Batch) -> Result<Vec<Value>, Error>
Execute a queue of calls stored in a
Batch
struct. Returns
Ok()
only if all of the calls are successful. The order of the JSON Value
s returned
reflects the order in which the calls were made on the Batch
struct.source§fn block_headers_subscribe_raw(&self) -> Result<RawHeaderNotification, Error>
fn block_headers_subscribe_raw(&self) -> Result<RawHeaderNotification, Error>
Subscribes to notifications for new block headers, by sending a
blockchain.headers.subscribe
call and
returns the current tip as raw bytes instead of deserializing them.source§fn block_headers_pop_raw(&self) -> Result<Option<RawHeaderNotification>, Error>
fn block_headers_pop_raw(&self) -> Result<Option<RawHeaderNotification>, Error>
Tries to pop one queued notification for a new block header that we might have received.
Returns a the header in raw bytes if a notification is found in the queue, None otherwise.
source§fn block_header_raw(&self, height: usize) -> Result<Vec<u8>, Error>
fn block_header_raw(&self, height: usize) -> Result<Vec<u8>, Error>
Gets the raw bytes of block header for height
height
.source§fn block_headers(
&self,
start_height: usize,
count: usize
) -> Result<GetHeadersRes, Error>
fn block_headers( &self, start_height: usize, count: usize ) -> Result<GetHeadersRes, Error>
Tries to fetch
count
block headers starting from start_height
.source§fn estimate_fee(&self, number: usize) -> Result<f64, Error>
fn estimate_fee(&self, number: usize) -> Result<f64, Error>
Estimates the fee required in Bitcoin per kilobyte to confirm a transaction in
number
blocks.source§fn relay_fee(&self) -> Result<f64, Error>
fn relay_fee(&self) -> Result<f64, Error>
Returns the minimum accepted fee by the server’s node in Bitcoin, not Satoshi.
source§fn script_subscribe(
&self,
script: &Script
) -> Result<Option<ScriptStatus>, Error>
fn script_subscribe( &self, script: &Script ) -> Result<Option<ScriptStatus>, Error>
Subscribes to notifications for activity on a specific scriptPubKey. Read more
source§fn batch_script_subscribe<'s, I>(
&self,
scripts: I
) -> Result<Vec<Option<ScriptStatus>>, Error>where
I: IntoIterator + Clone,
I::Item: Borrow<&'s Script>,
fn batch_script_subscribe<'s, I>( &self, scripts: I ) -> Result<Vec<Option<ScriptStatus>>, Error>where I: IntoIterator + Clone, I::Item: Borrow<&'s Script>,
Batch version of
script_subscribe
. Read moresource§fn script_unsubscribe(&self, script: &Script) -> Result<bool, Error>
fn script_unsubscribe(&self, script: &Script) -> Result<bool, Error>
Subscribes to notifications for activity on a specific scriptPubKey. Read more
source§fn script_pop(&self, script: &Script) -> Result<Option<ScriptStatus>, Error>
fn script_pop(&self, script: &Script) -> Result<Option<ScriptStatus>, Error>
Tries to pop one queued notification for a the requested script. Returns
None
if there are no items in the queue.source§fn script_get_balance(&self, script: &Script) -> Result<GetBalanceRes, Error>
fn script_get_balance(&self, script: &Script) -> Result<GetBalanceRes, Error>
Returns the balance for a scriptPubKey.
source§fn batch_script_get_balance<'s, I>(
&self,
scripts: I
) -> Result<Vec<GetBalanceRes>, Error>where
I: IntoIterator + Clone,
I::Item: Borrow<&'s Script>,
fn batch_script_get_balance<'s, I>( &self, scripts: I ) -> Result<Vec<GetBalanceRes>, Error>where I: IntoIterator + Clone, I::Item: Borrow<&'s Script>,
Batch version of
script_get_balance
. Read moresource§fn script_get_history(
&self,
script: &Script
) -> Result<Vec<GetHistoryRes>, Error>
fn script_get_history( &self, script: &Script ) -> Result<Vec<GetHistoryRes>, Error>
Returns the history for a scriptPubKey
source§fn batch_script_get_history<'s, I>(
&self,
scripts: I
) -> Result<Vec<Vec<GetHistoryRes>>, Error>where
I: IntoIterator + Clone,
I::Item: Borrow<&'s Script>,
fn batch_script_get_history<'s, I>( &self, scripts: I ) -> Result<Vec<Vec<GetHistoryRes>>, Error>where I: IntoIterator + Clone, I::Item: Borrow<&'s Script>,
Batch version of
script_get_history
. Read moresource§fn script_list_unspent(
&self,
script: &Script
) -> Result<Vec<ListUnspentRes>, Error>
fn script_list_unspent( &self, script: &Script ) -> Result<Vec<ListUnspentRes>, Error>
Returns the list of unspent outputs for a scriptPubKey
source§fn batch_script_list_unspent<'s, I>(
&self,
scripts: I
) -> Result<Vec<Vec<ListUnspentRes>>, Error>where
I: IntoIterator + Clone,
I::Item: Borrow<&'s Script>,
fn batch_script_list_unspent<'s, I>( &self, scripts: I ) -> Result<Vec<Vec<ListUnspentRes>>, Error>where I: IntoIterator + Clone, I::Item: Borrow<&'s Script>,
Batch version of
script_list_unspent
. Read moresource§fn transaction_get_raw(&self, txid: &Txid) -> Result<Vec<u8>, Error>
fn transaction_get_raw(&self, txid: &Txid) -> Result<Vec<u8>, Error>
Gets the raw bytes of a transaction with
txid
. Returns an error if not found.source§fn batch_transaction_get_raw<'t, I>(
&self,
txids: I
) -> Result<Vec<Vec<u8>>, Error>where
I: IntoIterator + Clone,
I::Item: Borrow<&'t Txid>,
fn batch_transaction_get_raw<'t, I>( &self, txids: I ) -> Result<Vec<Vec<u8>>, Error>where I: IntoIterator + Clone, I::Item: Borrow<&'t Txid>,
Batch version of
transaction_get_raw
. Read moresource§fn batch_block_header_raw<'s, I>(
&self,
heights: I
) -> Result<Vec<Vec<u8>>, Error>where
I: IntoIterator + Clone,
I::Item: Borrow<u32>,
fn batch_block_header_raw<'s, I>( &self, heights: I ) -> Result<Vec<Vec<u8>>, Error>where I: IntoIterator + Clone, I::Item: Borrow<u32>,
Batch version of
block_header_raw
. Read moresource§fn batch_estimate_fee<'s, I>(&self, numbers: I) -> Result<Vec<f64>, Error>where
I: IntoIterator + Clone,
I::Item: Borrow<usize>,
fn batch_estimate_fee<'s, I>(&self, numbers: I) -> Result<Vec<f64>, Error>where I: IntoIterator + Clone, I::Item: Borrow<usize>,
Batch version of
estimate_fee
. Read moresource§fn transaction_broadcast_raw(&self, raw_tx: &[u8]) -> Result<Txid, Error>
fn transaction_broadcast_raw(&self, raw_tx: &[u8]) -> Result<Txid, Error>
Broadcasts the raw bytes of a transaction to the network.
source§fn transaction_get_merkle(
&self,
txid: &Txid,
height: usize
) -> Result<GetMerkleRes, Error>
fn transaction_get_merkle( &self, txid: &Txid, height: usize ) -> Result<GetMerkleRes, Error>
Returns the merkle path for the transaction
txid
confirmed in the block at height
.source§fn server_features(&self) -> Result<ServerFeaturesRes, Error>
fn server_features(&self) -> Result<ServerFeaturesRes, Error>
Returns the capabilities of the server.
source§fn ping(&self) -> Result<(), Error>
fn ping(&self) -> Result<(), Error>
Pings the server. This method can also be used as a “dummy” call to trigger the processing
of incoming block header or script notifications.
source§fn block_header(&self, height: usize) -> Result<Header, Error>
fn block_header(&self, height: usize) -> Result<Header, Error>
Gets the block header for height
height
.source§fn block_headers_subscribe(&self) -> Result<HeaderNotification, Error>
fn block_headers_subscribe(&self) -> Result<HeaderNotification, Error>
Subscribes to notifications for new block headers, by sending a
blockchain.headers.subscribe
call.source§fn block_headers_pop(&self) -> Result<Option<HeaderNotification>, Error>
fn block_headers_pop(&self) -> Result<Option<HeaderNotification>, Error>
Tries to pop one queued notification for a new block header that we might have received.
Returns
None
if there are no items in the queue.source§fn transaction_get(&self, txid: &Txid) -> Result<Transaction, Error>
fn transaction_get(&self, txid: &Txid) -> Result<Transaction, Error>
Gets the transaction with
txid
. Returns an error if not found.source§fn batch_transaction_get<'t, I>(
&self,
txids: I
) -> Result<Vec<Transaction>, Error>where
I: IntoIterator + Clone,
I::Item: Borrow<&'t Txid>,
fn batch_transaction_get<'t, I>( &self, txids: I ) -> Result<Vec<Transaction>, Error>where I: IntoIterator + Clone, I::Item: Borrow<&'t Txid>,
Batch version of
transaction_get
. Read moresource§fn batch_block_header<I>(&self, heights: I) -> Result<Vec<Header>, Error>where
I: IntoIterator + Clone,
I::Item: Borrow<u32>,
fn batch_block_header<I>(&self, heights: I) -> Result<Vec<Header>, Error>where I: IntoIterator + Clone, I::Item: Borrow<u32>,
Batch version of
block_header
. Read moresource§fn transaction_broadcast(&self, tx: &Transaction) -> Result<Txid, Error>
fn transaction_broadcast(&self, tx: &Transaction) -> Result<Txid, Error>
Broadcasts a transaction to the network.
Auto Trait Implementations§
impl RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnwindSafe for Client
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more