私はbitcoinj(バージョン0.14.3)経由で取引をしようとしています。支払い後に変更を返す予定です。私はtestnetを使って作業しています。実際のビットコインではありません。 私は次のコードを持っている:バック bitcoinj経由で支払いを行う正しい方法
を変更を取得するための私の財布のお金
- 住所:私は、トランザクションに2つの出力を入れています、だから、
Transaction tx = new Transaction(this.networkParameters); Coin coinToSent = Coin.valueOf(Config.APP_COST); Coin coinToChange = Coin.valueOf(walletBalance.getValue() - coinToSent.getValue()); tx.addOutput(coinToSent, appAddress); tx.addOutput(coinToChange, changeAddress); SendRequest request = SendRequest.forTx(tx); try { this.walletAppKit.wallet().completeTx(request); } catch (InsufficientMoneyException e) { e.printStackTrace(); return false; } this.walletAppKit.wallet().commitTx(request.tx); this.walletAppKit.peerGroup().broadcastTransaction(request.tx);
を最初の住所に私はお金を送る。そして2番目の住所に私は次の価値を送ります:私の財布のすべての利用可能なお金から最初の住所に受け取ったお金。
しかし、放送後、私は予期せぬ結果を得ました。このスキームでいくつかの取引をした後、私は間違った価値が私の財布から撤退していることに気付きました。驚くべきことは、時にはお金が撤回しているが、時にはお金が財布に来ることもある。
Here is the link to testnet explorer
誰かが私が間違っているとどのようにそれを修正するのですか説明できますか?