[policy] pass secp context to setup_keys

This commit is contained in:
Riccardo Casatta 2021-02-22 11:11:44 +01:00
parent fdde0e691e
commit 23ec9c3ba0
No known key found for this signature in database
GPG Key ID: FD986A969E450397

View File

@ -703,6 +703,7 @@ impl Policy {
_ => Ok(Condition::default()), _ => Ok(Condition::default()),
} }
} }
} }
impl From<SatisfiableItem> for Policy { impl From<SatisfiableItem> for Policy {
@ -908,8 +909,8 @@ mod test {
fn setup_keys<Ctx: ScriptContext>( fn setup_keys<Ctx: ScriptContext>(
tprv: &str, tprv: &str,
secp: &SecpCtx,
) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) { ) -> (DescriptorKey<Ctx>, DescriptorKey<Ctx>, Fingerprint) {
let secp: Secp256k1<All> = Secp256k1::new();
let path = bip32::DerivationPath::from_str(PATH).unwrap(); let path = bip32::DerivationPath::from_str(PATH).unwrap();
let tprv = bip32::ExtendedPrivKey::from_str(tprv).unwrap(); let tprv = bip32::ExtendedPrivKey::from_str(tprv).unwrap();
let tpub = bip32::ExtendedPubKey::from_private(&secp, &tprv); let tpub = bip32::ExtendedPubKey::from_private(&secp, &tprv);
@ -926,7 +927,7 @@ mod test {
fn test_extract_policy_for_wpkh() { fn test_extract_policy_for_wpkh() {
let secp = Secp256k1::new(); let secp = Secp256k1::new();
let (prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR); let (prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR, &secp);
let desc = descriptor!(wpkh(pubkey)).unwrap(); let desc = descriptor!(wpkh(pubkey)).unwrap();
let (wallet_desc, keymap) = desc let (wallet_desc, keymap) = desc
.into_wallet_descriptor(&secp, Network::Testnet) .into_wallet_descriptor(&secp, Network::Testnet)
@ -1025,8 +1026,8 @@ mod test {
fn test_extract_policy_for_sh_multi_complete_1of2() { fn test_extract_policy_for_sh_multi_complete_1of2() {
let secp = Secp256k1::new(); let secp = Secp256k1::new();
let (_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR); let (_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, &secp);
let (prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR); let (prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, &secp);
let desc = descriptor!(sh(multi(1, pubkey0, prvkey1))).unwrap(); let desc = descriptor!(sh(multi(1, pubkey0, prvkey1))).unwrap();
let (wallet_desc, keymap) = desc let (wallet_desc, keymap) = desc
.into_wallet_descriptor(&secp, Network::Testnet) .into_wallet_descriptor(&secp, Network::Testnet)
@ -1057,8 +1058,8 @@ mod test {
fn test_extract_policy_for_sh_multi_complete_2of2() { fn test_extract_policy_for_sh_multi_complete_2of2() {
let secp = Secp256k1::new(); let secp = Secp256k1::new();
let (prvkey0, _pubkey0, fingerprint0) = setup_keys(TPRV0_STR); let (prvkey0, _pubkey0, fingerprint0) = setup_keys(TPRV0_STR, &secp);
let (prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR); let (prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, &secp);
let desc = descriptor!(sh(multi(2, prvkey0, prvkey1))).unwrap(); let desc = descriptor!(sh(multi(2, prvkey0, prvkey1))).unwrap();
let (wallet_desc, keymap) = desc let (wallet_desc, keymap) = desc
.into_wallet_descriptor(&secp, Network::Testnet) .into_wallet_descriptor(&secp, Network::Testnet)
@ -1090,7 +1091,7 @@ mod test {
fn test_extract_policy_for_single_wpkh() { fn test_extract_policy_for_single_wpkh() {
let secp = Secp256k1::new(); let secp = Secp256k1::new();
let (prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR); let (prvkey, pubkey, fingerprint) = setup_keys(TPRV0_STR, &secp);
let desc = descriptor!(wpkh(pubkey)).unwrap(); let desc = descriptor!(wpkh(pubkey)).unwrap();
let (wallet_desc, keymap) = desc let (wallet_desc, keymap) = desc
.into_wallet_descriptor(&secp, Network::Testnet) .into_wallet_descriptor(&secp, Network::Testnet)
@ -1132,8 +1133,8 @@ mod test {
fn test_extract_policy_for_single_wsh_multi_complete_1of2() { fn test_extract_policy_for_single_wsh_multi_complete_1of2() {
let secp = Secp256k1::new(); let secp = Secp256k1::new();
let (_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR); let (_prvkey0, pubkey0, fingerprint0) = setup_keys(TPRV0_STR, &secp);
let (prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR); let (prvkey1, _pubkey1, fingerprint1) = setup_keys(TPRV1_STR, &secp);
let desc = descriptor!(sh(multi(1, pubkey0, prvkey1))).unwrap(); let desc = descriptor!(sh(multi(1, pubkey0, prvkey1))).unwrap();
let (wallet_desc, keymap) = desc let (wallet_desc, keymap) = desc
.into_wallet_descriptor(&secp, Network::Testnet) .into_wallet_descriptor(&secp, Network::Testnet)
@ -1167,8 +1168,8 @@ mod test {
fn test_extract_policy_for_wsh_multi_timelock() { fn test_extract_policy_for_wsh_multi_timelock() {
let secp = Secp256k1::new(); let secp = Secp256k1::new();
let (prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR); let (prvkey0, _pubkey0, _fingerprint0) = setup_keys(TPRV0_STR, &secp);
let (_prvkey1, pubkey1, _fingerprint1) = setup_keys(TPRV1_STR); let (_prvkey1, pubkey1, _fingerprint1) = setup_keys(TPRV1_STR, &secp);
let sequence = 50; let sequence = 50;
#[rustfmt::skip] #[rustfmt::skip]
let desc = descriptor!(wsh(thresh( let desc = descriptor!(wsh(thresh(
@ -1261,10 +1262,10 @@ mod test {
#[test] #[test]
fn test_get_condition_multisig() { fn test_get_condition_multisig() {
let secp = Secp256k1::gen_new(); let secp = Secp256k1::new();
let (_, pk0, _) = setup_keys(TPRV0_STR); let (_, pk0, _) = setup_keys(TPRV0_STR, &secp);
let (_, pk1, _) = setup_keys(TPRV1_STR); let (_, pk1, _) = setup_keys(TPRV1_STR, &secp);
let desc = descriptor!(wsh(multi(1, pk0, pk1))).unwrap(); let desc = descriptor!(wsh(multi(1, pk0, pk1))).unwrap();
let (wallet_desc, keymap) = desc let (wallet_desc, keymap) = desc