diff --git a/demo/build.gradle b/demo/build.gradle deleted file mode 100644 index 1fcea5c..0000000 --- a/demo/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' - id 'application' -} - -group = 'org.bitcoindevkit.bdk' -version = '1.0-SNAPSHOT' - -repositories { - mavenCentral() -} - -dependencies { - testImplementation 'org.jetbrains.kotlin:kotlin-test' - implementation project(':jvm') -} - -test { - useJUnit() -} - -compileKotlin { - kotlinOptions.jvmTarget = '1.8' -} - -compileTestKotlin { - kotlinOptions.jvmTarget = '1.8' -} - -application { - mainClass.set('MainKt') -} - -run { - standardInput = System.in -} diff --git a/demo/src/main/kotlin/Main.kt b/demo/src/main/kotlin/Main.kt deleted file mode 100644 index 2c6629b..0000000 --- a/demo/src/main/kotlin/Main.kt +++ /dev/null @@ -1,90 +0,0 @@ -import java.util.Optional -import kotlin.ExperimentalUnsignedTypes -import org.bitcoindevkit.* - -class LogProgress : BdkProgress { - override fun update(progress: Float, message: String?) { - println("Syncing..") - } -} - -class NullProgress : BdkProgress { - override fun update(progress: Float, message: String?) {} -} - -fun getTransaction(wallet: OnlineWalletInterface, transactionId: String): Optional { - wallet.sync(NullProgress(), null) - return wallet.getTransactions() - .stream() - .filter({ - when (it) { - is Transaction.Confirmed -> it.details.txid.equals(transactionId) - is Transaction.Unconfirmed -> it.details.txid.equals(transactionId) - } - }) - .findFirst() -} - -@ExperimentalUnsignedTypes -val unconfirmedFirstThenByTimestampDescending = - Comparator { a, b -> - when { - (a is Transaction.Confirmed && b is Transaction.Confirmed) -> { - val comparison = b.confirmation.timestamp.compareTo(a.confirmation.timestamp) - when { - comparison == 0 -> b.details.txid.compareTo(a.details.txid) - else -> comparison - } - } - (a is Transaction.Confirmed && b is Transaction.Unconfirmed) -> 1 - (a is Transaction.Unconfirmed && b is Transaction.Confirmed) -> -1 - else -> 0 - } - } - -@ExperimentalUnsignedTypes -fun main(args: Array) { - val network = Network.TESTNET - val mnemonicType = MnemonicType.WORDS12 - val password: String? = null - println("Generating key...") - val extendedKey = generateExtendedKey(network, mnemonicType, password) - println("generated key: $extendedKey") - println("Attempting restore extended key...") - val restoredKey = restoreExtendedKey(network, extendedKey.mnemonic, password) - println("restored key: $restoredKey") - println("Configuring an in-memory wallet on electrum..") - val descriptor = "wpkh(tprv8ZgxMBicQKsPeSitUfdxhsVaf4BXAASVAbHypn2jnPcjmQZvqZYkeqx7EHQTWvdubTSDa5ben7zHC7sUsx4d8tbTvWdUtHzR8uhHg2CW7MT/*)" - val amount = 1000uL - val recipient = "tb1ql7w62elx9ucw4pj5lgw4l028hmuw80sndtntxt" - val db = DatabaseConfig.Memory("") - val client = - BlockchainConfig.Electrum( - ElectrumConfig("ssl://electrum.blockstream.info:60002", null, 5u, null, 10u) - ) - val wallet = OnlineWallet(descriptor, null, network, db, client) - wallet.sync(LogProgress(), null) - println("Initial wallet balance: ${wallet.getBalance()}") - println("Please send $amount satoshis to address: ${wallet.getNewAddress()}") - readLine() - wallet.sync(LogProgress(), null) - println("New wallet balance: ${wallet.getBalance()}") - println("Press Enter to return funds") - readLine() - println("Creating a PSBT with recipient $recipient and amount $amount satoshis...") - val psbt = PartiallySignedBitcoinTransaction(wallet, recipient, amount, null) - println("Signing the transaction...") - wallet.sign(psbt) - println("Broadcasting the signed transaction...") - val transaction = wallet.broadcast(psbt) - println("Broadcasted transaction $transaction") - val take = 5 - println("Listing latest $take transactions...") - wallet - .getTransactions() - .sortedWith(unconfirmedFirstThenByTimestampDescending) - .take(take) - .forEach { println(it) } - println("Final wallet balance: ${wallet.getBalance()}") -} - diff --git a/settings.gradle b/settings.gradle index 9d76d9e..024cf9f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ rootProject.name = 'bdk-kotlin' -include ':jvm',':demo',':android' +include ':jvm',':android'