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 f97f60b
Showing 1 changed file with 20 additions and 3 deletions.
23 changes: 20 additions & 3 deletions btc/explorer_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,10 +156,27 @@ 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{
Txid: tx.TXID,
Vin: voutIdx,
// 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. Nees to be investigated on
// the LND side.
url := fmt.Sprintf(
"%s/tx/%s/outspend/%d", a.BaseURL,
tx.TXID, voutIdx,
)
outspend := Outspend{}
err := fetchJSON(url, &outspend)
if err != nil {
return nil, err
}

if outspend.Spent {
continue
}

outputs = append(outputs, vout)
}
}
Expand Down

0 comments on commit f97f60b

Please sign in to comment.