StarsTransaction.deserialize constructor

StarsTransaction.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory StarsTransaction.deserialize(BinaryReader reader) {
  // Read [StarsTransaction] fields.
  final flags = reader.readInt32();
  final refund = (flags & 8) != 0;
  final pending = (flags & 16) != 0;
  final failed = (flags & 64) != 0;
  final gift = (flags & 1024) != 0;
  final reaction = (flags & 2048) != 0;
  final stargiftUpgrade = (flags & 262144) != 0;
  final businessTransfer = (flags & 2097152) != 0;
  final stargiftResale = (flags & 4194304) != 0;
  final postsSearch = (flags & 16777216) != 0;
  final stargiftPrepaidUpgrade = (flags & 33554432) != 0;
  final stargiftDropOriginalDetails = (flags & 67108864) != 0;
  final phonegroupMessage = (flags & 134217728) != 0;
  final stargiftAuctionBid = (flags & 268435456) != 0;
  final offer = (flags & 536870912) != 0;
  final id = reader.readString();
  final amount = reader.readObject() as StarsAmountBase;
  final date = reader.readDateTime();
  final peer = reader.readObject() as StarsTransactionPeerBase;
  final hasTitleField = (flags & 1) != 0;
  final title = hasTitleField ? reader.readString() : null;
  final hasDescriptionField = (flags & 2) != 0;
  final description = hasDescriptionField ? reader.readString() : null;
  final hasPhotoField = (flags & 4) != 0;
  final photo = hasPhotoField ? reader.readObject() as WebDocumentBase : null;
  final hasTransactionDateField = (flags & 32) != 0;
  final transactionDate =
      hasTransactionDateField ? reader.readDateTime() : null;
  final hasTransactionUrlField = (flags & 32) != 0;
  final transactionUrl = hasTransactionUrlField ? reader.readString() : null;
  final hasBotPayloadField = (flags & 128) != 0;
  final botPayload = hasBotPayloadField ? reader.readBytes() : null;
  final hasMsgIdField = (flags & 256) != 0;
  final msgId = hasMsgIdField ? reader.readInt32() : null;
  final hasExtendedMediaField = (flags & 512) != 0;
  final extendedMedia = hasExtendedMediaField
      ? reader.readVectorObject<MessageMediaBase>()
      : null;
  final hasSubscriptionPeriodField = (flags & 4096) != 0;
  final subscriptionPeriod =
      hasSubscriptionPeriodField ? reader.readInt32() : null;
  final hasGiveawayPostIdField = (flags & 8192) != 0;
  final giveawayPostId = hasGiveawayPostIdField ? reader.readInt32() : null;
  final hasStargiftField = (flags & 16384) != 0;
  final stargift =
      hasStargiftField ? reader.readObject() as StarGiftBase : null;
  final hasFloodskipNumberField = (flags & 32768) != 0;
  final floodskipNumber = hasFloodskipNumberField ? reader.readInt32() : null;
  final hasStarrefCommissionPermilleField = (flags & 65536) != 0;
  final starrefCommissionPermille =
      hasStarrefCommissionPermilleField ? reader.readInt32() : null;
  final hasStarrefPeerField = (flags & 131072) != 0;
  final starrefPeer =
      hasStarrefPeerField ? reader.readObject() as PeerBase : null;
  final hasStarrefAmountField = (flags & 131072) != 0;
  final starrefAmount =
      hasStarrefAmountField ? reader.readObject() as StarsAmountBase : null;
  final hasPaidMessagesField = (flags & 524288) != 0;
  final paidMessages = hasPaidMessagesField ? reader.readInt32() : null;
  final hasPremiumGiftMonthsField = (flags & 1048576) != 0;
  final premiumGiftMonths =
      hasPremiumGiftMonthsField ? reader.readInt32() : null;
  final hasAdsProceedsFromDateField = (flags & 8388608) != 0;
  final adsProceedsFromDate =
      hasAdsProceedsFromDateField ? reader.readDateTime() : null;
  final hasAdsProceedsToDateField = (flags & 8388608) != 0;
  final adsProceedsToDate =
      hasAdsProceedsToDateField ? reader.readDateTime() : null;

  // Construct [StarsTransaction] object.
  final returnValue = StarsTransaction(
    refund: refund,
    pending: pending,
    failed: failed,
    gift: gift,
    reaction: reaction,
    stargiftUpgrade: stargiftUpgrade,
    businessTransfer: businessTransfer,
    stargiftResale: stargiftResale,
    postsSearch: postsSearch,
    stargiftPrepaidUpgrade: stargiftPrepaidUpgrade,
    stargiftDropOriginalDetails: stargiftDropOriginalDetails,
    phonegroupMessage: phonegroupMessage,
    stargiftAuctionBid: stargiftAuctionBid,
    offer: offer,
    id: id,
    amount: amount,
    date: date,
    peer: peer,
    title: title,
    description: description,
    photo: photo,
    transactionDate: transactionDate,
    transactionUrl: transactionUrl,
    botPayload: botPayload,
    msgId: msgId,
    extendedMedia: extendedMedia?.items,
    subscriptionPeriod: subscriptionPeriod,
    giveawayPostId: giveawayPostId,
    stargift: stargift,
    floodskipNumber: floodskipNumber,
    starrefCommissionPermille: starrefCommissionPermille,
    starrefPeer: starrefPeer,
    starrefAmount: starrefAmount,
    paidMessages: paidMessages,
    premiumGiftMonths: premiumGiftMonths,
    adsProceedsFromDate: adsProceedsFromDate,
    adsProceedsToDate: adsProceedsToDate,
  );

  // Now return the deserialized [StarsTransaction].
  return returnValue;
}