2023-03-01 11:09:08 +01:00
|
|
|
use crate::miniscript::{Descriptor, DescriptorPublicKey};
|
|
|
|
|
|
|
|
/// A trait to extend the functionality of a miniscript descriptor.
|
|
|
|
pub trait DescriptorExt {
|
2023-03-10 23:23:29 +05:30
|
|
|
/// Returns the minimum value (in satoshis) at which an output is broadcastable.
|
2023-06-21 17:59:34 +02:00
|
|
|
/// Panics if the descriptor wildcard is hardened.
|
2023-03-01 11:09:08 +01:00
|
|
|
fn dust_value(&self) -> u64;
|
|
|
|
}
|
|
|
|
|
|
|
|
impl DescriptorExt for Descriptor<DescriptorPublicKey> {
|
|
|
|
fn dust_value(&self) -> u64 {
|
|
|
|
self.at_derivation_index(0)
|
2023-06-21 17:59:34 +02:00
|
|
|
.expect("descriptor can't have hardened derivation")
|
2023-03-01 11:09:08 +01:00
|
|
|
.script_pubkey()
|
|
|
|
.dust_value()
|
|
|
|
.to_sat()
|
|
|
|
}
|
|
|
|
}
|