From 72a9cfbbe27c459007b6d9e30d86a949e4e9cdc1 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 26 Aug 2016 15:33:47 +0930 Subject: [PATCH] test: test feerate changes. Signed-off-by: Rusty Russell --- daemon/jsonrpc.c | 1 + daemon/jsonrpc.h | 1 + daemon/peer.c | 29 +++++++++++++++++++++++++++++ daemon/test/test.sh | 14 +++++++++++--- 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/daemon/jsonrpc.c b/daemon/jsonrpc.c index de5495b44..02a559ff3 100644 --- a/daemon/jsonrpc.c +++ b/daemon/jsonrpc.c @@ -290,6 +290,7 @@ static const struct json_command *cmdlist[] = { &newaddr_command, &accept_payment_command, &pay_command, + &feerate_command, /* Developer/debugging options. */ &echo_command, &rhash_command, diff --git a/daemon/jsonrpc.h b/daemon/jsonrpc.h index 64b7c41a2..a25db1572 100644 --- a/daemon/jsonrpc.h +++ b/daemon/jsonrpc.h @@ -74,4 +74,5 @@ extern const struct json_command accept_payment_command; extern const struct json_command add_route_command; extern const struct json_command routefail_command; extern const struct json_command pay_command; +extern const struct json_command feerate_command; #endif /* LIGHTNING_DAEMON_JSONRPC_H */ diff --git a/daemon/peer.c b/daemon/peer.c index 33dcedc35..e0f580bb6 100644 --- a/daemon/peer.c +++ b/daemon/peer.c @@ -4537,6 +4537,35 @@ const struct json_command close_command = { "Returns an empty result on success" }; +static void json_feerate(struct command *cmd, + const char *buffer, const jsmntok_t *params) +{ + jsmntok_t *feeratetok; + u64 feerate; + + if (!json_get_params(buffer, params, + "feerate", &feeratetok, + NULL)) { + command_fail(cmd, "Need feerate"); + return; + } + + if (!json_tok_u64(buffer, feeratetok, &feerate)) { + command_fail(cmd, "Invalid feerate"); + return; + } + cmd->dstate->config.default_fee_rate = feerate; + + command_success(cmd, null_response(cmd)); +} + +const struct json_command feerate_command = { + "dev-feerate", + json_feerate, + "Change the (default) fee rate to {feerate}", + "Returns an empty result on success" +}; + static void json_disconnect(struct command *cmd, const char *buffer, const jsmntok_t *params) { diff --git a/daemon/test/test.sh b/daemon/test/test.sh index 885bb4d1d..679823b92 100755 --- a/daemon/test/test.sh +++ b/daemon/test/test.sh @@ -359,10 +359,10 @@ fi if [ -n "$DIFFERENT_FEES" ]; then # Simply override default fee (estimatefee fails on regtest anyway) - CLOSE_FEE_RATE2=50000 + DEFAULT_FEE_RATE2=50000 # We use 5x fee rate for commits, by defailt. - FEE_RATE2=$(($CLOSE_FEE_RATE2 * 5)) - echo "default-fee-rate=$CLOSE_FEE_RATE2" >> $DIR2/config + FEE_RATE2=$(($DEFAULT_FEE_RATE2 * 5)) + echo "default-fee-rate=$DEFAULT_FEE_RATE2" >> $DIR2/config fi # Need absolute path for re-exec testing. @@ -513,6 +513,14 @@ if [ -n "$DIFFERENT_FEES" ]; then check_status_single lcli1 $(($AMOUNT - $HTLC_AMOUNT - $NO_HTLCS_FEE / 2)) $(($NO_HTLCS_FEE / 2)) "" $(($HTLC_AMOUNT - $NO_HTLCS_FEE / 2)) $(($NO_HTLCS_FEE / 2)) "" check_status_single lcli2 $(($HTLC_AMOUNT - $NO_HTLCS_FEE2 / 2)) $(($NO_HTLCS_FEE2 / 2)) "" $(($AMOUNT - $HTLC_AMOUNT - $NO_HTLCS_FEE2 / 2)) $(($NO_HTLCS_FEE2 / 2)) "" + # Change fee rate on node2 to same as node1. + lcli2 dev-feerate 40000 + $CLI generate 1 + [ ! -n "$MANUALCOMMIT" ] || lcli2 commit $ID1 + [ ! -n "$MANUALCOMMIT" ] || lcli1 commit $ID2 + + check_status $(($AMOUNT - $HTLC_AMOUNT - $NO_HTLCS_FEE / 2)) $(($NO_HTLCS_FEE / 2)) "" $(($HTLC_AMOUNT - $NO_HTLCS_FEE / 2)) $(($NO_HTLCS_FEE / 2)) "" + lcli1 close $ID2 # Make sure they notice it. check_peerstate lcli1 STATE_MUTUAL_CLOSING