From df17387e0543ab00d4abd5b000ac7e1a7a96175f Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 25 Aug 2021 12:19:46 +0930 Subject: [PATCH] wallet: add datastore for plugins to use. Signed-off-by: Rusty Russell --- wallet/db.c | 6 ++++ wallet/db_postgres_sqlgen.c | 10 +++++-- wallet/db_sqlite3_sqlgen.c | 10 +++++-- wallet/statements_gettextgen.po | 50 ++++++++++++++++++--------------- 4 files changed, 49 insertions(+), 27 deletions(-) diff --git a/wallet/db.c b/wallet/db.c index a56aa3779..661b51538 100644 --- a/wallet/db.c +++ b/wallet/db.c @@ -749,6 +749,12 @@ static struct migration dbmigrations[] = { ");"), fillin_missing_channel_blockheights}, {SQL("ALTER TABLE outputs ADD csv_lock INTEGER DEFAULT 1;"), NULL}, + {SQL("CREATE TABLE datastore (" + " key TEXT," + " data BLOB," + " PRIMARY KEY (key)" + ");"), + NULL}, }; /* Leak tracking. */ diff --git a/wallet/db_postgres_sqlgen.c b/wallet/db_postgres_sqlgen.c index 8707583db..21a3d8dda 100644 --- a/wallet/db_postgres_sqlgen.c +++ b/wallet/db_postgres_sqlgen.c @@ -1022,6 +1022,12 @@ struct db_query db_postgres_queries[] = { .placeholders = 0, .readonly = false, }, + { + .name = "CREATE TABLE datastore ( key TEXT, data BLOB, PRIMARY KEY (key));", + .query = "CREATE TABLE datastore ( key TEXT, data BYTEA, PRIMARY KEY (key));", + .placeholders = 0, + .readonly = false, + }, { .name = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?", .query = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = $1", @@ -2026,10 +2032,10 @@ struct db_query db_postgres_queries[] = { }, }; -#define DB_POSTGRES_QUERY_COUNT 336 +#define DB_POSTGRES_QUERY_COUNT 337 #endif /* HAVE_POSTGRES */ #endif /* LIGHTNINGD_WALLET_GEN_DB_POSTGRES */ -// SHA256STAMP:411593f0957475d832c02cd75a8b0eed30b00fc6178797262ae7dd697de22383 +// SHA256STAMP:765ebe6f1bf58b1d492d8d1715e423fbe0764e3440c8bd2be8d0a09dccc95a5c diff --git a/wallet/db_sqlite3_sqlgen.c b/wallet/db_sqlite3_sqlgen.c index 8a2a02f22..383eccf21 100644 --- a/wallet/db_sqlite3_sqlgen.c +++ b/wallet/db_sqlite3_sqlgen.c @@ -1022,6 +1022,12 @@ struct db_query db_sqlite3_queries[] = { .placeholders = 0, .readonly = false, }, + { + .name = "CREATE TABLE datastore ( key TEXT, data BLOB, PRIMARY KEY (key));", + .query = "CREATE TABLE datastore ( key TEXT, data BLOB, PRIMARY KEY (key));", + .placeholders = 0, + .readonly = false, + }, { .name = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?", .query = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?", @@ -2026,10 +2032,10 @@ struct db_query db_sqlite3_queries[] = { }, }; -#define DB_SQLITE3_QUERY_COUNT 336 +#define DB_SQLITE3_QUERY_COUNT 337 #endif /* HAVE_SQLITE3 */ #endif /* LIGHTNINGD_WALLET_GEN_DB_SQLITE3 */ -// SHA256STAMP:411593f0957475d832c02cd75a8b0eed30b00fc6178797262ae7dd697de22383 +// SHA256STAMP:765ebe6f1bf58b1d492d8d1715e423fbe0764e3440c8bd2be8d0a09dccc95a5c diff --git a/wallet/statements_gettextgen.po b/wallet/statements_gettextgen.po index d64d57ef2..d65d92999 100644 --- a/wallet/statements_gettextgen.po +++ b/wallet/statements_gettextgen.po @@ -674,91 +674,95 @@ msgstr "" msgid "ALTER TABLE outputs ADD csv_lock INTEGER DEFAULT 1;" msgstr "" -#: wallet/db.c:978 +#: wallet/db.c:752 +msgid "CREATE TABLE datastore ( key TEXT, data BLOB, PRIMARY KEY (key));" +msgstr "" + +#: wallet/db.c:984 msgid "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?" msgstr "" -#: wallet/db.c:1078 +#: wallet/db.c:1084 msgid "SELECT version FROM version LIMIT 1" msgstr "" -#: wallet/db.c:1140 +#: wallet/db.c:1146 msgid "UPDATE version SET version=?;" msgstr "" -#: wallet/db.c:1148 +#: wallet/db.c:1154 msgid "INSERT INTO db_upgrades VALUES (?, ?);" msgstr "" -#: wallet/db.c:1160 +#: wallet/db.c:1166 msgid "SELECT intval FROM vars WHERE name = 'data_version'" msgstr "" -#: wallet/db.c:1187 +#: wallet/db.c:1193 msgid "SELECT intval FROM vars WHERE name= ? LIMIT 1" msgstr "" -#: wallet/db.c:1203 +#: wallet/db.c:1209 msgid "UPDATE vars SET intval=? WHERE name=?;" msgstr "" -#: wallet/db.c:1212 +#: wallet/db.c:1218 msgid "INSERT INTO vars (name, intval) VALUES (?, ?);" msgstr "" -#: wallet/db.c:1226 +#: wallet/db.c:1232 msgid "UPDATE channels SET feerate_base = ?, feerate_ppm = ?;" msgstr "" -#: wallet/db.c:1247 +#: wallet/db.c:1253 msgid "UPDATE channels SET our_funding_satoshi = funding_satoshi WHERE funder = 0;" msgstr "" -#: wallet/db.c:1263 +#: wallet/db.c:1269 msgid "SELECT type, keyindex, prev_out_tx, prev_out_index, channel_id, peer_id, commitment_point FROM outputs WHERE scriptpubkey IS NULL;" msgstr "" -#: wallet/db.c:1325 +#: wallet/db.c:1331 msgid "UPDATE outputs SET scriptpubkey = ? WHERE prev_out_tx = ? AND prev_out_index = ?" msgstr "" -#: wallet/db.c:1350 +#: wallet/db.c:1356 msgid "SELECT id, funding_tx_id, funding_tx_outnum FROM channels;" msgstr "" -#: wallet/db.c:1369 +#: wallet/db.c:1375 msgid "UPDATE channels SET full_channel_id = ? WHERE id = ?;" msgstr "" -#: wallet/db.c:1390 +#: wallet/db.c:1396 msgid "SELECT channels.id, peers.node_id FROM channels JOIN peers ON (peers.id = channels.peer_id)" msgstr "" -#: wallet/db.c:1423 +#: wallet/db.c:1429 msgid "UPDATE channels SET revocation_basepoint_local = ?, payment_basepoint_local = ?, htlc_basepoint_local = ?, delayed_payment_basepoint_local = ?, funding_pubkey_local = ? WHERE id = ?;" msgstr "" -#: wallet/db.c:1456 +#: wallet/db.c:1462 msgid "INSERT INTO channel_blockheights (channel_id, hstate, blockheight) SELECT id, 4, 0 FROM channels WHERE funder = 0;" msgstr "" -#: wallet/db.c:1464 +#: wallet/db.c:1470 msgid "INSERT INTO channel_blockheights (channel_id, hstate, blockheight) SELECT id, 14, 0 FROM channels WHERE funder = 1;" msgstr "" -#: wallet/db.c:1476 +#: wallet/db.c:1482 msgid "SELECT c.id, p.node_id, c.fundingkey_remote, inflight.last_tx, inflight.last_sig, inflight.funding_satoshi, inflight.funding_tx_id FROM channels c LEFT OUTER JOIN peers p ON p.id = c.peer_id LEFT OUTER JOIN channel_funding_inflights inflight ON c.id = inflight.channel_id WHERE inflight.last_tx IS NOT NULL;" msgstr "" -#: wallet/db.c:1543 +#: wallet/db.c:1549 msgid "UPDATE channel_funding_inflights SET last_tx = ? WHERE channel_id = ? AND funding_tx_id = ?;" msgstr "" -#: wallet/db.c:1567 +#: wallet/db.c:1573 msgid "SELECT c.id, p.node_id, c.last_tx, c.funding_satoshi, c.fundingkey_remote, c.last_sig FROM channels c LEFT OUTER JOIN peers p ON p.id = c.peer_id;" msgstr "" -#: wallet/db.c:1634 +#: wallet/db.c:1640 msgid "UPDATE channels SET last_tx = ? WHERE id = ?;" msgstr "" @@ -1341,4 +1345,4 @@ msgstr "" #: wallet/test/run-wallet.c:1753 msgid "INSERT INTO channels (id) VALUES (1);" msgstr "" -# SHA256STAMP:8878e1ee71d04ea6302c18aeb02f59c56e086a7e5a4647ddbe67bc2ef7c07275 +# SHA256STAMP:17f1c19add21aa2c5b771cb0f19300e9c50cdd8458ccf02a0368cf29d6958374