Skip to content

Commit

Permalink
api: check for an output to be unspent.
Browse files Browse the repository at this point in the history
  • Loading branch information
ziggie1984 committed Aug 18, 2024
1 parent f062b53 commit 4571363
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion btc/explorer_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,10 +156,31 @@ func (a *ExplorerAPI) Unspent(addr string) ([]*Vout, error) {
for _, tx := range txs {
for voutIdx, vout := range tx.Vout {
if vout.ScriptPubkeyAddr == addr {
vout.Outspend = &Outspend{
// We need to also make sure that the tx is not
// already spent before including it as unspent.
//
// NOTE: Somehow LND sometimes contructs
// channels with the same keyfamily base hence
// the same pubkey. Needs to be investigated on
// the LND side.
outSpend := &Outspend{
Txid: tx.TXID,
Vin: voutIdx,
}
url := fmt.Sprintf(
"%s/tx/%s/outspend/%d", a.BaseURL,
tx.TXID, voutIdx,
)
err := fetchJSON(url, outSpend)
if err != nil {
return nil, err
}

if outSpend.Spent {
continue
}

vout.Outspend = outSpend
outputs = append(outputs, vout)
}
}
Expand Down

0 comments on commit 4571363

Please sign in to comment.