Browse Source

tests: change --override-fee-rate to --override-fee-rates and use in tests.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ppa-0.6.1
Rusty Russell 7 years ago
committed by Christian Decker
parent
commit
88af0f5bf8
  1. 4
      lightningd/chaintopology.c
  2. 2
      lightningd/chaintopology.h
  3. 29
      lightningd/options.c
  4. 1
      tests/utils.py

4
lightningd/chaintopology.c

@ -517,7 +517,7 @@ u64 get_feerate(const struct chain_topology *topo, enum feerate feerate)
{
if (topo->override_fee_rate) {
log_debug(topo->log, "Forcing fee rate, ignoring estimate");
return topo->override_fee_rate;
return topo->override_fee_rate[feerate];
} else if (topo->feerate[feerate] == 0) {
return guess_feerate(topo, feerate);
}
@ -619,7 +619,7 @@ struct chain_topology *new_topology(struct lightningd *ld, struct log *log)
txowatch_hash_init(&topo->txowatches);
topo->log = log;
topo->default_fee_rate = 40000;
topo->override_fee_rate = 0;
topo->override_fee_rate = NULL;
topo->bitcoind = new_bitcoind(topo, ld, log);
#if DEVELOPER
topo->dev_no_broadcast = false;

2
lightningd/chaintopology.h

@ -111,7 +111,7 @@ struct chain_topology {
struct list_head outgoing_txs;
/* Force a partiular fee rate regardless of estimatefee (satoshis/kb) */
u64 override_fee_rate;
u64 *override_fee_rate;
/* What fee we use if estimatefee fails (satoshis/kb) */
u64 default_fee_rate;

29
lightningd/options.c

@ -194,6 +194,29 @@ static char *opt_set_alias(const char *arg, struct lightningd *ld)
return NULL;
}
static char *opt_set_fee_rates(const char *arg, struct chain_topology *topo)
{
tal_free(topo->override_fee_rate);
topo->override_fee_rate = tal_arr(topo, u64, 3);
for (size_t i = 0; i < tal_count(topo->override_fee_rate); i++) {
char *endp;
char term;
if (i == tal_count(topo->override_fee_rate)-1)
term = '\0';
else
term = '/';
topo->override_fee_rate[i] = strtol(arg, &endp, 10);
if (endp == arg || *endp != term)
return tal_fmt(NULL,
"Feerates must be <num>/<num>/<num>");
arg = endp + 1;
}
return NULL;
}
static void config_register_opts(struct lightningd *ld)
{
opt_register_arg("--locktime-blocks", opt_set_u32, opt_show_u32,
@ -223,9 +246,9 @@ static void config_register_opts(struct lightningd *ld)
opt_register_arg("--commit-fee=<percent>", opt_set_u32, opt_show_u32,
&ld->config.commitment_fee_percent,
"Percentage of fee to request for their commitment");
opt_register_arg("--override-fee-rate", opt_set_u64, opt_show_u64,
&ld->topology->override_fee_rate,
"Force a specific rate in satoshis per kb regardless of estimated fees");
opt_register_arg("--override-fee-rates", opt_set_fee_rates, NULL,
ld->topology,
"Force a specific rates (immediate/normal/slow) in satoshis per kb regardless of estimated fees");
opt_register_arg("--default-fee-rate", opt_set_u64, opt_show_u64,
&ld->topology->default_fee_rate,
"Satoshis per kb if can't estimate fees");

1
tests/utils.py

@ -238,6 +238,7 @@ class LightningD(TailableProc):
'--bitcoin-datadir={}'.format(bitcoin_dir),
'--lightning-dir={}'.format(lightning_dir),
'--port={}'.format(port),
'--override-fee-rates=15000/7500/1000',
'--network=regtest'
]
if DEVELOPER:

Loading…
Cancel
Save