Browse Source

JSON API: fix up two existing warnings to be conformant.

Technically an API break, but nobody relies on these I hope!

Note that the feerates warning was buried inside the style object:
it should be top-level.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
release-0.9.0
Rusty Russell 4 years ago
committed by Christian Decker
parent
commit
899ec2b3d4
  1. 10
      lightningd/chaintopology.c
  2. 2
      plugins/libplugin-pay.c
  3. 10
      tests/test_misc.py

10
lightningd/chaintopology.c

@ -490,6 +490,11 @@ static struct command_result *json_feerates(struct command *cmd,
}
response = json_stream_success(cmd);
if (missing)
json_add_string(response, "warning_missing_feerates",
"Some fee estimates unavailable: bitcoind startup?");
json_object_start(response, feerate_style_name(*style));
for (size_t i = 0; i < ARRAY_SIZE(feerates); i++) {
if (!feerates[i] || i == FEERATE_MIN || i == FEERATE_MAX)
@ -520,10 +525,7 @@ static struct command_result *json_feerates(struct command *cmd,
json_object_end(response);
if (missing)
json_add_string(response, "warning",
"Some fee estimates unavailable: bitcoind startup?");
else {
if (!missing) {
json_object_start(response, "onchain_fee_estimates");
/* eg 020000000001016f51de645a47baa49a636b8ec974c28bdff0ac9151c0f4eda2dbe3b41dbe711d000000001716001401fad90abcd66697e2592164722de4a95ebee165ffffffff0240420f00000000002200205b8cd3b914cf67cdd8fa6273c930353dd36476734fbd962102c2df53b90880cdb73f890000000000160014c2ccab171c2a5be9dab52ec41b825863024c54660248304502210088f65e054dbc2d8f679de3e40150069854863efa4a45103b2bb63d060322f94702200d3ae8923924a458cffb0b7360179790830027bb6b29715ba03e12fc22365de1012103d745445c9362665f22e0d96e9e766f273f3260dea39c8a76bfa05dd2684ddccf00000000 == weight 702 */
json_add_num(response, "opening_channel_satoshis",

2
plugins/libplugin-pay.c

@ -1076,7 +1076,7 @@ static void payment_finished(struct payment *p)
if (result.leafstates != PAYMENT_STEP_SUCCESS)
json_add_string(
ret, "warning",
ret, "warning_partial_completion",
"Some parts of the payment are not yet "
"completed, but we have the confirmation "
"from the recipient.");

10
tests/test_misc.py

@ -1458,7 +1458,7 @@ def test_feerates(node_factory):
# Query feerates (shouldn't give any!)
wait_for(lambda: len(l1.rpc.feerates('perkw')['perkw']) == 2)
feerates = l1.rpc.feerates('perkw')
assert feerates['warning'] == 'Some fee estimates unavailable: bitcoind startup?'
assert feerates['warning_missing_feerates'] == 'Some fee estimates unavailable: bitcoind startup?'
assert 'perkb' not in feerates
assert feerates['perkw']['max_acceptable'] == 2**32 - 1
assert feerates['perkw']['min_acceptable'] == 253
@ -1467,7 +1467,7 @@ def test_feerates(node_factory):
wait_for(lambda: len(l1.rpc.feerates('perkb')['perkb']) == 2)
feerates = l1.rpc.feerates('perkb')
assert feerates['warning'] == 'Some fee estimates unavailable: bitcoind startup?'
assert feerates['warning_missing_feerates'] == 'Some fee estimates unavailable: bitcoind startup?'
assert 'perkw' not in feerates
assert feerates['perkb']['max_acceptable'] == (2**32 - 1)
assert feerates['perkb']['min_acceptable'] == 253 * 4
@ -1480,7 +1480,7 @@ def test_feerates(node_factory):
wait_for(lambda: len(l1.rpc.feerates('perkw')['perkw']) == 3)
feerates = l1.rpc.feerates('perkw')
assert feerates['perkw']['unilateral_close'] == 15000
assert feerates['warning'] == 'Some fee estimates unavailable: bitcoind startup?'
assert feerates['warning_missing_feerates'] == 'Some fee estimates unavailable: bitcoind startup?'
assert 'perkb' not in feerates
assert feerates['perkw']['max_acceptable'] == 15000 * 10
assert feerates['perkw']['min_acceptable'] == 253
@ -1492,7 +1492,7 @@ def test_feerates(node_factory):
assert feerates['perkw']['unilateral_close'] == 15000
assert feerates['perkw']['htlc_resolution'] == 11000
assert feerates['perkw']['penalty'] == 11000
assert feerates['warning'] == 'Some fee estimates unavailable: bitcoind startup?'
assert feerates['warning_missing_feerates'] == 'Some fee estimates unavailable: bitcoind startup?'
assert 'perkb' not in feerates
assert feerates['perkw']['max_acceptable'] == 15000 * 10
assert feerates['perkw']['min_acceptable'] == 253
@ -1507,7 +1507,7 @@ def test_feerates(node_factory):
for t in types:
if t not in ("unilateral_close", "htlc_resolution", "penalty"):
assert feerates['perkb'][t] == 25000
assert feerates['warning'] == 'Some fee estimates unavailable: bitcoind startup?'
assert feerates['warning_missing_feerates'] == 'Some fee estimates unavailable: bitcoind startup?'
assert 'perkw' not in feerates
assert feerates['perkb']['max_acceptable'] == 15000 * 4 * 10
assert feerates['perkb']['min_acceptable'] == 253 * 4

Loading…
Cancel
Save