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_tx(&self, tx: Transaction) -> Result<Transaction, ()>
fn sign_tx(&self, tx: Transaction) -> 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
).Auto Trait Implementations§
impl<W, L> !Freeze for Wallet<W, L>
impl<W, L> RefUnwindSafe for Wallet<W, L>where
W: RefUnwindSafe,
L: RefUnwindSafe,
impl<W, L> Send for Wallet<W, L>
impl<W, L> Sync for Wallet<W, L>
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> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Forward to the method defined on the type
Any
.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Forward to the method defined on the type
Any
.§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