This requires us to turn "sql" calls into calls to a local db, which means pulling in a lot of infrastructure. But it's possible. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
70 lines
1.9 KiB
C
70 lines
1.9 KiB
C
#ifndef LIGHTNING_PLUGINS_BKPR_SQL_H
|
|
#define LIGHTNING_PLUGINS_BKPR_SQL_H
|
|
|
|
#include "config.h"
|
|
#include <ccan/tal/str/str.h>
|
|
#include <common/json_parse_simple.h>
|
|
|
|
struct command;
|
|
struct command_result;
|
|
|
|
#define SELECT_CHANNEL_EVENTS \
|
|
"SELECT" \
|
|
" created_index" \
|
|
", account_id" \
|
|
", primary_tag" \
|
|
", credit_msat" \
|
|
", debit_msat" \
|
|
", fees_msat" \
|
|
", payment_hash" \
|
|
", part_id" \
|
|
", timestamp" \
|
|
" FROM channelmoves "
|
|
|
|
#define SELECT_CHAIN_EVENTS \
|
|
"SELECT" \
|
|
" created_index" \
|
|
", account_id" \
|
|
", originating_account" \
|
|
", primary_tag" \
|
|
", credit_msat" \
|
|
", debit_msat" \
|
|
", output_msat" \
|
|
", timestamp" \
|
|
", blockheight" \
|
|
", utxo" \
|
|
", spending_txid" \
|
|
", payment_hash" \
|
|
", EXISTS (SELECT 1 FROM chainmoves_extra_tags et" \
|
|
" WHERE et.row = cm.rowid" \
|
|
" AND et.extra_tags = 'stealable') AS stealable" \
|
|
", EXISTS (SELECT 1 FROM chainmoves_extra_tags et" \
|
|
" WHERE et.row = cm.rowid" \
|
|
" AND et.extra_tags = 'splice') AS spliced" \
|
|
" FROM chainmoves cm "
|
|
|
|
const jsmntok_t *PRINTF_FMT(4, 5) sql_req(const tal_t *ctx,
|
|
struct command *cmd, const char **buf,
|
|
const char *fmt, ...);
|
|
|
|
const jsmntok_t *sql_reqv(const tal_t *ctx,
|
|
struct command *cmd, const char **buf,
|
|
const char *fmt, va_list ap);
|
|
|
|
struct channel_event **
|
|
PRINTF_FMT(3, 4) channel_events_from_sql(const tal_t *ctx,
|
|
struct command *cmd,
|
|
const char *fmt, ...);
|
|
|
|
struct chain_event **
|
|
PRINTF_FMT(4, 5) chain_events_from_sql(const tal_t *ctx,
|
|
const struct bkpr *bkpr,
|
|
struct command *cmd,
|
|
const char *fmt, ...);
|
|
|
|
/* FIXME: The sql plugin should support bound parameters to avoid this! */
|
|
/* Return with escaped quotes, if any */
|
|
const char *sql_string(const tal_t *ctx, const char *str);
|
|
|
|
#endif /* LIGHTNING_PLUGINS_BKPR_SQL_H */
|