From 007a8a490f969638000347890e710ac1bcf083fb Mon Sep 17 00:00:00 2001 From: Antoine Poinsot Date: Fri, 18 Sep 2020 13:19:32 +0200 Subject: [PATCH] Cargo.toml: just use bitcoin's secp256k1 Signed-off-by: Antoine Poinsot --- Cargo.toml | 1 - src/scripts.rs | 12 ++++++------ src/transactions.rs | 46 ++++++++++++++++++++++----------------------- 3 files changed, 29 insertions(+), 30 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 8115fe22..7aff62e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,6 @@ edition = "2018" [dependencies] bitcoin = "0.24" bitcoinconsensus = "0.19.0-1" -secp256k1 = { version = "0.18.0" } miniscript = { git = "https://github.com/rust-bitcoin/rust-miniscript", branch = "master", features = ["compiler"] } [dev-dependencies] diff --git a/src/scripts.rs b/src/scripts.rs index 40e6452e..65e6062a 100644 --- a/src/scripts.rs +++ b/src/scripts.rs @@ -22,7 +22,7 @@ use miniscript::{policy::concrete::Policy, Descriptor, MiniscriptKey, Segwitv0}; /// ```rust /// use revault_tx::scripts; /// use bitcoin; -/// use secp256k1; +/// use bitcoin::secp256k1; /// /// let secp = secp256k1::Secp256k1::new(); /// let secret_key = secp256k1::SecretKey::from_slice(&[0xcd; 32]).expect("32 bytes, within curve order"); @@ -86,7 +86,7 @@ pub fn vault_descriptor(participants: Vec) -> Result PublicKey { - let secp = secp256k1::Secp256k1::new(); + let secp = bitcoin::secp256k1::Secp256k1::new(); let mut rand_bytes = [0u8; 32]; // Make rustc happy.. - let mut secret_key = Err(secp256k1::Error::InvalidSecretKey); + let mut secret_key = Err(bitcoin::secp256k1::Error::InvalidSecretKey); while secret_key.is_err() { rand::thread_rng().fill_bytes(&mut rand_bytes); - secret_key = secp256k1::SecretKey::from_slice(&rand_bytes); + secret_key = bitcoin::secp256k1::SecretKey::from_slice(&rand_bytes); } PublicKey { compressed: true, - key: secp256k1::PublicKey::from_secret_key(&secp, &secret_key.unwrap()), + key: bitcoin::secp256k1::PublicKey::from_secret_key(&secp, &secret_key.unwrap()), } } diff --git a/src/transactions.rs b/src/transactions.rs index 7b4a7d19..27c1b55a 100644 --- a/src/transactions.rs +++ b/src/transactions.rs @@ -6,10 +6,10 @@ use crate::{error::Error, prevouts::*, txouts::*}; use bitcoin::consensus::encode; use bitcoin::consensus::encode::Encodable; +use bitcoin::secp256k1::Signature; use bitcoin::util::bip143::SigHashCache; use bitcoin::{OutPoint, PublicKey, Script, SigHash, SigHashType, Transaction, TxIn, TxOut}; use miniscript::{BitcoinSig, Descriptor, MiniscriptKey, Satisfier, ToPublicKey}; -use secp256k1::Signature; use std::collections::HashMap; use std::fmt; @@ -557,55 +557,55 @@ mod tests { use bitcoin::{OutPoint, PublicKey, SigHash, Transaction, TxIn, TxOut}; use miniscript::Descriptor; - fn get_random_privkey() -> secp256k1::SecretKey { + fn get_random_privkey() -> bitcoin::secp256k1::SecretKey { let mut rand_bytes = [0u8; 32]; - let mut secret_key = Err(secp256k1::Error::InvalidSecretKey); + let mut secret_key = Err(bitcoin::secp256k1::Error::InvalidSecretKey); while secret_key.is_err() { rand::thread_rng().fill_bytes(&mut rand_bytes); - secret_key = secp256k1::SecretKey::from_slice(&rand_bytes); + secret_key = bitcoin::secp256k1::SecretKey::from_slice(&rand_bytes); } secret_key.unwrap() } fn get_participants_sets( - secp: &secp256k1::Secp256k1, + secp: &bitcoin::secp256k1::Secp256k1, ) -> ( - (Vec, Vec), - (Vec, Vec), - (Vec, Vec), + (Vec, Vec), + (Vec, Vec), + (Vec, Vec), ) { let managers_priv = (0..3) .map(|_| get_random_privkey()) - .collect::>(); + .collect::>(); let managers = managers_priv .iter() .map(|privkey| PublicKey { compressed: true, - key: secp256k1::PublicKey::from_secret_key(&secp, &privkey), + key: bitcoin::secp256k1::PublicKey::from_secret_key(&secp, &privkey), }) .collect::>(); let non_managers_priv = (0..8) .map(|_| get_random_privkey()) - .collect::>(); + .collect::>(); let non_managers = non_managers_priv .iter() .map(|privkey| PublicKey { compressed: true, - key: secp256k1::PublicKey::from_secret_key(&secp, &privkey), + key: bitcoin::secp256k1::PublicKey::from_secret_key(&secp, &privkey), }) .collect::>(); let cosigners_priv = (0..8) .map(|_| get_random_privkey()) - .collect::>(); + .collect::>(); let cosigners = cosigners_priv .iter() .map(|privkey| PublicKey { compressed: true, - key: secp256k1::PublicKey::from_secret_key(&secp, &privkey), + key: bitcoin::secp256k1::PublicKey::from_secret_key(&secp, &privkey), }) .collect::>(); @@ -618,12 +618,12 @@ mod tests { // Routine for ""signing"" a transaction fn satisfy_transaction_input( - secp: &secp256k1::Secp256k1, + secp: &bitcoin::secp256k1::Secp256k1, tx: &mut impl RevaultTransaction, input_index: usize, tx_sighash: &SigHash, descriptor: &Descriptor, - secret_keys: &Vec, + secret_keys: &Vec, is_anyonecanpay: bool, ) -> Result<(), Error> { let mut revault_sat = @@ -632,10 +632,10 @@ mod tests { revault_sat.insert_sig( PublicKey { compressed: true, - key: secp256k1::PublicKey::from_secret_key(&secp, &privkey), + key: bitcoin::secp256k1::PublicKey::from_secret_key(&secp, &privkey), }, secp.sign( - &secp256k1::Message::from_slice(&tx_sighash).unwrap(), + &bitcoin::secp256k1::Message::from_slice(&tx_sighash).unwrap(), &privkey, ), is_anyonecanpay, @@ -796,7 +796,7 @@ mod tests { fn test_transaction_chain_satisfaction() { const CSV_VALUE: u32 = 42; - let secp = secp256k1::Secp256k1::new(); + let secp = bitcoin::secp256k1::Secp256k1::new(); // Keys, keys, keys everywhere ! let ( @@ -808,7 +808,7 @@ mod tests { .iter() .chain(non_managers_priv.iter()) .cloned() - .collect::>(); + .collect::>(); // Get the script descriptors for the txos we're going to create let unvault_descriptor = @@ -850,7 +850,7 @@ mod tests { let feebump_secret_key = get_random_privkey(); let feebump_pubkey = PublicKey { compressed: true, - key: secp256k1::PublicKey::from_secret_key(&secp, &feebump_secret_key), + key: bitcoin::secp256k1::PublicKey::from_secret_key(&secp, &feebump_secret_key), }; let feebump_descriptor = Descriptor::::Wpkh(feebump_pubkey); let raw_feebump_tx = Transaction { @@ -1057,7 +1057,7 @@ mod tests { .iter() .chain(cosigners_priv.iter()) .copied() - .collect::>(), + .collect::>(), false, ); assert_eq!( @@ -1085,7 +1085,7 @@ mod tests { .iter() .chain(cosigners_priv.iter()) .copied() - .collect::>(), + .collect::>(), false, ) .expect("Satisfying second spend transaction");