MCPcopy Create free account
hub / github.com/ElementsProject/lightning / add_data_field

Method add_data_field

tools/generate-wire.py:142–164  ·  view source on GitHub ↗
(self, field_name, type_obj, count=1,
                       extensions=[], comments=[], optional=False,
                       implicit_len_ok=False)

Source from the content-addressed store, hash-verified

140 self.len_fields = {}
141
142 def add_data_field(self, field_name, type_obj, count=1,
143 extensions=[], comments=[], optional=False,
144 implicit_len_ok=False):
145 field = Field(field_name, type_obj, extensions=extensions,
146 field_comments=comments, optional=optional)
147 if bool(count):
148 try:
149 field.add_count(int(count))
150 except ValueError:
151 if count in self.fields:
152 len_field = self.find_data_field(count)
153 field.add_len_field(len_field)
154 self.len_fields[len_field.name] = len_field
155 else:
156 # '...' means "rest of TLV"
157 assert implicit_len_ok
158 assert count == '...'
159 field.add_implicit_len()
160
161 # You can't have any fields after an implicit-length field.
162 if len(self.fields) != 0:
163 assert not self.fields[next(reversed(self.fields))].is_implicit_len()
164 self.fields[field_name] = field
165
166 def find_data_field(self, field_name):
167 return self.fields[field_name]

Callers

nothing calls this directly

Calls 7

add_countMethod · 0.95
find_data_fieldMethod · 0.95
add_len_fieldMethod · 0.95
add_implicit_lenMethod · 0.95
nextFunction · 0.85
is_implicit_lenMethod · 0.80
FieldClass · 0.70

Tested by

no test coverage detected