From 1e2291c40c74ddebc99eb20bc2e2efaf6a197d32 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Thu, 23 May 2019 21:37:30 +0200 Subject: [PATCH] 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 --- wallet/db.c | 7 +++++++ wallet/wallet.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/wallet/db.c b/wallet/db.c index b4679b623..d82c28281 100644 --- a/wallet/db.c +++ b/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. */ diff --git a/wallet/wallet.c b/wallet/wallet.c index ac3143ee9..31687c434 100644 --- a/wallet/wallet.c +++ b/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);