StarGiftUnique.deserialize constructor

StarGiftUnique.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory StarGiftUnique.deserialize(BinaryReader reader) {
  // Read [StarGiftUnique] fields.
  final flags = reader.readInt32();
  final requirePremium = (flags & 64) != 0;
  final resaleTonOnly = (flags & 128) != 0;
  final themeAvailable = (flags & 512) != 0;
  final burned = (flags & 16384) != 0;
  final crafted = (flags & 32768) != 0;
  final id = reader.readInt64();
  final giftId = reader.readInt64();
  final title = reader.readString();
  final slug = reader.readString();
  final num = reader.readInt32();
  final hasOwnerIdField = (flags & 1) != 0;
  final ownerId = hasOwnerIdField ? reader.readObject() as PeerBase : null;
  final hasOwnerNameField = (flags & 2) != 0;
  final ownerName = hasOwnerNameField ? reader.readString() : null;
  final hasOwnerAddressField = (flags & 4) != 0;
  final ownerAddress = hasOwnerAddressField ? reader.readString() : null;
  final attributes = reader.readVectorObject<StarGiftAttributeBase>();
  final availabilityIssued = reader.readInt32();
  final availabilityTotal = reader.readInt32();
  final hasGiftAddressField = (flags & 8) != 0;
  final giftAddress = hasGiftAddressField ? reader.readString() : null;
  final hasResellAmountField = (flags & 16) != 0;
  final resellAmount = hasResellAmountField
      ? reader.readVectorObject<StarsAmountBase>()
      : null;
  final hasReleasedByField = (flags & 32) != 0;
  final releasedBy =
      hasReleasedByField ? reader.readObject() as PeerBase : null;
  final hasValueAmountField = (flags & 256) != 0;
  final valueAmount = hasValueAmountField ? reader.readInt64() : null;
  final hasValueCurrencyField = (flags & 256) != 0;
  final valueCurrency = hasValueCurrencyField ? reader.readString() : null;
  final hasValueUsdAmountField = (flags & 256) != 0;
  final valueUsdAmount = hasValueUsdAmountField ? reader.readInt64() : null;
  final hasThemePeerField = (flags & 1024) != 0;
  final themePeer =
      hasThemePeerField ? reader.readObject() as PeerBase : null;
  final hasPeerColorField = (flags & 2048) != 0;
  final peerColor =
      hasPeerColorField ? reader.readObject() as PeerColorBase : null;
  final hasHostIdField = (flags & 4096) != 0;
  final hostId = hasHostIdField ? reader.readObject() as PeerBase : null;
  final hasOfferMinStarsField = (flags & 8192) != 0;
  final offerMinStars = hasOfferMinStarsField ? reader.readInt32() : null;
  final hasCraftChancePermilleField = (flags & 65536) != 0;
  final craftChancePermille =
      hasCraftChancePermilleField ? reader.readInt32() : null;

  // Construct [StarGiftUnique] object.
  final returnValue = StarGiftUnique(
    requirePremium: requirePremium,
    resaleTonOnly: resaleTonOnly,
    themeAvailable: themeAvailable,
    burned: burned,
    crafted: crafted,
    id: id,
    giftId: giftId,
    title: title,
    slug: slug,
    num: num,
    ownerId: ownerId,
    ownerName: ownerName,
    ownerAddress: ownerAddress,
    attributes: attributes.items,
    availabilityIssued: availabilityIssued,
    availabilityTotal: availabilityTotal,
    giftAddress: giftAddress,
    resellAmount: resellAmount?.items,
    releasedBy: releasedBy,
    valueAmount: valueAmount,
    valueCurrency: valueCurrency,
    valueUsdAmount: valueUsdAmount,
    themePeer: themePeer,
    peerColor: peerColor,
    hostId: hostId,
    offerMinStars: offerMinStars,
    craftChancePermille: craftChancePermille,
  );

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