def check_script_size(script: bytes) -> None: try: r = BufferReader(script) n = read_uint32_be(r) r.read(n) n = read_uint32_be(r) ensure(r.remaining_count() == n) except (AssertionError, EOFError): raise wire.DataError("Invalid script")
def check_tx_params_size(params: bytes) -> None: try: r = BufferReader(params) tag = r.get() if tag == EP_TAG_NAMED: n = r.get() r.read(n) elif tag > 4: raise wire.DataError("Unknown entrypoint tag") n = read_uint32_be(r) ensure(r.remaining_count() == n) except (AssertionError, EOFError): raise wire.DataError("Invalid transaction parameters")
def decode_seq(data: memoryview) -> list[memoryview]: r = BufferReader(data) if r.get() != 0x30: raise ValueError n = read_length(r) seq = [] end = r.offset + n while r.offset < end: i = read_int(r) seq.append(i) if r.offset != end or r.remaining_count(): raise ValueError return seq
def decode_seq(data: bytes) -> List[bytes]: r = BufferReader(data) if r.get() != 0x30: raise ValueError n = decode_length(r) seq = [] end = r.offset + n while r.offset < end: i = decode_int(r) seq.append(i) if r.offset != end or r.remaining_count(): raise ValueError return seq