Skip to content

Commit 881bbf7

Browse files
committed
SigHash -> Sighash
1 parent bd479c6 commit 881bbf7

File tree

19 files changed

+70
-66
lines changed

19 files changed

+70
-66
lines changed

Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,6 @@ required-features = ["base64"]
6161

6262
[workspace]
6363
members = ["bitcoind-tests", "fuzz"]
64+
65+
[patch.crates-io]
66+
elements = { git = "https://github.com/RCasatta/rust-elements/", branch="tx_ord_zero" }

bitcoind-tests/tests/test_arith.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
66
use miniscript::elements;
77
use elements::pset::PartiallySignedTransaction as Psbt;
8-
use elements::sighash::SigHashCache;
8+
use elements::sighash::SighashCache;
99
use elements::taproot::{LeafVersion, TapLeafHash};
1010
use elements::{
1111
confidential, pset as psbt, secp256k1_zkp as secp256k1, sighash, OutPoint, Script,
@@ -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_cpp.rs

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

152152
// 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
@@ -6,7 +6,7 @@
66
use miniscript::extensions::{sighash_msg_price_oracle_1, check_sig_price_oracle_1};
77
use miniscript::{elements, bitcoin, TxEnv};
88
use elements::pset::PartiallySignedTransaction as Psbt;
9-
use elements::sighash::SigHashCache;
9+
use elements::sighash::SighashCache;
1010
use elements::taproot::{LeafVersion, TapLeafHash};
1111
use elements::{
1212
confidential, pset as psbt, secp256k1_zkp as secp256k1, sighash, OutPoint, Script,
@@ -99,10 +99,10 @@ pub fn test_desc_satisfy(cl: &ElementsD, testdata: &TestData, desc: &str) -> Vec
9999
// Get all the pubkeys and the corresponding secret keys
100100

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

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

bitcoind-tests/tests/test_desc.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use std::{error, fmt};
99
use miniscript::{elements, bitcoin};
1010
use elements::hashes::{sha256d, Hash};
1111
use elements::pset::PartiallySignedTransaction as Psbt;
12-
use elements::sighash::SigHashCache;
12+
use elements::sighash::SighashCache;
1313
use elements::taproot::{LeafVersion, TapLeafHash};
1414
use elements::{
1515
confidential, pset as psbt, secp256k1_zkp as secp256k1, sighash, OutPoint, SchnorrSig,
@@ -132,11 +132,11 @@ pub fn test_desc_satisfy(
132132
// Get all the pubkeys and the corresponding secret keys
133133

134134
let unsigned_tx = &psbt.extract_tx().unwrap();
135-
let mut sighash_cache = SigHashCache::new(unsigned_tx);
135+
let mut sighash_cache = SighashCache::new(unsigned_tx);
136136
match derived_desc {
137137
Descriptor::Tr(ref tr) => {
138138
// Fixme: take a parameter
139-
let hash_ty = sighash::SchnorrSigHashType::Default;
139+
let hash_ty = sighash::SchnorrSighashType::Default;
140140

141141
let internal_key_present = x_only_pks
142142
.iter()
@@ -253,7 +253,7 @@ pub fn test_desc_satisfy(
253253
.to_secp_msg();
254254

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

258258
// Finally construct the signature and add to psbt
259259
for sk in sks_reqd {

bitcoind-tests/tests/test_introspect.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
66
use miniscript::elements;
77
use elements::pset::PartiallySignedTransaction as Psbt;
8-
use elements::sighash::SigHashCache;
8+
use elements::sighash::SighashCache;
99
use elements::taproot::{LeafVersion, TapLeafHash};
1010
use elements::{
1111
confidential, pset as psbt, secp256k1_zkp as secp256k1, sighash, OutPoint, Script,
@@ -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);

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
@@ -1581,7 +1581,7 @@ mod tests {
15811581
impl Satisfier<bitcoin::PublicKey> for SimpleSat {
15821582
fn lookup_ecdsa_sig(&self, pk: &bitcoin::PublicKey) -> Option<ElementsSig> {
15831583
if *pk == self.pk {
1584-
Some((self.sig, elements::EcdsaSigHashType::All))
1584+
Some((self.sig, elements::EcdsaSighashType::All))
15851585
} else {
15861586
None
15871587
}
@@ -1810,8 +1810,8 @@ mod tests {
18101810
let satisfier = {
18111811
let mut satisfier = HashMap::with_capacity(2);
18121812

1813-
satisfier.insert(a, (sig_a, ::elements::EcdsaSigHashType::All));
1814-
satisfier.insert(b, (sig_b, ::elements::EcdsaSigHashType::All));
1813+
satisfier.insert(a, (sig_a, ::elements::EcdsaSighashType::All));
1814+
satisfier.insert(b, (sig_b, ::elements::EcdsaSighashType::All));
18151815

18161816
satisfier
18171817
};

src/interpreter/error.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ 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
@@ -154,7 +154,7 @@ 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()
@@ -233,7 +233,7 @@ impl error::Error for Error {
233233
| InsufficientSignaturesMultiSig
234234
| InvalidEcdsaSignature(_)
235235
| InvalidSchnorrSignature(_)
236-
| InvalidSchnorrSigHashType(_)
236+
| InvalidSchnorrSighashType(_)
237237
| NonStandardSigHash(_)
238238
| MissingExtraZeroMultiSig
239239
| MultiSigEvaluationError

src/interpreter/mod.rs

+9-8
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ use std::fmt;
1313
use std::str::FromStr;
1414

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

1920
use crate::extensions::{CovExtArgs, ParseableExt, TxEnv};
2021
use crate::miniscript::context::{NoChecks, SigType};
@@ -259,7 +260,7 @@ where
259260
sighash::Prevouts::All(prevouts) => prevouts.get(input_index),
260261
}
261262
}
262-
let mut cache = elements::sighash::SigHashCache::new(tx);
263+
let mut cache = elements::sighash::SighashCache::new(tx);
263264
match sig {
264265
KeySigPair::Ecdsa(key, ecdsa_sig) => {
265266
let script_pubkey = self.script_code.as_ref().expect("Legacy have script code");
@@ -1101,7 +1102,7 @@ where
11011102
{
11021103
let sighash_bytes = self.stack[1].as_push().expect("Push checked above");
11031104
let sighash_u32 = util::slice_to_u32_le(sighash_bytes);
1104-
let sighash_ty = EcdsaSigHashType::from_u32(sighash_u32);
1105+
let sighash_ty = EcdsaSighashType::from_u32(sighash_u32);
11051106
let sig_vec = self.stack[0].as_push().expect("Size checked above");
11061107
ser_sig.extend(sig_vec);
11071108
ser_sig.push(sighash_ty as u8);
@@ -1117,9 +1118,9 @@ where
11171118
.rev()
11181119
.flat_map(|x| Vec::from(x.as_push().expect("Push checked above")))
11191120
.collect();
1120-
let mut eng = SigHash::engine();
1121+
let mut eng = Sighash::engine();
11211122
eng.input(&sighash_msg);
1122-
let sighash_u256 = SigHash::from_engine(eng);
1123+
let sighash_u256 = Sighash::from_engine(eng);
11231124
let msg = elements::secp256k1_zkp::Message::from_slice(&sighash_u256[..]).unwrap();
11241125

11251126
// Legacy Cov scripts only operate on Ecdsa key sig pairs
@@ -1242,7 +1243,7 @@ mod tests {
12421243
compressed: true,
12431244
};
12441245
let sig = secp.sign_ecdsa(&msg, &sk);
1245-
ecdsa_sigs.push((sig, elements::EcdsaSigHashType::All));
1246+
ecdsa_sigs.push((sig, elements::EcdsaSighashType::All));
12461247
let mut sigser = sig.serialize_der().to_vec();
12471248
sigser.push(0x01); // sighash_all
12481249
pks.push(pk);
@@ -1254,7 +1255,7 @@ mod tests {
12541255
let schnorr_sig = secp.sign_schnorr_with_aux_rand(&msg, &keypair, &[0u8; 32]);
12551256
let schnorr_sig = elements::SchnorrSig {
12561257
sig: schnorr_sig,
1257-
hash_ty: elements::SchnorrSigHashType::Default,
1258+
hash_ty: elements::SchnorrSighashType::Default,
12581259
};
12591260
ser_schnorr_sigs.push(schnorr_sig.to_vec());
12601261
schnorr_sigs.push(schnorr_sig);

src/miniscript/mod.rs

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

src/miniscript/satisfy.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use crate::util::witness_size;
2424
use crate::{Miniscript, MiniscriptKey, ScriptContext, Terminal, ToPublicKey};
2525

2626
/// Type alias for a signature/hashtype pair
27-
pub type ElementsSig = (secp256k1_zkp::ecdsa::Signature, elements::EcdsaSigHashType);
27+
pub type ElementsSig = (secp256k1_zkp::ecdsa::Signature, elements::EcdsaSighashType);
2828
/// Type alias for 32 byte Preimage.
2929
pub type Preimage32 = [u8; 32];
3030

@@ -41,7 +41,7 @@ pub fn elementssig_to_rawsig(sig: &ElementsSig) -> Vec<u8> {
4141
/// Returns underlying secp if the Signature is not of correct format
4242
pub fn elementssig_from_rawsig(rawsig: &[u8]) -> Result<ElementsSig, crate::interpreter::Error> {
4343
let (flag, sig) = rawsig.split_last().unwrap();
44-
let flag = elements::EcdsaSigHashType::from_u32(*flag as u32);
44+
let flag = elements::EcdsaSighashType::from_u32(*flag as u32);
4545
let sig = secp256k1_zkp::ecdsa::Signature::from_der(sig)?;
4646
Ok((sig, flag))
4747
}

src/policy/compiler.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1403,7 +1403,7 @@ mod tests {
14031403
assert_eq!(abs.n_keys(), 5);
14041404
assert_eq!(abs.minimum_n_keys(), Some(3));
14051405

1406-
let elements_sig = (sig, elements::EcdsaSigHashType::All);
1406+
let elements_sig = (sig, elements::EcdsaSighashType::All);
14071407
let mut sigvec = elements_sig.0.serialize_der().to_vec();
14081408
sigvec.push(elements_sig.1 as u8);
14091409

0 commit comments

Comments
 (0)