Skip to main content

Signer

Struct Signer 

Source
pub struct Signer(/* private fields */);
Expand description

Implements the BIP-370 Signer role.

Implementations§

Source§

impl Signer

Source

pub fn new(psbt: Psbt) -> Result<Self, DetermineLockTimeError>

Creates a Signer.

An updater can only update a PSBT that has a valid combination of lock times.

Source

pub fn id(&self) -> Result<Txid, DetermineLockTimeError>

Returns this PSBT’s unique identification.

Source

pub fn unsigned_tx(&self) -> Transaction

Creates an unsigned transaction from the inner Psbt.

Source

pub fn sign<C, K>( self, k: &K, secp: &Secp256k1<C>, ) -> Result<(Psbt, SigningKeys), (SigningKeys, SigningErrors)>
where C: Signing, K: GetKey,

Attempts to create all the required signatures for this PSBT using k.

NOTE: Taproot inputs are, as yet, not supported by this function. We currently only attempt to sign ECDSA inputs.

If you just want to sign an input with one specific key consider using sighash_ecdsa. This function does not support scripts that contain OP_CODESEPARATOR.

§Returns

Either Ok(SigningKeys) or Err((SigningKeys, SigningErrors)), where

  • SigningKeys: A map of input index -> pubkey associated with secret key used to sign.
  • SigningKeys: A map of input index -> the error encountered while attempting to sign.

If an error is returned some signatures may already have been added to the PSBT. Since partial_sigs is a BTreeMap it is safe to retry, previous sigs will be overwritten.

Source

pub fn ecdsa_clear_tx_modifiable(&mut self, ty: EcdsaSighashType)

Sets the PSBT_GLOBAL_TX_MODIFIABLE as required after signing an ECDSA input.

For PSBTv2s, a signer must update the PSBT_GLOBAL_TX_MODIFIABLE field after signing inputs so that it accurately reflects the state of the PSBT.

Source

pub fn psbt(self) -> Psbt

Returns the inner Psbt.

Trait Implementations§

Source§

impl Clone for Signer

Source§

fn clone(&self) -> Signer

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 Signer

Source§

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

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

impl<'de> Deserialize<'de> for Signer

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Hash for Signer

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Signer

Source§

fn eq(&self, other: &Signer) -> 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 Serialize for Signer

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for Signer

Source§

impl StructuralPartialEq for Signer

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, 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

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,