deserialize method

Implementation

@override
EmbeddedMultisigAccountModificationTransactionV1 deserialize(
    Uint8List payload) {
  var buffer = payload;
  var size = bytesToInt(buffer.sublist(0, 4), 4);
  buffer = buffer.sublist(0, size);
  buffer = buffer.sublist(4);
  var embeddedTransactionHeaderReserved_1 =
      bytesToInt(buffer.sublist(0, 4), 4);
  buffer = buffer.sublist(4);
  if (0 != embeddedTransactionHeaderReserved_1) {
    throw RangeError(
        'Invalid value of reserved field ($embeddedTransactionHeaderReserved_1)');
  }
  var signerPublicKey = PublicKey().deserialize(buffer);
  buffer = buffer.sublist(signerPublicKey.size);
  var entityBodyReserved_1 = bytesToInt(buffer.sublist(0, 4), 4);
  buffer = buffer.sublist(4);
  if (0 != entityBodyReserved_1) {
    throw RangeError(
        'Invalid value of reserved field ($entityBodyReserved_1)');
  }
  var version = bytesToInt(buffer.sublist(0, 1), 1);
  buffer = buffer.sublist(1);
  var network = NetworkType().deserialize(buffer);
  buffer = buffer.sublist(network.size);
  var type = TransactionType().deserialize(buffer);
  buffer = buffer.sublist(type.size);
  var minRemovalDelta = bytesToInt(buffer.sublist(0, 1), 1);
  buffer = buffer.sublist(1);
  var minApprovalDelta = bytesToInt(buffer.sublist(0, 1), 1);
  buffer = buffer.sublist(1);
  var addressAdditionsCount = bytesToInt(buffer.sublist(0, 1), 1);
  buffer = buffer.sublist(1);
  var addressDeletionsCount = bytesToInt(buffer.sublist(0, 1), 1);
  buffer = buffer.sublist(1);
  var multisigAccountModificationTransactionBodyReserved_1 =
      bytesToInt(buffer.sublist(0, 4), 4);
  buffer = buffer.sublist(4);
  if (0 != multisigAccountModificationTransactionBodyReserved_1) {
    throw RangeError(
        'Invalid value of reserved field ($multisigAccountModificationTransactionBodyReserved_1)');
  }
  var addressAdditions = ArrayHelpers.readArrayCount(
          buffer, UnresolvedAddress(), addressAdditionsCount)
      .map((item) => item as UnresolvedAddress)
      .toList();
  buffer = buffer.sublist(ArrayHelpers.size(addressAdditions));
  var addressDeletions = ArrayHelpers.readArrayCount(
          buffer, UnresolvedAddress(), addressDeletionsCount)
      .map((item) => item as UnresolvedAddress)
      .toList();
  buffer = buffer.sublist(ArrayHelpers.size(addressDeletions));

  var instance = EmbeddedMultisigAccountModificationTransactionV1(
    signerPublicKey: signerPublicKey,
    version: version,
    network: network,
    type: type,
    minRemovalDelta: minRemovalDelta,
    minApprovalDelta: minApprovalDelta,
    addressAdditions: addressAdditions,
    addressDeletions: addressDeletions,
  );
  return instance;
}