Trait electrum_client::ElectrumApi
source · pub trait ElectrumApi {
Show 33 methods
// Required methods
fn raw_call(
&self,
method_name: &str,
params: impl IntoIterator<Item = Param>,
) -> Result<Value, Error>;
fn batch_call(&self, batch: &Batch) -> Result<Vec<Value>, Error>;
fn block_headers_subscribe_raw(
&self,
) -> Result<RawHeaderNotification, Error>;
fn block_headers_pop_raw(
&self,
) -> Result<Option<RawHeaderNotification>, Error>;
fn block_header_raw(&self, height: usize) -> Result<Vec<u8>, Error>;
fn block_headers(
&self,
start_height: usize,
count: usize,
) -> Result<GetHeadersRes, Error>;
fn estimate_fee(&self, number: usize) -> Result<f64, Error>;
fn relay_fee(&self) -> Result<f64, Error>;
fn script_subscribe(
&self,
script: &Script,
) -> Result<Option<ScriptStatus>, Error>;
fn batch_script_subscribe<'s, I>(
&self,
scripts: I,
) -> Result<Vec<Option<ScriptStatus>>, Error>
where I: IntoIterator + Clone,
I::Item: Borrow<&'s Script>;
fn script_unsubscribe(&self, script: &Script) -> Result<bool, Error>;
fn script_pop(&self, script: &Script) -> Result<Option<ScriptStatus>, Error>;
fn script_get_balance(
&self,
script: &Script,
) -> Result<GetBalanceRes, Error>;
fn batch_script_get_balance<'s, I>(
&self,
scripts: I,
) -> Result<Vec<GetBalanceRes>, Error>
where I: IntoIterator + Clone,
I::Item: Borrow<&'s Script>;
fn script_get_history(
&self,
script: &Script,
) -> Result<Vec<GetHistoryRes>, Error>;
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 script_list_unspent(
&self,
script: &Script,
) -> Result<Vec<ListUnspentRes>, Error>;
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 transaction_get_raw(&self, txid: &Txid) -> Result<Vec<u8>, Error>;
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_block_header_raw<I>(
&self,
heights: I,
) -> Result<Vec<Vec<u8>>, Error>
where I: IntoIterator + Clone,
I::Item: Borrow<u32>;
fn batch_estimate_fee<I>(&self, numbers: I) -> Result<Vec<f64>, Error>
where I: IntoIterator + Clone,
I::Item: Borrow<usize>;
fn transaction_broadcast_raw(&self, raw_tx: &[u8]) -> Result<Txid, Error>;
fn transaction_get_merkle(
&self,
txid: &Txid,
height: usize,
) -> Result<GetMerkleRes, Error>;
fn server_features(&self) -> Result<ServerFeaturesRes, Error>;
fn ping(&self) -> Result<(), Error>;
// Provided methods
fn block_header(&self, height: usize) -> Result<Header, Error> { ... }
fn block_headers_subscribe(&self) -> Result<HeaderNotification, Error> { ... }
fn block_headers_pop(&self) -> Result<Option<HeaderNotification>, Error> { ... }
fn transaction_get(&self, txid: &Txid) -> Result<Transaction, Error> { ... }
fn batch_transaction_get<'t, I>(
&self,
txids: I,
) -> Result<Vec<Transaction>, Error>
where I: IntoIterator + Clone,
I::Item: Borrow<&'t Txid> { ... }
fn batch_block_header<I>(&self, heights: I) -> Result<Vec<Header>, Error>
where I: IntoIterator + Clone,
I::Item: Borrow<u32> { ... }
fn transaction_broadcast(&self, tx: &Transaction) -> Result<Txid, Error> { ... }
}
Expand description
API calls exposed by an Electrum client
Required Methods§
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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
.
sourcefn 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
.
sourcefn 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.
sourcefn 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.
sourcefn 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.
Returns a ScriptStatus
when successful that represents
the current status for the requested script.
Returns Error::AlreadySubscribed
if
already subscribed to the script.
sourcefn batch_script_subscribe<'s, I>(
&self,
scripts: I,
) -> Result<Vec<Option<ScriptStatus>>, Error>
fn batch_script_subscribe<'s, I>( &self, scripts: I, ) -> Result<Vec<Option<ScriptStatus>>, Error>
Batch version of script_subscribe
.
Takes a list of scripts and returns a list of script status responses.
Note you should pass a reference to a collection because otherwise an expensive clone is made
sourcefn 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.
Returns a bool
with the server response when successful.
Returns Error::NotSubscribed
if
not subscribed to the script.
sourcefn 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.
sourcefn 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.
sourcefn batch_script_get_balance<'s, I>(
&self,
scripts: I,
) -> Result<Vec<GetBalanceRes>, Error>
fn batch_script_get_balance<'s, I>( &self, scripts: I, ) -> Result<Vec<GetBalanceRes>, Error>
Batch version of script_get_balance
.
Takes a list of scripts and returns a list of balance responses.
sourcefn 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
sourcefn batch_script_get_history<'s, I>(
&self,
scripts: I,
) -> Result<Vec<Vec<GetHistoryRes>>, Error>
fn batch_script_get_history<'s, I>( &self, scripts: I, ) -> Result<Vec<Vec<GetHistoryRes>>, Error>
Batch version of script_get_history
.
Takes a list of scripts and returns a list of history responses.
sourcefn 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
sourcefn batch_script_list_unspent<'s, I>(
&self,
scripts: I,
) -> Result<Vec<Vec<ListUnspentRes>>, Error>
fn batch_script_list_unspent<'s, I>( &self, scripts: I, ) -> Result<Vec<Vec<ListUnspentRes>>, Error>
Batch version of script_list_unspent
.
Takes a list of scripts and returns a list of a list of utxos.
sourcefn 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.
sourcefn batch_transaction_get_raw<'t, I>(
&self,
txids: I,
) -> Result<Vec<Vec<u8>>, Error>
fn batch_transaction_get_raw<'t, I>( &self, txids: I, ) -> Result<Vec<Vec<u8>>, Error>
Batch version of transaction_get_raw
.
Takes a list of txids
and returns a list of transactions raw bytes.
sourcefn batch_block_header_raw<I>(&self, heights: I) -> Result<Vec<Vec<u8>>, Error>
fn batch_block_header_raw<I>(&self, heights: I) -> Result<Vec<Vec<u8>>, Error>
Batch version of block_header_raw
.
Takes a list of heights
of blocks and returns a list of block header raw bytes.
sourcefn batch_estimate_fee<I>(&self, numbers: I) -> Result<Vec<f64>, Error>
fn batch_estimate_fee<I>(&self, numbers: I) -> Result<Vec<f64>, Error>
Batch version of estimate_fee
.
Takes a list of numbers
of blocks and returns a list of fee required in
Satoshis per kilobyte to confirm a transaction in the given number of blocks.
sourcefn 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.
sourcefn 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
.
sourcefn server_features(&self) -> Result<ServerFeaturesRes, Error>
fn server_features(&self) -> Result<ServerFeaturesRes, Error>
Returns the capabilities of the server.
Provided Methods§
sourcefn block_header(&self, height: usize) -> Result<Header, Error>
fn block_header(&self, height: usize) -> Result<Header, Error>
Gets the block header for height height
.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn batch_transaction_get<'t, I>(
&self,
txids: I,
) -> Result<Vec<Transaction>, Error>
fn batch_transaction_get<'t, I>( &self, txids: I, ) -> Result<Vec<Transaction>, Error>
Batch version of transaction_get
.
Takes a list of txids
and returns a list of transactions.
sourcefn batch_block_header<I>(&self, heights: I) -> Result<Vec<Header>, Error>
fn batch_block_header<I>(&self, heights: I) -> Result<Vec<Header>, Error>
Batch version of block_header
.
Takes a list of heights
of blocks and returns a list of headers.
sourcefn transaction_broadcast(&self, tx: &Transaction) -> Result<Txid, Error>
fn transaction_broadcast(&self, tx: &Transaction) -> Result<Txid, Error>
Broadcasts a transaction to the network.