Skip to content

Commit 31e914c

Browse files
committed
descriptor: add unit tests for constructing multipath keys
1 parent 9766e6e commit 31e914c

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
@@ -1384,7 +1384,9 @@ mod test {
13841384
use super::{
13851385
DescriptorMultiXKey, DescriptorPublicKey, DescriptorSecretKey, MiniscriptKey, Wildcard,
13861386
};
1387+
use crate::descriptor::key::NonDefiniteKeyError;
13871388
use crate::prelude::*;
1389+
use crate::DefiniteDescriptorKey;
13881390

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

0 commit comments

Comments
 (0)