EsploraClient

Struct EsploraClient 

Source
pub struct EsploraClient { /* private fields */ }
Expand description

A blockchain backend implementation based on the esplora HTTP API But can also use the waterfalls endpoint to speed up the scan if supported by the server.

Implementations§

Source§

impl EsploraClient

Source

pub fn new(url: &str, network: &Network) -> Result<Arc<Self>, LwkError>

Construct an Esplora Client

Source

pub fn new_waterfalls( url: &str, network: &Network, ) -> Result<Arc<Self>, LwkError>

Construct an Esplora Client using Waterfalls endpoint

Source

pub fn from_builder( builder: EsploraClientBuilder, ) -> Result<Arc<Self>, LwkError>

Construct an Esplora Client from an EsploraClientBuilder

Source

pub fn broadcast(&self, tx: &Transaction) -> Result<Arc<Txid>, LwkError>

Broadcast a transaction to the network so that a miner can include it in a block.

Source

pub fn full_scan( &self, wollet: &Wollet, ) -> Result<Option<Arc<Update>>, LwkError>

Scan the blockchain for the scripts generated by a watch-only wallet

This method scans both external and internal address chains, stopping after finding 20 consecutive unused addresses (the gap limit) as recommended by BIP44.

Returns Some(Update) if any changes were found during scanning, or None if no changes were detected.

To scan beyond the gap limit use full_scan_to_index() instead.

Source

pub fn full_scan_to_index( &self, wollet: &Wollet, index: u32, ) -> Result<Option<Arc<Update>>, LwkError>

Scan the blockchain for the scripts generated by a watch-only wallet up to a specified derivation index

While full_scan() stops after finding 20 consecutive unused addresses (the gap limit), this method will scan at least up to the given derivation index. This is useful to prevent missing funds in cases where outputs exist beyond the gap limit.

Will scan both external and internal address chains up to the given index for maximum safety, even though internal addresses may not need such deep scanning.

If transactions are found beyond the gap limit during this scan, subsequent calls to full_scan() will automatically scan up to the highest used index, preventing any previously-found transactions from being missed.

Source

pub fn tip(&self) -> Result<Arc<BlockHeader>, LwkError>

Trait Implementations§

Source§

impl Debug for EsploraClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<UT> LiftRef<UT> for EsploraClient

Source§

impl<UT> LowerError<UT> for EsploraClient

Source§

fn lower_error(obj: Self) -> RustBuffer

Lower this value for scaffolding function return Read more
Source§

impl<UT> LowerReturn<UT> for EsploraClient

Source§

type ReturnType = <Arc<EsploraClient> as LowerReturn<UniFfiTag>>::ReturnType

The type that should be returned by scaffolding functions for this type. Read more
Source§

fn lower_return(obj: Self) -> Result<Self::ReturnType, RustCallError>

Lower the return value from an scaffolding call Read more
Source§

fn handle_failed_lift( error: LiftArgsError, ) -> Result<Self::ReturnType, RustCallError>

Lower the return value for failed argument lifts Read more
Source§

impl<UT> TypeId<UT> for EsploraClient

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, UT> HandleAlloc<UT> for T
where T: Send + Sync,

Source§

fn new_handle(value: Arc<T>) -> Handle

Create a new handle for an Arc value Read more
Source§

unsafe fn clone_handle(handle: Handle) -> Handle

Clone a handle Read more
Source§

unsafe fn consume_handle(handle: Handle) -> Arc<T>

Consume a handle, getting back the initial Arc<> Read more
Source§

unsafe fn get_arc(handle: Handle) -> Arc<Self>

Get a clone of the Arc<> using a “borrowed” handle. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,