- uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1
with:
- toolchain: "stable"
+ toolchain: stable
components: clippy
override: true
- name: Rust Cache
-msrv="1.57.0"
+msrv="1.63.0"
if let ExtendedDescriptor::Pkh(pkh) = xdesc.0 {
let path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().unwrap().into();
- let purpose = path.get(0).unwrap();
+ let purpose = path.first().unwrap();
assert_matches!(purpose, Hardened { index: 44 });
let coin_type = path.get(1).unwrap();
assert_matches!(coin_type, Hardened { index: 0 });
if let ExtendedDescriptor::Pkh(pkh) = tdesc.0 {
let path: Vec<ChildNumber> = pkh.into_inner().full_derivation_path().unwrap().into();
- let purpose = path.get(0).unwrap();
+ let purpose = path.first().unwrap();
assert_matches!(purpose, Hardened { index: 44 });
let coin_type = path.get(1).unwrap();
assert_matches!(coin_type, Hardened { index: 1 });
}
/// Customize which taproot script-path leaves the signer should sign.
-#[derive(Debug, Clone, PartialEq, Eq)]
+#[derive(Default, Debug, Clone, PartialEq, Eq)]
pub enum TapLeavesOptions {
/// The signer will sign all the leaves it has a key for.
+ #[default]
All,
/// The signer won't sign leaves other than the ones specified. Note that it could still ignore
/// some of the specified leaves, if it doesn't have the right key to sign them.
None,
}
-impl Default for TapLeavesOptions {
- fn default() -> Self {
- TapLeavesOptions::All
- }
-}
-
#[allow(clippy::derivable_impls)]
impl Default for SignOptions {
fn default() -> Self {
}
/// Ordering of the transaction's inputs and outputs
-#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
+#[derive(Default, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
pub enum TxOrdering {
/// Randomized (default)
+ #[default]
Shuffle,
/// Unchanged
Untouched,
Bip69Lexicographic,
}
-impl Default for TxOrdering {
- fn default() -> Self {
- TxOrdering::Shuffle
- }
-}
-
impl TxOrdering {
/// Sort transaction inputs and outputs by [`TxOrdering`] variant
pub fn sort_tx(&self, tx: &mut Transaction) {
}
/// Policy regarding the use of change outputs when creating a transaction
-#[derive(Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
+#[derive(Default, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Clone, Copy)]
pub enum ChangeSpendPolicy {
/// Use both change and non-change outputs (default)
+ #[default]
ChangeAllowed,
/// Only use change outputs (see [`TxBuilder::only_spend_change`])
OnlyChange,
ChangeForbidden,
}
-impl Default for ChangeSpendPolicy {
- fn default() -> Self {
- ChangeSpendPolicy::ChangeAllowed
- }
-}
-
impl ChangeSpendPolicy {
pub(crate) fn is_satisfied_by(&self, utxo: &LocalOutput) -> bool {
match self {
///
/// Returns `None` if the `TxOut` hasn't been scanned or if nothing matching was found there.
pub fn txout(&self, outpoint: OutPoint) -> Option<(&I, &TxOut)> {
- self.txouts
- .get(&outpoint)
- .map(|(spk_i, txout)| (spk_i, txout))
+ self.txouts.get(&outpoint).map(|v| (&v.0, &v.1))
}
/// Returns the script that has been inserted at the `index`.
}
for (outpoint, txout) in changeset.txouts {
- let tx_entry = self
- .txs
- .entry(outpoint.txid)
- .or_insert_with(Default::default);
+ let tx_entry = self.txs.entry(outpoint.txid).or_default();
match tx_entry {
(TxNodeInternal::Whole(_), _, _) => { /* do nothing since we already have full tx */
for (anchor, txid) in changeset.anchors {
if self.anchors.insert((anchor.clone(), txid)) {
- let (_, anchors, _) = self.txs.entry(txid).or_insert_with(Default::default);
+ let (_, anchors, _) = self.txs.entry(txid).or_default();
anchors.insert(anchor);
}
}
for (txid, new_last_seen) in changeset.last_seen {
- let (_, _, last_seen) = self.txs.entry(txid).or_insert_with(Default::default);
+ let (_, _, last_seen) = self.txs.entry(txid).or_default();
if new_last_seen > *last_seen {
*last_seen = new_last_seen;
}
mod tx_template;
+#[allow(unused_imports)]
pub use tx_template::*;
#[allow(unused_macros)]
let spk = tx
.output
- .get(0)
+ .first()
.map(|txo| &txo.script_pubkey)
.expect("tx must have an output");