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
impl Signer
Sourcepub fn new(mnemonic: &str, provider: Box<dyn ProviderTrait>) -> Signer
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.
Sourcepub fn send(
&self,
to: Script,
amount: u64,
) -> Result<TxReceipt<'_>, SignerError>
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.
Sourcepub fn broadcast(
&self,
tx: &FinalTransaction,
) -> Result<TxReceipt<'_>, SignerError>
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.
Sourcepub fn finalize(
&self,
tx: &FinalTransaction,
) -> Result<(Transaction, u64), SignerError>
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.
Sourcepub fn finalize_strict(
&self,
tx: &FinalTransaction,
target_blocks: u32,
) -> Result<(Transaction, u64), SignerError>
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.
Sourcepub fn get_provider(&self) -> &dyn ProviderTrait
pub fn get_provider(&self) -> &dyn ProviderTrait
Returns a reference to the active configured network provider.
Sourcepub fn get_confidential_address(&self) -> Address
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.
Sourcepub fn get_address(&self) -> Address
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.
Sourcepub fn get_utxos(&self) -> Result<Vec<UTXO>, SignerError>
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.
Sourcepub fn get_utxos_asset(&self, asset: AssetId) -> Result<Vec<UTXO>, SignerError>
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.
Sourcepub fn get_utxos_txid(&self, txid: Txid) -> Result<Vec<UTXO>, SignerError>
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.
Sourcepub fn get_utxos_filter(
&self,
explicit_filter: &dyn Fn(&UTXO) -> bool,
confidential_filter: &dyn Fn(&UTXO) -> bool,
) -> Result<Vec<UTXO>, SignerError>
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.
Sourcepub fn get_schnorr_public_key(&self) -> XOnlyPublicKey
pub fn get_schnorr_public_key(&self) -> XOnlyPublicKey
Derives the X-Only public key specifically used for Schnorr and Taproot structures.
Sourcepub fn get_ecdsa_public_key(&self) -> PublicKey
pub fn get_ecdsa_public_key(&self) -> PublicKey
Resolves the standard format ECDSA public key.
Sourcepub fn get_blinding_public_key(&self) -> PublicKey
pub fn get_blinding_public_key(&self) -> PublicKey
Resolves the corresponding blinding public key.
Sourcepub fn get_private_key(&self) -> PrivateKey
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.
Sourcepub fn get_blinding_private_key(&self) -> PrivateKey
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
impl SignerTrait for Signer
Source§fn sign_program(
&self,
pst: &PartiallySignedTransaction,
program: &dyn ProgramTrait,
input_index: usize,
network: &SimplicityNetwork,
) -> Result<Signature, SignerError>
fn sign_program( &self, pst: &PartiallySignedTransaction, program: &dyn ProgramTrait, input_index: usize, network: &SimplicityNetwork, ) -> Result<Signature, SignerError>
Source§fn sign_input(
&self,
pst: &PartiallySignedTransaction,
input_index: usize,
) -> Result<(PublicKey, Signature), SignerError>
fn sign_input( &self, pst: &PartiallySignedTransaction, input_index: usize, ) -> Result<(PublicKey, Signature), SignerError>
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> 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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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