mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 15:14:23 +01:00
invoice: add an optional local_offer_id.
This allows us to mark an offer used when an invoice derived from it is paid, and importantly, avoid any other invoices for the offer being paid. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
committed by
Christian Decker
parent
381b0f456c
commit
963f6b5d67
@@ -71,6 +71,8 @@ static void json_add_invoice(struct json_stream *response,
|
|||||||
json_add_string(response, "description", inv->description);
|
json_add_string(response, "description", inv->description);
|
||||||
|
|
||||||
json_add_u64(response, "expires_at", inv->expiry_time);
|
json_add_u64(response, "expires_at", inv->expiry_time);
|
||||||
|
if (inv->local_offer_id)
|
||||||
|
json_add_sha256(response, "local_offer_id", inv->local_offer_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct command_result *tell_waiter(struct command *cmd,
|
static struct command_result *tell_waiter(struct command *cmd,
|
||||||
@@ -698,7 +700,8 @@ static void gossipd_incoming_channels_reply(struct subd *gossipd,
|
|||||||
info->b11->description,
|
info->b11->description,
|
||||||
info->b11->features,
|
info->b11->features,
|
||||||
&info->payment_preimage,
|
&info->payment_preimage,
|
||||||
&info->b11->payment_hash)) {
|
&info->b11->payment_hash,
|
||||||
|
NULL)) {
|
||||||
was_pending(command_fail(info->cmd, INVOICE_LABEL_ALREADY_EXISTS,
|
was_pending(command_fail(info->cmd, INVOICE_LABEL_ALREADY_EXISTS,
|
||||||
"Duplicate label '%s'",
|
"Duplicate label '%s'",
|
||||||
info->label->s));
|
info->label->s));
|
||||||
|
|||||||
@@ -609,7 +609,8 @@ bool wallet_invoice_create(struct wallet *wallet UNNEEDED,
|
|||||||
const char *description UNNEEDED,
|
const char *description UNNEEDED,
|
||||||
const u8 *features UNNEEDED,
|
const u8 *features UNNEEDED,
|
||||||
const struct preimage *r UNNEEDED,
|
const struct preimage *r UNNEEDED,
|
||||||
const struct sha256 *rhash UNNEEDED)
|
const struct sha256 *rhash UNNEEDED,
|
||||||
|
const struct sha256 *local_offer_id UNNEEDED)
|
||||||
{ fprintf(stderr, "wallet_invoice_create called!\n"); abort(); }
|
{ fprintf(stderr, "wallet_invoice_create called!\n"); abort(); }
|
||||||
/* Generated stub for wallet_invoice_delete */
|
/* Generated stub for wallet_invoice_delete */
|
||||||
bool wallet_invoice_delete(struct wallet *wallet UNNEEDED,
|
bool wallet_invoice_delete(struct wallet *wallet UNNEEDED,
|
||||||
|
|||||||
@@ -664,6 +664,8 @@ static struct migration dbmigrations[] = {
|
|||||||
", status INTEGER"
|
", status INTEGER"
|
||||||
", PRIMARY KEY (offer_id)"
|
", PRIMARY KEY (offer_id)"
|
||||||
");"), NULL},
|
");"), NULL},
|
||||||
|
/* A reference into our own offers table, if it was made from one */
|
||||||
|
{SQL("ALTER TABLE invoices ADD COLUMN local_offer_id BLOB DEFAULT NULL;"), NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Leak tracking. */
|
/* Leak tracking. */
|
||||||
|
|||||||
30
wallet/db_postgres_sqlgen.c
generated
30
wallet/db_postgres_sqlgen.c
generated
@@ -854,6 +854,12 @@ struct db_query db_postgres_queries[] = {
|
|||||||
.placeholders = 0,
|
.placeholders = 0,
|
||||||
.readonly = false,
|
.readonly = false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.name = "ALTER TABLE invoices ADD COLUMN local_offer_id BLOB DEFAULT NULL;",
|
||||||
|
.query = "ALTER TABLE invoices ADD COLUMN local_offer_id BYTEA DEFAULT NULL;",
|
||||||
|
.placeholders = 0,
|
||||||
|
.readonly = false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?",
|
.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",
|
.query = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = $1",
|
||||||
@@ -969,9 +975,9 @@ struct db_query db_postgres_queries[] = {
|
|||||||
.readonly = true,
|
.readonly = true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features) VALUES ( ?, ?, ? , ?, ?, ? , NULL, NULL , NULL, ?, ?, ?);",
|
.name = "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features, local_offer_id) VALUES ( ?, ?, ? , ?, ?, ? , NULL, NULL , NULL, ?, ?, ?, ?);",
|
||||||
.query = "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features) VALUES ( $1, $2, $3 , $4, $5, $6 , NULL, NULL , NULL, $7, $8, $9);",
|
.query = "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features, local_offer_id) VALUES ( $1, $2, $3 , $4, $5, $6 , NULL, NULL , NULL, $7, $8, $9, $10);",
|
||||||
.placeholders = 9,
|
.placeholders = 10,
|
||||||
.readonly = false,
|
.readonly = false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1016,6 +1022,12 @@ struct db_query db_postgres_queries[] = {
|
|||||||
.placeholders = 1,
|
.placeholders = 1,
|
||||||
.readonly = true,
|
.readonly = true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.name = "SELECT local_offer_id FROM invoices WHERE id = ?;",
|
||||||
|
.query = "SELECT local_offer_id FROM invoices WHERE id = $1;",
|
||||||
|
.placeholders = 1,
|
||||||
|
.readonly = true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "UPDATE invoices SET state=? , pay_index=? , msatoshi_received=? , paid_timestamp=? WHERE id=?;",
|
.name = "UPDATE invoices SET state=? , pay_index=? , msatoshi_received=? , paid_timestamp=? WHERE id=?;",
|
||||||
.query = "UPDATE invoices SET state=$1 , pay_index=$2 , msatoshi_received=$3 , paid_timestamp=$4 WHERE id=$5;",
|
.query = "UPDATE invoices SET state=$1 , pay_index=$2 , msatoshi_received=$3 , paid_timestamp=$4 WHERE id=$5;",
|
||||||
@@ -1029,8 +1041,8 @@ struct db_query db_postgres_queries[] = {
|
|||||||
.readonly = true,
|
.readonly = true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features FROM invoices WHERE id = ?;",
|
.name = "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features, local_offer_id FROM invoices WHERE id = ?;",
|
||||||
.query = "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features FROM invoices WHERE id = $1;",
|
.query = "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features, local_offer_id FROM invoices WHERE id = $1;",
|
||||||
.placeholders = 1,
|
.placeholders = 1,
|
||||||
.readonly = true,
|
.readonly = true,
|
||||||
},
|
},
|
||||||
@@ -1701,8 +1713,8 @@ struct db_query db_postgres_queries[] = {
|
|||||||
.readonly = false,
|
.readonly = false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "UPDATE invoices SET state=? WHERE state=? AND offer_id = ?;",
|
.name = "UPDATE invoices SET state=? WHERE state=? AND local_offer_id = ?;",
|
||||||
.query = "UPDATE invoices SET state=$1 WHERE state=$2 AND offer_id = $3;",
|
.query = "UPDATE invoices SET state=$1 WHERE state=$2 AND local_offer_id = $3;",
|
||||||
.placeholders = 3,
|
.placeholders = 3,
|
||||||
.readonly = false,
|
.readonly = false,
|
||||||
},
|
},
|
||||||
@@ -1732,10 +1744,10 @@ struct db_query db_postgres_queries[] = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DB_POSTGRES_QUERY_COUNT 287
|
#define DB_POSTGRES_QUERY_COUNT 289
|
||||||
|
|
||||||
#endif /* HAVE_POSTGRES */
|
#endif /* HAVE_POSTGRES */
|
||||||
|
|
||||||
#endif /* LIGHTNINGD_WALLET_GEN_DB_POSTGRES */
|
#endif /* LIGHTNINGD_WALLET_GEN_DB_POSTGRES */
|
||||||
|
|
||||||
// SHA256STAMP:94af743741cd2a2d8725371af12e130a692334a118b52386fb901fadfe25d4cd
|
// SHA256STAMP:83a4b63d1c5566db35ab00e9da60f6c98c04f8bd30800e51cce294dfcb49c9ec
|
||||||
|
|||||||
30
wallet/db_sqlite3_sqlgen.c
generated
30
wallet/db_sqlite3_sqlgen.c
generated
@@ -854,6 +854,12 @@ struct db_query db_sqlite3_queries[] = {
|
|||||||
.placeholders = 0,
|
.placeholders = 0,
|
||||||
.readonly = false,
|
.readonly = false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.name = "ALTER TABLE invoices ADD COLUMN local_offer_id BLOB DEFAULT NULL;",
|
||||||
|
.query = "ALTER TABLE invoices ADD COLUMN local_offer_id BLOB DEFAULT NULL;",
|
||||||
|
.placeholders = 0,
|
||||||
|
.readonly = false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?",
|
.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 = ?",
|
.query = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?",
|
||||||
@@ -969,9 +975,9 @@ struct db_query db_sqlite3_queries[] = {
|
|||||||
.readonly = true,
|
.readonly = true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features) VALUES ( ?, ?, ? , ?, ?, ? , NULL, NULL , NULL, ?, ?, ?);",
|
.name = "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features, local_offer_id) VALUES ( ?, ?, ? , ?, ?, ? , NULL, NULL , NULL, ?, ?, ?, ?);",
|
||||||
.query = "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features) VALUES ( ?, ?, ? , ?, ?, ? , NULL, NULL , NULL, ?, ?, ?);",
|
.query = "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features, local_offer_id) VALUES ( ?, ?, ? , ?, ?, ? , NULL, NULL , NULL, ?, ?, ?, ?);",
|
||||||
.placeholders = 9,
|
.placeholders = 10,
|
||||||
.readonly = false,
|
.readonly = false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1016,6 +1022,12 @@ struct db_query db_sqlite3_queries[] = {
|
|||||||
.placeholders = 1,
|
.placeholders = 1,
|
||||||
.readonly = true,
|
.readonly = true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.name = "SELECT local_offer_id FROM invoices WHERE id = ?;",
|
||||||
|
.query = "SELECT local_offer_id FROM invoices WHERE id = ?;",
|
||||||
|
.placeholders = 1,
|
||||||
|
.readonly = true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.name = "UPDATE invoices SET state=? , pay_index=? , msatoshi_received=? , paid_timestamp=? WHERE id=?;",
|
.name = "UPDATE invoices SET state=? , pay_index=? , msatoshi_received=? , paid_timestamp=? WHERE id=?;",
|
||||||
.query = "UPDATE invoices SET state=? , pay_index=? , msatoshi_received=? , paid_timestamp=? WHERE id=?;",
|
.query = "UPDATE invoices SET state=? , pay_index=? , msatoshi_received=? , paid_timestamp=? WHERE id=?;",
|
||||||
@@ -1029,8 +1041,8 @@ struct db_query db_sqlite3_queries[] = {
|
|||||||
.readonly = true,
|
.readonly = true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features FROM invoices WHERE id = ?;",
|
.name = "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features, local_offer_id FROM invoices WHERE id = ?;",
|
||||||
.query = "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features FROM invoices WHERE id = ?;",
|
.query = "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features, local_offer_id FROM invoices WHERE id = ?;",
|
||||||
.placeholders = 1,
|
.placeholders = 1,
|
||||||
.readonly = true,
|
.readonly = true,
|
||||||
},
|
},
|
||||||
@@ -1701,8 +1713,8 @@ struct db_query db_sqlite3_queries[] = {
|
|||||||
.readonly = false,
|
.readonly = false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "UPDATE invoices SET state=? WHERE state=? AND offer_id = ?;",
|
.name = "UPDATE invoices SET state=? WHERE state=? AND local_offer_id = ?;",
|
||||||
.query = "UPDATE invoices SET state=? WHERE state=? AND offer_id = ?;",
|
.query = "UPDATE invoices SET state=? WHERE state=? AND local_offer_id = ?;",
|
||||||
.placeholders = 3,
|
.placeholders = 3,
|
||||||
.readonly = false,
|
.readonly = false,
|
||||||
},
|
},
|
||||||
@@ -1732,10 +1744,10 @@ struct db_query db_sqlite3_queries[] = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DB_SQLITE3_QUERY_COUNT 287
|
#define DB_SQLITE3_QUERY_COUNT 289
|
||||||
|
|
||||||
#endif /* HAVE_SQLITE3 */
|
#endif /* HAVE_SQLITE3 */
|
||||||
|
|
||||||
#endif /* LIGHTNINGD_WALLET_GEN_DB_SQLITE3 */
|
#endif /* LIGHTNINGD_WALLET_GEN_DB_SQLITE3 */
|
||||||
|
|
||||||
// SHA256STAMP:94af743741cd2a2d8725371af12e130a692334a118b52386fb901fadfe25d4cd
|
// SHA256STAMP:83a4b63d1c5566db35ab00e9da60f6c98c04f8bd30800e51cce294dfcb49c9ec
|
||||||
|
|||||||
@@ -119,6 +119,12 @@ static struct invoice_details *wallet_stmt2invoice_details(const tal_t *ctx,
|
|||||||
dtl->features = tal_dup_arr(dtl, u8,
|
dtl->features = tal_dup_arr(dtl, u8,
|
||||||
db_column_blob(stmt, 11),
|
db_column_blob(stmt, 11),
|
||||||
db_column_bytes(stmt, 11), 0);
|
db_column_bytes(stmt, 11), 0);
|
||||||
|
if (!db_column_is_null(stmt, 12)) {
|
||||||
|
dtl->local_offer_id = tal(dtl, struct sha256);
|
||||||
|
db_column_sha256(stmt, 12, dtl->local_offer_id);
|
||||||
|
} else
|
||||||
|
dtl->local_offer_id = NULL;
|
||||||
|
|
||||||
return dtl;
|
return dtl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,7 +264,8 @@ bool invoices_create(struct invoices *invoices,
|
|||||||
const char *description,
|
const char *description,
|
||||||
const u8 *features,
|
const u8 *features,
|
||||||
const struct preimage *r,
|
const struct preimage *r,
|
||||||
const struct sha256 *rhash)
|
const struct sha256 *rhash,
|
||||||
|
const struct sha256 *local_offer_id)
|
||||||
{
|
{
|
||||||
struct db_stmt *stmt;
|
struct db_stmt *stmt;
|
||||||
struct invoice dummy;
|
struct invoice dummy;
|
||||||
@@ -283,11 +290,11 @@ bool invoices_create(struct invoices *invoices,
|
|||||||
" ( payment_hash, payment_key, state"
|
" ( payment_hash, payment_key, state"
|
||||||
" , msatoshi, label, expiry_time"
|
" , msatoshi, label, expiry_time"
|
||||||
" , pay_index, msatoshi_received"
|
" , pay_index, msatoshi_received"
|
||||||
" , paid_timestamp, bolt11, description, features)"
|
" , paid_timestamp, bolt11, description, features, local_offer_id)"
|
||||||
" VALUES ( ?, ?, ?"
|
" VALUES ( ?, ?, ?"
|
||||||
" , ?, ?, ?"
|
" , ?, ?, ?"
|
||||||
" , NULL, NULL"
|
" , NULL, NULL"
|
||||||
" , NULL, ?, ?, ?);"));
|
" , NULL, ?, ?, ?, ?);"));
|
||||||
|
|
||||||
db_bind_sha256(stmt, 0, rhash);
|
db_bind_sha256(stmt, 0, rhash);
|
||||||
db_bind_preimage(stmt, 1, r);
|
db_bind_preimage(stmt, 1, r);
|
||||||
@@ -301,6 +308,10 @@ bool invoices_create(struct invoices *invoices,
|
|||||||
db_bind_text(stmt, 6, b11enc);
|
db_bind_text(stmt, 6, b11enc);
|
||||||
db_bind_text(stmt, 7, description);
|
db_bind_text(stmt, 7, description);
|
||||||
db_bind_talarr(stmt, 8, features);
|
db_bind_talarr(stmt, 8, features);
|
||||||
|
if (local_offer_id)
|
||||||
|
db_bind_sha256(stmt, 9, local_offer_id);
|
||||||
|
else
|
||||||
|
db_bind_null(stmt, 9);
|
||||||
|
|
||||||
db_exec_prepared_v2(stmt);
|
db_exec_prepared_v2(stmt);
|
||||||
|
|
||||||
@@ -496,6 +507,28 @@ static enum invoice_status invoice_get_status(struct invoices *invoices, struct
|
|||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If there's an associated offer, mark it used. */
|
||||||
|
static void maybe_mark_offer_used(struct db *db, struct invoice invoice)
|
||||||
|
{
|
||||||
|
struct db_stmt *stmt;
|
||||||
|
struct sha256 local_offer_id;
|
||||||
|
|
||||||
|
stmt = db_prepare_v2(
|
||||||
|
db, SQL("SELECT local_offer_id FROM invoices WHERE id = ?;"));
|
||||||
|
db_bind_u64(stmt, 0, invoice.id);
|
||||||
|
db_query_prepared(stmt);
|
||||||
|
|
||||||
|
db_step(stmt);
|
||||||
|
if (db_column_is_null(stmt, 0)) {
|
||||||
|
tal_free(stmt);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
db_column_sha256(stmt, 0, &local_offer_id);
|
||||||
|
tal_free(stmt);
|
||||||
|
|
||||||
|
wallet_offer_mark_used(db, &local_offer_id);
|
||||||
|
}
|
||||||
|
|
||||||
bool invoices_resolve(struct invoices *invoices,
|
bool invoices_resolve(struct invoices *invoices,
|
||||||
struct invoice invoice,
|
struct invoice invoice,
|
||||||
struct amount_msat received)
|
struct amount_msat received)
|
||||||
@@ -526,6 +559,8 @@ bool invoices_resolve(struct invoices *invoices,
|
|||||||
db_bind_u64(stmt, 4, invoice.id);
|
db_bind_u64(stmt, 4, invoice.id);
|
||||||
db_exec_prepared_v2(take(stmt));
|
db_exec_prepared_v2(take(stmt));
|
||||||
|
|
||||||
|
maybe_mark_offer_used(invoices->db, invoice);
|
||||||
|
|
||||||
/* Tell all the waiters about the paid invoice. */
|
/* Tell all the waiters about the paid invoice. */
|
||||||
trigger_invoice_waiter_resolve(invoices, invoice.id, &invoice);
|
trigger_invoice_waiter_resolve(invoices, invoice.id, &invoice);
|
||||||
return true;
|
return true;
|
||||||
@@ -632,6 +667,7 @@ const struct invoice_details *invoices_get_details(const tal_t *ctx,
|
|||||||
", bolt11"
|
", bolt11"
|
||||||
", description"
|
", description"
|
||||||
", features"
|
", features"
|
||||||
|
", local_offer_id"
|
||||||
" FROM invoices"
|
" FROM invoices"
|
||||||
" WHERE id = ?;"));
|
" WHERE id = ?;"));
|
||||||
db_bind_u64(stmt, 0, invoice.id);
|
db_bind_u64(stmt, 0, invoice.id);
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ bool invoices_create(struct invoices *invoices,
|
|||||||
const char *description,
|
const char *description,
|
||||||
const u8 *features,
|
const u8 *features,
|
||||||
const struct preimage *r,
|
const struct preimage *r,
|
||||||
const struct sha256 *rhash);
|
const struct sha256 *rhash,
|
||||||
|
const struct sha256 *local_offer_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* invoices_find_by_label - Search for an invoice by label
|
* invoices_find_by_label - Search for an invoice by label
|
||||||
|
|||||||
192
wallet/statements_gettextgen.po
generated
192
wallet/statements_gettextgen.po
generated
@@ -562,124 +562,132 @@ msgstr ""
|
|||||||
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:893
|
#: wallet/db.c:668
|
||||||
|
msgid "ALTER TABLE invoices ADD COLUMN local_offer_id BLOB DEFAULT NULL;"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: wallet/db.c:895
|
||||||
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:993
|
#: wallet/db.c:995
|
||||||
msgid "SELECT version FROM version LIMIT 1"
|
msgid "SELECT version FROM version LIMIT 1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/db.c:1051
|
#: wallet/db.c:1053
|
||||||
msgid "UPDATE version SET version=?;"
|
msgid "UPDATE version SET version=?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/db.c:1059
|
#: wallet/db.c:1061
|
||||||
msgid "INSERT INTO db_upgrades VALUES (?, ?);"
|
msgid "INSERT INTO db_upgrades VALUES (?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/db.c:1071
|
#: wallet/db.c:1073
|
||||||
msgid "SELECT intval FROM vars WHERE name = 'data_version'"
|
msgid "SELECT intval FROM vars WHERE name = 'data_version'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/db.c:1098
|
#: wallet/db.c:1100
|
||||||
msgid "SELECT intval FROM vars WHERE name= ? LIMIT 1"
|
msgid "SELECT intval FROM vars WHERE name= ? LIMIT 1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/db.c:1114
|
#: wallet/db.c:1116
|
||||||
msgid "UPDATE vars SET intval=? WHERE name=?;"
|
msgid "UPDATE vars SET intval=? WHERE name=?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/db.c:1123
|
#: wallet/db.c:1125
|
||||||
msgid "INSERT INTO vars (name, intval) VALUES (?, ?);"
|
msgid "INSERT INTO vars (name, intval) VALUES (?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/db.c:1137
|
#: wallet/db.c:1139
|
||||||
msgid "UPDATE channels SET feerate_base = ?, feerate_ppm = ?;"
|
msgid "UPDATE channels SET feerate_base = ?, feerate_ppm = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/db.c:1158
|
#: wallet/db.c:1160
|
||||||
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:1174
|
#: wallet/db.c:1176
|
||||||
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:1236
|
#: wallet/db.c:1238
|
||||||
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:1261
|
#: wallet/db.c:1263
|
||||||
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:1280
|
#: wallet/db.c:1282
|
||||||
msgid "UPDATE channels SET full_channel_id = ? WHERE id = ?;"
|
msgid "UPDATE channels SET full_channel_id = ? WHERE id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/db.c:1303
|
#: wallet/db.c:1305
|
||||||
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:1370
|
#: wallet/db.c:1372
|
||||||
msgid "UPDATE channels SET last_tx = ? WHERE id = ?;"
|
msgid "UPDATE channels SET last_tx = ? WHERE id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:129
|
#: wallet/invoices.c:135
|
||||||
msgid "UPDATE invoices SET state = ? WHERE state = ? AND expiry_time <= ?;"
|
msgid "UPDATE invoices SET state = ? WHERE state = ? AND expiry_time <= ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:177
|
#: wallet/invoices.c:183
|
||||||
msgid "SELECT id FROM invoices WHERE state = ? AND expiry_time <= ?"
|
msgid "SELECT id FROM invoices WHERE state = ? AND expiry_time <= ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:216
|
#: wallet/invoices.c:222
|
||||||
msgid "SELECT MIN(expiry_time) FROM invoices WHERE state = ?;"
|
msgid "SELECT MIN(expiry_time) FROM invoices WHERE state = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:282
|
#: wallet/invoices.c:289
|
||||||
msgid "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features) VALUES ( ?, ?, ? , ?, ?, ? , NULL, NULL , NULL, ?, ?, ?);"
|
msgid "INSERT INTO invoices ( payment_hash, payment_key, state , msatoshi, label, expiry_time , pay_index, msatoshi_received , paid_timestamp, bolt11, description, features, local_offer_id) VALUES ( ?, ?, ? , ?, ?, ? , NULL, NULL , NULL, ?, ?, ?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:330
|
#: wallet/invoices.c:341
|
||||||
msgid "SELECT id FROM invoices WHERE label = ?;"
|
msgid "SELECT id FROM invoices WHERE label = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:352
|
#: wallet/invoices.c:363
|
||||||
msgid "SELECT id FROM invoices WHERE payment_hash = ?;"
|
msgid "SELECT id FROM invoices WHERE payment_hash = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:373
|
#: wallet/invoices.c:384
|
||||||
msgid "SELECT id FROM invoices WHERE payment_hash = ? AND state = ?;"
|
msgid "SELECT id FROM invoices WHERE payment_hash = ? AND state = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:397
|
#: wallet/invoices.c:408
|
||||||
msgid "DELETE FROM invoices WHERE id=?;"
|
msgid "DELETE FROM invoices WHERE id=?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:417
|
#: wallet/invoices.c:428
|
||||||
msgid "DELETE FROM invoices WHERE state = ? AND expiry_time <= ?;"
|
msgid "DELETE FROM invoices WHERE state = ? AND expiry_time <= ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:431
|
#: wallet/invoices.c:442
|
||||||
msgid "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features FROM invoices ORDER BY id;"
|
msgid "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features FROM invoices ORDER BY id;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:488
|
#: wallet/invoices.c:499
|
||||||
msgid "SELECT state FROM invoices WHERE id = ?;"
|
msgid "SELECT state FROM invoices WHERE id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:516
|
#: wallet/invoices.c:517
|
||||||
|
msgid "SELECT local_offer_id FROM invoices WHERE id = ?;"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: wallet/invoices.c:549
|
||||||
msgid "UPDATE invoices SET state=? , pay_index=? , msatoshi_received=? , paid_timestamp=? WHERE id=?;"
|
msgid "UPDATE invoices SET state=? , pay_index=? , msatoshi_received=? , paid_timestamp=? WHERE id=?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:573
|
#: wallet/invoices.c:608
|
||||||
msgid "SELECT id FROM invoices WHERE pay_index IS NOT NULL AND pay_index > ? ORDER BY pay_index ASC LIMIT 1;"
|
msgid "SELECT id FROM invoices WHERE pay_index IS NOT NULL AND pay_index > ? ORDER BY pay_index ASC LIMIT 1;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/invoices.c:622
|
#: wallet/invoices.c:657
|
||||||
msgid "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features FROM invoices WHERE id = ?;"
|
msgid "SELECT state, payment_key, payment_hash, label, msatoshi, expiry_time, pay_index, msatoshi_received, paid_timestamp, bolt11, description, features, local_offer_id FROM invoices WHERE id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:75 wallet/wallet.c:553
|
#: wallet/wallet.c:75 wallet/wallet.c:553
|
||||||
@@ -906,231 +914,231 @@ msgstr ""
|
|||||||
msgid "SELECT id, channel_htlc_id, msatoshi, cltv_expiry, hstate, payment_hash, payment_key, routing_onion, failuremsg, malformed_onion, origin_htlc, shared_secret, received_time, partid, localfailmsg FROM channel_htlcs WHERE direction = ? AND channel_id = ? AND hstate != ?"
|
msgid "SELECT id, channel_htlc_id, msatoshi, cltv_expiry, hstate, payment_hash, payment_key, routing_onion, failuremsg, malformed_onion, origin_htlc, shared_secret, received_time, partid, localfailmsg FROM channel_htlcs WHERE direction = ? AND channel_id = ? AND hstate != ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2378
|
#: wallet/wallet.c:2379
|
||||||
msgid "SELECT channel_id, direction, cltv_expiry, channel_htlc_id, payment_hash FROM channel_htlcs WHERE channel_id = ?;"
|
msgid "SELECT channel_id, direction, cltv_expiry, channel_htlc_id, payment_hash FROM channel_htlcs WHERE channel_id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2412
|
#: wallet/wallet.c:2413
|
||||||
msgid "DELETE FROM channel_htlcs WHERE direction = ? AND origin_htlc = ? AND payment_hash = ? AND partid = ?;"
|
msgid "DELETE FROM channel_htlcs WHERE direction = ? AND origin_htlc = ? AND payment_hash = ? AND partid = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2465
|
#: wallet/wallet.c:2466
|
||||||
msgid "SELECT status FROM payments WHERE payment_hash=? AND partid = ?;"
|
msgid "SELECT status FROM payments WHERE payment_hash=? AND partid = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2483
|
#: wallet/wallet.c:2484
|
||||||
msgid "INSERT INTO payments ( status, payment_hash, destination, msatoshi, timestamp, path_secrets, route_nodes, route_channels, msatoshi_sent, description, bolt11, total_msat, partid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"
|
msgid "INSERT INTO payments ( status, payment_hash, destination, msatoshi, timestamp, path_secrets, route_nodes, route_channels, msatoshi_sent, description, bolt11, total_msat, partid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2566
|
#: wallet/wallet.c:2567
|
||||||
msgid "DELETE FROM payments WHERE payment_hash = ? AND partid = ?"
|
msgid "DELETE FROM payments WHERE payment_hash = ? AND partid = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2580
|
#: wallet/wallet.c:2581
|
||||||
msgid "DELETE FROM payments WHERE payment_hash = ?"
|
msgid "DELETE FROM payments WHERE payment_hash = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2675
|
#: wallet/wallet.c:2676
|
||||||
msgid "SELECT id, status, destination, msatoshi, payment_hash, timestamp, payment_preimage, path_secrets, route_nodes, route_channels, msatoshi_sent, description, bolt11, failonionreply, total_msat, partid FROM payments WHERE payment_hash = ? AND partid = ?"
|
msgid "SELECT id, status, destination, msatoshi, payment_hash, timestamp, payment_preimage, path_secrets, route_nodes, route_channels, msatoshi_sent, description, bolt11, failonionreply, total_msat, partid FROM payments WHERE payment_hash = ? AND partid = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2724
|
#: wallet/wallet.c:2725
|
||||||
msgid "UPDATE payments SET status=? WHERE payment_hash=? AND partid=?"
|
msgid "UPDATE payments SET status=? WHERE payment_hash=? AND partid=?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2734
|
#: wallet/wallet.c:2735
|
||||||
msgid "UPDATE payments SET payment_preimage=? WHERE payment_hash=? AND partid=?"
|
msgid "UPDATE payments SET payment_preimage=? WHERE payment_hash=? AND partid=?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2744
|
#: wallet/wallet.c:2745
|
||||||
msgid "UPDATE payments SET path_secrets = NULL , route_nodes = NULL , route_channels = NULL WHERE payment_hash = ? AND partid = ?;"
|
msgid "UPDATE payments SET path_secrets = NULL , route_nodes = NULL , route_channels = NULL WHERE payment_hash = ? AND partid = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2776
|
#: wallet/wallet.c:2777
|
||||||
msgid "SELECT failonionreply, faildestperm, failindex, failcode, failnode, failchannel, failupdate, faildetail, faildirection FROM payments WHERE payment_hash=? AND partid=?;"
|
msgid "SELECT failonionreply, faildestperm, failindex, failcode, failnode, failchannel, failupdate, faildetail, faildirection FROM payments WHERE payment_hash=? AND partid=?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2843
|
#: wallet/wallet.c:2844
|
||||||
msgid "UPDATE payments SET failonionreply=? , faildestperm=? , failindex=? , failcode=? , failnode=? , failchannel=? , failupdate=? , faildetail=? , faildirection=? WHERE payment_hash=? AND partid=?;"
|
msgid "UPDATE payments SET failonionreply=? , faildestperm=? , failindex=? , failcode=? , failnode=? , failchannel=? , failupdate=? , faildetail=? , faildirection=? WHERE payment_hash=? AND partid=?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2902
|
#: wallet/wallet.c:2903
|
||||||
msgid "SELECT id, status, destination, msatoshi, payment_hash, timestamp, payment_preimage, path_secrets, route_nodes, route_channels, msatoshi_sent, description, bolt11, failonionreply, total_msat, partid FROM payments WHERE payment_hash = ?;"
|
msgid "SELECT id, status, destination, msatoshi, payment_hash, timestamp, payment_preimage, path_secrets, route_nodes, route_channels, msatoshi_sent, description, bolt11, failonionreply, total_msat, partid FROM payments WHERE payment_hash = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2923
|
#: wallet/wallet.c:2924
|
||||||
msgid "SELECT id, status, destination, msatoshi, payment_hash, timestamp, payment_preimage, path_secrets, route_nodes, route_channels, msatoshi_sent, description, bolt11, failonionreply, total_msat, partid FROM payments ORDER BY id;"
|
msgid "SELECT id, status, destination, msatoshi, payment_hash, timestamp, payment_preimage, path_secrets, route_nodes, route_channels, msatoshi_sent, description, bolt11, failonionreply, total_msat, partid FROM payments ORDER BY id;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2967
|
#: wallet/wallet.c:2968
|
||||||
msgid "DELETE FROM htlc_sigs WHERE channelid = ?"
|
msgid "DELETE FROM htlc_sigs WHERE channelid = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2974
|
#: wallet/wallet.c:2975
|
||||||
msgid "INSERT INTO htlc_sigs (channelid, signature) VALUES (?, ?)"
|
msgid "INSERT INTO htlc_sigs (channelid, signature) VALUES (?, ?)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:2986
|
#: wallet/wallet.c:2987
|
||||||
msgid "SELECT blobval FROM vars WHERE name='genesis_hash'"
|
msgid "SELECT blobval FROM vars WHERE name='genesis_hash'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3010
|
#: wallet/wallet.c:3011
|
||||||
msgid "INSERT INTO vars (name, blobval) VALUES ('genesis_hash', ?);"
|
msgid "INSERT INTO vars (name, blobval) VALUES ('genesis_hash', ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3026
|
#: wallet/wallet.c:3027
|
||||||
msgid "DELETE FROM utxoset WHERE spendheight < ?"
|
msgid "DELETE FROM utxoset WHERE spendheight < ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3034 wallet/wallet.c:3144
|
#: wallet/wallet.c:3035 wallet/wallet.c:3145
|
||||||
msgid "INSERT INTO blocks (height, hash, prev_hash) VALUES (?, ?, ?);"
|
msgid "INSERT INTO blocks (height, hash, prev_hash) VALUES (?, ?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3053
|
#: wallet/wallet.c:3054
|
||||||
msgid "DELETE FROM blocks WHERE hash = ?"
|
msgid "DELETE FROM blocks WHERE hash = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3059
|
#: wallet/wallet.c:3060
|
||||||
msgid "SELECT * FROM blocks WHERE height >= ?;"
|
msgid "SELECT * FROM blocks WHERE height >= ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3068
|
#: wallet/wallet.c:3069
|
||||||
msgid "DELETE FROM blocks WHERE height > ?"
|
msgid "DELETE FROM blocks WHERE height > ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3080
|
#: wallet/wallet.c:3081
|
||||||
msgid "UPDATE outputs SET spend_height = ?, status = ? WHERE prev_out_tx = ? AND prev_out_index = ?"
|
msgid "UPDATE outputs SET spend_height = ?, status = ? WHERE prev_out_tx = ? AND prev_out_index = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3097
|
#: wallet/wallet.c:3098
|
||||||
msgid "UPDATE utxoset SET spendheight = ? WHERE txid = ? AND outnum = ?"
|
msgid "UPDATE utxoset SET spendheight = ? WHERE txid = ? AND outnum = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3119 wallet/wallet.c:3155
|
#: wallet/wallet.c:3120 wallet/wallet.c:3156
|
||||||
msgid "INSERT INTO utxoset ( txid, outnum, blockheight, spendheight, txindex, scriptpubkey, satoshis) VALUES(?, ?, ?, ?, ?, ?, ?);"
|
msgid "INSERT INTO utxoset ( txid, outnum, blockheight, spendheight, txindex, scriptpubkey, satoshis) VALUES(?, ?, ?, ?, ?, ?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3179
|
#: wallet/wallet.c:3180
|
||||||
msgid "SELECT height FROM blocks WHERE height = ?"
|
msgid "SELECT height FROM blocks WHERE height = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3192
|
#: wallet/wallet.c:3193
|
||||||
msgid "SELECT txid, spendheight, scriptpubkey, satoshis FROM utxoset WHERE blockheight = ? AND txindex = ? AND outnum = ? AND spendheight IS NULL"
|
msgid "SELECT txid, spendheight, scriptpubkey, satoshis FROM utxoset WHERE blockheight = ? AND txindex = ? AND outnum = ? AND spendheight IS NULL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3234
|
#: wallet/wallet.c:3235
|
||||||
msgid "SELECT blockheight, txindex, outnum FROM utxoset WHERE spendheight = ?"
|
msgid "SELECT blockheight, txindex, outnum FROM utxoset WHERE spendheight = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3265 wallet/wallet.c:3425
|
#: wallet/wallet.c:3266 wallet/wallet.c:3426
|
||||||
msgid "SELECT blockheight FROM transactions WHERE id=?"
|
msgid "SELECT blockheight FROM transactions WHERE id=?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3275
|
#: wallet/wallet.c:3276
|
||||||
msgid "INSERT INTO transactions ( id, blockheight, txindex, rawtx) VALUES (?, ?, ?, ?);"
|
msgid "INSERT INTO transactions ( id, blockheight, txindex, rawtx) VALUES (?, ?, ?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3296
|
#: wallet/wallet.c:3297
|
||||||
msgid "UPDATE transactions SET blockheight = ?, txindex = ? WHERE id = ?"
|
msgid "UPDATE transactions SET blockheight = ?, txindex = ? WHERE id = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3313
|
#: wallet/wallet.c:3314
|
||||||
msgid "INSERT INTO transaction_annotations (txid, idx, location, type, channel) VALUES (?, ?, ?, ?, ?) ON CONFLICT(txid,idx) DO NOTHING;"
|
msgid "INSERT INTO transaction_annotations (txid, idx, location, type, channel) VALUES (?, ?, ?, ?, ?) ON CONFLICT(txid,idx) DO NOTHING;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3345
|
#: wallet/wallet.c:3346
|
||||||
msgid "SELECT type, channel_id FROM transactions WHERE id=?"
|
msgid "SELECT type, channel_id FROM transactions WHERE id=?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3361
|
#: wallet/wallet.c:3362
|
||||||
msgid "UPDATE transactions SET type = ?, channel_id = ? WHERE id = ?"
|
msgid "UPDATE transactions SET type = ?, channel_id = ? WHERE id = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3380
|
#: wallet/wallet.c:3381
|
||||||
msgid "SELECT type FROM transactions WHERE id=?"
|
msgid "SELECT type FROM transactions WHERE id=?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3403
|
#: wallet/wallet.c:3404
|
||||||
msgid "SELECT rawtx FROM transactions WHERE id=?"
|
msgid "SELECT rawtx FROM transactions WHERE id=?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3449
|
#: wallet/wallet.c:3450
|
||||||
msgid "SELECT blockheight, txindex FROM transactions WHERE id=?"
|
msgid "SELECT blockheight, txindex FROM transactions WHERE id=?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3477
|
#: wallet/wallet.c:3478
|
||||||
msgid "SELECT id FROM transactions WHERE blockheight=?"
|
msgid "SELECT id FROM transactions WHERE blockheight=?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3496
|
#: wallet/wallet.c:3497
|
||||||
msgid "INSERT INTO channeltxs ( channel_id, type, transaction_id, input_num, blockheight) VALUES (?, ?, ?, ?, ?);"
|
msgid "INSERT INTO channeltxs ( channel_id, type, transaction_id, input_num, blockheight) VALUES (?, ?, ?, ?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3520
|
#: wallet/wallet.c:3521
|
||||||
msgid "SELECT DISTINCT(channel_id) FROM channeltxs WHERE type = ?;"
|
msgid "SELECT DISTINCT(channel_id) FROM channeltxs WHERE type = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3541
|
#: wallet/wallet.c:3542
|
||||||
msgid "SELECT c.type, c.blockheight, t.rawtx, c.input_num, c.blockheight - t.blockheight + 1 AS depth, t.id as txid FROM channeltxs c JOIN transactions t ON t.id = c.transaction_id WHERE c.channel_id = ? ORDER BY c.id ASC;"
|
msgid "SELECT c.type, c.blockheight, t.rawtx, c.input_num, c.blockheight - t.blockheight + 1 AS depth, t.id as txid FROM channeltxs c JOIN transactions t ON t.id = c.transaction_id WHERE c.channel_id = ? ORDER BY c.id ASC;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3586
|
#: wallet/wallet.c:3587
|
||||||
msgid "UPDATE forwarded_payments SET in_msatoshi=?, out_msatoshi=?, state=?, resolved_time=?, failcode=? WHERE in_htlc_id=?"
|
msgid "UPDATE forwarded_payments SET in_msatoshi=?, out_msatoshi=?, state=?, resolved_time=?, failcode=? WHERE in_htlc_id=?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3644
|
#: wallet/wallet.c:3645
|
||||||
msgid "INSERT INTO forwarded_payments ( in_htlc_id, out_htlc_id, in_channel_scid, out_channel_scid, in_msatoshi, out_msatoshi, state, received_time, resolved_time, failcode) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"
|
msgid "INSERT INTO forwarded_payments ( in_htlc_id, out_htlc_id, in_channel_scid, out_channel_scid, in_msatoshi, out_msatoshi, state, received_time, resolved_time, failcode) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3703
|
#: wallet/wallet.c:3704
|
||||||
msgid "SELECT CAST(COALESCE(SUM(in_msatoshi - out_msatoshi), 0) AS BIGINT)FROM forwarded_payments WHERE state = ?;"
|
msgid "SELECT CAST(COALESCE(SUM(in_msatoshi - out_msatoshi), 0) AS BIGINT)FROM forwarded_payments WHERE state = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3727
|
#: wallet/wallet.c:3728
|
||||||
msgid "SELECT f.state, in_msatoshi, out_msatoshi, hin.payment_hash as payment_hash, in_channel_scid, out_channel_scid, f.received_time, f.resolved_time, f.failcode FROM forwarded_payments f LEFT JOIN channel_htlcs hin ON (f.in_htlc_id = hin.id)"
|
msgid "SELECT f.state, in_msatoshi, out_msatoshi, hin.payment_hash as payment_hash, in_channel_scid, out_channel_scid, f.received_time, f.resolved_time, f.failcode FROM forwarded_payments f LEFT JOIN channel_htlcs hin ON (f.in_htlc_id = hin.id)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3815
|
#: wallet/wallet.c:3816
|
||||||
msgid "SELECT t.id, t.rawtx, t.blockheight, t.txindex, t.type as txtype, c2.short_channel_id as txchan, a.location, a.idx as ann_idx, a.type as annotation_type, c.short_channel_id FROM transactions t LEFT JOIN transaction_annotations a ON (a.txid = t.id) LEFT JOIN channels c ON (a.channel = c.id) LEFT JOIN channels c2 ON (t.channel_id = c2.id) ORDER BY t.blockheight, t.txindex ASC"
|
msgid "SELECT t.id, t.rawtx, t.blockheight, t.txindex, t.type as txtype, c2.short_channel_id as txchan, a.location, a.idx as ann_idx, a.type as annotation_type, c.short_channel_id FROM transactions t LEFT JOIN transaction_annotations a ON (a.txid = t.id) LEFT JOIN channels c ON (a.channel = c.id) LEFT JOIN channels c2 ON (t.channel_id = c2.id) ORDER BY t.blockheight, t.txindex ASC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3909
|
#: wallet/wallet.c:3910
|
||||||
msgid "INSERT INTO penalty_bases ( channel_id, commitnum, txid, outnum, amount) VALUES (?, ?, ?, ?, ?);"
|
msgid "INSERT INTO penalty_bases ( channel_id, commitnum, txid, outnum, amount) VALUES (?, ?, ?, ?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3934
|
#: wallet/wallet.c:3935
|
||||||
msgid "SELECT commitnum, txid, outnum, amount FROM penalty_bases WHERE channel_id = ?"
|
msgid "SELECT commitnum, txid, outnum, amount FROM penalty_bases WHERE channel_id = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3958
|
#: wallet/wallet.c:3959
|
||||||
msgid "DELETE FROM penalty_bases WHERE channel_id = ? AND commitnum = ?"
|
msgid "DELETE FROM penalty_bases WHERE channel_id = ? AND commitnum = ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3976
|
#: wallet/wallet.c:3977
|
||||||
msgid "SELECT 1 FROM offers WHERE offer_id = ?;"
|
msgid "SELECT 1 FROM offers WHERE offer_id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:3989
|
#: wallet/wallet.c:3990
|
||||||
msgid "INSERT INTO offers ( offer_id, bolt12, label, status) VALUES (?, ?, ?, ?);"
|
msgid "INSERT INTO offers ( offer_id, bolt12, label, status) VALUES (?, ?, ?, ?);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:4017
|
#: wallet/wallet.c:4018
|
||||||
msgid "SELECT bolt12, label, status FROM offers WHERE offer_id = ?;"
|
msgid "SELECT bolt12, label, status FROM offers WHERE offer_id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:4045
|
#: wallet/wallet.c:4046
|
||||||
msgid "SELECT offer_id FROM offers;"
|
msgid "SELECT offer_id FROM offers;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:4071
|
#: wallet/wallet.c:4072
|
||||||
msgid "UPDATE offers SET status=? WHERE offer_id = ?;"
|
msgid "UPDATE offers SET status=? WHERE offer_id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:4082
|
#: wallet/wallet.c:4083
|
||||||
msgid "UPDATE invoices SET state=? WHERE state=? AND offer_id = ?;"
|
msgid "UPDATE invoices SET state=? WHERE state=? AND local_offer_id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/wallet.c:4110
|
#: wallet/wallet.c:4111
|
||||||
msgid "SELECT status FROM offers WHERE offer_id = ?;"
|
msgid "SELECT status FROM offers WHERE offer_id = ?;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1142,7 +1150,7 @@ msgstr ""
|
|||||||
msgid "not a valid SQL statement"
|
msgid "not a valid SQL statement"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: wallet/test/run-wallet.c:1377
|
#: wallet/test/run-wallet.c:1378
|
||||||
msgid "INSERT INTO channels (id) VALUES (1);"
|
msgid "INSERT INTO channels (id) VALUES (1);"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
# SHA256STAMP:3c2b67d1ede6a371d5dfbc97c6406cb3152c0a36ff60d714967552de6d02f7d7
|
# SHA256STAMP:f7e6df1a958f5eeb00dd1ffb0221fab28816a4807908fe904ae913a248b0f98c
|
||||||
|
|||||||
@@ -175,7 +175,8 @@ bool invoices_create(struct invoices *invoices UNNEEDED,
|
|||||||
const char *description UNNEEDED,
|
const char *description UNNEEDED,
|
||||||
const u8 *features UNNEEDED,
|
const u8 *features UNNEEDED,
|
||||||
const struct preimage *r UNNEEDED,
|
const struct preimage *r UNNEEDED,
|
||||||
const struct sha256 *rhash UNNEEDED)
|
const struct sha256 *rhash UNNEEDED,
|
||||||
|
const struct sha256 *local_offer_id UNNEEDED)
|
||||||
{ fprintf(stderr, "invoices_create called!\n"); abort(); }
|
{ fprintf(stderr, "invoices_create called!\n"); abort(); }
|
||||||
/* Generated stub for invoices_delete */
|
/* Generated stub for invoices_delete */
|
||||||
bool invoices_delete(struct invoices *invoices UNNEEDED,
|
bool invoices_delete(struct invoices *invoices UNNEEDED,
|
||||||
|
|||||||
@@ -2295,9 +2295,10 @@ bool wallet_invoice_create(struct wallet *wallet,
|
|||||||
const char *description,
|
const char *description,
|
||||||
const u8 *features,
|
const u8 *features,
|
||||||
const struct preimage *r,
|
const struct preimage *r,
|
||||||
const struct sha256 *rhash)
|
const struct sha256 *rhash,
|
||||||
|
const struct sha256 *local_offer_id)
|
||||||
{
|
{
|
||||||
return invoices_create(wallet->invoices, pinvoice, msat, label, expiry, b11enc, description, features, r, rhash);
|
return invoices_create(wallet->invoices, pinvoice, msat, label, expiry, b11enc, description, features, r, rhash, local_offer_id);
|
||||||
}
|
}
|
||||||
bool wallet_invoice_find_by_label(struct wallet *wallet,
|
bool wallet_invoice_find_by_label(struct wallet *wallet,
|
||||||
struct invoice *pinvoice,
|
struct invoice *pinvoice,
|
||||||
@@ -4081,7 +4082,7 @@ static void offer_status_update(struct db *db,
|
|||||||
|
|
||||||
stmt = db_prepare_v2(db, SQL("UPDATE invoices"
|
stmt = db_prepare_v2(db, SQL("UPDATE invoices"
|
||||||
" SET state=?"
|
" SET state=?"
|
||||||
" WHERE state=? AND offer_id = ?;"));
|
" WHERE state=? AND local_offer_id = ?;"));
|
||||||
db_bind_int(stmt, 0, invoice_status_in_db(UNPAID));
|
db_bind_int(stmt, 0, invoice_status_in_db(UNPAID));
|
||||||
db_bind_int(stmt, 1, invoice_status_in_db(EXPIRED));
|
db_bind_int(stmt, 1, invoice_status_in_db(EXPIRED));
|
||||||
db_bind_sha256(stmt, 2, offer_id);
|
db_bind_sha256(stmt, 2, offer_id);
|
||||||
|
|||||||
@@ -726,6 +726,8 @@ struct invoice_details {
|
|||||||
char *description;
|
char *description;
|
||||||
/* The features, if any (tal_arr) */
|
/* The features, if any (tal_arr) */
|
||||||
u8 *features;
|
u8 *features;
|
||||||
|
/* The offer this refers to, if any. */
|
||||||
|
struct sha256 *local_offer_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* An object that handles iteration over the set of invoices */
|
/* An object that handles iteration over the set of invoices */
|
||||||
@@ -768,7 +770,8 @@ bool wallet_invoice_create(struct wallet *wallet,
|
|||||||
const char *description,
|
const char *description,
|
||||||
const u8 *features,
|
const u8 *features,
|
||||||
const struct preimage *r,
|
const struct preimage *r,
|
||||||
const struct sha256 *rhash);
|
const struct sha256 *rhash,
|
||||||
|
const struct sha256 *local_offer_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wallet_invoice_find_by_label - Search for an invoice by label
|
* wallet_invoice_find_by_label - Search for an invoice by label
|
||||||
|
|||||||
Reference in New Issue
Block a user