db: Add migration for the local basepoints and the funding pubkey

This commit is contained in:
Christian Decker
2021-03-01 15:47:55 +01:00
committed by Rusty Russell
parent bc42e8df13
commit 4887a5a18f
6 changed files with 282 additions and 176 deletions

View File

@@ -344,5 +344,4 @@ def test_local_basepoints_cache(bitcoind, node_factory):
present = l1.db.query(q)[0] present = l1.db.query(q)[0]
for f in fields: for f in fields:
assert(f in present) assert(f in present)
assert(present[f] is None) assert(present[f] is not None)

View File

@@ -30,6 +30,7 @@
*/ */
struct migration_context { struct migration_context {
const struct ext_key *bip32_base; const struct ext_key *bip32_base;
int hsm_fd;
}; };
struct migration { struct migration {
@@ -53,6 +54,10 @@ static void fillin_missing_scriptpubkeys(struct lightningd *ld, struct db *db,
static void fillin_missing_channel_id(struct lightningd *ld, struct db *db, static void fillin_missing_channel_id(struct lightningd *ld, struct db *db,
const struct migration_context *mc); const struct migration_context *mc);
static void fillin_missing_local_basepoints(struct lightningd *ld,
struct db *db,
const struct migration_context *mc);
/* Do not reorder or remove elements from this array, it is used to /* Do not reorder or remove elements from this array, it is used to
* migrate existing databases from a previous state, based on the * migrate existing databases from a previous state, based on the
* string indices */ * string indices */
@@ -703,6 +708,7 @@ static struct migration dbmigrations[] = {
{SQL("ALTER TABLE channels ADD htlc_basepoint_local BLOB"), NULL}, {SQL("ALTER TABLE channels ADD htlc_basepoint_local BLOB"), NULL},
{SQL("ALTER TABLE channels ADD delayed_payment_basepoint_local BLOB"), NULL}, {SQL("ALTER TABLE channels ADD delayed_payment_basepoint_local BLOB"), NULL},
{SQL("ALTER TABLE channels ADD funding_pubkey_local BLOB"), NULL}, {SQL("ALTER TABLE channels ADD funding_pubkey_local BLOB"), NULL},
{NULL, fillin_missing_local_basepoints},
}; };
/* Leak tracking. */ /* Leak tracking. */
@@ -1063,6 +1069,7 @@ static void db_migrate(struct lightningd *ld, struct db *db,
struct db_stmt *stmt; struct db_stmt *stmt;
const struct migration_context mc = { const struct migration_context mc = {
.bip32_base = bip32_base, .bip32_base = bip32_base,
.hsm_fd = ld->hsm_fd,
}; };
orig = current = db_get_version(db); orig = current = db_get_version(db);
@@ -1332,6 +1339,68 @@ static void fillin_missing_channel_id(struct lightningd *ld, struct db *db,
tal_free(stmt); tal_free(stmt);
} }
static void fillin_missing_local_basepoints(struct lightningd *ld,
struct db *db,
const struct migration_context *mc)
{
struct db_stmt *stmt;
stmt = db_prepare_v2(
db,
SQL("SELECT"
" channels.id"
", peers.node_id "
"FROM"
" channels JOIN"
" peers "
"ON (peers.id = channels.peer_id)"));
db_query_prepared(stmt);
while (db_step(stmt)) {
struct node_id peer_id;
u64 dbid;
u8 *msg;
struct db_stmt *upstmt;
struct basepoints base;
struct pubkey funding_pubkey;
dbid = db_column_u64(stmt, 0);
db_column_node_id(stmt, 1, &peer_id);
if (!wire_sync_write(mc->hsm_fd,
towire_hsmd_get_channel_basepoints(
tmpctx, &peer_id, dbid)))
fatal("could not retrieve basepoint from hsmd");
msg = wire_sync_read(tmpctx, mc->hsm_fd);
if (!fromwire_hsmd_get_channel_basepoints_reply(
msg, &base, &funding_pubkey))
fatal("malformed hsmd_get_channel_basepoints_reply "
"from hsmd");
upstmt = db_prepare_v2(
db,
SQL("UPDATE channels SET"
" revocation_basepoint_local = ?"
", payment_basepoint_local = ?"
", htlc_basepoint_local = ?"
", delayed_payment_basepoint_local = ?"
", funding_pubkey_local = ? "
"WHERE id = ?;"));
db_bind_pubkey(upstmt, 0, &base.revocation);
db_bind_pubkey(upstmt, 1, &base.payment);
db_bind_pubkey(upstmt, 2, &base.htlc);
db_bind_pubkey(upstmt, 3, &base.delayed_payment);
db_bind_pubkey(upstmt, 4, &funding_pubkey);
db_bind_u64(upstmt, 5, dbid);
db_exec_prepared_v2(take(upstmt));
}
tal_free(stmt);
}
/* We're moving everything over to PSBTs from tx's, particularly our last_tx's /* We're moving everything over to PSBTs from tx's, particularly our last_tx's
* which are commitment transactions for channels. * which are commitment transactions for channels.
* This migration loads all of the last_tx's and 're-formats' them into psbts, * This migration loads all of the last_tx's and 're-formats' them into psbts,

View File

@@ -1010,6 +1010,18 @@ struct db_query db_postgres_queries[] = {
.placeholders = 2, .placeholders = 2,
.readonly = false, .readonly = false,
}, },
{
.name = "SELECT channels.id, peers.node_id FROM channels JOIN peers ON (peers.id = channels.peer_id)",
.query = "SELECT channels.id, peers.node_id FROM channels JOIN peers ON (peers.id = channels.peer_id)",
.placeholders = 0,
.readonly = true,
},
{
.name = "UPDATE channels SET revocation_basepoint_local = ?, payment_basepoint_local = ?, htlc_basepoint_local = ?, delayed_payment_basepoint_local = ?, funding_pubkey_local = ? WHERE id = ?;",
.query = "UPDATE channels SET revocation_basepoint_local = $1, payment_basepoint_local = $2, htlc_basepoint_local = $3, delayed_payment_basepoint_local = $4, funding_pubkey_local = $5 WHERE id = $6;",
.placeholders = 6,
.readonly = false,
},
{ {
.name = "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;", .name = "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;",
.query = "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;", .query = "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;",
@@ -1858,10 +1870,10 @@ struct db_query db_postgres_queries[] = {
}, },
}; };
#define DB_POSTGRES_QUERY_COUNT 308 #define DB_POSTGRES_QUERY_COUNT 310
#endif /* HAVE_POSTGRES */ #endif /* HAVE_POSTGRES */
#endif /* LIGHTNINGD_WALLET_GEN_DB_POSTGRES */ #endif /* LIGHTNINGD_WALLET_GEN_DB_POSTGRES */
// SHA256STAMP:1a3134f7047b5f6d980c2a876b4132b04a650340846d704b2e4b3aa62810b830 // SHA256STAMP:31b3cec58b89d8183275a5f240715bde33901fd0e839ea4d267eed79575e2d2d

View File

@@ -1010,6 +1010,18 @@ struct db_query db_sqlite3_queries[] = {
.placeholders = 2, .placeholders = 2,
.readonly = false, .readonly = false,
}, },
{
.name = "SELECT channels.id, peers.node_id FROM channels JOIN peers ON (peers.id = channels.peer_id)",
.query = "SELECT channels.id, peers.node_id FROM channels JOIN peers ON (peers.id = channels.peer_id)",
.placeholders = 0,
.readonly = true,
},
{
.name = "UPDATE channels SET revocation_basepoint_local = ?, payment_basepoint_local = ?, htlc_basepoint_local = ?, delayed_payment_basepoint_local = ?, funding_pubkey_local = ? WHERE id = ?;",
.query = "UPDATE channels SET revocation_basepoint_local = ?, payment_basepoint_local = ?, htlc_basepoint_local = ?, delayed_payment_basepoint_local = ?, funding_pubkey_local = ? WHERE id = ?;",
.placeholders = 6,
.readonly = false,
},
{ {
.name = "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;", .name = "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;",
.query = "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;", .query = "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;",
@@ -1858,10 +1870,10 @@ struct db_query db_sqlite3_queries[] = {
}, },
}; };
#define DB_SQLITE3_QUERY_COUNT 308 #define DB_SQLITE3_QUERY_COUNT 310
#endif /* HAVE_SQLITE3 */ #endif /* HAVE_SQLITE3 */
#endif /* LIGHTNINGD_WALLET_GEN_DB_SQLITE3 */ #endif /* LIGHTNINGD_WALLET_GEN_DB_SQLITE3 */
// SHA256STAMP:90340a79e7d9009f7903f4c203253632ef2e81704d8e403f9bbffec2ed34dcb6 // SHA256STAMP:9b64275f5e8b221e0e7ae99a386d0fb5c5112b65eb893dc6c8f68c2e95d920d4

View File

@@ -1,676 +1,684 @@
#: wallet/db.c:60 #: wallet/db.c:65
msgid "CREATE TABLE version (version INTEGER)" msgid "CREATE TABLE version (version INTEGER)"
msgstr "" msgstr ""
#: wallet/db.c:61 #: wallet/db.c:66
msgid "INSERT INTO version VALUES (1)" msgid "INSERT INTO version VALUES (1)"
msgstr "" msgstr ""
#: wallet/db.c:62 #: wallet/db.c:67
msgid "CREATE TABLE outputs ( prev_out_tx BLOB, prev_out_index INTEGER, value BIGINT, type INTEGER, status INTEGER, keyindex INTEGER, PRIMARY KEY (prev_out_tx, prev_out_index));" msgid "CREATE TABLE outputs ( prev_out_tx BLOB, prev_out_index INTEGER, value BIGINT, type INTEGER, status INTEGER, keyindex INTEGER, PRIMARY KEY (prev_out_tx, prev_out_index));"
msgstr "" msgstr ""
#: wallet/db.c:71 #: wallet/db.c:76
msgid "CREATE TABLE vars ( name VARCHAR(32), val VARCHAR(255), PRIMARY KEY (name));" msgid "CREATE TABLE vars ( name VARCHAR(32), val VARCHAR(255), PRIMARY KEY (name));"
msgstr "" msgstr ""
#: wallet/db.c:77 #: wallet/db.c:82
msgid "CREATE TABLE shachains ( id BIGSERIAL, min_index BIGINT, num_valid BIGINT, PRIMARY KEY (id));" msgid "CREATE TABLE shachains ( id BIGSERIAL, min_index BIGINT, num_valid BIGINT, PRIMARY KEY (id));"
msgstr "" msgstr ""
#: wallet/db.c:84 #: wallet/db.c:89
msgid "CREATE TABLE shachain_known ( shachain_id BIGINT REFERENCES shachains(id) ON DELETE CASCADE, pos INTEGER, idx BIGINT, hash BLOB, PRIMARY KEY (shachain_id, pos));" msgid "CREATE TABLE shachain_known ( shachain_id BIGINT REFERENCES shachains(id) ON DELETE CASCADE, pos INTEGER, idx BIGINT, hash BLOB, PRIMARY KEY (shachain_id, pos));"
msgstr "" msgstr ""
#: wallet/db.c:92 #: wallet/db.c:97
msgid "CREATE TABLE peers ( id BIGSERIAL, node_id BLOB UNIQUE, address TEXT, PRIMARY KEY (id));" msgid "CREATE TABLE peers ( id BIGSERIAL, node_id BLOB UNIQUE, address TEXT, PRIMARY KEY (id));"
msgstr "" msgstr ""
#: wallet/db.c:99 #: wallet/db.c:104
msgid "CREATE TABLE channels ( id BIGSERIAL, peer_id BIGINT REFERENCES peers(id) ON DELETE CASCADE, short_channel_id TEXT, channel_config_local BIGINT, channel_config_remote BIGINT, state INTEGER, funder INTEGER, channel_flags INTEGER, minimum_depth INTEGER, next_index_local BIGINT, next_index_remote BIGINT, next_htlc_id BIGINT, funding_tx_id BLOB, funding_tx_outnum INTEGER, funding_satoshi BIGINT, funding_locked_remote INTEGER, push_msatoshi BIGINT, msatoshi_local BIGINT, fundingkey_remote BLOB, revocation_basepoint_remote BLOB, payment_basepoint_remote BLOB, htlc_basepoint_remote BLOB, delayed_payment_basepoint_remote BLOB, per_commit_remote BLOB, old_per_commit_remote BLOB, local_feerate_per_kw INTEGER, remote_feerate_per_kw INTEGER, shachain_remote_id BIGINT, shutdown_scriptpubkey_remote BLOB, shutdown_keyidx_local BIGINT, last_sent_commit_state BIGINT, last_sent_commit_id INTEGER, last_tx BLOB, last_sig BLOB, closing_fee_received INTEGER, closing_sig_received BLOB, PRIMARY KEY (id));" msgid "CREATE TABLE channels ( id BIGSERIAL, peer_id BIGINT REFERENCES peers(id) ON DELETE CASCADE, short_channel_id TEXT, channel_config_local BIGINT, channel_config_remote BIGINT, state INTEGER, funder INTEGER, channel_flags INTEGER, minimum_depth INTEGER, next_index_local BIGINT, next_index_remote BIGINT, next_htlc_id BIGINT, funding_tx_id BLOB, funding_tx_outnum INTEGER, funding_satoshi BIGINT, funding_locked_remote INTEGER, push_msatoshi BIGINT, msatoshi_local BIGINT, fundingkey_remote BLOB, revocation_basepoint_remote BLOB, payment_basepoint_remote BLOB, htlc_basepoint_remote BLOB, delayed_payment_basepoint_remote BLOB, per_commit_remote BLOB, old_per_commit_remote BLOB, local_feerate_per_kw INTEGER, remote_feerate_per_kw INTEGER, shachain_remote_id BIGINT, shutdown_scriptpubkey_remote BLOB, shutdown_keyidx_local BIGINT, last_sent_commit_state BIGINT, last_sent_commit_id INTEGER, last_tx BLOB, last_sig BLOB, closing_fee_received INTEGER, closing_sig_received BLOB, PRIMARY KEY (id));"
msgstr "" msgstr ""
#: wallet/db.c:141 #: wallet/db.c:146
msgid "CREATE TABLE channel_configs ( id BIGSERIAL, dust_limit_satoshis BIGINT, max_htlc_value_in_flight_msat BIGINT, channel_reserve_satoshis BIGINT, htlc_minimum_msat BIGINT, to_self_delay INTEGER, max_accepted_htlcs INTEGER, PRIMARY KEY (id));" msgid "CREATE TABLE channel_configs ( id BIGSERIAL, dust_limit_satoshis BIGINT, max_htlc_value_in_flight_msat BIGINT, channel_reserve_satoshis BIGINT, htlc_minimum_msat BIGINT, to_self_delay INTEGER, max_accepted_htlcs INTEGER, PRIMARY KEY (id));"
msgstr "" msgstr ""
#: wallet/db.c:152 #: wallet/db.c:157
msgid "CREATE TABLE channel_htlcs ( id BIGSERIAL, channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, channel_htlc_id BIGINT, direction INTEGER, origin_htlc BIGINT, msatoshi BIGINT, cltv_expiry INTEGER, payment_hash BLOB, payment_key BLOB, routing_onion BLOB, failuremsg BLOB, malformed_onion INTEGER, hstate INTEGER, shared_secret BLOB, PRIMARY KEY (id), UNIQUE (channel_id, channel_htlc_id, direction));" msgid "CREATE TABLE channel_htlcs ( id BIGSERIAL, channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, channel_htlc_id BIGINT, direction INTEGER, origin_htlc BIGINT, msatoshi BIGINT, cltv_expiry INTEGER, payment_hash BLOB, payment_key BLOB, routing_onion BLOB, failuremsg BLOB, malformed_onion INTEGER, hstate INTEGER, shared_secret BLOB, PRIMARY KEY (id), UNIQUE (channel_id, channel_htlc_id, direction));"
msgstr "" msgstr ""
#: wallet/db.c:172 #: wallet/db.c:177
msgid "CREATE TABLE invoices ( id BIGSERIAL, state INTEGER, msatoshi BIGINT, payment_hash BLOB, payment_key BLOB, label TEXT, PRIMARY KEY (id), UNIQUE (label), UNIQUE (payment_hash));" msgid "CREATE TABLE invoices ( id BIGSERIAL, state INTEGER, msatoshi BIGINT, payment_hash BLOB, payment_key BLOB, label TEXT, PRIMARY KEY (id), UNIQUE (label), UNIQUE (payment_hash));"
msgstr "" msgstr ""
#: wallet/db.c:184 #: wallet/db.c:189
msgid "CREATE TABLE payments ( id BIGSERIAL, timestamp INTEGER, status INTEGER, payment_hash BLOB, direction INTEGER, destination BLOB, msatoshi BIGINT, PRIMARY KEY (id), UNIQUE (payment_hash));" msgid "CREATE TABLE payments ( id BIGSERIAL, timestamp INTEGER, status INTEGER, payment_hash BLOB, direction INTEGER, destination BLOB, msatoshi BIGINT, PRIMARY KEY (id), UNIQUE (payment_hash));"
msgstr "" msgstr ""
#: wallet/db.c:197 #: wallet/db.c:202
msgid "ALTER TABLE invoices ADD expiry_time BIGINT;" msgid "ALTER TABLE invoices ADD expiry_time BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:198 #: wallet/db.c:203
msgid "UPDATE invoices SET expiry_time=9223372036854775807;" msgid "UPDATE invoices SET expiry_time=9223372036854775807;"
msgstr "" msgstr ""
#: wallet/db.c:200 #: wallet/db.c:205
msgid "ALTER TABLE invoices ADD pay_index BIGINT;" msgid "ALTER TABLE invoices ADD pay_index BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:201 #: wallet/db.c:206
msgid "CREATE UNIQUE INDEX invoices_pay_index ON invoices(pay_index);" msgid "CREATE UNIQUE INDEX invoices_pay_index ON invoices(pay_index);"
msgstr "" msgstr ""
#: wallet/db.c:203 #: wallet/db.c:208
msgid "UPDATE invoices SET pay_index=id WHERE state=1;" msgid "UPDATE invoices SET pay_index=id WHERE state=1;"
msgstr "" msgstr ""
#: wallet/db.c:206 #: wallet/db.c:211
msgid "INSERT INTO vars(name, val) VALUES('next_pay_index', COALESCE((SELECT MAX(pay_index) FROM invoices WHERE state=1), 0) + 1 );" msgid "INSERT INTO vars(name, val) VALUES('next_pay_index', COALESCE((SELECT MAX(pay_index) FROM invoices WHERE state=1), 0) + 1 );"
msgstr "" msgstr ""
#: wallet/db.c:215 #: wallet/db.c:220
msgid "ALTER TABLE channels ADD first_blocknum BIGINT;" msgid "ALTER TABLE channels ADD first_blocknum BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:216 #: wallet/db.c:221
msgid "UPDATE channels SET first_blocknum=1 WHERE short_channel_id IS NOT NULL;" msgid "UPDATE channels SET first_blocknum=1 WHERE short_channel_id IS NOT NULL;"
msgstr "" msgstr ""
#: wallet/db.c:218 #: wallet/db.c:223
msgid "ALTER TABLE outputs ADD COLUMN channel_id BIGINT;" msgid "ALTER TABLE outputs ADD COLUMN channel_id BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:219 #: wallet/db.c:224
msgid "ALTER TABLE outputs ADD COLUMN peer_id BLOB;" msgid "ALTER TABLE outputs ADD COLUMN peer_id BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:220 #: wallet/db.c:225
msgid "ALTER TABLE outputs ADD COLUMN commitment_point BLOB;" msgid "ALTER TABLE outputs ADD COLUMN commitment_point BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:221 #: wallet/db.c:226
msgid "ALTER TABLE invoices ADD COLUMN msatoshi_received BIGINT;" msgid "ALTER TABLE invoices ADD COLUMN msatoshi_received BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:223 #: wallet/db.c:228
msgid "UPDATE invoices SET msatoshi_received=0 WHERE state=1;" msgid "UPDATE invoices SET msatoshi_received=0 WHERE state=1;"
msgstr "" msgstr ""
#: wallet/db.c:224 #: wallet/db.c:229
msgid "ALTER TABLE channels ADD COLUMN last_was_revoke INTEGER;" msgid "ALTER TABLE channels ADD COLUMN last_was_revoke INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:228 wallet/db.c:521 #: wallet/db.c:233 wallet/db.c:526
msgid "ALTER TABLE payments RENAME TO temp_payments;" msgid "ALTER TABLE payments RENAME TO temp_payments;"
msgstr "" msgstr ""
#: wallet/db.c:229 #: wallet/db.c:234
msgid "CREATE TABLE payments ( id BIGSERIAL, timestamp INTEGER, status INTEGER, payment_hash BLOB, destination BLOB, msatoshi BIGINT, PRIMARY KEY (id), UNIQUE (payment_hash));" msgid "CREATE TABLE payments ( id BIGSERIAL, timestamp INTEGER, status INTEGER, payment_hash BLOB, destination BLOB, msatoshi BIGINT, PRIMARY KEY (id), UNIQUE (payment_hash));"
msgstr "" msgstr ""
#: wallet/db.c:240 #: wallet/db.c:245
msgid "INSERT INTO payments SELECT id, timestamp, status, payment_hash, destination, msatoshi FROM temp_payments WHERE direction=1;" msgid "INSERT INTO payments SELECT id, timestamp, status, payment_hash, destination, msatoshi FROM temp_payments WHERE direction=1;"
msgstr "" msgstr ""
#: wallet/db.c:243 wallet/db.c:596 #: wallet/db.c:248 wallet/db.c:601
msgid "DROP TABLE temp_payments;" msgid "DROP TABLE temp_payments;"
msgstr "" msgstr ""
#: wallet/db.c:245 #: wallet/db.c:250
msgid "ALTER TABLE payments ADD COLUMN payment_preimage BLOB;" msgid "ALTER TABLE payments ADD COLUMN payment_preimage BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:247 #: wallet/db.c:252
msgid "ALTER TABLE payments ADD COLUMN path_secrets BLOB;" msgid "ALTER TABLE payments ADD COLUMN path_secrets BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:250 #: wallet/db.c:255
msgid "ALTER TABLE invoices ADD paid_timestamp BIGINT;" msgid "ALTER TABLE invoices ADD paid_timestamp BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:251 #: wallet/db.c:256
msgid "UPDATE invoices SET paid_timestamp = CURRENT_TIMESTAMP() WHERE state = 1;" msgid "UPDATE invoices SET paid_timestamp = CURRENT_TIMESTAMP() WHERE state = 1;"
msgstr "" msgstr ""
#: wallet/db.c:259 #: wallet/db.c:264
msgid "ALTER TABLE payments ADD COLUMN route_nodes BLOB;" msgid "ALTER TABLE payments ADD COLUMN route_nodes BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:260 #: wallet/db.c:265
msgid "ALTER TABLE payments ADD COLUMN route_channels BLOB;" msgid "ALTER TABLE payments ADD COLUMN route_channels BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:261 #: wallet/db.c:266
msgid "CREATE TABLE htlc_sigs (channelid INTEGER REFERENCES channels(id) ON DELETE CASCADE, signature BLOB);" msgid "CREATE TABLE htlc_sigs (channelid INTEGER REFERENCES channels(id) ON DELETE CASCADE, signature BLOB);"
msgstr "" msgstr ""
#: wallet/db.c:264 #: wallet/db.c:269
msgid "CREATE INDEX channel_idx ON htlc_sigs (channelid)" msgid "CREATE INDEX channel_idx ON htlc_sigs (channelid)"
msgstr "" msgstr ""
#: wallet/db.c:266 #: wallet/db.c:271
msgid "DELETE FROM channels WHERE state=1" msgid "DELETE FROM channels WHERE state=1"
msgstr "" msgstr ""
#: wallet/db.c:268 #: wallet/db.c:273
msgid "CREATE TABLE db_upgrades (upgrade_from INTEGER, lightning_version TEXT);" msgid "CREATE TABLE db_upgrades (upgrade_from INTEGER, lightning_version TEXT);"
msgstr "" msgstr ""
#: wallet/db.c:272 wallet/db.c:462 #: wallet/db.c:277 wallet/db.c:467
msgid "DELETE FROM peers WHERE id NOT IN (SELECT peer_id FROM channels);" msgid "DELETE FROM peers WHERE id NOT IN (SELECT peer_id FROM channels);"
msgstr "" msgstr ""
#: wallet/db.c:276 #: wallet/db.c:281
msgid "UPDATE channels SET STATE = 8 WHERE state > 8;" msgid "UPDATE channels SET STATE = 8 WHERE state > 8;"
msgstr "" msgstr ""
#: wallet/db.c:278 #: wallet/db.c:283
msgid "ALTER TABLE invoices ADD bolt11 TEXT;" msgid "ALTER TABLE invoices ADD bolt11 TEXT;"
msgstr "" msgstr ""
#: wallet/db.c:282 #: wallet/db.c:287
msgid "CREATE TABLE blocks (height INT, hash BLOB, prev_hash BLOB, UNIQUE(height));" msgid "CREATE TABLE blocks (height INT, hash BLOB, prev_hash BLOB, UNIQUE(height));"
msgstr "" msgstr ""
#: wallet/db.c:292 #: wallet/db.c:297
msgid "ALTER TABLE outputs ADD COLUMN confirmation_height INTEGER REFERENCES blocks(height) ON DELETE SET NULL;" msgid "ALTER TABLE outputs ADD COLUMN confirmation_height INTEGER REFERENCES blocks(height) ON DELETE SET NULL;"
msgstr "" msgstr ""
#: wallet/db.c:295 #: wallet/db.c:300
msgid "ALTER TABLE outputs ADD COLUMN spend_height INTEGER REFERENCES blocks(height) ON DELETE SET NULL;" msgid "ALTER TABLE outputs ADD COLUMN spend_height INTEGER REFERENCES blocks(height) ON DELETE SET NULL;"
msgstr "" msgstr ""
#: wallet/db.c:299 #: wallet/db.c:304
msgid "CREATE INDEX output_height_idx ON outputs (confirmation_height, spend_height);" msgid "CREATE INDEX output_height_idx ON outputs (confirmation_height, spend_height);"
msgstr "" msgstr ""
#: wallet/db.c:302 #: wallet/db.c:307
msgid "CREATE TABLE utxoset ( txid BLOB, outnum INT, blockheight INT REFERENCES blocks(height) ON DELETE CASCADE, spendheight INT REFERENCES blocks(height) ON DELETE SET NULL, txindex INT, scriptpubkey BLOB, satoshis BIGINT, PRIMARY KEY(txid, outnum));" msgid "CREATE TABLE utxoset ( txid BLOB, outnum INT, blockheight INT REFERENCES blocks(height) ON DELETE CASCADE, spendheight INT REFERENCES blocks(height) ON DELETE SET NULL, txindex INT, scriptpubkey BLOB, satoshis BIGINT, PRIMARY KEY(txid, outnum));"
msgstr "" msgstr ""
#: wallet/db.c:312 #: wallet/db.c:317
msgid "CREATE INDEX short_channel_id ON utxoset (blockheight, txindex, outnum)" msgid "CREATE INDEX short_channel_id ON utxoset (blockheight, txindex, outnum)"
msgstr "" msgstr ""
#: wallet/db.c:317 #: wallet/db.c:322
msgid "CREATE INDEX utxoset_spend ON utxoset (spendheight)" msgid "CREATE INDEX utxoset_spend ON utxoset (spendheight)"
msgstr "" msgstr ""
#: wallet/db.c:319 #: wallet/db.c:324
msgid "UPDATE channels SET shutdown_keyidx_local=0 WHERE shutdown_keyidx_local = -1;" msgid "UPDATE channels SET shutdown_keyidx_local=0 WHERE shutdown_keyidx_local = -1;"
msgstr "" msgstr ""
#: wallet/db.c:325 #: wallet/db.c:330
msgid "ALTER TABLE payments ADD failonionreply BLOB;" msgid "ALTER TABLE payments ADD failonionreply BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:327 #: wallet/db.c:332
msgid "ALTER TABLE payments ADD faildestperm INTEGER;" msgid "ALTER TABLE payments ADD faildestperm INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:329 #: wallet/db.c:334
msgid "ALTER TABLE payments ADD failindex INTEGER;" msgid "ALTER TABLE payments ADD failindex INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:331 #: wallet/db.c:336
msgid "ALTER TABLE payments ADD failcode INTEGER;" msgid "ALTER TABLE payments ADD failcode INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:332 #: wallet/db.c:337
msgid "ALTER TABLE payments ADD failnode BLOB;" msgid "ALTER TABLE payments ADD failnode BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:333 #: wallet/db.c:338
msgid "ALTER TABLE payments ADD failchannel TEXT;" msgid "ALTER TABLE payments ADD failchannel TEXT;"
msgstr "" msgstr ""
#: wallet/db.c:335 #: wallet/db.c:340
msgid "ALTER TABLE payments ADD failupdate BLOB;" msgid "ALTER TABLE payments ADD failupdate BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:339 #: wallet/db.c:344
msgid "UPDATE payments SET path_secrets = NULL , route_nodes = NULL , route_channels = NULL WHERE status <> 0;" msgid "UPDATE payments SET path_secrets = NULL , route_nodes = NULL , route_channels = NULL WHERE status <> 0;"
msgstr "" msgstr ""
#: wallet/db.c:346 #: wallet/db.c:351
msgid "ALTER TABLE channels ADD in_payments_offered INTEGER DEFAULT 0;" msgid "ALTER TABLE channels ADD in_payments_offered INTEGER DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:347 #: wallet/db.c:352
msgid "ALTER TABLE channels ADD in_payments_fulfilled INTEGER DEFAULT 0;" msgid "ALTER TABLE channels ADD in_payments_fulfilled INTEGER DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:348 #: wallet/db.c:353
msgid "ALTER TABLE channels ADD in_msatoshi_offered BIGINT DEFAULT 0;" msgid "ALTER TABLE channels ADD in_msatoshi_offered BIGINT DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:349 #: wallet/db.c:354
msgid "ALTER TABLE channels ADD in_msatoshi_fulfilled BIGINT DEFAULT 0;" msgid "ALTER TABLE channels ADD in_msatoshi_fulfilled BIGINT DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:350 #: wallet/db.c:355
msgid "ALTER TABLE channels ADD out_payments_offered INTEGER DEFAULT 0;" msgid "ALTER TABLE channels ADD out_payments_offered INTEGER DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:351 #: wallet/db.c:356
msgid "ALTER TABLE channels ADD out_payments_fulfilled INTEGER DEFAULT 0;" msgid "ALTER TABLE channels ADD out_payments_fulfilled INTEGER DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:352 #: wallet/db.c:357
msgid "ALTER TABLE channels ADD out_msatoshi_offered BIGINT DEFAULT 0;" msgid "ALTER TABLE channels ADD out_msatoshi_offered BIGINT DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:353 #: wallet/db.c:358
msgid "ALTER TABLE channels ADD out_msatoshi_fulfilled BIGINT DEFAULT 0;" msgid "ALTER TABLE channels ADD out_msatoshi_fulfilled BIGINT DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:354 #: wallet/db.c:359
msgid "UPDATE channels SET in_payments_offered = 0, in_payments_fulfilled = 0 , in_msatoshi_offered = 0, in_msatoshi_fulfilled = 0 , out_payments_offered = 0, out_payments_fulfilled = 0 , out_msatoshi_offered = 0, out_msatoshi_fulfilled = 0 ;" msgid "UPDATE channels SET in_payments_offered = 0, in_payments_fulfilled = 0 , in_msatoshi_offered = 0, in_msatoshi_fulfilled = 0 , out_payments_offered = 0, out_payments_fulfilled = 0 , out_msatoshi_offered = 0, out_msatoshi_fulfilled = 0 ;"
msgstr "" msgstr ""
#: wallet/db.c:363 #: wallet/db.c:368
msgid "ALTER TABLE payments ADD msatoshi_sent BIGINT;" msgid "ALTER TABLE payments ADD msatoshi_sent BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:364 #: wallet/db.c:369
msgid "UPDATE payments SET msatoshi_sent = msatoshi;" msgid "UPDATE payments SET msatoshi_sent = msatoshi;"
msgstr "" msgstr ""
#: wallet/db.c:366 #: wallet/db.c:371
msgid "DELETE FROM utxoset WHERE blockheight IN ( SELECT DISTINCT(blockheight) FROM utxoset LEFT OUTER JOIN blocks on (blockheight = blocks.height) WHERE blocks.hash IS NULL);" msgid "DELETE FROM utxoset WHERE blockheight IN ( SELECT DISTINCT(blockheight) FROM utxoset LEFT OUTER JOIN blocks on (blockheight = blocks.height) WHERE blocks.hash IS NULL);"
msgstr "" msgstr ""
#: wallet/db.c:374 #: wallet/db.c:379
msgid "ALTER TABLE channels ADD min_possible_feerate INTEGER;" msgid "ALTER TABLE channels ADD min_possible_feerate INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:375 #: wallet/db.c:380
msgid "ALTER TABLE channels ADD max_possible_feerate INTEGER;" msgid "ALTER TABLE channels ADD max_possible_feerate INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:378 #: wallet/db.c:383
msgid "UPDATE channels SET min_possible_feerate=0, max_possible_feerate=250000;" msgid "UPDATE channels SET min_possible_feerate=0, max_possible_feerate=250000;"
msgstr "" msgstr ""
#: wallet/db.c:382 #: wallet/db.c:387
msgid "ALTER TABLE channels ADD msatoshi_to_us_min BIGINT;" msgid "ALTER TABLE channels ADD msatoshi_to_us_min BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:383 #: wallet/db.c:388
msgid "ALTER TABLE channels ADD msatoshi_to_us_max BIGINT;" msgid "ALTER TABLE channels ADD msatoshi_to_us_max BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:384 #: wallet/db.c:389
msgid "UPDATE channels SET msatoshi_to_us_min = msatoshi_local , msatoshi_to_us_max = msatoshi_local ;" msgid "UPDATE channels SET msatoshi_to_us_min = msatoshi_local , msatoshi_to_us_max = msatoshi_local ;"
msgstr "" msgstr ""
#: wallet/db.c:393 #: wallet/db.c:398
msgid "CREATE TABLE transactions ( id BLOB, blockheight INTEGER REFERENCES blocks(height) ON DELETE SET NULL, txindex INTEGER, rawtx BLOB, PRIMARY KEY (id));" msgid "CREATE TABLE transactions ( id BLOB, blockheight INTEGER REFERENCES blocks(height) ON DELETE SET NULL, txindex INTEGER, rawtx BLOB, PRIMARY KEY (id));"
msgstr "" msgstr ""
#: wallet/db.c:402 #: wallet/db.c:407
msgid "ALTER TABLE payments ADD faildetail TEXT;" msgid "ALTER TABLE payments ADD faildetail TEXT;"
msgstr "" msgstr ""
#: wallet/db.c:403 #: wallet/db.c:408
msgid "UPDATE payments SET faildetail = 'unspecified payment failure reason' WHERE status = 2;" msgid "UPDATE payments SET faildetail = 'unspecified payment failure reason' WHERE status = 2;"
msgstr "" msgstr ""
#: wallet/db.c:408 #: wallet/db.c:413
msgid "CREATE TABLE channeltxs ( id BIGSERIAL, channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, type INTEGER, transaction_id BLOB REFERENCES transactions(id) ON DELETE CASCADE, input_num INTEGER, blockheight INTEGER REFERENCES blocks(height) ON DELETE CASCADE, PRIMARY KEY(id));" msgid "CREATE TABLE channeltxs ( id BIGSERIAL, channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, type INTEGER, transaction_id BLOB REFERENCES transactions(id) ON DELETE CASCADE, input_num INTEGER, blockheight INTEGER REFERENCES blocks(height) ON DELETE CASCADE, PRIMARY KEY(id));"
msgstr "" msgstr ""
#: wallet/db.c:424 #: wallet/db.c:429
msgid "DELETE FROM blocks WHERE height > (SELECT MIN(first_blocknum) FROM channels);" msgid "DELETE FROM blocks WHERE height > (SELECT MIN(first_blocknum) FROM channels);"
msgstr "" msgstr ""
#: wallet/db.c:430 #: wallet/db.c:435
msgid "INSERT INTO blocks (height) VALUES ((SELECT MIN(first_blocknum) FROM channels)) ON CONFLICT(height) DO NOTHING;" msgid "INSERT INTO blocks (height) VALUES ((SELECT MIN(first_blocknum) FROM channels)) ON CONFLICT(height) DO NOTHING;"
msgstr "" msgstr ""
#: wallet/db.c:434 #: wallet/db.c:439
msgid "DELETE FROM blocks WHERE height IS NULL;" msgid "DELETE FROM blocks WHERE height IS NULL;"
msgstr "" msgstr ""
#: wallet/db.c:436 #: wallet/db.c:441
msgid "ALTER TABLE invoices ADD description TEXT;" msgid "ALTER TABLE invoices ADD description TEXT;"
msgstr "" msgstr ""
#: wallet/db.c:438 #: wallet/db.c:443
msgid "ALTER TABLE payments ADD description TEXT;" msgid "ALTER TABLE payments ADD description TEXT;"
msgstr "" msgstr ""
#: wallet/db.c:440 #: wallet/db.c:445
msgid "ALTER TABLE channels ADD future_per_commitment_point BLOB;" msgid "ALTER TABLE channels ADD future_per_commitment_point BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:442 #: wallet/db.c:447
msgid "ALTER TABLE channels ADD last_sent_commit BLOB;" msgid "ALTER TABLE channels ADD last_sent_commit BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:447 #: wallet/db.c:452
msgid "CREATE TABLE forwarded_payments ( in_htlc_id BIGINT REFERENCES channel_htlcs(id) ON DELETE SET NULL, out_htlc_id BIGINT REFERENCES channel_htlcs(id) ON DELETE SET NULL, in_channel_scid BIGINT, out_channel_scid BIGINT, in_msatoshi BIGINT, out_msatoshi BIGINT, state INTEGER, UNIQUE(in_htlc_id, out_htlc_id));" msgid "CREATE TABLE forwarded_payments ( in_htlc_id BIGINT REFERENCES channel_htlcs(id) ON DELETE SET NULL, out_htlc_id BIGINT REFERENCES channel_htlcs(id) ON DELETE SET NULL, in_channel_scid BIGINT, out_channel_scid BIGINT, in_msatoshi BIGINT, out_msatoshi BIGINT, state INTEGER, UNIQUE(in_htlc_id, out_htlc_id));"
msgstr "" msgstr ""
#: wallet/db.c:459 #: wallet/db.c:464
msgid "ALTER TABLE payments ADD faildirection INTEGER;" msgid "ALTER TABLE payments ADD faildirection INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:464 #: wallet/db.c:469
msgid "ALTER TABLE outputs ADD scriptpubkey BLOB;" msgid "ALTER TABLE outputs ADD scriptpubkey BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:466 #: wallet/db.c:471
msgid "ALTER TABLE payments ADD bolt11 TEXT;" msgid "ALTER TABLE payments ADD bolt11 TEXT;"
msgstr "" msgstr ""
#: wallet/db.c:468 #: wallet/db.c:473
msgid "ALTER TABLE channels ADD feerate_base INTEGER;" msgid "ALTER TABLE channels ADD feerate_base INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:469 #: wallet/db.c:474
msgid "ALTER TABLE channels ADD feerate_ppm INTEGER;" msgid "ALTER TABLE channels ADD feerate_ppm INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:471 #: wallet/db.c:476
msgid "ALTER TABLE channel_htlcs ADD received_time BIGINT" msgid "ALTER TABLE channel_htlcs ADD received_time BIGINT"
msgstr "" msgstr ""
#: wallet/db.c:472 #: wallet/db.c:477
msgid "ALTER TABLE forwarded_payments ADD received_time BIGINT" msgid "ALTER TABLE forwarded_payments ADD received_time BIGINT"
msgstr "" msgstr ""
#: wallet/db.c:473 #: wallet/db.c:478
msgid "ALTER TABLE forwarded_payments ADD resolved_time BIGINT" msgid "ALTER TABLE forwarded_payments ADD resolved_time BIGINT"
msgstr "" msgstr ""
#: wallet/db.c:474 #: wallet/db.c:479
msgid "ALTER TABLE channels ADD remote_upfront_shutdown_script BLOB;" msgid "ALTER TABLE channels ADD remote_upfront_shutdown_script BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:477 #: wallet/db.c:482
msgid "ALTER TABLE forwarded_payments ADD failcode INTEGER;" msgid "ALTER TABLE forwarded_payments ADD failcode INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:479 #: wallet/db.c:484
msgid "ALTER TABLE channels ADD remote_ann_node_sig BLOB;" msgid "ALTER TABLE channels ADD remote_ann_node_sig BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:480 #: wallet/db.c:485
msgid "ALTER TABLE channels ADD remote_ann_bitcoin_sig BLOB;" msgid "ALTER TABLE channels ADD remote_ann_bitcoin_sig BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:482 #: wallet/db.c:487
msgid "ALTER TABLE transactions ADD type BIGINT;" msgid "ALTER TABLE transactions ADD type BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:487 #: wallet/db.c:492
msgid "ALTER TABLE transactions ADD channel_id BIGINT;" msgid "ALTER TABLE transactions ADD channel_id BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:489 #: wallet/db.c:494
msgid "UPDATE channels SET short_channel_id = REPLACE(short_channel_id, ':', 'x') WHERE short_channel_id IS NOT NULL;" msgid "UPDATE channels SET short_channel_id = REPLACE(short_channel_id, ':', 'x') WHERE short_channel_id IS NOT NULL;"
msgstr "" msgstr ""
#: wallet/db.c:492 #: wallet/db.c:497
msgid "UPDATE payments SET failchannel = REPLACE(failchannel, ':', 'x') WHERE failchannel IS NOT NULL;" msgid "UPDATE payments SET failchannel = REPLACE(failchannel, ':', 'x') WHERE failchannel IS NOT NULL;"
msgstr "" msgstr ""
#: wallet/db.c:495 #: wallet/db.c:500
msgid "ALTER TABLE channels ADD COLUMN option_static_remotekey INTEGER DEFAULT 0;" msgid "ALTER TABLE channels ADD COLUMN option_static_remotekey INTEGER DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:497 #: wallet/db.c:502
msgid "ALTER TABLE vars ADD COLUMN intval INTEGER" msgid "ALTER TABLE vars ADD COLUMN intval INTEGER"
msgstr "" msgstr ""
#: wallet/db.c:498 #: wallet/db.c:503
msgid "ALTER TABLE vars ADD COLUMN blobval BLOB" msgid "ALTER TABLE vars ADD COLUMN blobval BLOB"
msgstr "" msgstr ""
#: wallet/db.c:499 #: wallet/db.c:504
msgid "UPDATE vars SET intval = CAST(val AS INTEGER) WHERE name IN ('bip32_max_index', 'last_processed_block', 'next_pay_index')" msgid "UPDATE vars SET intval = CAST(val AS INTEGER) WHERE name IN ('bip32_max_index', 'last_processed_block', 'next_pay_index')"
msgstr "" msgstr ""
#: wallet/db.c:500 #: wallet/db.c:505
msgid "UPDATE vars SET blobval = CAST(val AS BLOB) WHERE name = 'genesis_hash'" msgid "UPDATE vars SET blobval = CAST(val AS BLOB) WHERE name = 'genesis_hash'"
msgstr "" msgstr ""
#: wallet/db.c:501 #: wallet/db.c:506
msgid "CREATE TABLE transaction_annotations ( txid BLOB, idx INTEGER, location INTEGER, type INTEGER, channel BIGINT REFERENCES channels(id), UNIQUE(txid, idx));" msgid "CREATE TABLE transaction_annotations ( txid BLOB, idx INTEGER, location INTEGER, type INTEGER, channel BIGINT REFERENCES channels(id), UNIQUE(txid, idx));"
msgstr "" msgstr ""
#: wallet/db.c:513 #: wallet/db.c:518
msgid "ALTER TABLE channels ADD shutdown_scriptpubkey_local BLOB;" msgid "ALTER TABLE channels ADD shutdown_scriptpubkey_local BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:516 #: wallet/db.c:521
msgid "UPDATE forwarded_payments SET received_time=0 WHERE received_time IS NULL;" msgid "UPDATE forwarded_payments SET received_time=0 WHERE received_time IS NULL;"
msgstr "" msgstr ""
#: wallet/db.c:518 #: wallet/db.c:523
msgid "ALTER TABLE invoices ADD COLUMN features BLOB DEFAULT '';" msgid "ALTER TABLE invoices ADD COLUMN features BLOB DEFAULT '';"
msgstr "" msgstr ""
#: wallet/db.c:522 #: wallet/db.c:527
msgid "CREATE TABLE payments ( id BIGSERIAL, timestamp INTEGER, status INTEGER, payment_hash BLOB, destination BLOB, msatoshi BIGINT, payment_preimage BLOB, path_secrets BLOB, route_nodes BLOB, route_channels BLOB, failonionreply BLOB, faildestperm INTEGER, failindex INTEGER, failcode INTEGER, failnode BLOB, failchannel TEXT, failupdate BLOB, msatoshi_sent BIGINT, faildetail TEXT, description TEXT, faildirection INTEGER, bolt11 TEXT, total_msat BIGINT, partid BIGINT, PRIMARY KEY (id), UNIQUE (payment_hash, partid))" msgid "CREATE TABLE payments ( id BIGSERIAL, timestamp INTEGER, status INTEGER, payment_hash BLOB, destination BLOB, msatoshi BIGINT, payment_preimage BLOB, path_secrets BLOB, route_nodes BLOB, route_channels BLOB, failonionreply BLOB, faildestperm INTEGER, failindex INTEGER, failcode INTEGER, failnode BLOB, failchannel TEXT, failupdate BLOB, msatoshi_sent BIGINT, faildetail TEXT, description TEXT, faildirection INTEGER, bolt11 TEXT, total_msat BIGINT, partid BIGINT, PRIMARY KEY (id), UNIQUE (payment_hash, partid))"
msgstr "" msgstr ""
#: wallet/db.c:549 #: wallet/db.c:554
msgid "INSERT INTO payments (id, timestamp, status, payment_hash, destination, msatoshi, payment_preimage, path_secrets, route_nodes, route_channels, failonionreply, faildestperm, failindex, failcode, failnode, failchannel, failupdate, msatoshi_sent, faildetail, description, faildirection, bolt11)SELECT id, timestamp, status, payment_hash, destination, msatoshi, payment_preimage, path_secrets, route_nodes, route_channels, failonionreply, faildestperm, failindex, failcode, failnode, failchannel, failupdate, msatoshi_sent, faildetail, description, faildirection, bolt11 FROM temp_payments;" msgid "INSERT INTO payments (id, timestamp, status, payment_hash, destination, msatoshi, payment_preimage, path_secrets, route_nodes, route_channels, failonionreply, faildestperm, failindex, failcode, failnode, failchannel, failupdate, msatoshi_sent, faildetail, description, faildirection, bolt11)SELECT id, timestamp, status, payment_hash, destination, msatoshi, payment_preimage, path_secrets, route_nodes, route_channels, failonionreply, faildestperm, failindex, failcode, failnode, failchannel, failupdate, msatoshi_sent, faildetail, description, faildirection, bolt11 FROM temp_payments;"
msgstr "" msgstr ""
#: wallet/db.c:594 #: wallet/db.c:599
msgid "UPDATE payments SET total_msat = msatoshi;" msgid "UPDATE payments SET total_msat = msatoshi;"
msgstr "" msgstr ""
#: wallet/db.c:595 #: wallet/db.c:600
msgid "UPDATE payments SET partid = 0;" msgid "UPDATE payments SET partid = 0;"
msgstr "" msgstr ""
#: wallet/db.c:597 #: wallet/db.c:602
msgid "ALTER TABLE channel_htlcs ADD partid BIGINT;" msgid "ALTER TABLE channel_htlcs ADD partid BIGINT;"
msgstr "" msgstr ""
#: wallet/db.c:598 #: wallet/db.c:603
msgid "UPDATE channel_htlcs SET partid = 0;" msgid "UPDATE channel_htlcs SET partid = 0;"
msgstr "" msgstr ""
#: wallet/db.c:599 #: wallet/db.c:604
msgid "CREATE TABLE channel_feerates ( channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, hstate INTEGER, feerate_per_kw INTEGER, UNIQUE (channel_id, hstate));" msgid "CREATE TABLE channel_feerates ( channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, hstate INTEGER, feerate_per_kw INTEGER, UNIQUE (channel_id, hstate));"
msgstr "" msgstr ""
#: wallet/db.c:610 #: wallet/db.c:615
msgid "INSERT INTO channel_feerates(channel_id, hstate, feerate_per_kw) SELECT id, 4, local_feerate_per_kw FROM channels WHERE funder = 0;" msgid "INSERT INTO channel_feerates(channel_id, hstate, feerate_per_kw) SELECT id, 4, local_feerate_per_kw FROM channels WHERE funder = 0;"
msgstr "" msgstr ""
#: wallet/db.c:614 #: wallet/db.c:619
msgid "INSERT INTO channel_feerates(channel_id, hstate, feerate_per_kw) SELECT id, 1, remote_feerate_per_kw FROM channels WHERE funder = 0 and local_feerate_per_kw != remote_feerate_per_kw;" msgid "INSERT INTO channel_feerates(channel_id, hstate, feerate_per_kw) SELECT id, 1, remote_feerate_per_kw FROM channels WHERE funder = 0 and local_feerate_per_kw != remote_feerate_per_kw;"
msgstr "" msgstr ""
#: wallet/db.c:619 #: wallet/db.c:624
msgid "INSERT INTO channel_feerates(channel_id, hstate, feerate_per_kw) SELECT id, 14, remote_feerate_per_kw FROM channels WHERE funder = 1;" msgid "INSERT INTO channel_feerates(channel_id, hstate, feerate_per_kw) SELECT id, 14, remote_feerate_per_kw FROM channels WHERE funder = 1;"
msgstr "" msgstr ""
#: wallet/db.c:623 #: wallet/db.c:628
msgid "INSERT INTO channel_feerates(channel_id, hstate, feerate_per_kw) SELECT id, 11, local_feerate_per_kw FROM channels WHERE funder = 1 and local_feerate_per_kw != remote_feerate_per_kw;" msgid "INSERT INTO channel_feerates(channel_id, hstate, feerate_per_kw) SELECT id, 11, local_feerate_per_kw FROM channels WHERE funder = 1 and local_feerate_per_kw != remote_feerate_per_kw;"
msgstr "" msgstr ""
#: wallet/db.c:627 #: wallet/db.c:632
msgid "INSERT INTO vars (name, intval) VALUES ('data_version', 0);" msgid "INSERT INTO vars (name, intval) VALUES ('data_version', 0);"
msgstr "" msgstr ""
#: wallet/db.c:630 #: wallet/db.c:635
msgid "ALTER TABLE channel_htlcs ADD localfailmsg BLOB;" msgid "ALTER TABLE channel_htlcs ADD localfailmsg BLOB;"
msgstr "" msgstr ""
#: wallet/db.c:631 #: wallet/db.c:636
msgid "UPDATE channel_htlcs SET localfailmsg=decode('2002', 'hex') WHERE malformed_onion != 0 AND direction = 1;" msgid "UPDATE channel_htlcs SET localfailmsg=decode('2002', 'hex') WHERE malformed_onion != 0 AND direction = 1;"
msgstr "" msgstr ""
#: wallet/db.c:632 #: wallet/db.c:637
msgid "ALTER TABLE channels ADD our_funding_satoshi BIGINT DEFAULT 0;" msgid "ALTER TABLE channels ADD our_funding_satoshi BIGINT DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:633 #: wallet/db.c:638
msgid "CREATE TABLE penalty_bases ( channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, commitnum BIGINT, txid BLOB, outnum INTEGER, amount BIGINT, PRIMARY KEY (channel_id, commitnum));" msgid "CREATE TABLE penalty_bases ( channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, commitnum BIGINT, txid BLOB, outnum INTEGER, amount BIGINT, PRIMARY KEY (channel_id, commitnum));"
msgstr "" msgstr ""
#: wallet/db.c:643 #: wallet/db.c:648
msgid "ALTER TABLE channel_htlcs ADD we_filled INTEGER;" msgid "ALTER TABLE channel_htlcs ADD we_filled INTEGER;"
msgstr "" msgstr ""
#: wallet/db.c:645 #: wallet/db.c:650
msgid "INSERT INTO vars (name, intval) VALUES ('coin_moves_count', 0);" msgid "INSERT INTO vars (name, intval) VALUES ('coin_moves_count', 0);"
msgstr "" msgstr ""
#: wallet/db.c:647 #: wallet/db.c:652
msgid "ALTER TABLE outputs ADD reserved_til INTEGER DEFAULT NULL;" msgid "ALTER TABLE outputs ADD reserved_til INTEGER DEFAULT NULL;"
msgstr "" msgstr ""
#: wallet/db.c:650 #: wallet/db.c:655
msgid "ALTER TABLE channels ADD COLUMN option_anchor_outputs INTEGER DEFAULT 0;" msgid "ALTER TABLE channels ADD COLUMN option_anchor_outputs INTEGER DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:653 #: wallet/db.c:658
msgid "ALTER TABLE outputs ADD option_anchor_outputs INTEGER DEFAULT 0;" msgid "ALTER TABLE outputs ADD option_anchor_outputs INTEGER DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:655 #: wallet/db.c:660
msgid "ALTER TABLE channels ADD full_channel_id BLOB DEFAULT NULL;" msgid "ALTER TABLE channels ADD full_channel_id BLOB DEFAULT NULL;"
msgstr "" msgstr ""
#: wallet/db.c:656 #: wallet/db.c:661
msgid "ALTER TABLE channels ADD funding_psbt BLOB DEFAULT NULL;" msgid "ALTER TABLE channels ADD funding_psbt BLOB DEFAULT NULL;"
msgstr "" msgstr ""
#: wallet/db.c:658 #: wallet/db.c:663
msgid "ALTER TABLE channels ADD closer INTEGER DEFAULT 2;" msgid "ALTER TABLE channels ADD closer INTEGER DEFAULT 2;"
msgstr "" msgstr ""
#: wallet/db.c:659 #: wallet/db.c:664
msgid "ALTER TABLE channels ADD state_change_reason INTEGER DEFAULT 0;" msgid "ALTER TABLE channels ADD state_change_reason INTEGER DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:660 #: wallet/db.c:665
msgid "CREATE TABLE channel_state_changes ( channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, timestamp BIGINT, old_state INTEGER, new_state INTEGER, cause INTEGER, message TEXT);" msgid "CREATE TABLE channel_state_changes ( channel_id BIGINT REFERENCES channels(id) ON DELETE CASCADE, timestamp BIGINT, old_state INTEGER, new_state INTEGER, cause INTEGER, message TEXT);"
msgstr "" msgstr ""
#: wallet/db.c:668 #: wallet/db.c:673
msgid "CREATE TABLE offers ( offer_id BLOB, bolt12 TEXT, label TEXT, status INTEGER, PRIMARY KEY (offer_id));" msgid "CREATE TABLE offers ( offer_id BLOB, bolt12 TEXT, label TEXT, status INTEGER, PRIMARY KEY (offer_id));"
msgstr "" msgstr ""
#: wallet/db.c:676 #: wallet/db.c:681
msgid "ALTER TABLE invoices ADD COLUMN local_offer_id BLOB DEFAULT NULL REFERENCES offers(offer_id);" msgid "ALTER TABLE invoices ADD COLUMN local_offer_id BLOB DEFAULT NULL REFERENCES offers(offer_id);"
msgstr "" msgstr ""
#: wallet/db.c:678 #: wallet/db.c:683
msgid "ALTER TABLE payments ADD COLUMN local_offer_id BLOB DEFAULT NULL REFERENCES offers(offer_id);" msgid "ALTER TABLE payments ADD COLUMN local_offer_id BLOB DEFAULT NULL REFERENCES offers(offer_id);"
msgstr "" msgstr ""
#: wallet/db.c:679 #: wallet/db.c:684
msgid "ALTER TABLE channels ADD funding_tx_remote_sigs_received INTEGER DEFAULT 0;" msgid "ALTER TABLE channels ADD funding_tx_remote_sigs_received INTEGER DEFAULT 0;"
msgstr "" msgstr ""
#: wallet/db.c:682 #: wallet/db.c:687
msgid "CREATE INDEX forwarded_payments_out_htlc_id ON forwarded_payments (out_htlc_id);" msgid "CREATE INDEX forwarded_payments_out_htlc_id ON forwarded_payments (out_htlc_id);"
msgstr "" msgstr ""
#: wallet/db.c:684 #: wallet/db.c:689
msgid "UPDATE channel_htlcs SET malformed_onion = 0 WHERE malformed_onion IS NULL" msgid "UPDATE channel_htlcs SET malformed_onion = 0 WHERE malformed_onion IS NULL"
msgstr "" msgstr ""
#: wallet/db.c:686 #: wallet/db.c:691
msgid "CREATE INDEX forwarded_payments_state ON forwarded_payments (state)" msgid "CREATE INDEX forwarded_payments_state ON forwarded_payments (state)"
msgstr "" msgstr ""
#: wallet/db.c:687 #: wallet/db.c:692
msgid "CREATE TABLE channel_funding_inflights ( channel_id BIGSERIAL REFERENCES channels(id) ON DELETE CASCADE, funding_tx_id BLOB, funding_tx_outnum INTEGER, funding_feerate INTEGER, funding_satoshi BIGINT, our_funding_satoshi BIGINT, funding_psbt BLOB, last_tx BLOB, last_sig BLOB, funding_tx_remote_sigs_received INTEGER, PRIMARY KEY (channel_id, funding_tx_id));" msgid "CREATE TABLE channel_funding_inflights ( channel_id BIGSERIAL REFERENCES channels(id) ON DELETE CASCADE, funding_tx_id BLOB, funding_tx_outnum INTEGER, funding_feerate INTEGER, funding_satoshi BIGINT, our_funding_satoshi BIGINT, funding_psbt BLOB, last_tx BLOB, last_sig BLOB, funding_tx_remote_sigs_received INTEGER, PRIMARY KEY (channel_id, funding_tx_id));"
msgstr "" msgstr ""
#: wallet/db.c:701 #: wallet/db.c:706
msgid "ALTER TABLE channels ADD revocation_basepoint_local BLOB" msgid "ALTER TABLE channels ADD revocation_basepoint_local BLOB"
msgstr "" msgstr ""
#: wallet/db.c:702 #: wallet/db.c:707
msgid "ALTER TABLE channels ADD payment_basepoint_local BLOB" msgid "ALTER TABLE channels ADD payment_basepoint_local BLOB"
msgstr "" msgstr ""
#: wallet/db.c:703 #: wallet/db.c:708
msgid "ALTER TABLE channels ADD htlc_basepoint_local BLOB" msgid "ALTER TABLE channels ADD htlc_basepoint_local BLOB"
msgstr "" msgstr ""
#: wallet/db.c:704 #: wallet/db.c:709
msgid "ALTER TABLE channels ADD delayed_payment_basepoint_local BLOB" msgid "ALTER TABLE channels ADD delayed_payment_basepoint_local BLOB"
msgstr "" msgstr ""
#: wallet/db.c:705 #: wallet/db.c:710
msgid "ALTER TABLE channels ADD funding_pubkey_local BLOB" msgid "ALTER TABLE channels ADD funding_pubkey_local BLOB"
msgstr "" msgstr ""
#: wallet/db.c:932 #: wallet/db.c:938
msgid "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?" msgid "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?"
msgstr "" msgstr ""
#: wallet/db.c:1032 #: wallet/db.c:1038
msgid "SELECT version FROM version LIMIT 1" msgid "SELECT version FROM version LIMIT 1"
msgstr "" msgstr ""
#: wallet/db.c:1093 #: wallet/db.c:1100
msgid "UPDATE version SET version=?;" msgid "UPDATE version SET version=?;"
msgstr "" msgstr ""
#: wallet/db.c:1101 #: wallet/db.c:1108
msgid "INSERT INTO db_upgrades VALUES (?, ?);" msgid "INSERT INTO db_upgrades VALUES (?, ?);"
msgstr "" msgstr ""
#: wallet/db.c:1113 #: wallet/db.c:1120
msgid "SELECT intval FROM vars WHERE name = 'data_version'" msgid "SELECT intval FROM vars WHERE name = 'data_version'"
msgstr "" msgstr ""
#: wallet/db.c:1140 #: wallet/db.c:1147
msgid "SELECT intval FROM vars WHERE name= ? LIMIT 1" msgid "SELECT intval FROM vars WHERE name= ? LIMIT 1"
msgstr "" msgstr ""
#: wallet/db.c:1156 #: wallet/db.c:1163
msgid "UPDATE vars SET intval=? WHERE name=?;" msgid "UPDATE vars SET intval=? WHERE name=?;"
msgstr "" msgstr ""
#: wallet/db.c:1165 #: wallet/db.c:1172
msgid "INSERT INTO vars (name, intval) VALUES (?, ?);" msgid "INSERT INTO vars (name, intval) VALUES (?, ?);"
msgstr "" msgstr ""
#: wallet/db.c:1179 #: wallet/db.c:1186
msgid "UPDATE channels SET feerate_base = ?, feerate_ppm = ?;" msgid "UPDATE channels SET feerate_base = ?, feerate_ppm = ?;"
msgstr "" msgstr ""
#: wallet/db.c:1200 #: wallet/db.c:1207
msgid "UPDATE channels SET our_funding_satoshi = funding_satoshi WHERE funder = 0;" msgid "UPDATE channels SET our_funding_satoshi = funding_satoshi WHERE funder = 0;"
msgstr "" msgstr ""
#: wallet/db.c:1216 #: wallet/db.c:1223
msgid "SELECT type, keyindex, prev_out_tx, prev_out_index, channel_id, peer_id, commitment_point FROM outputs WHERE scriptpubkey IS NULL;" msgid "SELECT type, keyindex, prev_out_tx, prev_out_index, channel_id, peer_id, commitment_point FROM outputs WHERE scriptpubkey IS NULL;"
msgstr "" msgstr ""
#: wallet/db.c:1278 #: wallet/db.c:1285
msgid "UPDATE outputs SET scriptpubkey = ? WHERE prev_out_tx = ? AND prev_out_index = ?" msgid "UPDATE outputs SET scriptpubkey = ? WHERE prev_out_tx = ? AND prev_out_index = ?"
msgstr "" msgstr ""
#: wallet/db.c:1303 #: wallet/db.c:1310
msgid "SELECT id, funding_tx_id, funding_tx_outnum FROM channels;" msgid "SELECT id, funding_tx_id, funding_tx_outnum FROM channels;"
msgstr "" msgstr ""
#: wallet/db.c:1322 #: wallet/db.c:1329
msgid "UPDATE channels SET full_channel_id = ? WHERE id = ?;" msgid "UPDATE channels SET full_channel_id = ? WHERE id = ?;"
msgstr "" msgstr ""
#: wallet/db.c:1345 #: wallet/db.c:1350
msgid "SELECT channels.id, peers.node_id FROM channels JOIN peers ON (peers.id = channels.peer_id)"
msgstr ""
#: wallet/db.c:1383
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:1414
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;" 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 "" msgstr ""
#: wallet/db.c:1412 #: wallet/db.c:1481
msgid "UPDATE channels SET last_tx = ? WHERE id = ?;" msgid "UPDATE channels SET last_tx = ? WHERE id = ?;"
msgstr "" msgstr ""
@@ -1229,4 +1237,4 @@ msgstr ""
#: wallet/test/run-wallet.c:802 #: wallet/test/run-wallet.c:802
msgid "INSERT INTO channels (id) VALUES (1);" msgid "INSERT INTO channels (id) VALUES (1);"
msgstr "" msgstr ""
# SHA256STAMP:df721071a70a2be64bc0c4f15efb0128ab591f4d35628c08c987335810cf4c7f # SHA256STAMP:66ddf4612050d39dda1ae651a34cf5fe89390ef39c7648a3dca2f3a932a15eb4

View File

@@ -26,6 +26,9 @@ void derive_channel_id(struct channel_id *channel_id UNNEEDED,
/* Generated stub for fatal */ /* Generated stub for fatal */
void fatal(const char *fmt UNNEEDED, ...) void fatal(const char *fmt UNNEEDED, ...)
{ fprintf(stderr, "fatal called!\n"); abort(); } { fprintf(stderr, "fatal called!\n"); abort(); }
/* Generated stub for fromwire_hsmd_get_channel_basepoints_reply */
bool fromwire_hsmd_get_channel_basepoints_reply(const void *p UNNEEDED, struct basepoints *basepoints UNNEEDED, struct pubkey *funding_pubkey UNNEEDED)
{ fprintf(stderr, "fromwire_hsmd_get_channel_basepoints_reply called!\n"); abort(); }
/* Generated stub for fromwire_hsmd_get_output_scriptpubkey_reply */ /* Generated stub for fromwire_hsmd_get_output_scriptpubkey_reply */
bool fromwire_hsmd_get_output_scriptpubkey_reply(const tal_t *ctx UNNEEDED, const void *p UNNEEDED, u8 **script UNNEEDED) bool fromwire_hsmd_get_output_scriptpubkey_reply(const tal_t *ctx UNNEEDED, const void *p UNNEEDED, u8 **script UNNEEDED)
{ fprintf(stderr, "fromwire_hsmd_get_output_scriptpubkey_reply called!\n"); abort(); } { fprintf(stderr, "fromwire_hsmd_get_output_scriptpubkey_reply called!\n"); abort(); }
@@ -41,6 +44,9 @@ struct log *new_log(const tal_t *ctx UNNEEDED, struct log_book *record UNNEEDED,
const struct node_id *default_node_id UNNEEDED, const struct node_id *default_node_id UNNEEDED,
const char *fmt UNNEEDED, ...) const char *fmt UNNEEDED, ...)
{ fprintf(stderr, "new_log called!\n"); abort(); } { fprintf(stderr, "new_log called!\n"); abort(); }
/* Generated stub for towire_hsmd_get_channel_basepoints */
u8 *towire_hsmd_get_channel_basepoints(const tal_t *ctx UNNEEDED, const struct node_id *peerid UNNEEDED, u64 dbid UNNEEDED)
{ fprintf(stderr, "towire_hsmd_get_channel_basepoints called!\n"); abort(); }
/* Generated stub for towire_hsmd_get_output_scriptpubkey */ /* Generated stub for towire_hsmd_get_output_scriptpubkey */
u8 *towire_hsmd_get_output_scriptpubkey(const tal_t *ctx UNNEEDED, u64 channel_id UNNEEDED, const struct node_id *peer_id UNNEEDED, const struct pubkey *commitment_point UNNEEDED) u8 *towire_hsmd_get_output_scriptpubkey(const tal_t *ctx UNNEEDED, u64 channel_id UNNEEDED, const struct node_id *peer_id UNNEEDED, const struct pubkey *commitment_point UNNEEDED)
{ fprintf(stderr, "towire_hsmd_get_output_scriptpubkey called!\n"); abort(); } { fprintf(stderr, "towire_hsmd_get_output_scriptpubkey called!\n"); abort(); }