java - 如何使用 BitcoinJ 创建费用替代 TX

标签 java bitcoinj

首先面临着 BitcoinJ FrameWork 中无休止的待处理交易

主要文档说可以通过Replace-By-Fee来制作。因此,您需要获取旧交易并创建一个新交易,但基于之前的交易。

听起来不错,但是如何正确地使用 Bitcoinj 框架创建另一个框架?

NetworkParameters params = MainNetParams.get();

WalletAppKit wallet = new WalletAppKit(params, new File("."), "_mywallet");
walletKit.startAsync();
walletKit.awaitRunning();

Wallet wallet = walletKit.wallet();

... 有一个待处理

ArrayList<Transaction> pendingList = new ArrayList<>(wallet.getPendingTransactions());
Transaction nextTx = new Transaction(pendingList.get(0));
// → throws Exeption

最佳答案

好的,我解决了。

当您有无限的待处理交易时,您需要做的第一件事是确保其标记为“replace-by-fee”,您可以通过调用以下命令来执行此操作:

ArrayList<Transaction> pendingList = new ArrayList<>(wallet.getPendingTransactions());

pendingList.get(0).verify(); // Read console to see transaction info

之后需要使用下面的代码来实现replace-by-fee算法:

Transaction transaction = pendingList.get(0);
SendRequest request = SendRequest.forTx(transaction);
request.feePerKb = Transaction.REFERENCE_DEFAULT_MIN_TX_FEE; // Or you can make other highter fee to spped it up

wallet.completeTx(request);
wallet.commitTx(request);

在输出中,您将在此交易详细信息中看到更多 TransactionOutputs。

就是这样

关于java - 如何使用 BitcoinJ 创建费用替代 TX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51527896/

相关文章:

javascript - 如何在 Node js 中使用 bitcoinjs-lib 接收比特币支付

java - 使用 bitcoinj 检查钱包余额

Java 声音 API 初始化

BitcoinJ:是否可以始终使用相同的接收地址?

java - 如何解决卡在 Android Studio 中的 "Waiting until last debugger command completes"?

java - InetAddress.getLocalHost() 运行缓慢(30 秒以上)

bitcoinj 将 P2SH 输入交易连接到输出交易

java - 如何在 Bitcoinj (java) 中查看某个地址的交易?

java - Ant 任务 jar.destfile 中的通配符解决方法

java - 动态类加载: Exception in thread "main" java. lang.ClassFormatError