Tree:
9f83a9ae4d
bump-pyln-proto
confirmed-only
connected_hook
docs
exclude-equal-hint
fee-tracking2
fix-benchmarks
fix-mocks
fix-test_pay_direct-flake
fixup-0.9.0
htlc_accepted_hook
issue-2080
issue-2504
json-streaming
keysend
master
mpp
nifty/pset-pre
patch-1
paymod-01
paymod-02
paymod-03
paymod-04
plugin-1
plugin-2
plugin-3
plugin-6
plugin-7
plugin-timeout-inc
ppa
ppa-0.6.1
ppa-0.6.2rc1
ppa-prep
ppa-v0.9.2
pr-2218
pr-2355-addendum
pr-2391
pr-2587
pull/2803/head
pull/2938/head
pylightning-async
pyln
register-keysend-plugin
release-0.9.0
release-0.9.0rc3
route-mem-overrun
routehint-order
sanitizers
sendonion-msatoshi
test-pay-routeboost
travis-debug
travis-experimental
travis-test
trytravis
v0.9.0.1
add-PR3363-and-PR3372
azure0.1
basedon-aeafe4dbe7d5c61f664c18417698866b0d70252f
bolt11-demo
cp-head
demo_09052017
gossip-rewrite-prebase
htlc_accepted_replay
issue-2491-checkpoint-1
list
multi-db-pre-reoder-20190821
onion-rpc-1573494123
onion-rpc-1573497614
patch-09-reviewed
plugin-2-deadend
plugin-5-prebase-1
plugin-7-a
pr-3316
pr-3321
pr-3329
pr-3335
pr-3340
pre-rebase-01
prebase-20190726
prebrase-2019010301
rebase-top
sphinx-hop-data-head
sphinx-reply-v0
subd-request-muxing-prebase
test
test1
trackblocks-20180303
undo
v0.0.0.20
v0.0.0.20-bench
v0.0.0.20-dev
v0.0.0.21
v0.0.0.21-bench
v0.0.0.21-dev
v0.0.0.22
v0.0.0.22-bench
v0.0.0.22-dev
v0.1-2015-08-08
v0.2-2016-01-22
v0.3-2016-05-26
v0.4-2016-08-19
v0.5-2016-10-19
v0.5.1-2016-10-21
v0.5.2-2016-11-21
v0.6
v0.6.1
v0.6.1rc1
v0.6.1rc2
v0.6.2
v0.6.2rc1
v0.6.3
v0.6.3rc1
v0.6rc1
v0.6rc2
v0.7.0
v0.7.0rc1
v0.7.0rc2
v0.7.0rc3
v0.7.1
v0.7.1rc1
v0.7.1rc2
v0.7.1rc3
v0.7.1rc4
v0.7.1rc5
v0.7.2
v0.7.2.1
v0.7.2rc1
v0.7.2rc2
v0.7.3
v0.7.3rc1
v0.7.3rc2
v0.7.3rc3
v0.8.0
v0.8.0rc1
v0.8.0rc2
v0.8.1
v0.8.1rc1
v0.8.1rc2
v0.8.1rc3
v0.8.2
v0.8.2.1
v0.8.2rc1
v0.8.2rc2
v0.8.2rc3
v0.9.0
v0.9.0-1
v0.9.0.1
v0.9.0rc1
v0.9.0rc2
v0.9.0rc3
v0.9.0rc4
v0.9.1
v0.9.1rc1
v0.9.1rc2
v0.9.2
v0.9.2rc1
v0.9.2rc2
v0.9.3
v0.9.3rc1
v0.9.3rc2
variant-pyunittests
where-the-500-went
${ noResults }
2 Commits (9f83a9ae4dbbd01bbe82a44ff867e2b3ecc10b35)
Author | SHA1 | Message | Date |
---|---|---|---|
Rusty Russell | 9f83a9ae4d |
params: make optional args do allocation for you.
This is a bit more natural, IMHO. The only issue is that json_tok_tok is special, so we end up with param_opt_tok() if you really want an optional generic token. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> |
7 years ago |
Mark Beckwith | 4d1d0438e1 |
Typesafe callback system for parsing json
This is part of #1464 and incorporates Rusty's suggested updates from #1569. See comment in param.h for description, here's the basics: unsigned cltv; const jsmntok_t *note; u64 msatoshi; struct param * mp; if (!param_parse(cmd, buffer, tokens, param_req("cltv", json_tok_number, &cltv), param_opt("note", json_tok_tok, ¬e), mp = param_opt("msatoshi", json_tok_u64, &msatoshi), NULL)) return; if (param_is_set(mp)) do_something() There is a lot of developer mode code to make sure we don't make mistakes, like trying to unmarshal into the same variable twice or adding a required param after optional. During testing, I found a bug (of sorts) in the current system. It allows you to provide two named parameters with the same name without error; e.g.: # cli/lightning-cli -k newaddr addresstype=p2sh-segwit addresstype=bech32 { "address": "2N3r6fT65PhfhE1mcMS6TtcdaEurud6M7pA" } It just takes the first and ignores the second. The new system reports this as an error for now. We can always change this later. |
7 years ago |