deserialize method

  1. @override
dynamic deserialize(
  1. dynamic payload
)
override

Implementation

@override
dynamic deserialize(dynamic payload) {
  if (payload is String) {
    tryHexString(payload);
    payload = hexToBytes(payload);
  }
  Uint8List buffer = payload;
  var parent = Block().deserialize(buffer);
  var mapping = <int, ISerializable>{
    NemesisBlockV1.BLOCK_TYPE.value: NemesisBlockV1(),
    NormalBlockV1.BLOCK_TYPE.value: NormalBlockV1(),
    ImportanceBlockV1.BLOCK_TYPE.value: ImportanceBlockV1()
  };
  var discriminator = (parent.type.value);
  if (mapping[discriminator] != null) {
    var factory_class = mapping[discriminator]!;
    return factory_class.deserialize(buffer);
  } else {
    throw Exception('Null value found for mapping[discriminator]');
  }
}