pub struct SigHashCache<R: Deref<Target = Transaction>> { /* private fields */ }
👎Deprecated since 0.28.0: please use [sighash::SighashCache] instead
Expand description

A replacement for SigHashComponents which supports all sighash modes

Implementations

Compute the sighash components from an unsigned transaction and auxiliary in a lazy manner when required. For the generated sighashes to be valid, no fields in the transaction may change except for script_sig and witnesses.

Encode the BIP143 signing data for any flag type into a given object implementing a std::io::Write trait.

Compute the BIP143 sighash for any flag type. See SighashComponents::sighash_all simpler API for the most common case

When the SigHashCache is initialized with a mutable reference to a transaction instead of a regular reference, this method is available to allow modification to the witnesses.

This allows in-line signing such as

panics if input_index is out of bounds with respect of the number of inputs

use bitcoin::blockdata::transaction::{Transaction, EcdsaSighashType};
use bitcoin::util::bip143::SigHashCache;
use bitcoin::{PackedLockTime, Script};

let mut tx_to_sign = Transaction { version: 2, lock_time: PackedLockTime::ZERO, input: Vec::new(), output: Vec::new() };
let input_count = tx_to_sign.input.len();

let mut sig_hasher = SigHashCache::new(&mut tx_to_sign);
for inp in 0..input_count {
    let prevout_script = Script::new();
    let _sighash = sig_hasher.signature_hash(inp, &prevout_script, 42, EcdsaSighashType::All);
    // ... sign the sighash
    sig_hasher.access_witness(inp).push(&[]);
}

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.