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<'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> 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