62 lines
3.0 KiB
Kotlin
Raw Normal View History

2023-10-27 14:13:44 -04:00
package org.bitcoindevkit
2024-02-01 10:34:59 -05:00
import kotlin.test.Ignore
2023-10-27 14:13:44 -04:00
import kotlin.test.Test
import kotlin.test.assertTrue
class LiveTxBuilderTest {
2024-02-01 10:34:59 -05:00
@Ignore("The Esplora client's fullScan method requires a Wallet instead of a WalletNoPersist.")
2023-10-27 14:13:44 -04:00
@Test
fun testTxBuilder() {
val descriptor = Descriptor("wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/0h/0/*)", Network.TESTNET)
2024-02-01 10:34:59 -05:00
// val wallet = WalletNoPersist(descriptor, null, Network.TESTNET)
2023-10-27 14:13:44 -04:00
val esploraClient = EsploraClient("https://mempool.space/testnet/api")
2024-02-01 10:34:59 -05:00
// val update = esploraClient.fullScan(wallet, 10uL, 1uL)
// wallet.applyUpdate(update)
// println("Balance: ${wallet.getBalance().total}")
//
// assert(wallet.getBalance().total > 0uL)
//
// val recipient: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.TESTNET)
// val psbt: PartiallySignedTransaction = TxBuilder()
// .addRecipient(recipient.scriptPubkey(), 4200uL)
// .feeRate(FeeRate.fromSatPerVb(2.0f))
// .finish(wallet)
//
// println(psbt.serialize())
//
// assertTrue(psbt.serialize().startsWith("cHNi"), "PSBT should start with 'cHNi'")
2023-10-27 14:13:44 -04:00
}
2024-02-01 10:34:59 -05:00
@Ignore("The Esplora client's fullScan method requires a Wallet instead of a WalletNoPersist.")
@Test
fun complexTxBuilder() {
val externalDescriptor = Descriptor("wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/0h/0/*)", Network.TESTNET)
val changeDescriptor = Descriptor("wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/0h/1/*)", Network.TESTNET)
2024-02-01 10:34:59 -05:00
// val wallet = WalletNoPersist(externalDescriptor, changeDescriptor, Network.TESTNET)
// val esploraClient = EsploraClient("https://mempool.space/testnet/api")
// val update = esploraClient.fullScan(wallet, 10uL, 1uL)
// wallet.applyUpdate(update)
// println("Balance: ${wallet.getBalance().total}")
//
// assert(wallet.getBalance().total > 0uL)
//
// val recipient1: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.TESTNET)
// val recipient2: Address = Address("tb1qw2c3lxufxqe2x9s4rdzh65tpf4d7fssjgh8nv6", Network.TESTNET)
// val allRecipients: List<ScriptAmount> = listOf(
// ScriptAmount(recipient1.scriptPubkey(), 4200uL),
// ScriptAmount(recipient2.scriptPubkey(), 4200uL),
// )
//
// val psbt: PartiallySignedTransaction = TxBuilder()
// .setRecipients(allRecipients)
// .feeRate(FeeRate.fromSatPerVb(4.0f))
// .changePolicy(ChangeSpendPolicy.CHANGE_FORBIDDEN)
// .enableRbf()
// .finish(wallet)
//
// wallet.sign(psbt)
// assertTrue(psbt.serialize().startsWith("cHNi"), "PSBT should start with 'cHNi'")
}
2023-10-27 14:13:44 -04:00
}