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);
}