Browse Source

db: Add channel_id and type to the transactions table

Mainly used to differentiate channel-related transactions from on-chain wallet
transactions. Will be used to filter `listtransaction` results and bundle
transactions that belong to the same channel.

Signed-off-by: Christian Decker <decker.christian@gmail.com>
pull/2938/head
Christian Decker 5 years ago
committed by Rusty Russell
parent
commit
1e2291c40c
  1. 7
      wallet/db.c
  2. 2
      wallet/wallet.c

7
wallet/db.c

@ -385,6 +385,13 @@ static struct migration dbmigrations[] = {
/* remote signatures for channel announcement */
{ "ALTER TABLE channels ADD remote_ann_node_sig BLOB;", NULL },
{ "ALTER TABLE channels ADD remote_ann_bitcoin_sig BLOB;", NULL },
/* Additional information for transaction tracking and listing */
{ "ALTER TABLE transactions ADD type INTEGER;", NULL },
/* Not a foreign key on purpose since we still delete channels from
* the DB which would remove this. It is mainly used to group payments
* in the list view anyway, e.g., show all close and htlc transactions
* as a single bundle. */
{ "ALTER TABLE transactions ADD channel_id INTEGER;", NULL},
};
/* Leak tracking. */

2
wallet/wallet.c

@ -2528,7 +2528,7 @@ struct channeltx *wallet_channeltxs_get(struct wallet *w, const tal_t *ctx,
", t.id as txid "
"FROM channeltxs c "
"JOIN transactions t ON t.id == c.transaction_id "
"WHERE channel_id = ? "
"WHERE c.channel_id = ? "
"ORDER BY c.id ASC;");
sqlite3_bind_int(stmt, 1, channel_id);

Loading…
Cancel
Save