Struct Wallet
pub struct Wallet<W, L>{ /* private fields */ }
Expand description
A wrapper over WalletSource
that implements CoinSelection
by preferring UTXOs that would
avoid conflicting double spends. If not enough UTXOs are available to do so, conflicting double
spends may happen.
Implementations§
§impl<W, L> Wallet<W, L>
impl<W, L> Wallet<W, L>
pub fn new(source: W, logger: L) -> Wallet<W, L>
pub fn new(source: W, logger: L) -> Wallet<W, L>
Returns a new instance backed by the given WalletSource
that serves as an implementation
of CoinSelectionSource
.
Trait Implementations§
§impl<W, L> CoinSelectionSource for Wallet<W, L>
impl<W, L> CoinSelectionSource for Wallet<W, L>
§fn select_confirmed_utxos(
&self,
claim_id: ClaimId,
must_spend: Vec<Input>,
must_pay_to: &[TxOut],
target_feerate_sat_per_1000_weight: u32,
) -> Result<CoinSelection, ()>
fn select_confirmed_utxos( &self, claim_id: ClaimId, must_spend: Vec<Input>, must_pay_to: &[TxOut], target_feerate_sat_per_1000_weight: u32, ) -> Result<CoinSelection, ()>
Performs coin selection of a set of UTXOs, with at least 1 confirmation each, that are
available to spend. Implementations are free to pick their coin selection algorithm of
choice, as long as the following requirements are met: Read more
§fn sign_psbt(&self, psbt: Psbt) -> Result<Transaction, ()>
fn sign_psbt(&self, psbt: Psbt) -> Result<Transaction, ()>
Signs and provides the full witness for all inputs within the transaction known to the
trait (i.e., any provided via
CoinSelectionSource::select_confirmed_utxos
). Read moreAuto Trait Implementations§
impl<W, L> !Freeze for Wallet<W, L>
impl<W, L> Send for Wallet<W, L>
impl<W, L> Sync for Wallet<W, L>
impl<W, L> RefUnwindSafe for Wallet<W, L>where
W: RefUnwindSafe,
L: RefUnwindSafe,
impl<W, L> Unpin for Wallet<W, L>
impl<W, L> UnwindSafe for Wallet<W, L>where
W: UnwindSafe,
L: UnwindSafe,
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request