Skip to main content

Signer

Struct Signer 

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

Core interface responsible for managing keys, interfacing with the blockchain provider, assembling descriptors, estimating fees, and finalizing/signing transactions.

Implementations§

Source§

impl Signer

Source

pub fn new(mnemonic: &str, provider: Box<dyn ProviderTrait>) -> Signer

Creates a new Signer instance seeded from the provided mnemonic and paired with the specified provider.

§Panics

Panics if the mnemonic fails to parse, or if deriving the master private key fails.

Source

pub fn send( &self, to: Script, amount: u64, ) -> Result<TxReceipt<'_>, SignerError>

Composes, funds, and broadcasts a standard network transaction sending the specified value of the primary policy asset.

§Errors

Returns a SignerError if compiling the inputs fails, there are insufficient funds/fees, or broadcast is rejected.

Source

pub fn broadcast( &self, tx: &FinalTransaction, ) -> Result<TxReceipt<'_>, SignerError>

Evaluates, funds, and broadcasts an already assembled FinalTransaction.

§Errors

Returns a SignerError if finalizing the payload fails or if the network rejects the broadcast.

Source

pub fn finalize( &self, tx: &FinalTransaction, ) -> Result<(Transaction, u64), SignerError>

Evaluates the input components of a FinalTransaction, iteratively selecting available wallet UTXOs to cover outputs and estimated fees.

§Errors

Returns a SignerError if the wallet contains insufficient funds to satisfy output values and target fee rates.

Source

pub fn finalize_strict( &self, tx: &FinalTransaction, target_blocks: u32, ) -> Result<(Transaction, u64), SignerError>

Verifies and finalizes a transaction against a strict target confirmation window (in blocks). This function also assumes that the transaction already includes the coin selection.

§Errors

Returns a SignerError if the assembled inputs do not meet dust limits or fail to cover the dynamically estimated required fee.

Source

pub fn get_provider(&self) -> &dyn ProviderTrait

Returns a reference to the active configured network provider.

Source

pub fn get_confidential_address(&self) -> Address

Returns the confidential elements address matching the local wallet logic.

§Panics

Panics if the SLIP77 descriptor cannot be generated or parsed, or if address derivation fails.

Source

pub fn get_address(&self) -> Address

Returns the standard unblinded address matching the local wallet logic.

§Panics

Panics if the WPKH descriptor cannot be generated or parsed, or if address derivation fails.

Source

pub fn get_utxos(&self) -> Result<Vec<UTXO>, SignerError>

Iterates against the network provider to select and unblind all known UTXOs.

§Errors

Returns a SignerError if querying the network or unblinding operations fail.

Source

pub fn get_utxos_asset(&self, asset: AssetId) -> Result<Vec<UTXO>, SignerError>

Finds all known UTXOs belonging to the specific AssetId.

§Errors

Returns a SignerError if network interaction or confidential output decryption fails.

Source

pub fn get_utxos_txid(&self, txid: Txid) -> Result<Vec<UTXO>, SignerError>

Finds all known UTXOs deriving from a targeted Txid.

§Errors

Returns a SignerError if querying the network fails.

Source

pub fn get_utxos_filter( &self, explicit_filter: &dyn Fn(&UTXO) -> bool, confidential_filter: &dyn Fn(&UTXO) -> bool, ) -> Result<Vec<UTXO>, SignerError>

Maps UTXOs retrieved from the provider through arbitrary functional filters. Separate filtering criteria apply explicitly vs confidentially.

§Errors

Returns a SignerError if retrieving remote outputs or executing confidential node unblinding throws an error.

Source

pub fn get_schnorr_public_key(&self) -> XOnlyPublicKey

Derives the X-Only public key specifically used for Schnorr and Taproot structures.

Source

pub fn get_ecdsa_public_key(&self) -> PublicKey

Resolves the standard format ECDSA public key.

Source

pub fn get_blinding_public_key(&self) -> PublicKey

Resolves the corresponding blinding public key.

Source

pub fn get_private_key(&self) -> PrivateKey

Internally derives and exposes the wallet’s signing active private key.

§Panics

Panics if the master private key or derivation path cannot be derived.

Source

pub fn get_blinding_private_key(&self) -> PrivateKey

Generates the private key linked to confidential payload blinding.

The generated PrivateKey is associated with the Test (non-Bitcoin-mainnet) network kind. Retrieves the blinding private key derived from the master SLIP77 key and the script public key of the address.

§Panics

Panics if the master SLIP77 key cannot be derived.

Trait Implementations§

Source§

impl SignerTrait for Signer

Source§

fn sign_program( &self, pst: &PartiallySignedTransaction, program: &dyn ProgramTrait, input_index: usize, network: &SimplicityNetwork, ) -> Result<Signature, SignerError>

Generates a Schnorr signature to satisfy a target Simplicity program input. Read more
Source§

fn sign_input( &self, pst: &PartiallySignedTransaction, input_index: usize, ) -> Result<(PublicKey, Signature), SignerError>

Generates an ECDSA signature to spend a standard transaction input. Read more

Auto Trait Implementations§

§

impl Freeze for Signer

§

impl !RefUnwindSafe for Signer

§

impl !Send for Signer

§

impl !Sync for Signer

§

impl Unpin for Signer

§

impl UnsafeUnpin for Signer

§

impl !UnwindSafe for Signer

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> 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<'src, T> IntoMaybe<'src, T> for T
where T: 'src,

Source§

type Proj<U: 'src> = U

Source§

fn map_maybe<R>( self, _f: impl FnOnce(&'src T) -> &'src R, g: impl FnOnce(T) -> R, ) -> <T as IntoMaybe<'src, T>>::Proj<R>
where R: 'src,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V