Skip to main content

SpDescriptor

Struct SpDescriptor 

Source
pub struct SpDescriptor { /* private fields */ }
Expand description

A BIP 392 Silent Payments descriptor.

Contains an SpAddress (scan + spend public keys) plus optional BIP 393 annotations for wallet configuration.

§Construction

use silent_payments_core::address::SpAddress;
use silent_payments_core::keys::{ScanPublicKey, SpendPublicKey};
use bitcoin::Network;
use bitcoin::secp256k1::{Secp256k1, SecretKey};
use silent_payments_descriptor::SpDescriptor;

let secp = Secp256k1::new();
let sk = SecretKey::from_slice(&[0x01; 32]).unwrap();
let pk = sk.public_key(&secp);
let addr = SpAddress::new(ScanPublicKey::from(pk), SpendPublicKey::from(pk), Network::Bitcoin);
let desc = SpDescriptor::from(addr).with_birthday_height(850000);
assert_eq!(desc.birthday_height(), Some(850000));

Implementations§

Source§

impl SpDescriptor

Source

pub fn address(&self) -> &SpAddress

Returns a reference to the wrapped SpAddress.

Source

pub fn birthday_height(&self) -> Option<u32>

Returns the wallet birthday height annotation, if set.

Source

pub fn gap_limit(&self) -> Option<u32>

Returns the gap limit annotation, if set.

Source

pub fn max_labels(&self) -> Option<u32>

Returns the max labels annotation, if set.

Source

pub fn with_birthday_height(self, height: u32) -> SpDescriptor

Returns a new descriptor with the birthday height annotation set.

Does not mutate self; returns a new value (immutable builder pattern).

Source

pub fn with_gap_limit(self, limit: u32) -> SpDescriptor

Returns a new descriptor with the gap limit annotation set.

Does not mutate self; returns a new value (immutable builder pattern).

Source

pub fn with_max_labels(self, max: u32) -> SpDescriptor

Returns a new descriptor with the max labels annotation set.

Does not mutate self; returns a new value (immutable builder pattern).

Trait Implementations§

Source§

impl Clone for SpDescriptor

Source§

fn clone(&self) -> SpDescriptor

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SpDescriptor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Display for SpDescriptor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl From<SpAddress> for SpDescriptor

Source§

fn from(address: SpAddress) -> SpDescriptor

Converts to this type from the input type.
Source§

impl FromStr for SpDescriptor

Source§

type Err = DescriptorError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<SpDescriptor, <SpDescriptor as FromStr>::Err>

Parses a string s to return a value of this type. Read more
Source§

impl PartialEq for SpDescriptor

Source§

fn eq(&self, other: &SpDescriptor) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for SpDescriptor

Source§

impl StructuralPartialEq for SpDescriptor

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.