Skip to content

Commit 6359f03

Browse files
committed
confidential: switch test vectors to use xpubs rather than bare keys
1 parent a332208 commit 6359f03

File tree

1 file changed

+47
-47
lines changed

1 file changed

+47
-47
lines changed

src/confidential/mod.rs

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ mod tests {
146146
use elements::Address;
147147

148148
use super::*;
149-
use crate::NoExt;
149+
use crate::{DefiniteDescriptorKey, NoExt};
150150

151151
#[test]
152152
fn bare_addr_to_confidential() {
@@ -168,8 +168,8 @@ mod tests {
168168
}
169169

170170
struct ConfidentialTest {
171-
key: Key<secp256k1_zkp::PublicKey>,
172-
descriptor: crate::Descriptor<secp256k1_zkp::PublicKey, NoExt>,
171+
key: Key<DefiniteDescriptorKey>,
172+
descriptor: crate::Descriptor<DefiniteDescriptorKey, NoExt>,
173173
descriptor_str: String,
174174
conf_addr: &'static str,
175175
unconf_addr: &'static str,
@@ -180,8 +180,8 @@ mod tests {
180180
&self,
181181
secp: &secp256k1_zkp::Secp256k1<C>,
182182
) {
183-
let desc: Descriptor<secp256k1_zkp::PublicKey, NoExt> = Descriptor {
184-
key: self.key,
183+
let desc: Descriptor<DefiniteDescriptorKey, NoExt> = Descriptor {
184+
key: self.key.clone(),
185185
descriptor: self.descriptor.clone(),
186186
};
187187
assert_eq!(self.descriptor_str, desc.to_string());
@@ -207,7 +207,7 @@ mod tests {
207207
index, self.descriptor_str
208208
);
209209
match self.key {
210-
Key::Bare(pk) => println!("** Blinding key: <code>{}</code>", pk),
210+
Key::Bare(ref pk) => println!("** Blinding key: <code>{}</code>", pk),
211211
Key::Slip77(mbk) => println!("** SLIP77 master blinding key: <code>{}</code>", mbk),
212212
}
213213
println!("** Confidential address: <code>{}</code>", self.conf_addr);
@@ -224,80 +224,80 @@ mod tests {
224224
let secp = secp256k1_zkp::Secp256k1::new();
225225

226226
// CT key used for bare keys
227-
let ct_key = secp256k1_zkp::PublicKey::from_str(
228-
"02dce16018bbbb8e36de7b394df5b5166e9adb7498be7d881a85a09aeecf76b623",
227+
let ct_key = DefiniteDescriptorKey::from_str(
228+
"xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL",
229229
)
230230
.unwrap();
231231
// Auxiliary key to create scriptpubkeys from
232-
let spk_key = secp256k1_zkp::PublicKey::from_str(
233-
"03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4",
232+
let spk_key = DefiniteDescriptorKey::from_str(
233+
"xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH",
234234
)
235235
.unwrap();
236236

237237
let tests = vec![
238238
// Bare key, P2PKH
239239
ConfidentialTest {
240-
key: Key::Bare(ct_key),
241-
descriptor: crate::Descriptor::new_pkh(spk_key),
242-
descriptor_str: format!("ct({},elpkh({}))#y6sgetu5", ct_key, spk_key),
243-
conf_addr: "CTEp9vcs3eU7zQoyrAqeu9LwdcB8QtC2igYSWt7dhaEQvDwVCceLHdLrREAeYrhC5Jz9Wedn3JyxMzpo",
244-
unconf_addr: "2daq3zWYvigZd3i8VmBnFrZd4DPT9iV94EP",
240+
key: Key::Bare(ct_key.clone()),
241+
descriptor: crate::Descriptor::new_pkh(spk_key.clone()),
242+
descriptor_str: format!("ct({},elpkh({}))#y0lg3d5y", ct_key, spk_key),
243+
conf_addr: "CTEnDa5fqGccV3g3jvp4exSQwRfb6FpGchNBF4ZrAaq8ip8gvLqHCtzw1F7d7U5gYJYXBwymgEMmJjca",
244+
unconf_addr: "2dhfebpgPWpeqPdCMMam5F2UHAgx3bbLzAg",
245245
},
246246
// Bare key, P2WPKH
247247
ConfidentialTest {
248-
key: Key::Bare(ct_key),
249-
descriptor: crate::Descriptor::new_wpkh(spk_key).unwrap(),
250-
descriptor_str: format!("ct({},elwpkh({}))#h5e0p6m9", ct_key, spk_key),
251-
conf_addr: "el1qq0r6pegudzm0tzpszelc34qjln4fdxawgwmgnza63wwpzdy6jrm0grmqvvk2ce5ksnxcs9ecgtnryt7xg34060uctupg60d02",
252-
unconf_addr: "ert1qpasxxt9vv6tgfnvgzuuy9e3j9lryg6ha53x9q0",
248+
key: Key::Bare(ct_key.clone()),
249+
descriptor: crate::Descriptor::new_wpkh(spk_key.clone()).unwrap(),
250+
descriptor_str: format!("ct({},elwpkh({}))#kt4e25qt", ct_key, spk_key),
251+
conf_addr: "el1qqg5s7xj7upzl7h4q2k2wj4vq63nvaktn0egqu09nqcr6d44p4evaqknpl78t02k2xqgdh9ltmfmpy9ssk7qfvrldr2dttt3ez",
252+
unconf_addr: "ert1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyk32h3ur",
253253
},
254254
// Bare key, P2SH-WPKH
255255
ConfidentialTest {
256-
key: Key::Bare(ct_key),
257-
descriptor: crate::Descriptor::new_sh_wpkh(spk_key).unwrap(),
258-
descriptor_str: format!("ct({},elsh(wpkh({})))#3kvhe0a8", ct_key, spk_key),
259-
conf_addr: "AzpsK7uqP1KVEMfDQvBXYUkpHmFagD3W4vaLe1X7uy8MS6nj41kNYnaexuXgx14PcbNnYAqBdCSWcbga",
260-
unconf_addr: "XQ7ffnJkhMwj1H8Ma6N1vcU9mqAa96wB9w",
256+
key: Key::Bare(ct_key.clone()),
257+
descriptor: crate::Descriptor::new_sh_wpkh(spk_key.clone()).unwrap(),
258+
descriptor_str: format!("ct({},elsh(wpkh({})))#xg9r4jej", ct_key, spk_key),
259+
conf_addr: "AzpnREsN1RSi4JB7rAfpywmPsvGxyygmwm9o3iZcP43svg4frVW5DXvGj5yEx6mKcPtAyHgQWVikFRCM",
260+
unconf_addr: "XKGUGskfGsNRR1Ww4ytemgBjuszohUaNgv",
261261
},
262262
// Bare key, P2TR
263263
ConfidentialTest {
264-
key: Key::Bare(ct_key),
265-
descriptor: crate::Descriptor::new_tr(spk_key, None).unwrap(),
266-
descriptor_str: format!("ct({},eltr({}))#ytq9w7f3", ct_key, spk_key),
267-
conf_addr: "el1pqw5c43qvxyvj52ua7crx7tv62zca5356rsx439dqkyyqyavpmq2hz6r5jd0rkpzukq6hd965kepcmwtxvg0fh4ak4f636gv25yky23ce6z5pdt3ksqn2",
268-
unconf_addr: "ert1pdp6fxh3mq3wtqdtkja2tvsudh9nxy85m67m25agayx92ztz9guvs9wr5lg",
264+
key: Key::Bare(ct_key.clone()),
265+
descriptor: crate::Descriptor::new_tr(spk_key.clone(), None).unwrap(),
266+
descriptor_str: format!("ct({},eltr({}))#c0pjjxyw", ct_key, spk_key),
267+
conf_addr: "el1pq0nsl8du3gsuk7r90sgm78259mmv6mt9d4yvj30zr3u052ufs5meuc2tuvwx7k7g9kvhhpux07vqpm3qjj8uwdj94650265ustv0xy8z2pc847zht4k0",
268+
unconf_addr: "ert1pv997x8r0t0yzmxtms7r8lxqqacsffr78xez6a284d2wg9k8nzr3q3s6527",
269269
},
270270
// SLIP77, P2PKH
271271
ConfidentialTest {
272272
key: Key::Slip77(slip77::MasterBlindingKey::from_seed(b"abcd")),
273-
descriptor: crate::Descriptor::new_pkh(spk_key),
274-
descriptor_str: "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elpkh(03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4))#8cdjnvav".into(),
275-
conf_addr: "CTEkBfH2b6fyhfpn2iW1aoLFrC9DHooTsa7ouxXDuKVjLNF3GwJdgqQn63GriXDvTs7ntSU8NwXGrLKg",
276-
unconf_addr: "2daq3zWYvigZd3i8VmBnFrZd4DPT9iV94EP",
273+
descriptor: crate::Descriptor::new_pkh(spk_key.clone()),
274+
descriptor_str: format!("ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elpkh({}))#hw2glz99", spk_key),
275+
conf_addr: "CTEvn67jjJXDr3aDCZypTCJc6XHZ7ATyd89oXfNLQt1G2omPUpPkHA6zUAGPGF2YH4RnWfWut2f4dRSd",
276+
unconf_addr: "2dhfebpgPWpeqPdCMMam5F2UHAgx3bbLzAg",
277277
},
278278
// SLIP77, P2WPKH
279279
ConfidentialTest {
280280
key: Key::Slip77(slip77::MasterBlindingKey::from_seed(b"abcd")),
281-
descriptor: crate::Descriptor::new_wpkh(spk_key).unwrap(),
282-
descriptor_str: "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elwpkh(03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4))#z5dnzfhk".into(),
283-
conf_addr: "el1qqva2r6mg26rr86u9t3qz2amya9v3ckks9ztcxgur6y6pktfa26d2qrmqvvk2ce5ksnxcs9ecgtnryt7xg3406z5cvgcqsgt35",
284-
unconf_addr: "ert1qpasxxt9vv6tgfnvgzuuy9e3j9lryg6ha53x9q0",
281+
descriptor: crate::Descriptor::new_wpkh(spk_key.clone()).unwrap(),
282+
descriptor_str: format!("ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elwpkh({}))#545pl285", spk_key),
283+
conf_addr: "el1qqdx5wnttttzulcs6ujlg9pfts6mp3r4sdwg5ekdej566n5wxzk88vknpl78t02k2xqgdh9ltmfmpy9ssk7qfvge347y58xukt",
284+
unconf_addr: "ert1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyk32h3ur",
285285
},
286286
// SLIP77, P2SH
287287
ConfidentialTest {
288288
key: Key::Slip77(slip77::MasterBlindingKey::from_seed(b"abcd")),
289-
descriptor: crate::Descriptor::new_sh_wpkh(spk_key).unwrap(),
290-
descriptor_str: "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elsh(wpkh(03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4)))#qgjmm4as".into(),
291-
conf_addr: "AzprjJt3poXAJWLmanTHYB2zrkUMXiiVyCRhDS7VRRaXUsRqeCMi3vKe4YufizpYDyzvQFLsvjfMeLMD",
292-
unconf_addr: "XQ7ffnJkhMwj1H8Ma6N1vcU9mqAa96wB9w",
289+
descriptor: crate::Descriptor::new_sh_wpkh(spk_key.clone()).unwrap(),
290+
descriptor_str: format!("ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elsh(wpkh({})))#m30vswxr", spk_key),
291+
conf_addr: "AzptgrWR3xVX6Qg8mbkyZiESb6C9uy8VCUdCCmw7UtceiF5H8PdB6933YDT7vHsevK1yFmxfajdaedCH",
292+
unconf_addr: "XKGUGskfGsNRR1Ww4ytemgBjuszohUaNgv",
293293
},
294294
// SLIP77, P2TR
295295
ConfidentialTest {
296296
key: Key::Slip77(slip77::MasterBlindingKey::from_seed(b"abcd")),
297-
descriptor: crate::Descriptor::new_tr(spk_key, None).unwrap(),
298-
descriptor_str: "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),eltr(03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4))#65xky8c4".into(),
299-
conf_addr: "el1pqgkj53t6cpqytk65s7dygws4a6hny3rrev7rw3r5gl7ymnjdqtt9k6r5jd0rkpzukq6hd965kepcmwtxvg0fh4ak4f636gv25yky23cehlfsszhd84mc",
300-
unconf_addr: "ert1pdp6fxh3mq3wtqdtkja2tvsudh9nxy85m67m25agayx92ztz9guvs9wr5lg",
297+
descriptor: crate::Descriptor::new_tr(spk_key.clone(), None).unwrap(),
298+
descriptor_str: format!("ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),eltr({}))#n3v4t5cs", spk_key),
299+
conf_addr: "el1pq26fndnz8ef6umlz6e2755sm6j5jwxv3tdt2295mr4mx6ux0uf8vcc2tuvwx7k7g9kvhhpux07vqpm3qjj8uwdj94650265ustv0xy8zwzhhycxfhdrm",
300+
unconf_addr: "ert1pv997x8r0t0yzmxtms7r8lxqqacsffr78xez6a284d2wg9k8nzr3q3s6527",
301301
},
302302
];
303303

@@ -351,7 +351,7 @@ mod tests {
351351
*/
352352

353353
for bad_str in bad_strs {
354-
let err = Descriptor::<secp256k1_zkp::PublicKey>::from_str(bad_str.0).unwrap_err();
354+
let err = Descriptor::<DefiniteDescriptorKey>::from_str(bad_str.0).unwrap_err();
355355
assert_eq!(bad_str.1, err.to_string());
356356
}
357357
}

0 commit comments

Comments
 (0)