|
| 1 | +use bdk_wallet::keyring::KeyRing; |
| 2 | +use bitcoin::Network; |
| 3 | +use bdk_wallet::KeychainKind; |
| 4 | + |
| 5 | +// From the mnemonic "awesome awesome awesome awesome awesome awesome awesome awesome awesome awesome awesome awesome" |
| 6 | +const DESC_1: &str = "tr(tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4/86'/1'/0'/0/*)"; |
| 7 | + |
| 8 | +#[test] |
| 9 | +fn test_simple_keyring() { |
| 10 | + let network = Network::Regtest; |
| 11 | + let keychain_id = KeychainKind::External; |
| 12 | + |
| 13 | + let keyring = KeyRing::new(network, keychain_id, DESC_1); |
| 14 | + |
| 15 | + assert_eq!(keyring.default_keychain(), keychain_id); |
| 16 | + assert_eq!(keyring.list_keychains().len(), 1); |
| 17 | +} |
| 18 | + |
| 19 | +#[test] |
| 20 | +fn test_8_keychains_keyring() { |
| 21 | + const DESC_1: &str = "tr(tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4/86'/1'/0'/0/*)"; |
| 22 | + const DESC_2: &str = "tr(tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4/86'/1'/0'/1/*)"; |
| 23 | + const DESC_3: &str = "tr(tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4/86'/1'/0'/2/*)"; |
| 24 | + const DESC_4: &str = "tr(tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4/86'/1'/0'/3/*)"; |
| 25 | + const DESC_5: &str = "tr(tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4/86'/1'/0'/4/*)"; |
| 26 | + const DESC_6: &str = "tr(tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4/86'/1'/0'/5/*)"; |
| 27 | + const DESC_7: &str = "tr(tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4/86'/1'/0'/6/*)"; |
| 28 | + const DESC_8: &str = "tr(tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4/86'/1'/0'/7/*)"; |
| 29 | + |
| 30 | + let mut keyring = KeyRing::new(Network::Regtest, 1, DESC_1); |
| 31 | + keyring.add_descriptor(2, DESC_2, false); |
| 32 | + keyring.add_descriptor(3, DESC_3, false); |
| 33 | + keyring.add_descriptor(4, DESC_4, false); |
| 34 | + keyring.add_descriptor(5, DESC_5, false); |
| 35 | + keyring.add_descriptor(6, DESC_6, false); |
| 36 | + keyring.add_descriptor(7, DESC_7, false); |
| 37 | + keyring.add_descriptor(8, DESC_8, false); |
| 38 | + |
| 39 | + assert_eq!(keyring.default_keychain(), 1); |
| 40 | + assert_eq!(keyring.list_keychains().len(), 8); |
| 41 | +} |
0 commit comments