diff --git a/bdk-ffi b/bdk-ffi index 87dcdd3..a8ff523 160000 --- a/bdk-ffi +++ b/bdk-ffi @@ -1 +1 @@ -Subproject commit 87dcdd3c1ab15764f55d84f8f6aa7b5b06eec79c +Subproject commit a8ff523698121a283b54493624db37f4268e3e6b diff --git a/examples/src/main/kotlin/MultisigTaprootTransaction.kt b/examples/src/main/kotlin/MultisigTaprootTransaction.kt index 920681b..b3f64f5 100644 --- a/examples/src/main/kotlin/MultisigTaprootTransaction.kt +++ b/examples/src/main/kotlin/MultisigTaprootTransaction.kt @@ -36,11 +36,11 @@ fun main() { // that the wallet can only be spent via the script path (no key-path spending). val externalDescriptor = Descriptor( descriptor = "tr($UNSPENDABLE_KEY,multi_a(2,$alicePublicDescriptor,$bobPublicDescriptor,$mattPublicDescriptor))", - network = Network.REGTEST + networkKind = NetworkKind.TEST ) val changeDescriptor = Descriptor( descriptor = "tr($UNSPENDABLE_KEY,multi_a(2,$aliceChangeDescriptor,$bobChangeDescriptor,$mattChangeDescriptor))", - network = Network.REGTEST + networkKind = NetworkKind.TEST ) // Create multisig wallet (reuse shared persistence helper) diff --git a/examples/src/main/kotlin/MultisigTransaction.kt b/examples/src/main/kotlin/MultisigTransaction.kt index 2d13365..a98534b 100644 --- a/examples/src/main/kotlin/MultisigTransaction.kt +++ b/examples/src/main/kotlin/MultisigTransaction.kt @@ -31,11 +31,11 @@ fun main() { // Define the descriptors for a multisig wallet with Alice, Bob and Matt's public descriptors. val externalDescriptor = Descriptor( "wsh(multi(2,$alicePublicDescriptor,$bobPublicDescriptor,$mattPublicDescriptor))", - Network.REGTEST + NetworkKind.TEST ) val changeDescriptor = Descriptor( "wsh(multi(2,$aliceChangeDescriptor,$bobChangeDescriptor,$mattChangeDescriptor))", - Network.REGTEST + NetworkKind.TEST ) //Create multisig wallet @@ -144,7 +144,7 @@ fun esploraFullScanWallet( fun getNewWallet(script: ActiveWalletScriptType, network: Network): Wallet { val (descriptor, changeDescriptor) = createDescriptorsFromBip32RootKey( script, - network + NetworkKind.TEST ) val connection: Persister = Persister.newSqlite(generateUniquePersistenceFilePath()) val wallet = Wallet(descriptor, changeDescriptor, network, connection) diff --git a/examples/src/main/kotlin/WalletSetupBip32.kt b/examples/src/main/kotlin/WalletSetupBip32.kt index dca47b0..5516b5e 100644 --- a/examples/src/main/kotlin/WalletSetupBip32.kt +++ b/examples/src/main/kotlin/WalletSetupBip32.kt @@ -5,7 +5,7 @@ import java.nio.file.Paths fun main(){ val (descriptor, changeDescriptor) = createDescriptorsFromBip32RootKey( ActiveWalletScriptType.P2WPKH, - Network.REGTEST + NetworkKind.TEST ) println("Descriptor: $descriptor") println("Change descriptor: $changeDescriptor") @@ -24,7 +24,7 @@ fun main(){ fun createDescriptorsFromBip32RootKey ( activeWalletScriptType: ActiveWalletScriptType, - network: Network) : Array{ + network: NetworkKind) : Array{ val mnemonic = Mnemonic(WordCount.WORDS12) val bip32ExtendedRootKey = DescriptorSecretKey(network, mnemonic, null) println("Bip32 root key: $bip32ExtendedRootKey") @@ -48,7 +48,7 @@ fun createDescriptorsFromBip32RootKey ( fun createScriptAppropriateDescriptor( scriptType: ActiveWalletScriptType, bip32ExtendedRootKey: DescriptorSecretKey, - network: Network, + network: NetworkKind, keychain: KeychainKind, ): Descriptor { return when (scriptType) { diff --git a/lib/src/test/kotlin/org/bitcoindevkit/Constants.kt b/lib/src/test/kotlin/org/bitcoindevkit/Constants.kt index c49d72f..7b893fa 100644 --- a/lib/src/test/kotlin/org/bitcoindevkit/Constants.kt +++ b/lib/src/test/kotlin/org/bitcoindevkit/Constants.kt @@ -28,16 +28,16 @@ const val BIP86_MAIN_MULTIPATH = "86h/0h/0h/<0;1>" // 4. Descriptors // These are also generated from the MNEMONIC_AWESOME mnemonic. The descriptors with the TEST prefix are valid for // Regtest, Signet, Testnet3, and Testnet4. The descriptors with the MAIN prefix are valid for Mainnet. -val TEST_BIP84_DESCRIPTOR = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", Network.TESTNET4) -val TEST_BIP84_CHANGE_DESCRIPTOR = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_CHANGE_PATH/*)", Network.TESTNET4) -val TEST_BIP86_DESCRIPTOR = Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.TESTNET4) -val TEST_BIP86_CHANGE_DESCRIPTOR = Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_CHANGE_PATH/*)", Network.TESTNET4) -val TEST_DEFINITE_DESCRIPTOR_0 = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/0)", Network.TESTNET4) -val TEST_DEFINITE_DESCRIPTOR_1 = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/1)", Network.TESTNET4) -val TEST_MULTIPATH_DESCRIPTOR = Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", Network.TESTNET4) - -val MAIN_BIP86_DESCRIPTOR = Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.BITCOIN) -val MAIN_BIP86_CHANGE_DESCRIPTOR = Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_TEST_CHANGE_PATH/*)", Network.BITCOIN) +val TEST_BIP84_DESCRIPTOR = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) +val TEST_BIP84_CHANGE_DESCRIPTOR = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_CHANGE_PATH/*)", NetworkKind.TEST) +val TEST_BIP86_DESCRIPTOR = Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) +val TEST_BIP86_CHANGE_DESCRIPTOR = Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_CHANGE_PATH/*)", NetworkKind.TEST) +val TEST_DEFINITE_DESCRIPTOR_0 = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/0)", NetworkKind.TEST) +val TEST_DEFINITE_DESCRIPTOR_1 = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/1)", NetworkKind.TEST) +val TEST_MULTIPATH_DESCRIPTOR = Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", NetworkKind.TEST) + +val MAIN_BIP86_DESCRIPTOR = Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", NetworkKind.MAIN) +val MAIN_BIP86_CHANGE_DESCRIPTOR = Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_TEST_CHANGE_PATH/*)", NetworkKind.MAIN) //Regtest URLs for testing. Defaults for regtest-toolbox diff --git a/lib/src/test/kotlin/org/bitcoindevkit/DescriptorTest.kt b/lib/src/test/kotlin/org/bitcoindevkit/DescriptorTest.kt index 74df37c..bb53f9a 100644 --- a/lib/src/test/kotlin/org/bitcoindevkit/DescriptorTest.kt +++ b/lib/src/test/kotlin/org/bitcoindevkit/DescriptorTest.kt @@ -9,38 +9,38 @@ class DescriptorTest { inner class Success { @Test fun `Create extended WPKH descriptors for all networks`() { - Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", Network.REGTEST) - Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", Network.TESTNET) - Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", Network.TESTNET4) - Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", Network.SIGNET) - Descriptor("wpkh($MAIN_EXTENDED_PRIVKEY/$BIP84_MAIN_RECEIVE_PATH/*)", Network.BITCOIN) + Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) + Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) + Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) + Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) + Descriptor("wpkh($MAIN_EXTENDED_PRIVKEY/$BIP84_MAIN_RECEIVE_PATH/*)", NetworkKind.MAIN) } @Test fun `Create extended TR descriptors for all networks`() { - Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.REGTEST) - Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.TESTNET) - Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.TESTNET4) - Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.SIGNET) - Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_MAIN_RECEIVE_PATH/*)", Network.BITCOIN) + Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) + Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) + Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) + Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", NetworkKind.TEST) + Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_MAIN_RECEIVE_PATH/*)", NetworkKind.MAIN) } @Test fun `Create non-extended descriptors for all networks`() { - Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", Network.REGTEST) - Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", Network.TESTNET) - Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", Network.TESTNET4) - Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", Network.SIGNET) - Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_MAIN_RECEIVE_PATH/0)", Network.BITCOIN) + Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", NetworkKind.TEST) + Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", NetworkKind.TEST) + Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", NetworkKind.TEST) + Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", NetworkKind.TEST) + Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_MAIN_RECEIVE_PATH/0)", NetworkKind.MAIN) } @Test fun `Create descriptors from multipath public descriptor strings`() { - Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", Network.REGTEST) - Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", Network.TESTNET) - Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", Network.TESTNET4) - Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", Network.SIGNET) - Descriptor("tr($MAIN_EXTENDED_PUBKEY/<0;1>/*)", Network.BITCOIN) + Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", NetworkKind.TEST) + Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", NetworkKind.TEST) + Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", NetworkKind.TEST) + Descriptor("tr($TEST_EXTENDED_PUBKEY/<0;1>/*)", NetworkKind.TEST) + Descriptor("tr($MAIN_EXTENDED_PUBKEY/<0;1>/*)", NetworkKind.MAIN) } } @@ -52,7 +52,7 @@ class DescriptorTest { assertFails { Descriptor( "addr(tb1qhjys9wxlfykmte7ftryptx975uqgd6kcm6a7z4)", - Network.TESTNET4 + NetworkKind.TEST ) } } @@ -60,7 +60,7 @@ class DescriptorTest { @Test fun `Descriptor cannot be created from multipath private descriptor string`() { assertFails { - Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_MULTIPATH/*)", Network.REGTEST) + Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_MULTIPATH/*)", NetworkKind.TEST) } } } diff --git a/lib/src/test/kotlin/org/bitcoindevkit/MnemonicTest.kt b/lib/src/test/kotlin/org/bitcoindevkit/MnemonicTest.kt index c95af9a..2427e10 100644 --- a/lib/src/test/kotlin/org/bitcoindevkit/MnemonicTest.kt +++ b/lib/src/test/kotlin/org/bitcoindevkit/MnemonicTest.kt @@ -7,8 +7,8 @@ class MnemonicTest { @Test fun `Mnemonics create valid descriptors`() { val mnemonic: Mnemonic = Mnemonic.fromString(MNEMONIC_AWESOME) - val descriptorSecretKey: DescriptorSecretKey = DescriptorSecretKey(Network.TESTNET4, mnemonic, null) - val descriptor: Descriptor = Descriptor.newBip86(descriptorSecretKey, KeychainKind.EXTERNAL, Network.TESTNET4) + val descriptorSecretKey: DescriptorSecretKey = DescriptorSecretKey(NetworkKind.TEST, mnemonic, null) + val descriptor: Descriptor = Descriptor.newBip86(descriptorSecretKey, KeychainKind.EXTERNAL, NetworkKind.TEST) assertEquals( expected = "tr([5bc5d243/86'/1'/0']tpubDC72NVP1RK5qwy2QdEfWphDsUBAfBu7oiV6jEFooHP8tGQGFVUeFxhgZxuk1j6EQRJ1YsS3th2RyDgReRqCL4zqp4jtuV2z7gbiqDH2iyUS/0/*)#xh44xwsp",