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>
This commit is contained in:
Christian Decker 2019-05-23 21:37:30 +02:00 committed by Rusty Russell
parent 9e98d01d02
commit 1e2291c40c
2 changed files with 8 additions and 1 deletions

View File

@ -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. */

View File

@ -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);