bdk-ffi/bdk-swift/Tests/BitcoinDevKitTests/LiveWalletTests.swift

80 lines
3.2 KiB
Swift
Raw Normal View History

2023-10-27 14:13:44 -04:00
import XCTest
@testable import BitcoinDevKit
final class LiveWalletTests: XCTestCase {
func testSyncedBalance() throws {
let descriptor = try Descriptor(
descriptor: "wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/0h/0/*)",
2023-10-27 14:13:44 -04:00
network: Network.testnet
)
2024-02-01 10:34:59 -05:00
// let wallet = try Wallet.newNoPersist(
// descriptor: descriptor,
// changeDescriptor: nil,
// network: .testnet
// )
// let esploraClient = EsploraClient(url: "https://mempool.space/testnet/api")
// let update = try esploraClient.fullScan(
// wallet: wallet,
// stopGap: 10,
// parallelRequests: 1
// )
// try wallet.applyUpdate(update: update)
//
// XCTAssertGreaterThan(wallet.getBalance().total, UInt64(0))
//
// print("Transactions count: \(wallet.transactions().count)")
// let transactions = wallet.transactions().prefix(3)
// for tx in transactions {
// let sentAndReceived = wallet.sentAndReceived(tx: tx)
// print("Transaction: \(tx.txid())")
// print("Sent \(sentAndReceived.sent)")
// print("Received \(sentAndReceived.received)")
// }
2023-10-27 14:13:44 -04:00
}
func testBroadcastTransaction() throws {
let descriptor = try Descriptor(
descriptor: "wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/0h/0/*)",
network: Network.testnet
)
2024-02-01 10:34:59 -05:00
// let wallet = try Wallet.newNoPersist(
// descriptor: descriptor,
// changeDescriptor: nil,
// network: .testnet
// )
// let esploraClient = EsploraClient(url: "https://mempool.space/testnet/api")
// let update = try esploraClient.fullScan(
// wallet: wallet,
// stopGap: 10,
// parallelRequests: 1
// )
// try wallet.applyUpdate(update: update)
//
// XCTAssertGreaterThan(wallet.getBalance().total, UInt64(0), "Wallet must have positive balance, please add funds")
//
// print("Balance: \(wallet.getBalance().total)")
//
// let recipient: Address = try Address(address: "tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", network: .testnet)
// let psbt: PartiallySignedTransaction = try
// TxBuilder()
// .addRecipient(script: recipient.scriptPubkey(), amount: 4200)
// .feeRate(feeRate: FeeRate.fromSatPerVb(satPerVb: 2.0))
// .finish(wallet: wallet)
//
// print(psbt.serialize())
// XCTAssertTrue(psbt.serialize().hasPrefix("cHNi"), "PSBT should start with cHNI")
//
// let walletDidSign: Bool = try wallet.sign(psbt: psbt)
// XCTAssertTrue(walletDidSign, "Wallet did not sign transaction")
//
// let tx: Transaction = psbt.extractTx()
// print(tx.txid())
// let fee: UInt64 = try wallet.calculateFee(tx: tx)
// print("Transaction Fee: \(fee)")
// let feeRate: FeeRate = try wallet.calculateFeeRate(tx: tx)
// print("Transaction Fee Rate: \(feeRate.asSatPerVb()) sat/vB")
//
// try esploraClient.broadcast(transaction: tx)
}
2023-10-27 14:13:44 -04:00
}