Browse Source

json-rpc: Rename `getroutestats` and move stats to getinfo

Signed-off-by: Christian Decker <@cdecker>
ppa-0.6.2rc1
Christian Decker 6 years ago
committed by Rusty Russell
parent
commit
6b7546b94d
  1. 10
      contrib/pylightning/lightning/lightning.py
  2. 30
      lightningd/jsonrpc.c
  3. 51
      lightningd/peer_htlcs.c
  4. 2
      tests/test_pay.py

10
contrib/pylightning/lightning/lightning.py

@ -428,14 +428,10 @@ class LightningRpc(UnixDomainSocketRpc):
""" """
return self.call("listfunds") return self.call("listfunds")
def getroutestats(self, details=True): def listforwards(self):
"""Get statistics about routed payments. """List all forwarded payments and their information
If @details is True, this'll include the individual forwarded
payments.
""" """
return self.call("getroutestats", payload={'details': details}) return self.call("listforwards")
def dev_rescan_outputs(self): def dev_rescan_outputs(self):
""" """

30
lightningd/jsonrpc.c

@ -138,6 +138,35 @@ static const struct json_command dev_crash_command = {
AUTODATA(json_command, &dev_crash_command); AUTODATA(json_command, &dev_crash_command);
#endif /* DEVELOPER */ #endif /* DEVELOPER */
static void getinfo_add_routestats(struct json_result *response,
struct wallet *wallet)
{
const struct forwarding_stats *stats;
stats = wallet_forwarded_payments_stats(wallet, tmpctx);
json_object_start(response, "routestats");
json_object_start(response, "settled");
json_add_num(response, "fee_msatoshis", stats->fee[FORWARD_SETTLED]);
json_add_num(response, "count", stats->count[FORWARD_SETTLED]);
json_add_num(response, "msatoshi", stats->msatoshi[FORWARD_SETTLED]);
json_object_end(response);
json_object_start(response, "failed");
json_add_num(response, "fee_msatoshis", stats->fee[FORWARD_FAILED]);
json_add_num(response, "count", stats->count[FORWARD_FAILED]);
json_add_num(response, "msatoshi", stats->msatoshi[FORWARD_FAILED]);
json_object_end(response);
json_object_start(response, "pending");
json_add_num(response, "fee_msatoshis", stats->fee[FORWARD_OFFERED]);
json_add_num(response, "count", stats->count[FORWARD_FAILED]);
json_add_num(response, "msatoshi", stats->msatoshi[FORWARD_FAILED]);
json_object_end(response);
json_object_end(response);
tal_free(stats);
}
static void json_getinfo(struct command *cmd, static void json_getinfo(struct command *cmd,
const char *buffer UNUSED, const jsmntok_t *params UNUSED) const char *buffer UNUSED, const jsmntok_t *params UNUSED)
{ {
@ -167,6 +196,7 @@ static void json_getinfo(struct command *cmd,
json_add_string(response, "version", version()); json_add_string(response, "version", version());
json_add_num(response, "blockheight", get_block_height(cmd->ld->topology)); json_add_num(response, "blockheight", get_block_height(cmd->ld->topology));
json_add_string(response, "network", get_chainparams(cmd->ld)->network_name); json_add_string(response, "network", get_chainparams(cmd->ld)->network_name);
getinfo_add_routestats(response, cmd->ld->wallet);
json_object_end(response); json_object_end(response);
command_success(cmd, response); command_success(cmd, response);
} }

51
lightningd/peer_htlcs.c

@ -1843,34 +1843,6 @@ static const struct json_command dev_ignore_htlcs = {
AUTODATA(json_command, &dev_ignore_htlcs); AUTODATA(json_command, &dev_ignore_htlcs);
#endif /* DEVELOPER */ #endif /* DEVELOPER */
static void listforwardings_add_stats(struct json_result *response, struct wallet *wallet)
{
const struct forwarding_stats *stats;
stats = wallet_forwarded_payments_stats(wallet, tmpctx);
json_object_start(response, "stats");
json_object_start(response, "settled");
json_add_num(response, "fee_msatoshis", stats->fee[FORWARD_SETTLED]);
json_add_num(response, "count", stats->count[FORWARD_SETTLED]);
json_add_num(response, "msatoshi", stats->msatoshi[FORWARD_SETTLED]);
json_object_end(response);
json_object_start(response, "failed");
json_add_num(response, "fee_msatoshis", stats->fee[FORWARD_FAILED]);
json_add_num(response, "count", stats->count[FORWARD_FAILED]);
json_add_num(response, "msatoshi", stats->msatoshi[FORWARD_FAILED]);
json_object_end(response);
json_object_start(response, "pending");
json_add_num(response, "fee_msatoshis", stats->fee[FORWARD_OFFERED]);
json_add_num(response, "count", stats->count[FORWARD_FAILED]);
json_add_num(response, "msatoshi", stats->msatoshi[FORWARD_FAILED]);
json_object_end(response);
json_object_end(response);
tal_free(stats);
}
static void listforwardings_add_forwardings(struct json_result *response, struct wallet *wallet) static void listforwardings_add_forwardings(struct json_result *response, struct wallet *wallet)
{ {
const struct forwarding *forwardings; const struct forwarding *forwardings;
@ -1894,31 +1866,24 @@ static void listforwardings_add_forwardings(struct json_result *response, struct
tal_free(forwardings); tal_free(forwardings);
} }
static void json_getroutestats(struct command *cmd, const char *buffer, static void json_listforwards(struct command *cmd, const char *buffer,
const jsmntok_t *params) const jsmntok_t *params)
{ {
struct json_result *response = new_json_result(cmd); struct json_result *response = new_json_result(cmd);
bool *details;
if (!param(cmd, buffer, params, if (!param(cmd, buffer, params, NULL))
p_opt_def("details", json_tok_bool, &details, true),
NULL))
return; return;
json_object_start(response, NULL); json_object_start(response, NULL);
listforwardings_add_stats(response, cmd->ld->wallet); listforwardings_add_forwardings(response, cmd->ld->wallet);
if (*details)
listforwardings_add_forwardings(response, cmd->ld->wallet);
json_object_end(response); json_object_end(response);
command_success(cmd, response); command_success(cmd, response);
} }
static const struct json_command getroutestats_command = { static const struct json_command listforwards_command = {
"getroutestats", json_getroutestats, "listforwards", json_listforwards,
"Get statistics about routed / forwarded payments", false, "List all forwarded payments and their information", false,
"Get statistics about routed payments, i.e., the ones we aren't the initiator or recipient, including a detailed list if {details} is true." "List all forwarded payments and their information"
}; };
AUTODATA(json_command, &getroutestats_command); AUTODATA(json_command, &listforwards_command);

2
tests/test_pay.py

@ -1047,6 +1047,6 @@ def test_forward_stats(node_factory, bitcoind):
assert outchan['out_msatoshi_fulfilled'] < inchan['in_msatoshi_fulfilled'] assert outchan['out_msatoshi_fulfilled'] < inchan['in_msatoshi_fulfilled']
stats = l2.rpc.getroutestats() stats = l2.rpc.listforwards()
assert [f['status'] for f in stats['forwards']] == ['settled', 'failed', 'offered'] assert [f['status'] for f in stats['forwards']] == ['settled', 'failed', 'offered']

Loading…
Cancel
Save