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: PartiallySignedTransaction) -> Result<Transaction, ()>
fn sign_psbt(&self, psbt: PartiallySignedTransaction) -> 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> 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