Rename access_witness to witness_mut and return Option
fix the example in sighash to refer to sighash::SigHashCache instead of bip143::SigHashCache
This commit is contained in:
parent
c9bc0b928a
commit
f223be618f
|
@ -161,6 +161,9 @@ impl<R: DerefMut<Target=Transaction>> SigHashCache<R> {
|
||||||
/// regular reference, this method is available to allow modification to the witnesses.
|
/// regular reference, this method is available to allow modification to the witnesses.
|
||||||
///
|
///
|
||||||
/// This allows in-line signing such as
|
/// 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, SigHashType};
|
/// use bitcoin::blockdata::transaction::{Transaction, SigHashType};
|
||||||
/// use bitcoin::util::bip143::SigHashCache;
|
/// use bitcoin::util::bip143::SigHashCache;
|
||||||
|
@ -178,7 +181,7 @@ impl<R: DerefMut<Target=Transaction>> SigHashCache<R> {
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
pub fn access_witness(&mut self, input_index: usize) -> &mut Vec<Vec<u8>> {
|
pub fn access_witness(&mut self, input_index: usize) -> &mut Vec<Vec<u8>> {
|
||||||
self.cache.access_witness(input_index)
|
self.cache.witness_mut(input_index).unwrap()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ use prelude::*;
|
||||||
pub struct SigHashCache<T: Deref<Target = Transaction>> {
|
pub struct SigHashCache<T: Deref<Target = Transaction>> {
|
||||||
/// Access to transaction required for various introspection, moreover type
|
/// Access to transaction required for various introspection, moreover type
|
||||||
/// `T: Deref<Target=Transaction>` allows to accept borrow and mutable borrow, the
|
/// `T: Deref<Target=Transaction>` allows to accept borrow and mutable borrow, the
|
||||||
/// latter in particular is necessary for [SigHashCache::access_witness]
|
/// latter in particular is necessary for [SigHashCache::witness_mut]
|
||||||
tx: T,
|
tx: T,
|
||||||
|
|
||||||
/// Common cache for taproot and segwit inputs. It's an option because it's not needed for legacy inputs
|
/// Common cache for taproot and segwit inputs. It's an option because it's not needed for legacy inputs
|
||||||
|
@ -626,7 +626,7 @@ impl<R: DerefMut<Target = Transaction>> SigHashCache<R> {
|
||||||
/// This allows in-line signing such as
|
/// This allows in-line signing such as
|
||||||
/// ```
|
/// ```
|
||||||
/// use bitcoin::blockdata::transaction::{Transaction, SigHashType};
|
/// use bitcoin::blockdata::transaction::{Transaction, SigHashType};
|
||||||
/// use bitcoin::util::bip143::SigHashCache;
|
/// use bitcoin::util::sighash::SigHashCache;
|
||||||
/// use bitcoin::Script;
|
/// use bitcoin::Script;
|
||||||
///
|
///
|
||||||
/// let mut tx_to_sign = Transaction { version: 2, lock_time: 0, input: Vec::new(), output: Vec::new() };
|
/// let mut tx_to_sign = Transaction { version: 2, lock_time: 0, input: Vec::new(), output: Vec::new() };
|
||||||
|
@ -635,13 +635,13 @@ impl<R: DerefMut<Target = Transaction>> SigHashCache<R> {
|
||||||
/// let mut sig_hasher = SigHashCache::new(&mut tx_to_sign);
|
/// let mut sig_hasher = SigHashCache::new(&mut tx_to_sign);
|
||||||
/// for inp in 0..input_count {
|
/// for inp in 0..input_count {
|
||||||
/// let prevout_script = Script::new();
|
/// let prevout_script = Script::new();
|
||||||
/// let _sighash = sig_hasher.signature_hash(inp, &prevout_script, 42, SigHashType::All);
|
/// let _sighash = sig_hasher.segwit_signature_hash(inp, &prevout_script, 42, SigHashType::All);
|
||||||
/// // ... sign the sighash
|
/// // ... sign the sighash
|
||||||
/// sig_hasher.access_witness(inp).push(Vec::new());
|
/// sig_hasher.witness_mut(inp).unwrap().push(Vec::new());
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
pub fn access_witness(&mut self, input_index: usize) -> &mut Vec<Vec<u8>> {
|
pub fn witness_mut(&mut self, input_index: usize) -> Option<&mut Vec<Vec<u8>>> {
|
||||||
&mut self.tx.input[input_index].witness
|
self.tx.input.get_mut(input_index).map(|i| &mut i.witness)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue