Skip to content

Commit b9ccd9d

Browse files
committed
descriptor: add unit tests for constructing multipath keys
1 parent dad3532 commit b9ccd9d

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

src/descriptor/key.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1385,7 +1385,9 @@ mod test {
13851385
use super::{
13861386
DescriptorMultiXKey, DescriptorPublicKey, DescriptorSecretKey, MiniscriptKey, Wildcard,
13871387
};
1388+
use crate::descriptor::key::NonDefiniteKeyError;
13881389
use crate::prelude::*;
1390+
use crate::DefiniteDescriptorKey;
13891391

13901392
#[test]
13911393
fn parse_descriptor_key_errors() {
@@ -1765,4 +1767,23 @@ mod test {
17651767
let public_key = DescriptorPublicKey::from_str(desc).unwrap();
17661768
assert_tokens(&public_key, &[Token::String(desc)]);
17671769
}
1770+
1771+
#[test]
1772+
fn definite_keys() {
1773+
// basic xpub
1774+
let desc = "xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8"
1775+
.parse::<DescriptorPublicKey>()
1776+
.unwrap();
1777+
assert!(matches!(DefiniteDescriptorKey::new(desc), Ok(..)));
1778+
// xpub with wildcard
1779+
let desc = "xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8/*"
1780+
.parse::<DescriptorPublicKey>()
1781+
.unwrap();
1782+
assert!(matches!(DefiniteDescriptorKey::new(desc), Err(NonDefiniteKeyError::Wildcard)));
1783+
// multipath xpub
1784+
let desc = "xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8/<0;1>"
1785+
.parse::<DescriptorPublicKey>()
1786+
.unwrap();
1787+
assert!(matches!(DefiniteDescriptorKey::new(desc), Err(NonDefiniteKeyError::Multipath)));
1788+
}
17681789
}

0 commit comments

Comments
 (0)