Painor преди 2 години
родител
ревизия
d627fd37ab
променени са 6 файла, в които са добавени 333 реда и са изтрити 68 реда
  1. 1 1
      gramjs/tl/AllTLObjects.ts
  2. 271 39
      gramjs/tl/api.d.ts
  3. 27 12
      gramjs/tl/apiTl.js
  4. 31 13
      gramjs/tl/static/api.tl
  5. 2 2
      package-lock.json
  6. 1 1
      package.json

+ 1 - 1
gramjs/tl/AllTLObjects.ts

@@ -1,4 +1,4 @@
-export const LAYER = 143;
+export const LAYER = 144;
 
 import { Api } from "./";
 

+ 271 - 39
gramjs/tl/api.d.ts

@@ -1801,6 +1801,20 @@ export namespace Api {
         static fromReader(reader: Reader): MessageActionWebViewDataSent;
         text: string;
     }
+    export class MessageActionGiftPremium extends VirtualClass<{
+        currency: string;
+        amount: long;
+        months: int;
+    }> {
+        CONSTRUCTOR_ID: 2879452614;
+        SUBCLASS_OF_ID: 2256589094;
+        classType: "constructor";
+        className: "MessageActionGiftPremium";
+        static fromReader(reader: Reader): MessageActionGiftPremium;
+        currency: string;
+        amount: long;
+        months: int;
+    }
     export class Dialog extends VirtualClass<{
         // flags: null;
         pinned?: boolean;
@@ -2235,6 +2249,7 @@ export namespace Api {
         canPinMessage?: boolean;
         hasScheduled?: boolean;
         videoCallsAvailable?: boolean;
+        voiceMessagesForbidden?: boolean;
         id: long;
         about?: string;
         settings: Api.TypePeerSettings;
@@ -2249,8 +2264,9 @@ export namespace Api {
         privateForwardName?: string;
         botGroupAdminRights?: Api.TypeChatAdminRights;
         botBroadcastAdminRights?: Api.TypeChatAdminRights;
+        premiumGifts?: Api.TypePremiumGiftOption[];
     }> {
-        CONSTRUCTOR_ID: 2356341377;
+        CONSTRUCTOR_ID: 3299998783;
         SUBCLASS_OF_ID: 524706233;
         classType: "constructor";
         className: "UserFull";
@@ -2262,6 +2278,7 @@ export namespace Api {
         canPinMessage?: boolean;
         hasScheduled?: boolean;
         videoCallsAvailable?: boolean;
+        voiceMessagesForbidden?: boolean;
         id: long;
         about?: string;
         settings: Api.TypePeerSettings;
@@ -2276,6 +2293,7 @@ export namespace Api {
         privateForwardName?: string;
         botGroupAdminRights?: Api.TypeChatAdminRights;
         botBroadcastAdminRights?: Api.TypeChatAdminRights;
+        premiumGifts?: Api.TypePremiumGiftOption[];
     }
     export class Contact extends VirtualClass<{
         userId: long;
@@ -2888,6 +2906,7 @@ export namespace Api {
     export class UpdateStickerSetsOrder extends VirtualClass<{
         // flags: null;
         masks?: boolean;
+        emojis?: boolean;
         order: long[];
     }> {
         CONSTRUCTOR_ID: 196268545;
@@ -2897,6 +2916,7 @@ export namespace Api {
         static fromReader(reader: Reader): UpdateStickerSetsOrder;
         // flags: null;
         masks?: boolean;
+        emojis?: boolean;
         order: long[];
     }
     export class UpdateStickerSets extends VirtualClass<void> {
@@ -3817,6 +3837,13 @@ export namespace Api {
         transcriptionId: long;
         text: string;
     }
+    export class UpdateReadFeaturedEmojiStickers extends VirtualClass<void> {
+        CONSTRUCTOR_ID: 4216080748;
+        SUBCLASS_OF_ID: 2676568142;
+        classType: "constructor";
+        className: "UpdateReadFeaturedEmojiStickers";
+        static fromReader(reader: Reader): UpdateReadFeaturedEmojiStickers;
+    }
     export class UpdatesTooLong extends VirtualClass<void> {
         CONSTRUCTOR_ID: 3809980286;
         SUBCLASS_OF_ID: 2331323052;
@@ -4650,6 +4677,13 @@ export namespace Api {
         className: "InputPrivacyKeyAddedByPhone";
         static fromReader(reader: Reader): InputPrivacyKeyAddedByPhone;
     }
+    export class InputPrivacyKeyVoiceMessages extends VirtualClass<void> {
+        CONSTRUCTOR_ID: 2934349160;
+        SUBCLASS_OF_ID: 87435256;
+        classType: "constructor";
+        className: "InputPrivacyKeyVoiceMessages";
+        static fromReader(reader: Reader): InputPrivacyKeyVoiceMessages;
+    }
     export class PrivacyKeyStatusTimestamp extends VirtualClass<void> {
         CONSTRUCTOR_ID: 3157175088;
         SUBCLASS_OF_ID: 2185646531;
@@ -4706,6 +4740,13 @@ export namespace Api {
         className: "PrivacyKeyAddedByPhone";
         static fromReader(reader: Reader): PrivacyKeyAddedByPhone;
     }
+    export class PrivacyKeyVoiceMessages extends VirtualClass<void> {
+        CONSTRUCTOR_ID: 110621716;
+        SUBCLASS_OF_ID: 2185646531;
+        classType: "constructor";
+        className: "PrivacyKeyVoiceMessages";
+        static fromReader(reader: Reader): PrivacyKeyVoiceMessages;
+    }
     export class InputPrivacyValueAllowContacts extends VirtualClass<void> {
         CONSTRUCTOR_ID: 218751099;
         SUBCLASS_OF_ID: 1513843490;
@@ -4950,6 +4991,22 @@ export namespace Api {
         className: "DocumentAttributeHasStickers";
         static fromReader(reader: Reader): DocumentAttributeHasStickers;
     }
+    export class DocumentAttributeCustomEmoji extends VirtualClass<{
+        // flags: null;
+        free?: boolean;
+        alt: string;
+        stickerset: Api.TypeInputStickerSet;
+    }> {
+        CONSTRUCTOR_ID: 4245985433;
+        SUBCLASS_OF_ID: 4146719643;
+        classType: "constructor";
+        className: "DocumentAttributeCustomEmoji";
+        static fromReader(reader: Reader): DocumentAttributeCustomEmoji;
+        // flags: null;
+        free?: boolean;
+        alt: string;
+        stickerset: Api.TypeInputStickerSet;
+    }
     export class StickerPack extends VirtualClass<{
         emoticon: string;
         documents: long[];
@@ -5246,6 +5303,13 @@ export namespace Api {
             reader: Reader
         ): InputStickerSetAnimatedEmojiAnimations;
     }
+    export class InputStickerSetPremiumGifts extends VirtualClass<void> {
+        CONSTRUCTOR_ID: 3364567810;
+        SUBCLASS_OF_ID: 1034127786;
+        classType: "constructor";
+        className: "InputStickerSetPremiumGifts";
+        static fromReader(reader: Reader): InputStickerSetPremiumGifts;
+    }
     export class StickerSet extends VirtualClass<{
         // flags: null;
         archived?: boolean;
@@ -5253,6 +5317,7 @@ export namespace Api {
         masks?: boolean;
         animated?: boolean;
         videos?: boolean;
+        emojis?: boolean;
         installedDate?: int;
         id: long;
         accessHash: long;
@@ -5261,10 +5326,11 @@ export namespace Api {
         thumbs?: Api.TypePhotoSize[];
         thumbDcId?: int;
         thumbVersion?: int;
+        thumbDocumentId?: long;
         count: int;
         hash: int;
     }> {
-        CONSTRUCTOR_ID: 3621724538;
+        CONSTRUCTOR_ID: 768691932;
         SUBCLASS_OF_ID: 3134455697;
         classType: "constructor";
         className: "StickerSet";
@@ -5275,6 +5341,7 @@ export namespace Api {
         masks?: boolean;
         animated?: boolean;
         videos?: boolean;
+        emojis?: boolean;
         installedDate?: int;
         id: long;
         accessHash: long;
@@ -5283,6 +5350,7 @@ export namespace Api {
         thumbs?: Api.TypePhotoSize[];
         thumbDcId?: int;
         thumbVersion?: int;
+        thumbDocumentId?: long;
         count: int;
         hash: int;
     }
@@ -5830,6 +5898,20 @@ export namespace Api {
         offset: int;
         length: int;
     }
+    export class MessageEntityCustomEmoji extends VirtualClass<{
+        offset: int;
+        length: int;
+        documentId: long;
+    }> {
+        CONSTRUCTOR_ID: 3369010680;
+        SUBCLASS_OF_ID: 3479443932;
+        classType: "constructor";
+        className: "MessageEntityCustomEmoji";
+        static fromReader(reader: Reader): MessageEntityCustomEmoji;
+        offset: int;
+        length: int;
+        documentId: long;
+    }
     export class InputChannelEmpty extends VirtualClass<void> {
         CONSTRUCTOR_ID: 4002160262;
         SUBCLASS_OF_ID: 1089602301;
@@ -6681,6 +6763,20 @@ export namespace Api {
         set: Api.TypeStickerSet;
         covers: Api.TypeDocument[];
     }
+    export class StickerSetFullCovered extends VirtualClass<{
+        set: Api.TypeStickerSet;
+        packs: Api.TypeStickerPack[];
+        documents: Api.TypeDocument[];
+    }> {
+        CONSTRUCTOR_ID: 451763941;
+        SUBCLASS_OF_ID: 2139546853;
+        classType: "constructor";
+        className: "StickerSetFullCovered";
+        static fromReader(reader: Reader): StickerSetFullCovered;
+        set: Api.TypeStickerSet;
+        packs: Api.TypeStickerPack[];
+        documents: Api.TypeDocument[];
+    }
     export class MaskCoords extends VirtualClass<{
         n: int;
         x: double;
@@ -7548,6 +7644,24 @@ export namespace Api {
         zoom: int;
         scale: int;
     }
+    export class InputWebFileAudioAlbumThumbLocation extends VirtualClass<{
+        // flags: null;
+        small?: boolean;
+        document?: Api.TypeInputDocument;
+        title?: string;
+        performer?: string;
+    }> {
+        CONSTRUCTOR_ID: 4100974884;
+        SUBCLASS_OF_ID: 4147042521;
+        classType: "constructor";
+        className: "InputWebFileAudioAlbumThumbLocation";
+        static fromReader(reader: Reader): InputWebFileAudioAlbumThumbLocation;
+        // flags: null;
+        small?: boolean;
+        document?: Api.TypeInputDocument;
+        title?: string;
+        performer?: string;
+    }
     export class InputPaymentCredentialsSaved extends VirtualClass<{
         id: string;
         tmpPassword: bytes;
@@ -11076,6 +11190,64 @@ export namespace Api {
         static fromReader(reader: Reader): InputInvoiceSlug;
         slug: string;
     }
+    export class InputStorePaymentPremiumSubscription extends VirtualClass<{
+        // flags: null;
+        restore?: boolean;
+    }> {
+        CONSTRUCTOR_ID: 2792693350;
+        SUBCLASS_OF_ID: 3886290765;
+        classType: "constructor";
+        className: "InputStorePaymentPremiumSubscription";
+        static fromReader(reader: Reader): InputStorePaymentPremiumSubscription;
+        // flags: null;
+        restore?: boolean;
+    }
+    export class InputStorePaymentGiftPremium extends VirtualClass<{
+        userId: Api.TypeInputUser;
+        currency: string;
+        amount: long;
+    }> {
+        CONSTRUCTOR_ID: 1634697192;
+        SUBCLASS_OF_ID: 3886290765;
+        classType: "constructor";
+        className: "InputStorePaymentGiftPremium";
+        static fromReader(reader: Reader): InputStorePaymentGiftPremium;
+        userId: Api.TypeInputUser;
+        currency: string;
+        amount: long;
+    }
+    export class PremiumGiftOption extends VirtualClass<{
+        // flags: null;
+        months: int;
+        currency: string;
+        amount: long;
+        botUrl: string;
+        storeProduct?: string;
+    }> {
+        CONSTRUCTOR_ID: 1958953753;
+        SUBCLASS_OF_ID: 1367519294;
+        classType: "constructor";
+        className: "PremiumGiftOption";
+        static fromReader(reader: Reader): PremiumGiftOption;
+        // flags: null;
+        months: int;
+        currency: string;
+        amount: long;
+        botUrl: string;
+        storeProduct?: string;
+    }
+    export class PaymentFormMethod extends VirtualClass<{
+        url: string;
+        title: string;
+    }> {
+        CONSTRUCTOR_ID: 2298016283;
+        SUBCLASS_OF_ID: 1069664278;
+        classType: "constructor";
+        className: "PaymentFormMethod";
+        static fromReader(reader: Reader): PaymentFormMethod;
+        url: string;
+        title: string;
+    }
     export class ResPQ extends VirtualClass<{
         nonce: int128;
         serverNonce: int128;
@@ -12739,16 +12911,20 @@ export namespace Api {
             count: int;
         }
         export class FeaturedStickers extends VirtualClass<{
+            // flags: null;
+            premium?: boolean;
             hash: long;
             count: int;
             sets: Api.TypeStickerSetCovered[];
             unread: long[];
         }> {
-            CONSTRUCTOR_ID: 2227184400;
+            CONSTRUCTOR_ID: 3191351558;
             SUBCLASS_OF_ID: 638891810;
             classType: "constructor";
             className: "messages.FeaturedStickers";
             static fromReader(reader: Reader): FeaturedStickers;
+            // flags: null;
+            premium?: boolean;
             hash: long;
             count: int;
             sets: Api.TypeStickerSetCovered[];
@@ -14152,11 +14328,12 @@ export namespace Api {
             url: string;
             nativeProvider?: string;
             nativeParams?: Api.TypeDataJSON;
+            additionalMethods?: Api.TypePaymentFormMethod[];
             savedInfo?: Api.TypePaymentRequestedInfo;
-            savedCredentials?: Api.TypePaymentSavedCredentials;
+            savedCredentials?: Api.TypePaymentSavedCredentials[];
             users: Api.TypeUser[];
         }> {
-            CONSTRUCTOR_ID: 2954050359;
+            CONSTRUCTOR_ID: 2684716881;
             SUBCLASS_OF_ID: 2689089305;
             classType: "constructor";
             className: "payments.PaymentForm";
@@ -14174,8 +14351,9 @@ export namespace Api {
             url: string;
             nativeProvider?: string;
             nativeParams?: Api.TypeDataJSON;
+            additionalMethods?: Api.TypePaymentFormMethod[];
             savedInfo?: Api.TypePaymentRequestedInfo;
-            savedCredentials?: Api.TypePaymentSavedCredentials;
+            savedCredentials?: Api.TypePaymentSavedCredentials[];
             users: Api.TypeUser[];
         }
         export class ValidatedRequestedInfo extends VirtualClass<{
@@ -15246,16 +15424,20 @@ export namespace Api {
         }
         export class DeleteAccount extends Request<
             Partial<{
+                // flags: null;
                 reason: string;
+                password?: Api.TypeInputCheckPasswordSRP;
             }>,
             Bool
         > {
-            CONSTRUCTOR_ID: 1099779595;
+            CONSTRUCTOR_ID: 2730545012;
             SUBCLASS_OF_ID: 4122188204;
             classType: "request";
             className: "account.DeleteAccount";
             static fromReader(reader: Reader): DeleteAccount;
+            // flags: null;
             reason: string;
+            password?: Api.TypeInputCheckPasswordSRP;
         }
         export class GetAccountTTL extends Request<
             void,
@@ -17391,6 +17573,7 @@ export namespace Api {
             Partial<{
                 // flags: null;
                 masks?: boolean;
+                emojis?: boolean;
                 order: long[];
             }>,
             Bool
@@ -17402,6 +17585,7 @@ export namespace Api {
             static fromReader(reader: Reader): ReorderStickerSets;
             // flags: null;
             masks?: boolean;
+            emojis?: boolean;
             order: long[];
         }
         export class GetDocumentByHash extends Request<
@@ -17773,6 +17957,7 @@ export namespace Api {
             Partial<{
                 // flags: null;
                 masks?: boolean;
+                emojis?: boolean;
                 offsetId: long;
                 limit: int;
             }>,
@@ -17785,6 +17970,7 @@ export namespace Api {
             static fromReader(reader: Reader): GetArchivedStickers;
             // flags: null;
             masks?: boolean;
+            emojis?: boolean;
             offsetId: long;
             limit: int;
         }
@@ -19470,6 +19656,45 @@ export namespace Api {
             transcriptionId: long;
             good: Bool;
         }
+        export class GetCustomEmojiDocuments extends Request<
+            Partial<{
+                documentId: long[];
+            }>,
+            Api.TypeDocument[]
+        > {
+            CONSTRUCTOR_ID: 3651866452;
+            SUBCLASS_OF_ID: 3428388360;
+            classType: "request";
+            className: "messages.GetCustomEmojiDocuments";
+            static fromReader(reader: Reader): GetCustomEmojiDocuments;
+            documentId: long[];
+        }
+        export class GetEmojiStickers extends Request<
+            Partial<{
+                hash: long;
+            }>,
+            messages.TypeAllStickers
+        > {
+            CONSTRUCTOR_ID: 4227637647;
+            SUBCLASS_OF_ID: 1166231593;
+            classType: "request";
+            className: "messages.GetEmojiStickers";
+            static fromReader(reader: Reader): GetEmojiStickers;
+            hash: long;
+        }
+        export class GetFeaturedEmojiStickers extends Request<
+            Partial<{
+                hash: long;
+            }>,
+            messages.TypeFeaturedStickers
+        > {
+            CONSTRUCTOR_ID: 248473398;
+            SUBCLASS_OF_ID: 638891810;
+            classType: "request";
+            className: "messages.GetFeaturedEmojiStickers";
+            static fromReader(reader: Reader): GetFeaturedEmojiStickers;
+            hash: long;
+        }
     }
 
     export namespace updates {
@@ -20907,55 +21132,46 @@ export namespace Api {
         }
         export class AssignAppStoreTransaction extends Request<
             Partial<{
-                // flags: null;
-                restore?: boolean;
-                transactionId: string;
                 receipt: bytes;
+                purpose: Api.TypeInputStorePaymentPurpose;
             }>,
             Api.TypeUpdates
         > {
-            CONSTRUCTOR_ID: 267129798;
+            CONSTRUCTOR_ID: 2163045501;
             SUBCLASS_OF_ID: 2331323052;
             classType: "request";
             className: "payments.AssignAppStoreTransaction";
             static fromReader(reader: Reader): AssignAppStoreTransaction;
-            // flags: null;
-            restore?: boolean;
-            transactionId: string;
             receipt: bytes;
+            purpose: Api.TypeInputStorePaymentPurpose;
         }
         export class AssignPlayMarketTransaction extends Request<
             Partial<{
-                purchaseToken: string;
+                receipt: Api.TypeDataJSON;
+                purpose: Api.TypeInputStorePaymentPurpose;
             }>,
             Api.TypeUpdates
         > {
-            CONSTRUCTOR_ID: 1336560365;
+            CONSTRUCTOR_ID: 3757920467;
             SUBCLASS_OF_ID: 2331323052;
             classType: "request";
             className: "payments.AssignPlayMarketTransaction";
             static fromReader(reader: Reader): AssignPlayMarketTransaction;
-            purchaseToken: string;
+            receipt: Api.TypeDataJSON;
+            purpose: Api.TypeInputStorePaymentPurpose;
         }
-        export class RestorePlayMarketReceipt extends Request<
+        export class CanPurchasePremium extends Request<
             Partial<{
-                receipt: bytes;
+                purpose: Api.TypeInputStorePaymentPurpose;
             }>,
-            Api.TypeUpdates
+            Bool
         > {
-            CONSTRUCTOR_ID: 3513049962;
-            SUBCLASS_OF_ID: 2331323052;
-            classType: "request";
-            className: "payments.RestorePlayMarketReceipt";
-            static fromReader(reader: Reader): RestorePlayMarketReceipt;
-            receipt: bytes;
-        }
-        export class CanPurchasePremium extends Request<void, Bool> {
-            CONSTRUCTOR_ID: 2859110600;
+            CONSTRUCTOR_ID: 2680266422;
             SUBCLASS_OF_ID: 4122188204;
             classType: "request";
             className: "payments.CanPurchasePremium";
             static fromReader(reader: Reader): CanPurchasePremium;
+            purpose: Api.TypeInputStorePaymentPurpose;
         }
         export class RequestRecurringPayment extends Request<
             Partial<{
@@ -21948,7 +22164,8 @@ export namespace Api {
         | MessageActionSetChatTheme
         | MessageActionChatJoinedByRequest
         | MessageActionWebViewDataSentMe
-        | MessageActionWebViewDataSent;
+        | MessageActionWebViewDataSent
+        | MessageActionGiftPremium;
     export type TypeDialog = Dialog | DialogFolder;
     export type TypePhoto = PhotoEmpty | Photo;
     export type TypePhotoSize =
@@ -22102,7 +22319,8 @@ export namespace Api {
         | UpdateWebViewResultSent
         | UpdateBotMenuButton
         | UpdateSavedRingtones
-        | UpdateTranscribedAudio;
+        | UpdateTranscribedAudio
+        | UpdateReadFeaturedEmojiStickers;
     export type TypeUpdates =
         | UpdatesTooLong
         | UpdateShortMessage
@@ -22164,7 +22382,8 @@ export namespace Api {
         | InputPrivacyKeyForwards
         | InputPrivacyKeyProfilePhoto
         | InputPrivacyKeyPhoneNumber
-        | InputPrivacyKeyAddedByPhone;
+        | InputPrivacyKeyAddedByPhone
+        | InputPrivacyKeyVoiceMessages;
     export type TypePrivacyKey =
         | PrivacyKeyStatusTimestamp
         | PrivacyKeyChatInvite
@@ -22173,7 +22392,8 @@ export namespace Api {
         | PrivacyKeyForwards
         | PrivacyKeyProfilePhoto
         | PrivacyKeyPhoneNumber
-        | PrivacyKeyAddedByPhone;
+        | PrivacyKeyAddedByPhone
+        | PrivacyKeyVoiceMessages;
     export type TypeInputPrivacyRule =
         | InputPrivacyValueAllowContacts
         | InputPrivacyValueAllowAll
@@ -22200,7 +22420,8 @@ export namespace Api {
         | DocumentAttributeVideo
         | DocumentAttributeAudio
         | DocumentAttributeFilename
-        | DocumentAttributeHasStickers;
+        | DocumentAttributeHasStickers
+        | DocumentAttributeCustomEmoji;
     export type TypeStickerPack = StickerPack;
     export type TypeWebPage =
         | WebPageEmpty
@@ -22222,7 +22443,8 @@ export namespace Api {
         | InputStickerSetShortName
         | InputStickerSetAnimatedEmoji
         | InputStickerSetDice
-        | InputStickerSetAnimatedEmojiAnimations;
+        | InputStickerSetAnimatedEmojiAnimations
+        | InputStickerSetPremiumGifts;
     export type TypeStickerSet = StickerSet;
     export type TypeBotCommand = BotCommand;
     export type TypeBotInfo = BotInfo;
@@ -22268,7 +22490,8 @@ export namespace Api {
         | MessageEntityStrike
         | MessageEntityBlockquote
         | MessageEntityBankCard
-        | MessageEntitySpoiler;
+        | MessageEntitySpoiler
+        | MessageEntityCustomEmoji;
     export type TypeInputChannel =
         | InputChannelEmpty
         | InputChannel
@@ -22334,7 +22557,8 @@ export namespace Api {
     export type TypeDraftMessage = DraftMessageEmpty | DraftMessage;
     export type TypeStickerSetCovered =
         | StickerSetCovered
-        | StickerSetMultiCovered;
+        | StickerSetMultiCovered
+        | StickerSetFullCovered;
     export type TypeMaskCoords = MaskCoords;
     export type TypeInputStickeredMedia =
         | InputStickeredMediaPhoto
@@ -22405,7 +22629,8 @@ export namespace Api {
     export type TypeInputWebDocument = InputWebDocument;
     export type TypeInputWebFileLocation =
         | InputWebFileLocation
-        | InputWebFileGeoPointLocation;
+        | InputWebFileGeoPointLocation
+        | InputWebFileAudioAlbumThumbLocation;
     export type TypeInputPaymentCredentials =
         | InputPaymentCredentialsSaved
         | InputPaymentCredentials
@@ -22668,6 +22893,11 @@ export namespace Api {
         | AttachMenuPeerTypeChat
         | AttachMenuPeerTypeBroadcast;
     export type TypeInputInvoice = InputInvoiceMessage | InputInvoiceSlug;
+    export type TypeInputStorePaymentPurpose =
+        | InputStorePaymentPremiumSubscription
+        | InputStorePaymentGiftPremium;
+    export type TypePremiumGiftOption = PremiumGiftOption;
+    export type TypePaymentFormMethod = PaymentFormMethod;
     export type TypeResPQ = ResPQ;
     export type TypeP_Q_inner_data =
         | PQInnerData
@@ -23022,6 +23252,9 @@ export namespace Api {
         | messages.SendWebViewData
         | messages.TranscribeAudio
         | messages.RateTranscribedAudio
+        | messages.GetCustomEmojiDocuments
+        | messages.GetEmojiStickers
+        | messages.GetFeaturedEmojiStickers
         | updates.GetState
         | updates.GetDifference
         | updates.GetChannelDifference
@@ -23120,7 +23353,6 @@ export namespace Api {
         | payments.ExportInvoice
         | payments.AssignAppStoreTransaction
         | payments.AssignPlayMarketTransaction
-        | payments.RestorePlayMarketReceipt
         | payments.CanPurchasePremium
         | payments.RequestRecurringPayment
         | stickers.CreateStickerSet

+ 27 - 12
gramjs/tl/apiTl.js

@@ -136,6 +136,7 @@ messageActionSetChatTheme#aa786345 emoticon:string = MessageAction;
 messageActionChatJoinedByRequest#ebbca3cb = MessageAction;
 messageActionWebViewDataSentMe#47dd8079 text:string data:string = MessageAction;
 messageActionWebViewDataSent#b4c38cb5 text:string = MessageAction;
+messageActionGiftPremium#aba0f5c6 currency:string amount:long months:int = MessageAction;
 dialog#a8edd0f5 flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int = Dialog;
 dialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog;
 photoEmpty#2331b22d id:long = Photo;
@@ -171,7 +172,7 @@ inputReportReasonGeoIrrelevant#dbd4feed = ReportReason;
 inputReportReasonFake#f5ddd6e7 = ReportReason;
 inputReportReasonIllegalDrugs#a8eb2be = ReportReason;
 inputReportReasonPersonalDetails#9ec7863d = ReportReason;
-userFull#8c72ea81 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights = UserFull;
+userFull#c4b1fc3f flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> = UserFull;
 contact#145ade0b user_id:long mutual:Bool = Contact;
 importedContact#c13e3c50 user_id:long client_id:long = ImportedContact;
 contactStatus#16d9703b user_id:long status:UserStatus = ContactStatus;
@@ -240,7 +241,7 @@ updateDeleteChannelMessages#c32d5b12 channel_id:long messages:Vector<int> pts:in
 updateChannelMessageViews#f226ac08 channel_id:long id:int views:int = Update;
 updateChatParticipantAdmin#d7ca61a2 chat_id:long user_id:long is_admin:Bool version:int = Update;
 updateNewStickerSet#688a30aa stickerset:messages.StickerSet = Update;
-updateStickerSetsOrder#bb2d201 flags:# masks:flags.0?true order:Vector<long> = Update;
+updateStickerSetsOrder#bb2d201 flags:# masks:flags.0?true emojis:flags.1?true order:Vector<long> = Update;
 updateStickerSets#43ae3dec = Update;
 updateSavedGifs#9375341e = Update;
 updateBotInlineQuery#496f379c flags:# query_id:long user_id:long query:string geo:flags.0?GeoPoint peer_type:flags.1?InlineQueryPeerType offset:string = Update;
@@ -309,6 +310,7 @@ updateWebViewResultSent#1592b79d query_id:long = Update;
 updateBotMenuButton#14b85813 bot_id:long button:BotMenuButton = Update;
 updateSavedRingtones#74d8be99 = Update;
 updateTranscribedAudio#84cd5a flags:# pending:flags.0?true peer:Peer msg_id:int transcription_id:long text:string = Update;
+updateReadFeaturedEmojiStickers#fb4c496c = Update;
 updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
 updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;
 updates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
@@ -386,6 +388,7 @@ inputPrivacyKeyForwards#a4dd4c08 = InputPrivacyKey;
 inputPrivacyKeyProfilePhoto#5719bacc = InputPrivacyKey;
 inputPrivacyKeyPhoneNumber#352dafa = InputPrivacyKey;
 inputPrivacyKeyAddedByPhone#d1219bdd = InputPrivacyKey;
+inputPrivacyKeyVoiceMessages#aee69d68 = InputPrivacyKey;
 privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
 privacyKeyChatInvite#500e6dfa = PrivacyKey;
 privacyKeyPhoneCall#3d662b7b = PrivacyKey;
@@ -394,6 +397,7 @@ privacyKeyForwards#69ec56a3 = PrivacyKey;
 privacyKeyProfilePhoto#96151fed = PrivacyKey;
 privacyKeyPhoneNumber#d19ae46d = PrivacyKey;
 privacyKeyAddedByPhone#42ffd42b = PrivacyKey;
+privacyKeyVoiceMessages#697f414 = PrivacyKey;
 inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
 inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
 inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
@@ -419,6 +423,7 @@ documentAttributeVideo#ef02ce6 flags:# round_message:flags.0?true supports_strea
 documentAttributeAudio#9852f9c6 flags:# voice:flags.10?true duration:int title:flags.0?string performer:flags.1?string waveform:flags.2?bytes = DocumentAttribute;
 documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
 documentAttributeHasStickers#9801d2f7 = DocumentAttribute;
+documentAttributeCustomEmoji#fd149899 flags:# free:flags.0?true alt:string stickerset:InputStickerSet = DocumentAttribute;
 messages.stickersNotModified#f1749a22 = messages.Stickers;
 messages.stickers#30a6ec7e hash:long stickers:Vector<Document> = messages.Stickers;
 stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
@@ -447,7 +452,8 @@ inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;
 inputStickerSetAnimatedEmoji#28703c8 = InputStickerSet;
 inputStickerSetDice#e67f520e emoticon:string = InputStickerSet;
 inputStickerSetAnimatedEmojiAnimations#cde3739 = InputStickerSet;
-stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet;
+inputStickerSetPremiumGifts#c88b3b02 = InputStickerSet;
+stickerSet#2dd14edc flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true emojis:flags.7?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int thumb_document_id:flags.8?long count:int hash:int = StickerSet;
 messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet;
 messages.stickerSetNotModified#d3f924eb = messages.StickerSet;
 botCommand#c27ac8c7 command:string description:string = BotCommand;
@@ -492,6 +498,7 @@ messageEntityStrike#bf0693d4 offset:int length:int = MessageEntity;
 messageEntityBlockquote#20df5d0 offset:int length:int = MessageEntity;
 messageEntityBankCard#761e6af4 offset:int length:int = MessageEntity;
 messageEntitySpoiler#32ca960f offset:int length:int = MessageEntity;
+messageEntityCustomEmoji#c8cf05f8 offset:int length:int document_id:long = MessageEntity;
 inputChannelEmpty#ee8c1e86 = InputChannel;
 inputChannel#f35aec28 channel_id:long access_hash:long = InputChannel;
 inputChannelFromMessage#5b934f9d peer:InputPeer msg_id:int channel_id:long = InputChannel;
@@ -575,7 +582,7 @@ contacts.topPeersDisabled#b52c939d = contacts.TopPeers;
 draftMessageEmpty#1b0c841a flags:# date:flags.0?int = DraftMessage;
 draftMessage#fd8e711f flags:# no_webpage:flags.1?true reply_to_msg_id:flags.0?int message:string entities:flags.3?Vector<MessageEntity> date:int = DraftMessage;
 messages.featuredStickersNotModified#c6dc0c66 count:int = messages.FeaturedStickers;
-messages.featuredStickers#84c02310 hash:long count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;
+messages.featuredStickers#be382906 flags:# premium:flags.0?true hash:long count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;
 messages.recentStickersNotModified#b17f890 = messages.RecentStickers;
 messages.recentStickers#88d37c56 hash:long packs:Vector<StickerPack> stickers:Vector<Document> dates:Vector<int> = messages.RecentStickers;
 messages.archivedStickers#4fcba9c8 count:int sets:Vector<StickerSetCovered> = messages.ArchivedStickers;
@@ -583,6 +590,7 @@ messages.stickerSetInstallResultSuccess#38641628 = messages.StickerSetInstallRes
 messages.stickerSetInstallResultArchive#35e410a8 sets:Vector<StickerSetCovered> = messages.StickerSetInstallResult;
 stickerSetCovered#6410a5d2 set:StickerSet cover:Document = StickerSetCovered;
 stickerSetMultiCovered#3407e51b set:StickerSet covers:Vector<Document> = StickerSetCovered;
+stickerSetFullCovered#1aed5ee5 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = StickerSetCovered;
 maskCoords#aed6dbb2 n:int x:double y:double zoom:double = MaskCoords;
 inputStickeredMediaPhoto#4a992157 id:InputPhoto = InputStickeredMedia;
 inputStickeredMediaDocument#438865b id:InputDocument = InputStickeredMedia;
@@ -652,8 +660,9 @@ webDocumentNoProxy#f9c8bcc6 url:string size:int mime_type:string attributes:Vect
 inputWebDocument#9bed434d url:string size:int mime_type:string attributes:Vector<DocumentAttribute> = InputWebDocument;
 inputWebFileLocation#c239d686 url:string access_hash:long = InputWebFileLocation;
 inputWebFileGeoPointLocation#9f2221c9 geo_point:InputGeoPoint access_hash:long w:int h:int zoom:int scale:int = InputWebFileLocation;
+inputWebFileAudioAlbumThumbLocation#f46fe924 flags:# small:flags.2?true document:flags.0?InputDocument title:flags.1?string performer:flags.1?string = InputWebFileLocation;
 upload.webFile#21e753bc size:int mime_type:string file_type:storage.FileType mtime:int bytes:bytes = upload.WebFile;
-payments.paymentForm#b0133b37 flags:# can_save_credentials:flags.2?true password_missing:flags.3?true form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice provider_id:long url:string native_provider:flags.4?string native_params:flags.4?DataJSON saved_info:flags.0?PaymentRequestedInfo saved_credentials:flags.1?PaymentSavedCredentials users:Vector<User> = payments.PaymentForm;
+payments.paymentForm#a0058751 flags:# can_save_credentials:flags.2?true password_missing:flags.3?true form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice provider_id:long url:string native_provider:flags.4?string native_params:flags.4?DataJSON additional_methods:flags.6?Vector<PaymentFormMethod> saved_info:flags.0?PaymentRequestedInfo saved_credentials:flags.1?Vector<PaymentSavedCredentials> users:Vector<User> = payments.PaymentForm;
 payments.validatedRequestedInfo#d1451883 flags:# id:flags.0?string shipping_options:flags.1?Vector<ShippingOption> = payments.ValidatedRequestedInfo;
 payments.paymentResult#4e5f810d updates:Updates = payments.PaymentResult;
 payments.paymentVerificationNeeded#d8411139 url:string = payments.PaymentResult;
@@ -999,6 +1008,10 @@ inputInvoiceSlug#c326caef slug:string = InputInvoice;
 payments.exportedInvoice#aed0cbd9 url:string = payments.ExportedInvoice;
 messages.transcribedAudio#93752c52 flags:# pending:flags.0?true transcription_id:long text:string = messages.TranscribedAudio;
 help.premiumPromo#8a4f3c29 status_text:string status_entities:Vector<MessageEntity> video_sections:Vector<string> videos:Vector<Document> currency:string monthly_amount:long users:Vector<User> = help.PremiumPromo;
+inputStorePaymentPremiumSubscription#a6751e66 flags:# restore:flags.0?true = InputStorePaymentPurpose;
+inputStorePaymentGiftPremium#616f7fe8 user_id:InputUser currency:string amount:long = InputStorePaymentPurpose;
+premiumGiftOption#74c34319 flags:# months:int currency:string amount:long bot_url:string store_product:flags.0?string = PremiumGiftOption;
+paymentFormMethod#88f8f21b url:string title:string = PaymentFormMethod;
 ---functions---
 invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
 invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector<long> query:!X = X;
@@ -1039,7 +1052,7 @@ account.checkUsername#2714d86c username:string = Bool;
 account.updateUsername#3e0bdd7c username:string = User;
 account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
 account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
-account.deleteAccount#418d4e0b reason:string = Bool;
+account.deleteAccount#a2c0cf74 flags:# reason:string password:flags.0?InputCheckPasswordSRP = Bool;
 account.getAccountTTL#8fc711d = AccountDaysTTL;
 account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
 account.sendChangePhoneCode#82574ae5 phone_number:string settings:CodeSettings = auth.SentCode;
@@ -1174,7 +1187,7 @@ messages.getMessagesViews#5784d3e1 peer:InputPeer id:Vector<int> increment:Bool
 messages.editChatAdmin#a85bd1c2 chat_id:long user_id:InputUser is_admin:Bool = Bool;
 messages.migrateChat#a2875319 chat_id:long = Updates;
 messages.searchGlobal#4bc6589a flags:# folder_id:flags.0?int q:string filter:MessagesFilter min_date:int max_date:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
-messages.reorderStickerSets#78337739 flags:# masks:flags.0?true order:Vector<long> = Bool;
+messages.reorderStickerSets#78337739 flags:# masks:flags.0?true emojis:flags.1?true order:Vector<long> = Bool;
 messages.getDocumentByHash#b1f2061f sha256:bytes size:long mime_type:string = Document;
 messages.getSavedGifs#5cf09635 hash:long = messages.SavedGifs;
 messages.saveGif#327a30cb id:InputDocument unsave:Bool = Bool;
@@ -1194,7 +1207,7 @@ messages.readFeaturedStickers#5b118126 id:Vector<long> = Bool;
 messages.getRecentStickers#9da9403b flags:# attached:flags.0?true hash:long = messages.RecentStickers;
 messages.saveRecentSticker#392718f8 flags:# attached:flags.0?true id:InputDocument unsave:Bool = Bool;
 messages.clearRecentStickers#8999602d flags:# attached:flags.0?true = Bool;
-messages.getArchivedStickers#57f17692 flags:# masks:flags.0?true offset_id:long limit:int = messages.ArchivedStickers;
+messages.getArchivedStickers#57f17692 flags:# masks:flags.0?true emojis:flags.1?true offset_id:long limit:int = messages.ArchivedStickers;
 messages.getMaskStickers#640f82b8 hash:long = messages.AllStickers;
 messages.getAttachedStickers#cc5b67cc media:InputStickeredMedia = Vector<StickerSetCovered>;
 messages.setGameScore#8ef8ecc0 flags:# edit_message:flags.0?true force:flags.1?true peer:InputPeer id:int user_id:InputUser score:int = Updates;
@@ -1295,6 +1308,9 @@ messages.sendWebViewResultMessage#a4314f5 bot_query_id:string result:InputBotInl
 messages.sendWebViewData#dc0242c8 bot:InputUser random_id:long button_text:string data:string = Updates;
 messages.transcribeAudio#269e9a49 peer:InputPeer msg_id:int = messages.TranscribedAudio;
 messages.rateTranscribedAudio#7f1d072f peer:InputPeer msg_id:int transcription_id:long good:Bool = Bool;
+messages.getCustomEmojiDocuments#d9ab0f54 document_id:Vector<long> = Vector<Document>;
+messages.getEmojiStickers#fbfca18f hash:long = messages.AllStickers;
+messages.getFeaturedEmojiStickers#ecf6736 hash:long = messages.FeaturedStickers;
 updates.getState#edd4882a = updates.State;
 updates.getDifference#25939651 flags:# pts:int pts_total_limit:flags.0?int date:int qts:int = updates.Difference;
 updates.getChannelDifference#3173d78 flags:# force:flags.0?true channel:InputChannel filter:ChannelMessagesFilter pts:int limit:int = updates.ChannelDifference;
@@ -1391,10 +1407,9 @@ payments.getSavedInfo#227d824b = payments.SavedInfo;
 payments.clearSavedInfo#d83d70c1 flags:# credentials:flags.0?true info:flags.1?true = Bool;
 payments.getBankCardData#2e79d779 number:string = payments.BankCardData;
 payments.exportInvoice#f91b065 invoice_media:InputMedia = payments.ExportedInvoice;
-payments.assignAppStoreTransaction#fec13c6 flags:# restore:flags.0?true transaction_id:string receipt:bytes = Updates;
-payments.assignPlayMarketTransaction#4faa4aed purchase_token:string = Updates;
-payments.restorePlayMarketReceipt#d164e36a receipt:bytes = Updates;
-payments.canPurchasePremium#aa6a90c8 = Bool;
+payments.assignAppStoreTransaction#80ed747d receipt:bytes purpose:InputStorePaymentPurpose = Updates;
+payments.assignPlayMarketTransaction#dffd50d3 receipt:DataJSON purpose:InputStorePaymentPurpose = Updates;
+payments.canPurchasePremium#9fc19eb6 purpose:InputStorePaymentPurpose = Bool;
 payments.requestRecurringPayment#146e958d user_id:InputUser recurring_init_charge:string invoice_media:InputMedia = Updates;
 stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true videos:flags.4?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet;
 stickers.removeStickerFromSet#f7760f51 sticker:InputDocument = messages.StickerSet;

+ 31 - 13
gramjs/tl/static/api.tl

@@ -191,6 +191,7 @@ messageActionSetChatTheme#aa786345 emoticon:string = MessageAction;
 messageActionChatJoinedByRequest#ebbca3cb = MessageAction;
 messageActionWebViewDataSentMe#47dd8079 text:string data:string = MessageAction;
 messageActionWebViewDataSent#b4c38cb5 text:string = MessageAction;
+messageActionGiftPremium#aba0f5c6 currency:string amount:long months:int = MessageAction;
 
 dialog#a8edd0f5 flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int = Dialog;
 dialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog;
@@ -240,7 +241,7 @@ inputReportReasonFake#f5ddd6e7 = ReportReason;
 inputReportReasonIllegalDrugs#a8eb2be = ReportReason;
 inputReportReasonPersonalDetails#9ec7863d = ReportReason;
 
-userFull#8c72ea81 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights = UserFull;
+userFull#c4b1fc3f flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> = UserFull;
 
 contact#145ade0b user_id:long mutual:Bool = Contact;
 
@@ -322,7 +323,7 @@ updateDeleteChannelMessages#c32d5b12 channel_id:long messages:Vector<int> pts:in
 updateChannelMessageViews#f226ac08 channel_id:long id:int views:int = Update;
 updateChatParticipantAdmin#d7ca61a2 chat_id:long user_id:long is_admin:Bool version:int = Update;
 updateNewStickerSet#688a30aa stickerset:messages.StickerSet = Update;
-updateStickerSetsOrder#bb2d201 flags:# masks:flags.0?true order:Vector<long> = Update;
+updateStickerSetsOrder#bb2d201 flags:# masks:flags.0?true emojis:flags.1?true order:Vector<long> = Update;
 updateStickerSets#43ae3dec = Update;
 updateSavedGifs#9375341e = Update;
 updateBotInlineQuery#496f379c flags:# query_id:long user_id:long query:string geo:flags.0?GeoPoint peer_type:flags.1?InlineQueryPeerType offset:string = Update;
@@ -391,6 +392,7 @@ updateWebViewResultSent#1592b79d query_id:long = Update;
 updateBotMenuButton#14b85813 bot_id:long button:BotMenuButton = Update;
 updateSavedRingtones#74d8be99 = Update;
 updateTranscribedAudio#84cd5a flags:# pending:flags.0?true peer:Peer msg_id:int transcription_id:long text:string = Update;
+updateReadFeaturedEmojiStickers#fb4c496c = Update;
 
 updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
 
@@ -493,6 +495,7 @@ inputPrivacyKeyForwards#a4dd4c08 = InputPrivacyKey;
 inputPrivacyKeyProfilePhoto#5719bacc = InputPrivacyKey;
 inputPrivacyKeyPhoneNumber#352dafa = InputPrivacyKey;
 inputPrivacyKeyAddedByPhone#d1219bdd = InputPrivacyKey;
+inputPrivacyKeyVoiceMessages#aee69d68 = InputPrivacyKey;
 
 privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
 privacyKeyChatInvite#500e6dfa = PrivacyKey;
@@ -502,6 +505,7 @@ privacyKeyForwards#69ec56a3 = PrivacyKey;
 privacyKeyProfilePhoto#96151fed = PrivacyKey;
 privacyKeyPhoneNumber#d19ae46d = PrivacyKey;
 privacyKeyAddedByPhone#42ffd42b = PrivacyKey;
+privacyKeyVoiceMessages#697f414 = PrivacyKey;
 
 inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
 inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
@@ -532,6 +536,7 @@ documentAttributeVideo#ef02ce6 flags:# round_message:flags.0?true supports_strea
 documentAttributeAudio#9852f9c6 flags:# voice:flags.10?true duration:int title:flags.0?string performer:flags.1?string waveform:flags.2?bytes = DocumentAttribute;
 documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
 documentAttributeHasStickers#9801d2f7 = DocumentAttribute;
+documentAttributeCustomEmoji#fd149899 flags:# free:flags.0?true alt:string stickerset:InputStickerSet = DocumentAttribute;
 
 messages.stickersNotModified#f1749a22 = messages.Stickers;
 messages.stickers#30a6ec7e hash:long stickers:Vector<Document> = messages.Stickers;
@@ -575,8 +580,9 @@ inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;
 inputStickerSetAnimatedEmoji#28703c8 = InputStickerSet;
 inputStickerSetDice#e67f520e emoticon:string = InputStickerSet;
 inputStickerSetAnimatedEmojiAnimations#cde3739 = InputStickerSet;
+inputStickerSetPremiumGifts#c88b3b02 = InputStickerSet;
 
-stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet;
+stickerSet#2dd14edc flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true emojis:flags.7?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int thumb_document_id:flags.8?long count:int hash:int = StickerSet;
 
 messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet;
 messages.stickerSetNotModified#d3f924eb = messages.StickerSet;
@@ -628,6 +634,7 @@ messageEntityStrike#bf0693d4 offset:int length:int = MessageEntity;
 messageEntityBlockquote#20df5d0 offset:int length:int = MessageEntity;
 messageEntityBankCard#761e6af4 offset:int length:int = MessageEntity;
 messageEntitySpoiler#32ca960f offset:int length:int = MessageEntity;
+messageEntityCustomEmoji#c8cf05f8 offset:int length:int document_id:long = MessageEntity;
 
 inputChannelEmpty#ee8c1e86 = InputChannel;
 inputChannel#f35aec28 channel_id:long access_hash:long = InputChannel;
@@ -742,7 +749,7 @@ draftMessageEmpty#1b0c841a flags:# date:flags.0?int = DraftMessage;
 draftMessage#fd8e711f flags:# no_webpage:flags.1?true reply_to_msg_id:flags.0?int message:string entities:flags.3?Vector<MessageEntity> date:int = DraftMessage;
 
 messages.featuredStickersNotModified#c6dc0c66 count:int = messages.FeaturedStickers;
-messages.featuredStickers#84c02310 hash:long count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;
+messages.featuredStickers#be382906 flags:# premium:flags.0?true hash:long count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;
 
 messages.recentStickersNotModified#b17f890 = messages.RecentStickers;
 messages.recentStickers#88d37c56 hash:long packs:Vector<StickerPack> stickers:Vector<Document> dates:Vector<int> = messages.RecentStickers;
@@ -754,6 +761,7 @@ messages.stickerSetInstallResultArchive#35e410a8 sets:Vector<StickerSetCovered>
 
 stickerSetCovered#6410a5d2 set:StickerSet cover:Document = StickerSetCovered;
 stickerSetMultiCovered#3407e51b set:StickerSet covers:Vector<Document> = StickerSetCovered;
+stickerSetFullCovered#1aed5ee5 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = StickerSetCovered;
 
 maskCoords#aed6dbb2 n:int x:double y:double zoom:double = MaskCoords;
 
@@ -842,10 +850,11 @@ inputWebDocument#9bed434d url:string size:int mime_type:string attributes:Vector
 
 inputWebFileLocation#c239d686 url:string access_hash:long = InputWebFileLocation;
 inputWebFileGeoPointLocation#9f2221c9 geo_point:InputGeoPoint access_hash:long w:int h:int zoom:int scale:int = InputWebFileLocation;
+inputWebFileAudioAlbumThumbLocation#f46fe924 flags:# small:flags.2?true document:flags.0?InputDocument title:flags.1?string performer:flags.1?string = InputWebFileLocation;
 
 upload.webFile#21e753bc size:int mime_type:string file_type:storage.FileType mtime:int bytes:bytes = upload.WebFile;
 
-payments.paymentForm#b0133b37 flags:# can_save_credentials:flags.2?true password_missing:flags.3?true form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice provider_id:long url:string native_provider:flags.4?string native_params:flags.4?DataJSON saved_info:flags.0?PaymentRequestedInfo saved_credentials:flags.1?PaymentSavedCredentials users:Vector<User> = payments.PaymentForm;
+payments.paymentForm#a0058751 flags:# can_save_credentials:flags.2?true password_missing:flags.3?true form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice provider_id:long url:string native_provider:flags.4?string native_params:flags.4?DataJSON additional_methods:flags.6?Vector<PaymentFormMethod> saved_info:flags.0?PaymentRequestedInfo saved_credentials:flags.1?Vector<PaymentSavedCredentials> users:Vector<User> = payments.PaymentForm;
 
 payments.validatedRequestedInfo#d1451883 flags:# id:flags.0?string shipping_options:flags.1?Vector<ShippingOption> = payments.ValidatedRequestedInfo;
 
@@ -1387,6 +1396,13 @@ messages.transcribedAudio#93752c52 flags:# pending:flags.0?true transcription_id
 
 help.premiumPromo#8a4f3c29 status_text:string status_entities:Vector<MessageEntity> video_sections:Vector<string> videos:Vector<Document> currency:string monthly_amount:long users:Vector<User> = help.PremiumPromo;
 
+inputStorePaymentPremiumSubscription#a6751e66 flags:# restore:flags.0?true = InputStorePaymentPurpose;
+inputStorePaymentGiftPremium#616f7fe8 user_id:InputUser currency:string amount:long = InputStorePaymentPurpose;
+
+premiumGiftOption#74c34319 flags:# months:int currency:string amount:long bot_url:string store_product:flags.0?string = PremiumGiftOption;
+
+paymentFormMethod#88f8f21b url:string title:string = PaymentFormMethod;
+
 ---functions---
 
 invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
@@ -1430,7 +1446,7 @@ account.checkUsername#2714d86c username:string = Bool;
 account.updateUsername#3e0bdd7c username:string = User;
 account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
 account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
-account.deleteAccount#418d4e0b reason:string = Bool;
+account.deleteAccount#a2c0cf74 flags:# reason:string password:flags.0?InputCheckPasswordSRP = Bool;
 account.getAccountTTL#8fc711d = AccountDaysTTL;
 account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
 account.sendChangePhoneCode#82574ae5 phone_number:string settings:CodeSettings = auth.SentCode;
@@ -1568,7 +1584,7 @@ messages.getMessagesViews#5784d3e1 peer:InputPeer id:Vector<int> increment:Bool
 messages.editChatAdmin#a85bd1c2 chat_id:long user_id:InputUser is_admin:Bool = Bool;
 messages.migrateChat#a2875319 chat_id:long = Updates;
 messages.searchGlobal#4bc6589a flags:# folder_id:flags.0?int q:string filter:MessagesFilter min_date:int max_date:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
-messages.reorderStickerSets#78337739 flags:# masks:flags.0?true order:Vector<long> = Bool;
+messages.reorderStickerSets#78337739 flags:# masks:flags.0?true emojis:flags.1?true order:Vector<long> = Bool;
 messages.getDocumentByHash#b1f2061f sha256:bytes size:long mime_type:string = Document;
 messages.getSavedGifs#5cf09635 hash:long = messages.SavedGifs;
 messages.saveGif#327a30cb id:InputDocument unsave:Bool = Bool;
@@ -1588,7 +1604,7 @@ messages.readFeaturedStickers#5b118126 id:Vector<long> = Bool;
 messages.getRecentStickers#9da9403b flags:# attached:flags.0?true hash:long = messages.RecentStickers;
 messages.saveRecentSticker#392718f8 flags:# attached:flags.0?true id:InputDocument unsave:Bool = Bool;
 messages.clearRecentStickers#8999602d flags:# attached:flags.0?true = Bool;
-messages.getArchivedStickers#57f17692 flags:# masks:flags.0?true offset_id:long limit:int = messages.ArchivedStickers;
+messages.getArchivedStickers#57f17692 flags:# masks:flags.0?true emojis:flags.1?true offset_id:long limit:int = messages.ArchivedStickers;
 messages.getMaskStickers#640f82b8 hash:long = messages.AllStickers;
 messages.getAttachedStickers#cc5b67cc media:InputStickeredMedia = Vector<StickerSetCovered>;
 messages.setGameScore#8ef8ecc0 flags:# edit_message:flags.0?true force:flags.1?true peer:InputPeer id:int user_id:InputUser score:int = Updates;
@@ -1689,6 +1705,9 @@ messages.sendWebViewResultMessage#a4314f5 bot_query_id:string result:InputBotInl
 messages.sendWebViewData#dc0242c8 bot:InputUser random_id:long button_text:string data:string = Updates;
 messages.transcribeAudio#269e9a49 peer:InputPeer msg_id:int = messages.TranscribedAudio;
 messages.rateTranscribedAudio#7f1d072f peer:InputPeer msg_id:int transcription_id:long good:Bool = Bool;
+messages.getCustomEmojiDocuments#d9ab0f54 document_id:Vector<long> = Vector<Document>;
+messages.getEmojiStickers#fbfca18f hash:long = messages.AllStickers;
+messages.getFeaturedEmojiStickers#ecf6736 hash:long = messages.FeaturedStickers;
 
 updates.getState#edd4882a = updates.State;
 updates.getDifference#25939651 flags:# pts:int pts_total_limit:flags.0?int date:int qts:int = updates.Difference;
@@ -1792,10 +1811,9 @@ payments.getSavedInfo#227d824b = payments.SavedInfo;
 payments.clearSavedInfo#d83d70c1 flags:# credentials:flags.0?true info:flags.1?true = Bool;
 payments.getBankCardData#2e79d779 number:string = payments.BankCardData;
 payments.exportInvoice#f91b065 invoice_media:InputMedia = payments.ExportedInvoice;
-payments.assignAppStoreTransaction#fec13c6 flags:# restore:flags.0?true transaction_id:string receipt:bytes = Updates;
-payments.assignPlayMarketTransaction#4faa4aed purchase_token:string = Updates;
-payments.restorePlayMarketReceipt#d164e36a receipt:bytes = Updates;
-payments.canPurchasePremium#aa6a90c8 = Bool;
+payments.assignAppStoreTransaction#80ed747d receipt:bytes purpose:InputStorePaymentPurpose = Updates;
+payments.assignPlayMarketTransaction#dffd50d3 receipt:DataJSON purpose:InputStorePaymentPurpose = Updates;
+payments.canPurchasePremium#9fc19eb6 purpose:InputStorePaymentPurpose = Bool;
 payments.requestRecurringPayment#146e958d user_id:InputUser recurring_init_charge:string invoice_media:InputMedia = Updates;
 
 stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true videos:flags.4?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet;
@@ -1853,4 +1871,4 @@ stats.getMegagroupStats#dcdf8607 flags:# dark:flags.0?true channel:InputChannel
 stats.getMessagePublicForwards#5630281b channel:InputChannel msg_id:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
 stats.getMessageStats#b6e0a3f5 flags:# dark:flags.0?true channel:InputChannel msg_id:int = stats.MessageStats;
 
-// LAYER 143
+// LAYER 144

+ 2 - 2
package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "telegram",
-  "version": "2.10.8",
+  "version": "2.11.0",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "telegram",
-      "version": "2.10.8",
+      "version": "2.11.0",
       "license": "MIT",
       "dependencies": {
         "@cryptography/aes": "^0.1.1",

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "telegram",
-  "version": "2.10.8",
+  "version": "2.11.0",
   "description": "NodeJS/Browser MTProto API Telegram client library,",
   "main": "index.js",
   "types": "index.d.ts",