diff --git a/test/wallet_keychains_test.dart b/test/wallet_keychains_test.dart new file mode 100644 index 0000000..c2eff40 --- /dev/null +++ b/test/wallet_keychains_test.dart @@ -0,0 +1,47 @@ +import 'package:bdk_dart/bdk.dart'; +import 'package:test/test.dart'; + +import 'test_constants.dart'; + +void main() { + group('Wallet keychains', () { + test('exposes keychains and public descriptors from Dart', () { + final descriptor = buildBip84Descriptor(Network.testnet); + final changeDescriptor = buildBip84ChangeDescriptor(Network.testnet); + final persister = Persister.newInMemory(); + Wallet? wallet; + + try { + wallet = Wallet( + descriptor: descriptor, + changeDescriptor: changeDescriptor, + network: Network.testnet, + persister: persister, + lookahead: defaultLookahead, + ); + + final keychains = wallet.keychains(); + + try { + expect(keychains, isNotEmpty); + for (final walletKeychain in keychains) { + expect( + wallet.publicDescriptor(keychain: walletKeychain.keychain), + isNotEmpty, + ); + expect(walletKeychain.publicDescriptor.toString(), isNotEmpty); + } + } finally { + for (final walletKeychain in keychains) { + walletKeychain.publicDescriptor.dispose(); + } + } + } finally { + wallet?.dispose(); + persister.dispose(); + descriptor.dispose(); + changeDescriptor.dispose(); + } + }); + }); +}