Skip to content

Commit 0037a49

Browse files
committed
test: align wallet tests with maintainer feedback
1 parent 0c1ec72 commit 0037a49

1 file changed

Lines changed: 40 additions & 28 deletions

File tree

bdk-ffi/src/tests/wallet.rs

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,18 @@ const EXTERNAL_DESCRIPTOR: &str = "wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv2
1111
const INTERNAL_DESCRIPTOR: &str = "wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/1h/1/*)";
1212
const EXPECTED_FIRST_ADDRESS: &str = "tb1qhjys9wxlfykmte7ftryptx975uqgd6kcm6a7z4";
1313

14-
fn build_wallet() -> Wallet {
15-
Wallet::new(
16-
Arc::new(Descriptor::new(EXTERNAL_DESCRIPTOR.to_string(), Network::Signet).unwrap()),
17-
Arc::new(Descriptor::new(INTERNAL_DESCRIPTOR.to_string(), Network::Signet).unwrap()),
18-
Network::Signet,
19-
Arc::new(Persister::new_in_memory().unwrap()),
20-
25,
21-
)
22-
.unwrap()
14+
fn external_descriptor() -> Arc<Descriptor> {
15+
Arc::new(Descriptor::new(EXTERNAL_DESCRIPTOR.to_string(), Network::Signet).unwrap())
2316
}
2417

25-
fn build_single_descriptor_wallet() -> Wallet {
26-
Wallet::create_single(
27-
Arc::new(Descriptor::new(EXTERNAL_DESCRIPTOR.to_string(), Network::Signet).unwrap()),
18+
fn internal_descriptor() -> Arc<Descriptor> {
19+
Arc::new(Descriptor::new(INTERNAL_DESCRIPTOR.to_string(), Network::Signet).unwrap())
20+
}
21+
22+
fn build_wallet() -> Wallet {
23+
Wallet::new(
24+
external_descriptor(),
25+
internal_descriptor(),
2826
Network::Signet,
2927
Arc::new(Persister::new_in_memory().unwrap()),
3028
25,
@@ -33,39 +31,53 @@ fn build_single_descriptor_wallet() -> Wallet {
3331
}
3432

3533
#[test]
36-
fn test_create_wallet_offline() {
34+
fn test_create_wallet() {
3735
let wallet = build_wallet();
3836

3937
assert_eq!(wallet.network(), Network::Signet);
38+
assert_eq!(wallet.balance().total.to_sat(), 0u64);
4039
assert!(wallet.list_unspent().is_empty());
40+
assert_eq!(wallet.derivation_index(KeychainKind::External), None);
41+
assert_eq!(wallet.next_derivation_index(KeychainKind::External), 0);
4142
}
4243

4344
#[test]
44-
fn test_new_wallet_starts_with_zero_balance() {
45+
fn test_reveal_next_address() {
4546
let wallet = build_wallet();
4647

47-
assert_eq!(wallet.balance().total.to_sat(), 0u64);
48-
}
48+
assert_eq!(wallet.derivation_index(KeychainKind::External), None);
4949

50-
#[test]
51-
fn test_reveal_next_address_offline() {
52-
let wallet = build_wallet();
5350
let address_info = wallet.reveal_next_address(KeychainKind::External);
5451

5552
assert_eq!(address_info.index, 0);
5653
assert_eq!(address_info.keychain, KeychainKind::External);
5754
assert_eq!(address_info.address.to_string(), EXPECTED_FIRST_ADDRESS);
55+
assert_eq!(wallet.derivation_index(KeychainKind::External), Some(0));
5856
assert_eq!(wallet.next_derivation_index(KeychainKind::External), 1);
5957
}
6058

6159
#[test]
62-
fn test_single_descriptor_wallet_external_and_internal_peek_match() {
63-
let wallet = build_single_descriptor_wallet();
64-
let external = wallet.peek_address(KeychainKind::External, 0);
65-
let internal = wallet.peek_address(KeychainKind::Internal, 0);
66-
67-
assert_eq!(external.index, 0);
68-
assert_eq!(internal.index, 0);
69-
assert_eq!(external.address.to_string(), EXPECTED_FIRST_ADDRESS);
70-
assert_eq!(external.address.to_string(), internal.address.to_string());
60+
fn test_create_single_wallet() {
61+
let descriptor = external_descriptor();
62+
let wallet = Wallet::create_single(
63+
descriptor.clone(),
64+
Network::Signet,
65+
Arc::new(Persister::new_in_memory().unwrap()),
66+
25,
67+
)
68+
.unwrap();
69+
70+
assert_eq!(wallet.derivation_index(KeychainKind::External), None);
71+
72+
let address_info = wallet.reveal_next_address(KeychainKind::External);
73+
74+
assert_eq!(address_info.index, 0);
75+
assert_eq!(address_info.keychain, KeychainKind::External);
76+
assert_eq!(address_info.address.to_string(), EXPECTED_FIRST_ADDRESS);
77+
assert_eq!(wallet.derivation_index(KeychainKind::External), Some(0));
78+
assert_eq!(wallet.next_derivation_index(KeychainKind::External), 1);
79+
assert_eq!(
80+
wallet.public_descriptor(KeychainKind::External),
81+
descriptor.to_string()
82+
);
7183
}

0 commit comments

Comments
 (0)