decode function
Decode
Implementation
PushData? decode(Uint8List _buffer, int offset) {
ByteData buffer = _buffer.buffer.asByteData();
int opcode = buffer.getUint8(offset);
int number, size;
// ~6 bit
if (opcode < OPS['OP_PUSHDATA1']!) {
number = opcode;
size = 1;
// 8 bit
} else if (opcode == OPS['OP_PUSHDATA1']!) {
if (offset + 2 > buffer.lengthInBytes) return null;
number = buffer.getUint8(offset + 1);
size = 2;
// 16 bit
} else if (opcode == OPS['OP_PUSHDATA2']!) {
if (offset + 3 > buffer.lengthInBytes) return null;
number = buffer.getUint16(offset + 1, Endian.little);
size = 3;
// 32 bit
} else {
if (offset + 5 > buffer.lengthInBytes) return null;
if (opcode != OPS['OP_PUSHDATA4']!) throw Exception('Unexpected opcode');
number = buffer.getUint32(offset + 1, Endian.little);
size = 5;
}
return PushData(opcode: opcode, number: number, size: size);
}