decodeAndValidateStruct static method

Map<String, dynamic> decodeAndValidateStruct({
  1. required StructLayout layout,
  2. required List<int> bytes,
  3. required List<int> instructionBytes,
})
override

Static method to decode and validate the structure

Implementation

static Map<String, dynamic> decodeAndValidateStruct({
  required StructLayout layout,
  required List<int> bytes,
  required List<int> instructionBytes,
}) {
  final decode = layout.deserialize(bytes).value;
  final instcutionData = decode["instruction"];
  if (!BytesUtils.bytesEqual(instcutionData, instructionBytes)) {
    throw MessageException("invalid instruction bytes", details: {
      "expected": BytesUtils.toHexString(instructionBytes),
      "instruction": BytesUtils.toBinary(instcutionData)
    });
  }

  return decode;
}