From f33df0928d96432c802582be2e5928aef432a2c1 Mon Sep 17 00:00:00 2001 From: Yaacov Akiba Slama Date: Wed, 10 Jul 2019 09:38:27 +0300 Subject: [PATCH] Fill DestAddresses in unmined transactions --- lnwallet/btcwallet/btcwallet.go | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/lnwallet/btcwallet/btcwallet.go b/lnwallet/btcwallet/btcwallet.go index 268d8dd42..420760e86 100644 --- a/lnwallet/btcwallet/btcwallet.go +++ b/lnwallet/btcwallet/btcwallet.go @@ -556,6 +556,7 @@ func minedTransactionsToDetails( // for an unconfirmed transaction to a transaction detail. func unminedTransactionsToDetail( summary base.TransactionSummary, + chainParams *chaincfg.Params, ) (*lnwallet.TransactionDetail, error) { wireTx := &wire.MsgTx{} @@ -565,11 +566,23 @@ func unminedTransactionsToDetail( return nil, err } + var destAddresses []btcutil.Address + for _, txOut := range wireTx.TxOut { + _, outAddresses, _, err := + txscript.ExtractPkScriptAddrs(txOut.PkScript, chainParams) + if err != nil { + return nil, err + } + + destAddresses = append(destAddresses, outAddresses...) + } + txDetail := &lnwallet.TransactionDetail{ - Hash: *summary.Hash, - TotalFees: int64(summary.Fee), - Timestamp: summary.Timestamp, - RawTx: summary.Transaction, + Hash: *summary.Hash, + TotalFees: int64(summary.Fee), + Timestamp: summary.Timestamp, + DestAddresses: destAddresses, + RawTx: summary.Transaction, } balanceDelta, err := extractBalanceDelta(summary, wireTx) @@ -618,7 +631,7 @@ func (b *BtcWallet) ListTransactionDetails() ([]*lnwallet.TransactionDetail, err txDetails = append(txDetails, details...) } for _, tx := range txns.UnminedTransactions { - detail, err := unminedTransactionsToDetail(tx) + detail, err := unminedTransactionsToDetail(tx, b.netParams) if err != nil { return nil, err } @@ -705,7 +718,9 @@ out: // notifications for any newly unconfirmed transactions. go func() { for _, tx := range txNtfn.UnminedTransactions { - detail, err := unminedTransactionsToDetail(tx) + detail, err := unminedTransactionsToDetail( + tx, t.w.ChainParams(), + ) if err != nil { continue }