Remove the cursor overhead, write is implemented on vec these days
This commit is contained in:
parent
25cb3d3539
commit
af31017eb1
|
@ -378,10 +378,9 @@ impl Transaction {
|
||||||
_ => unreachable!()
|
_ => unreachable!()
|
||||||
};
|
};
|
||||||
// hash the result
|
// hash the result
|
||||||
// TODO: Sanity assert that consensus_encode returned length matches the hashed length in the hasher.
|
|
||||||
let sighash_arr = endian::u32_to_array_le(sighash_u32);
|
|
||||||
let mut engine = SigHash::engine();
|
let mut engine = SigHash::engine();
|
||||||
tx.consensus_encode(&mut engine).unwrap();
|
tx.consensus_encode(&mut engine).unwrap();
|
||||||
|
let sighash_arr = endian::u32_to_array_le(sighash_u32);
|
||||||
sighash_arr.consensus_encode(&mut engine).unwrap();
|
sighash_arr.consensus_encode(&mut engine).unwrap();
|
||||||
SigHash::from_engine(engine)
|
SigHash::from_engine(engine)
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,10 +149,10 @@ impl From<psbt::Error> for Error {
|
||||||
|
|
||||||
/// Encode an object into a vector
|
/// Encode an object into a vector
|
||||||
pub fn serialize<T: Encodable + ?Sized>(data: &T) -> Vec<u8> {
|
pub fn serialize<T: Encodable + ?Sized>(data: &T) -> Vec<u8> {
|
||||||
let mut encoder = Cursor::new(vec![]);
|
let mut encoder = Vec::new();
|
||||||
let len = data.consensus_encode(&mut encoder).unwrap();
|
let len = data.consensus_encode(&mut encoder).unwrap();
|
||||||
assert_eq!(len, encoder.get_ref().len());
|
assert_eq!(len, encoder.len());
|
||||||
encoder.into_inner()
|
encoder
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Encode an object into a hex-encoded string
|
/// Encode an object into a hex-encoded string
|
||||||
|
|
|
@ -59,11 +59,10 @@ pub fn script_find_and_remove(haystack: &mut Vec<u8>, needle: &[u8]) -> usize {
|
||||||
|
|
||||||
/// Hash message for signature using Bitcoin's message signing format
|
/// Hash message for signature using Bitcoin's message signing format
|
||||||
pub fn signed_msg_hash(msg: &str) -> sha256d::Hash {
|
pub fn signed_msg_hash(msg: &str) -> sha256d::Hash {
|
||||||
let msg_len = encode::VarInt(msg.len() as u64);
|
|
||||||
|
|
||||||
// TODO: Sanity assert that consensus_encode returned length matches the hashed length in the hasher.
|
|
||||||
let mut engine = sha256d::Hash::engine();
|
let mut engine = sha256d::Hash::engine();
|
||||||
engine.input(MSG_SIGN_PREFIX);
|
engine.input(MSG_SIGN_PREFIX);
|
||||||
|
let msg_len = encode::VarInt(msg.len() as u64);
|
||||||
msg_len.consensus_encode(&mut engine).unwrap();
|
msg_len.consensus_encode(&mut engine).unwrap();
|
||||||
engine.input(msg.as_bytes());
|
engine.input(msg.as_bytes());
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue