invoice: option to expose/not-expose private channels.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2019-01-15 14:28:27 +10:30
committed by Christian Decker
parent fe4a600bc7
commit 1567238dd9
10 changed files with 95 additions and 33 deletions

View File

@@ -392,29 +392,34 @@ class Message(object):
self.print_fromwire_array('*' + f.name, subcalls, basetype, f,
'*' + f.name, f.lenvar)
else:
if f.optional:
assignable = f.fieldtype.is_assignable()
deref = '*'
else:
deref = ''
assignable = f.is_assignable()
if assignable:
if f.is_len_var:
s = '{} = fromwire_{}(&cursor, &plen);'.format(f.name, basetype)
else:
s = '{}*{} = fromwire_{}(&cursor, &plen);'.format(deref, f.name, basetype)
elif basetype in varlen_structs:
s = '{}*{} = fromwire_{}(ctx, &cursor, &plen);'.format(deref, f.name, basetype)
else:
s = 'fromwire_{}(&cursor, &plen, {}{});'.format(basetype, deref, f.name)
if f.optional:
subcalls.append("if (!fromwire_bool(&cursor, &plen))\n"
"*{} = NULL;\n"
"else {{\n"
"*{} = tal(ctx, {});\n"
"fromwire_{}(&cursor, &plen, *{});\n"
"{}\n"
"}}"
.format(f.name, f.name, f.fieldtype.name,
basetype, f.name))
elif f.is_assignable():
subcalls.append("//3rd case {name}".format(name=f.name))
if f.is_len_var:
subcalls.append('{} = fromwire_{}(&cursor, &plen);'
.format(f.name, basetype))
else:
subcalls.append('*{} = fromwire_{}(&cursor, &plen);'
.format(f.name, basetype))
elif basetype in varlen_structs:
subcalls.append('*{} = fromwire_{}(ctx, &cursor, &plen);'
.format(f.name, basetype))
s))
else:
subcalls.append('fromwire_{}(&cursor, &plen, {});'
.format(basetype, f.name))
subcalls.append(s)
return template.format(
name=self.name,
@@ -481,12 +486,16 @@ class Message(object):
self.print_towire_array(subcalls, basetype, f, f.lenvar)
else:
if f.optional:
if f.fieldtype.is_assignable():
deref = '*'
else:
deref = ''
subcalls.append("if (!{})\n"
"towire_bool(&p, false);\n"
"else {{\n"
"towire_bool(&p, true);\n"
"towire_{}(&p, {});\n"
"}}".format(f.name, basetype, f.name))
"towire_{}(&p, {}{});\n"
"}}".format(f.name, basetype, deref, f.name))
else:
subcalls.append('towire_{}(&p, {});'
.format(basetype, f.name))