Skip to content

Commit 4ed7605

Browse files
committed
Merge #48: SigHash -> Sighash
f6d0667 rust-elements 0.22.0 -> 0.23.0 (Riccardo Casatta) Pull request description: Draft because requires: * release rust-elements 0.32 ElementsProject/rust-elements#170 * ~~ElementsProject/rust-elements#169 * ~~rust-bitcoin/rust-secp256k1#630 Top commit has no ACKs. Tree-SHA512: 2986d7a32b7c2917343205d8d319ffa91eac7e255e126a27c3cb354485c10d441caaa3e5ce8b4b8b932b5081da5e2f428d912c56a78482d0e8862d0261b379af
2 parents 4fafddc + f6d0667 commit 4ed7605

File tree

19 files changed

+96
-96
lines changed

19 files changed

+96
-96
lines changed

Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ base64 = ["bitcoin/base64"]
2020

2121
[dependencies]
2222
bitcoin = "0.30.0"
23-
elements = "0.22.0"
23+
elements = "0.23.0"
2424
bitcoin-miniscript = { package = "miniscript", version = "10.0" }
25-
simplicity = { git = "https://github.com/BlockstreamResearch/rust-simplicity", rev = "8ed4d4e0caf550148f1e17784af7665bad74b384" }
25+
simplicity = { git = "https://github.com/BlockstreamResearch/rust-simplicity", rev = "d5c0d65320816bfdf36411feed4bdff0708b5b12" }
2626

2727
# Do NOT use this as a feature! Use the `serde` feature instead.
2828
actual-serde = { package = "serde", version = "1.0", optional = true }

bitcoind-tests/tests/test_arith.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//!
55
66
use elements::pset::PartiallySignedTransaction as Psbt;
7-
use elements::sighash::SigHashCache;
7+
use elements::sighash::SighashCache;
88
use elements::taproot::TapLeafHash;
99
use elements::{
1010
confidential, pset as psbt, secp256k1_zkp as secp256k1, sighash, OutPoint, Script, Sequence,
@@ -97,10 +97,10 @@ pub fn test_desc_satisfy(cl: &ElementsD, testdata: &TestData, desc: &str) -> Vec
9797
// Get all the pubkeys and the corresponding secret keys
9898

9999
let unsigned_tx = &psbt.extract_tx().unwrap();
100-
let mut sighash_cache = SigHashCache::new(unsigned_tx);
100+
let mut sighash_cache = SighashCache::new(unsigned_tx);
101101
match derived_desc {
102102
Descriptor::TrExt(ref tr) => {
103-
let hash_ty = sighash::SchnorrSigHashType::Default;
103+
let hash_ty = sighash::SchnorrSighashType::Default;
104104

105105
let prevouts = [witness_utxo];
106106
let prevouts = sighash::Prevouts::All(&prevouts);

bitcoind-tests/tests/test_cpp.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ pub fn test_from_cpp_ms(cl: &ElementsD, testdata: &TestData) {
142142
// Get the required sighash message
143143
let amt = confidential::Value::Explicit(100_000_000);
144144
let unsigned_tx = psbts[i].extract_tx().unwrap();
145-
let mut sighash_cache = elements::sighash::SigHashCache::new(&unsigned_tx);
146-
let sighash_ty = elements::EcdsaSigHashType::All;
145+
let mut sighash_cache = elements::sighash::SighashCache::new(&unsigned_tx);
146+
let sighash_ty = elements::EcdsaSighashType::All;
147147
let sighash = sighash_cache.segwitv0_sighash(0, &ms.encode(), amt, sighash_ty);
148148

149149
// requires both signing and verification because we check the tx

bitcoind-tests/tests/test_csfs.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//!
55
66
use elements::pset::PartiallySignedTransaction as Psbt;
7-
use elements::sighash::SigHashCache;
7+
use elements::sighash::SighashCache;
88
use elements::taproot::TapLeafHash;
99
use elements::{
1010
confidential, pset as psbt, secp256k1_zkp as secp256k1, sighash, OutPoint, Script, Sequence,
@@ -98,10 +98,10 @@ pub fn test_desc_satisfy(cl: &ElementsD, testdata: &TestData, desc: &str) -> Vec
9898
// Get all the pubkeys and the corresponding secret keys
9999

100100
let unsigned_tx = &psbt.extract_tx().unwrap();
101-
let mut sighash_cache = SigHashCache::new(unsigned_tx);
101+
let mut sighash_cache = SighashCache::new(unsigned_tx);
102102
match derived_desc {
103103
Descriptor::TrExt(ref tr) => {
104-
let hash_ty = sighash::SchnorrSigHashType::Default;
104+
let hash_ty = sighash::SchnorrSighashType::Default;
105105

106106
let prevouts = [witness_utxo];
107107
let prevouts = sighash::Prevouts::All(&prevouts);

bitcoind-tests/tests/test_desc.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::{error, fmt};
88

99
use elements::hashes::{sha256d, Hash};
1010
use elements::pset::PartiallySignedTransaction as Psbt;
11-
use elements::sighash::SigHashCache;
11+
use elements::sighash::SighashCache;
1212
use elements::taproot::TapLeafHash;
1313
use elements::{
1414
confidential, pset as psbt, secp256k1_zkp as secp256k1, sighash, OutPoint, SchnorrSig, Script,
@@ -133,11 +133,11 @@ pub fn test_desc_satisfy(
133133
// Get all the pubkeys and the corresponding secret keys
134134

135135
let unsigned_tx = &psbt.extract_tx().unwrap();
136-
let mut sighash_cache = SigHashCache::new(unsigned_tx);
136+
let mut sighash_cache = SighashCache::new(unsigned_tx);
137137
match derived_desc {
138138
Descriptor::Tr(ref tr) => {
139139
// Fixme: take a parameter
140-
let hash_ty = sighash::SchnorrSigHashType::Default;
140+
let hash_ty = sighash::SchnorrSighashType::Default;
141141

142142
let internal_key_present = x_only_pks
143143
.iter()
@@ -251,7 +251,7 @@ pub fn test_desc_satisfy(
251251
.to_secp_msg();
252252

253253
// Fixme: Take a parameter
254-
let hash_ty = elements::EcdsaSigHashType::All;
254+
let hash_ty = elements::EcdsaSighashType::All;
255255

256256
// Finally construct the signature and add to psbt
257257
for sk in sks_reqd {

bitcoind-tests/tests/test_introspect.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//!
55
66
use elements::pset::PartiallySignedTransaction as Psbt;
7-
use elements::sighash::SigHashCache;
7+
use elements::sighash::SighashCache;
88
use elements::taproot::TapLeafHash;
99
use elements::{
1010
confidential, pset as psbt, secp256k1_zkp as secp256k1, sighash, OutPoint, Script, Sequence,
@@ -97,10 +97,10 @@ pub fn test_desc_satisfy(cl: &ElementsD, testdata: &TestData, desc: &str) -> Vec
9797
// Get all the pubkeys and the corresponding secret keys
9898

9999
let unsigned_tx = &psbt.extract_tx().unwrap();
100-
let mut sighash_cache = SigHashCache::new(unsigned_tx);
100+
let mut sighash_cache = SighashCache::new(unsigned_tx);
101101
match derived_desc {
102102
Descriptor::TrExt(ref tr) => {
103-
let hash_ty = sighash::SchnorrSigHashType::Default;
103+
let hash_ty = sighash::SchnorrSighashType::Default;
104104

105105
let prevouts = [witness_utxo];
106106
let prevouts = sighash::Prevouts::All(&prevouts);

examples/psbt_sign_finalize.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::str::FromStr;
33
use elements::bitcoin::PrivateKey;
44
use elements::encode::{serialize, serialize_hex};
55
use elements::hashes::Hash;
6-
use elements::sighash::SigHashCache;
6+
use elements::sighash::SighashCache;
77
use elements::{confidential, AssetId, LockTime, TxOutWitness};
88
use miniscript::elements::pset::PartiallySignedTransaction as Psbt;
99
use miniscript::elements::{
@@ -135,7 +135,7 @@ fn main() {
135135
psbt.inputs_mut()[0].witness_utxo = Some(witness_utxo);
136136

137137
let tx = &psbt.extract_tx().unwrap();
138-
let mut sighash_cache = SigHashCache::new(tx);
138+
let mut sighash_cache = SighashCache::new(tx);
139139

140140
// genesis hash is not used at all for sighash calculation
141141
let genesis_hash = elements::BlockHash::all_zeros();
@@ -145,7 +145,7 @@ fn main() {
145145
.to_secp_msg();
146146

147147
// Fixme: Take a parameter
148-
let hash_ty = elements::EcdsaSigHashType::All;
148+
let hash_ty = elements::EcdsaSighashType::All;
149149

150150
let sk1 = backup1_private.inner;
151151
let sk2 = backup2_private.inner;

examples/sign_multisig.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ fn main() {
7575
531d75c136272f127a5dc14acc0722301cbddc222262934151f140da345af177",
7676
)
7777
.unwrap(),
78-
elements::EcdsaSigHashType::All,
78+
elements::EcdsaSighashType::All,
7979
);
8080

8181
let descriptor_str = format!(

examples/verify_tx.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ fn main() {
133133
let iter = interpreter.iter_custom(
134134
Box::new(|key_sig: &KeySigPair| {
135135
let (pk, ecdsa_sig) = key_sig.as_ecdsa().expect("Ecdsa Sig");
136-
ecdsa_sig.1 == elements::EcdsaSigHashType::All
136+
ecdsa_sig.1 == elements::EcdsaSighashType::All
137137
&& secp.verify_ecdsa(&message, &ecdsa_sig.0, &pk.inner).is_ok()
138138
}),
139139
None, // txenv

src/descriptor/csfs_cov/mod.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ mod tests {
6464
use elements::secp256k1_zkp::ZERO_TWEAK;
6565
use elements::{
6666
self, confidential, opcodes, script, secp256k1_zkp, AssetId, AssetIssuance,
67-
EcdsaSigHashType, LockTime, OutPoint, Script, Sequence, Transaction, TxIn, TxInWitness,
67+
EcdsaSighashType, LockTime, OutPoint, Script, Sequence, Transaction, TxIn, TxInWitness,
6868
TxOut, Txid,
6969
};
7070

@@ -225,7 +225,7 @@ mod tests {
225225
0,
226226
confidential::Value::Explicit(200_000),
227227
&script_code,
228-
EcdsaSigHashType::All,
228+
EcdsaSighashType::All,
229229
);
230230

231231
// Create a signature to sign the input
@@ -236,7 +236,7 @@ mod tests {
236236
&secp256k1_zkp::Message::from_slice(&sighash_u256[..]).unwrap(),
237237
&cov_sk,
238238
);
239-
let el_sig = (sig, EcdsaSigHashType::All);
239+
let el_sig = (sig, EcdsaSighashType::All);
240240

241241
// For satisfying the Pk part of the covenant
242242
struct SimpleSat {
@@ -284,7 +284,7 @@ mod tests {
284284
assert_eq!(
285285
constraints.last().unwrap(),
286286
&SatisfiedConstraint::PublicKey {
287-
key_sig: interpreter::KeySigPair::Ecdsa(desc.pk, (sig, EcdsaSigHashType::All))
287+
key_sig: interpreter::KeySigPair::Ecdsa(desc.pk, (sig, EcdsaSighashType::All))
288288
}
289289
);
290290
Ok(())
@@ -429,7 +429,7 @@ mod tests {
429429
0,
430430
confidential::Value::Explicit(200_000),
431431
&script_code,
432-
EcdsaSigHashType::All,
432+
EcdsaSighashType::All,
433433
);
434434

435435
// Create a signature to sign the input
@@ -440,7 +440,7 @@ mod tests {
440440
&secp256k1_zkp::Message::from_slice(&sighash_u256[..]).unwrap(),
441441
&sks[0],
442442
);
443-
let sig = (sig, EcdsaSigHashType::All);
443+
let sig = (sig, EcdsaSighashType::All);
444444

445445
// For satisfying the Pk part of the covenant
446446
struct SimpleSat {

src/descriptor/csfs_cov/satisfy.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
1717
use elements::encode::Encodable;
1818
use elements::hashes::{sha256d, Hash};
19-
use elements::sighash::SigHashCache;
20-
use elements::{self, confidential, EcdsaSigHashType, OutPoint, Script, SigHash, Transaction};
19+
use elements::sighash::SighashCache;
20+
use elements::{self, confidential, EcdsaSighashType, OutPoint, Script, Sighash, Transaction};
2121

2222
use super::CovError;
2323
use crate::{MiniscriptKey, Satisfier, ToPublicKey};
@@ -36,7 +36,7 @@ pub struct LegacyCovSatisfier<'tx, 'ptx> {
3636
/// The input index being spent
3737
idx: u32,
3838
/// The sighash type
39-
hash_type: EcdsaSigHashType,
39+
hash_type: EcdsaSighashType,
4040

4141
// Segwitv0
4242
/// The script code required for segwit sighash
@@ -53,7 +53,7 @@ impl<'tx, 'ptx> LegacyCovSatisfier<'tx, 'ptx> {
5353
idx: u32,
5454
value: confidential::Value,
5555
script_code: &'ptx Script,
56-
hash_type: EcdsaSigHashType,
56+
hash_type: EcdsaSighashType,
5757
) -> Self {
5858
assert!((idx as usize) < tx.input.len());
5959
Self {
@@ -70,8 +70,8 @@ impl<'tx, 'ptx> LegacyCovSatisfier<'tx, 'ptx> {
7070
/// Note that this does not do any caching, so it
7171
/// will be slightly inefficient as compared to
7272
/// using sighash
73-
pub fn segwit_sighash(&self) -> Result<SigHash, CovError> {
74-
let mut cache = SigHashCache::new(self.tx);
73+
pub fn segwit_sighash(&self) -> Result<Sighash, CovError> {
74+
let mut cache = SighashCache::new(self.tx);
7575
// TODO: error types
7676
let script_code = self.script_code.ok_or(CovError::MissingScriptCode)?;
7777
let value = self.value.ok_or(CovError::MissingValue)?;

src/descriptor/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1579,7 +1579,7 @@ mod tests {
15791579
impl Satisfier<bitcoin::PublicKey> for SimpleSat {
15801580
fn lookup_ecdsa_sig(&self, pk: &bitcoin::PublicKey) -> Option<ElementsSig> {
15811581
if *pk == self.pk {
1582-
Some((self.sig, elements::EcdsaSigHashType::All))
1582+
Some((self.sig, elements::EcdsaSighashType::All))
15831583
} else {
15841584
None
15851585
}
@@ -1808,8 +1808,8 @@ mod tests {
18081808
let satisfier = {
18091809
let mut satisfier = HashMap::with_capacity(2);
18101810

1811-
satisfier.insert(a, (sig_a, ::elements::EcdsaSigHashType::All));
1812-
satisfier.insert(b, (sig_b, ::elements::EcdsaSigHashType::All));
1811+
satisfier.insert(a, (sig_a, ::elements::EcdsaSighashType::All));
1812+
satisfier.insert(b, (sig_b, ::elements::EcdsaSighashType::All));
18131813

18141814
satisfier
18151815
};

src/interpreter/error.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ pub enum Error {
4646
/// MultiSig missing at least `1` witness elements out of `k + 1` required
4747
InsufficientSignaturesMultiSig,
4848
/// Invalid Sighash type
49-
InvalidSchnorrSigHashType(Vec<u8>),
49+
InvalidSchnorrSighashType(Vec<u8>),
5050
/// ecdsa Signature failed to verify
5151
InvalidEcdsaSignature(bitcoin::PublicKey),
5252
/// Signature failed to verify
5353
InvalidSchnorrSignature(bitcoin::key::XOnlyPublicKey),
5454
/// Last byte of this signature isn't a standard sighash type
55-
NonStandardSigHash(Vec<u8>),
55+
NonStandardSighash(Vec<u8>),
5656
/// Miniscript error
5757
Miniscript(crate::Error),
5858
/// MultiSig requires 1 extra zero element apart from the `k` signatures
@@ -154,14 +154,14 @@ impl fmt::Display for Error {
154154
}
155155
Error::IncorrectWScriptHash => f.write_str("witness script did not match scriptpubkey"),
156156
Error::InsufficientSignaturesMultiSig => f.write_str("Insufficient signatures for CMS"),
157-
Error::InvalidSchnorrSigHashType(ref sig) => write!(
157+
Error::InvalidSchnorrSighashType(ref sig) => write!(
158158
f,
159159
"Invalid sighash type for schnorr signature '{}'",
160160
sig.to_hex()
161161
),
162162
Error::InvalidEcdsaSignature(pk) => write!(f, "bad ecdsa signature with pk {}", pk),
163163
Error::InvalidSchnorrSignature(pk) => write!(f, "bad schnorr signature with pk {}", pk),
164-
Error::NonStandardSigHash(ref sig) => write!(
164+
Error::NonStandardSighash(ref sig) => write!(
165165
f,
166166
"Non standard sighash type for signature '{}'",
167167
sig.to_hex()
@@ -233,8 +233,8 @@ impl error::Error for Error {
233233
| InsufficientSignaturesMultiSig
234234
| InvalidEcdsaSignature(_)
235235
| InvalidSchnorrSignature(_)
236-
| InvalidSchnorrSigHashType(_)
237-
| NonStandardSigHash(_)
236+
| InvalidSchnorrSighashType(_)
237+
| NonStandardSighash(_)
238238
| MissingExtraZeroMultiSig
239239
| MultiSigEvaluationError
240240
| NonEmptyWitness

src/interpreter/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use std::str::FromStr;
1414

1515
use bitcoin;
1616
use elements::hashes::{hash160, ripemd160, sha256, Hash, HashEngine};
17-
use elements::{self, secp256k1_zkp, sighash, EcdsaSigHashType, LockTime, Sequence, SigHash};
17+
use elements::{self, secp256k1_zkp, sighash, EcdsaSighashType, LockTime, Sequence, Sighash};
1818

1919
use crate::extensions::{CovExtArgs, ParseableExt, TxEnv};
2020
use crate::miniscript::context::{NoChecks, SigType};
@@ -259,7 +259,7 @@ where
259259
sighash::Prevouts::All(prevouts) => prevouts.get(input_index),
260260
}
261261
}
262-
let mut cache = elements::sighash::SigHashCache::new(tx);
262+
let mut cache = elements::sighash::SighashCache::new(tx);
263263
match sig {
264264
KeySigPair::Ecdsa(key, ecdsa_sig) => {
265265
let script_pubkey = self.script_code.as_ref().expect("Legacy have script code");
@@ -1101,7 +1101,7 @@ where
11011101
{
11021102
let sighash_bytes = self.stack[1].as_push().expect("Push checked above");
11031103
let sighash_u32 = util::slice_to_u32_le(sighash_bytes);
1104-
let sighash_ty = EcdsaSigHashType::from_u32(sighash_u32);
1104+
let sighash_ty = EcdsaSighashType::from_u32(sighash_u32);
11051105
let sig_vec = self.stack[0].as_push().expect("Size checked above");
11061106
ser_sig.extend(sig_vec);
11071107
ser_sig.push(sighash_ty as u8);
@@ -1117,9 +1117,9 @@ where
11171117
.rev()
11181118
.flat_map(|x| Vec::from(x.as_push().expect("Push checked above")))
11191119
.collect();
1120-
let mut eng = SigHash::engine();
1120+
let mut eng = Sighash::engine();
11211121
eng.input(&sighash_msg);
1122-
let sighash_u256 = SigHash::from_engine(eng);
1122+
let sighash_u256 = Sighash::from_engine(eng);
11231123
let msg = elements::secp256k1_zkp::Message::from_slice(&sighash_u256[..]).unwrap();
11241124

11251125
// Legacy Cov scripts only operate on Ecdsa key sig pairs
@@ -1242,7 +1242,7 @@ mod tests {
12421242
compressed: true,
12431243
};
12441244
let sig = secp.sign_ecdsa(&msg, &sk);
1245-
ecdsa_sigs.push((sig, elements::EcdsaSigHashType::All));
1245+
ecdsa_sigs.push((sig, elements::EcdsaSighashType::All));
12461246
let mut sigser = sig.serialize_der().to_vec();
12471247
sigser.push(0x01); // sighash_all
12481248
pks.push(pk);
@@ -1254,7 +1254,7 @@ mod tests {
12541254
let schnorr_sig = secp.sign_schnorr_with_aux_rand(&msg, &keypair, &[0u8; 32]);
12551255
let schnorr_sig = elements::SchnorrSig {
12561256
sig: schnorr_sig,
1257-
hash_ty: elements::SchnorrSigHashType::Default,
1257+
hash_ty: elements::SchnorrSighashType::Default,
12581258
};
12591259
ser_schnorr_sigs.push(schnorr_sig.to_vec());
12601260
schnorr_sigs.push(schnorr_sig);

src/miniscript/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1180,7 +1180,7 @@ mod tests {
11801180
) -> Option<elements::SchnorrSig> {
11811181
Some(elements::SchnorrSig {
11821182
sig: self.0,
1183-
hash_ty: elements::SchnorrSigHashType::Default,
1183+
hash_ty: elements::SchnorrSighashType::Default,
11841184
})
11851185
}
11861186
}

0 commit comments

Comments
 (0)