mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-18 05:12:45 +01:00
chaintopology: always track txs we broadcast ourselves.
This is inefficient, but it means we always know the tx depth. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
7d4d2977b6
commit
1b49d2afa6
@ -99,6 +99,22 @@ static void add_tx_to_block(struct block *b, const struct sha256_double *txid)
|
||||
b->txids[n] = *txid;
|
||||
}
|
||||
|
||||
static bool we_broadcast(struct lightningd_state *dstate,
|
||||
const struct sha256_double *txid)
|
||||
{
|
||||
struct peer *peer;
|
||||
|
||||
list_for_each(&dstate->peers, peer, list) {
|
||||
struct outgoing_tx *otx;
|
||||
|
||||
list_for_each(&peer->outgoing_txs, otx, list) {
|
||||
if (structeq(&otx->txid, txid))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Fills in prev, height, mediantime. */
|
||||
static void connect_block(struct lightningd_state *dstate,
|
||||
struct block *prev,
|
||||
@ -138,7 +154,7 @@ static void connect_block(struct lightningd_state *dstate,
|
||||
|
||||
/* We did spends first, in case that tells us to watch tx. */
|
||||
bitcoin_txid(tx, &txid);
|
||||
if (watching_txid(dstate, &txid))
|
||||
if (watching_txid(dstate, &txid) || we_broadcast(dstate, &txid))
|
||||
add_tx_to_block(b, &txid);
|
||||
}
|
||||
b->full_txs = tal_free(b->full_txs);
|
||||
|
Loading…
Reference in New Issue
Block a user