Remove demo
This commit is contained in:
parent
6c1de427ff
commit
2a658d2ff6
@ -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
|
|
||||||
}
|
|
@ -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<Transaction> {
|
|
||||||
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<Transaction> { 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<String>) {
|
|
||||||
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()}")
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
rootProject.name = 'bdk-kotlin'
|
rootProject.name = 'bdk-kotlin'
|
||||||
|
|
||||||
include ':jvm',':demo',':android'
|
include ':jvm',':android'
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user