#ifndef LIGHTNING_PLUGINS_BKPR_BOOKKEEPER_H
#define LIGHTNING_PLUGINS_BKPR_BOOKKEEPER_H
#include "config.h"
#include <ccan/intmap/intmap.h>
#include <common/json_parse.h>
struct command;
struct plugin;
struct iso4217_name_and_divisor;
struct currencyrate {
u32 duration;
u64 raw_rate;
};
typedef UINTMAP(struct currencyrate *) currencymap_t;
struct bkpr {
struct accounts *accounts;
struct onchain_fees *onchain_fees;
struct descriptions *descriptions;
struct rebalances *rebalances;
struct blockheights *blockheights;
struct refresh_info *rinfo;
u64 chainmoves_index, channelmoves_index;
const struct iso4217_name_and_divisor *currency;
currencymap_t *currency_rates;
bool warned_currency_fail;
struct command *currency_cmds;
};
struct bkpr *bkpr_of(struct plugin *plugin);
const char *currencyrate_str(const tal_t *ctx,
const struct bkpr *bkpr,
u64 timestamp,
const struct amount_msat *msat);
const struct currencyrate *covering_currencyrate(const struct bkpr *bkpr,
u64 timestamp);
void json_add_currencyrate(struct json_stream *result,
const char *fieldname,
const struct bkpr *bkpr,
u64 timestamp);
struct command_result *ignore_datastore_reply(struct command *cmd,
const char *method,
const char *buf,
const jsmntok_t *result,
void *arg);
#endif