From 66c20f9a29af4caf25609b32989b5d20b94cd58a Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sun, 25 Apr 2021 05:19:36 +0000 Subject: [PATCH] Update content of files --- data/core.telegram.org/api/geochats.html | 115 -- data/core.telegram.org/api/layers.html | 1446 ----------------- data/core.telegram.org/api/requests.html | 133 -- .../schema/end-to-end-json.html | 1 + 4 files changed, 1 insertion(+), 1694 deletions(-) delete mode 100644 data/core.telegram.org/api/geochats.html delete mode 100644 data/core.telegram.org/api/layers.html delete mode 100644 data/core.telegram.org/api/requests.html create mode 100644 data/core.telegram.org/schema/end-to-end-json.html diff --git a/data/core.telegram.org/api/geochats.html b/data/core.telegram.org/api/geochats.html deleted file mode 100644 index 703ed750f7..0000000000 --- a/data/core.telegram.org/api/geochats.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - Nope - - - - - - - - - - - - - -
- -
-
-
- -

Nope

- -

Deprecated old docs. This was definitely not the droid you were looking for.

- -
- -
-
- -
- - - - - - diff --git a/data/core.telegram.org/api/layers.html b/data/core.telegram.org/api/layers.html deleted file mode 100644 index c0e81d1050..0000000000 --- a/data/core.telegram.org/api/layers.html +++ /dev/null @@ -1,1446 +0,0 @@ - - - - - Layers - - - - - - - - - - - - - -
- -
-
-
- -

Layers

- -
- -

Below you will find information on scheme changes. For more details on the use of layers, see Invoking API methods.

-

Layer 121

-

Added SVG path previews for animated stickers.

-

Scheme changes

-
New Constructors
-
    -
  • Added photoPathSize - Messages with animated stickers can have a compressed svg (< 300 bytes) to show the outline of the sticker before fetching the actual lottie animation.
  • -
-

Scheme

-
photoPathSize#d8214d41 type:string bytes:bytes = PhotoSize;
-

Layer 120

-

Added message statistics, and a method to unpin all pinned messages in a chat.

-

Scheme changes

-
New Methods
- -
Changed Methods
-
    -
  • Changed type of from_id from flags.0?InputUser to flags.0?InputPeer in messages.search
  • -
-
New Constructors
- -
Changed Constructors
- -
Deleted Constructors
-
    -
  • Removed updateChannelPinnedMessage
  • -
  • Removed updateUserPinnedMessage
  • -
  • Removed updateChatPinnedMessage
  • -
-

PUSH notification changes

-
New PUSH notifications
- -

Scheme

-
inputGeoPoint#48222faf flags:# lat:double long:double accuracy_radius:flags.0?int = InputGeoPoint;
-geoPoint#b2a2f663 flags:# long:double lat:double access_hash:long accuracy_radius:flags.0?int = GeoPoint;
-messages.messagesSlice#3a54685e flags:# inexact:flags.1?true count:int next_rate:flags.0?int offset_id_offset:flags.2?int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages; -messages.channelMessages#64479808 flags:# inexact:flags.1?true pts:int count:int offset_id_offset:flags.2?int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
-inputBotInlineMessageMediaGeo#96929a85 flags:# geo_point:InputGeoPoint heading:flags.0?int period:flags.1?int proximity_notification_radius:flags.3?int reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;
-botInlineMessageMediaGeo#051846fd flags:# geo:GeoPoint heading:flags.0?int period:flags.1?int proximity_notification_radius:flags.3?int reply_markup:flags.2?ReplyMarkup = BotInlineMessage;
-inputMediaGeoLive#971fa843 flags:# stopped:flags.0?true geo_point:InputGeoPoint heading:flags.2?int period:flags.1?int proximity_notification_radius:flags.3?int = InputMedia;
-messageMediaGeoLive#b940c666 flags:# geo:GeoPoint heading:flags.0?int period:int proximity_notification_radius:flags.1?int = MessageMedia;
-inputMessageCallbackQuery#acfa1a7e id:int query_id:long = InputMessage;
-channelParticipantLeft#c3c6796b user_id:int = ChannelParticipant; -channelParticipantsMentions#e04b5ceb flags:# q:flags.0?string top_msg_id:flags.1?int = ChannelParticipantsFilter;
-updatePinnedMessages#ed85eab5 flags:# pinned:flags.0?true peer:Peer messages:Vector<int> pts:int pts_count:int = Update; -updatePinnedChannelMessages#8588878b flags:# pinned:flags.0?true channel_id:int messages:Vector<int> pts:int pts_count:int = Update;
-inputMessagesFilterPinned#1bb00451 = MessagesFilter;
-stats.messageStats#8999f295 views_graph:StatsGraph = stats.MessageStats;
-messageActionGeoProximityReached#98e0d697 from_id:Peer to_id:Peer distance:int = MessageAction;
----functions---
-messages.search#0c352eec flags:# peer:InputPeer q:string from_id:flags.0?InputPeer top_msg_id:flags.1?int filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:int = messages.Messages;
-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;
-messages.unpinAllMessages#f025bc8b peer:InputPeer = messages.AffectedHistory;
-

Layer 119

-

Added message threads and comment sections in channel posts.

-

Scheme changes

-
New Methods
- -
Changed Methods
- -
New Constructors
- -
Changed Constructors
-
    -
  • Added pinned, peer_id, reply_to, forwards, replies parameters, removed to_id, reply_to_msg_id parameters, changed type of from_id from flags.8?int to flags.8?Peer in message
  • -
  • Added peer_id, reply_to parameters, removed to_id, reply_to_msg_id parameters, changed type of from_id from flags.8?int to flags.8?Peer in messageService
  • -
  • Added chats parameter, changed type of blocked from Vector<ContactBlocked> to Vector<PeerBlocked> in contacts.blocked
  • -
  • Added chats parameter, changed type of blocked from Vector<ContactBlocked> to Vector<PeerBlocked> in contacts.blockedSlice
  • -
  • Added reply_to parameter, removed reply_to_msg_id parameter in updateShortMessage
  • -
  • Added reply_to parameter, removed reply_to_msg_id parameter in updateShortChatMessage
  • -
  • Added admin_rights parameter in channelParticipantCreator
  • -
  • Removed channel_id parameter, changed type of from_id from flags.0?int to flags.0?Peer in messageFwdHeader
  • -
-
Deleted Constructors
-
    -
  • Removed contactBlocked
  • -
  • Removed updateUserBlocked
  • -
-

Scheme

-
message#58ae39c9 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> = Message;
-messageService#286fa604 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true legacy:flags.19?true id:int from_id:flags.8?Peer peer_id:Peer reply_to:flags.3?MessageReplyHeader date:int action:MessageAction = Message;
-contacts.blocked#0ade1591 blocked:Vector<PeerBlocked> chats:Vector<Chat> users:Vector<User> = contacts.Blocked; -contacts.blockedSlice#e1664194 count:int blocked:Vector<PeerBlocked> chats:Vector<Chat> users:Vector<User> = contacts.Blocked;
-updateShortMessage#2296d2c8 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int user_id:int message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> = Updates; -updateShortChatMessage#402d5dbb flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> = Updates;
-channelParticipantCreator#447dca4b flags:# user_id:int admin_rights:ChatAdminRights rank:flags.0?string = ChannelParticipant;
-messageFwdHeader#5f777dce flags:# from_id:flags.0?Peer from_name:flags.5?string date:int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int psa_type:flags.6?string = MessageFwdHeader; -messageViews#455b853d flags:# views:flags.0?int forwards:flags.1?int replies:flags.2?MessageReplies = MessageViews;
-updateChannelMessageForwards#6e8a84df channel_id:int id:int forwards:int = Update;
-photoSizeProgressive#5aa86a51 type:string location:FileLocation w:int h:int sizes:Vector<int> = PhotoSize;
-messages.messageViews#b6c4f543 views:Vector<MessageViews> chats:Vector<Chat> users:Vector<User> = messages.MessageViews;
-updateReadChannelDiscussionInbox#1cc7de54 flags:# channel_id:int top_msg_id:int read_max_id:int broadcast_id:flags.0?int broadcast_post:flags.0?int = Update; -updateReadChannelDiscussionOutbox#4638a26c channel_id:int top_msg_id:int read_max_id:int = Update;
-messages.discussionMessage#f5dd8f9d flags:# messages:Vector<Message> max_id:flags.0?int read_inbox_max_id:flags.1?int read_outbox_max_id:flags.2?int chats:Vector<Chat> users:Vector<User> = messages.DiscussionMessage; -messageReplyHeader#a6d57763 flags:# reply_to_msg_id:int reply_to_peer_id:flags.0?Peer reply_to_top_id:flags.1?int = MessageReplyHeader; -messageReplies#4128faac flags:# comments:flags.0?true replies:int replies_pts:int recent_repliers:flags.1?Vector<Peer> channel_id:flags.0?int max_id:flags.2?int read_max_id:flags.3?int = MessageReplies;
-updatePeerBlocked#246a4b22 peer_id:Peer blocked:Bool = Update;
-peerBlocked#e8fd8014 peer_id:Peer date:int = PeerBlocked;
-updateChannelUserTyping#ff2abe9f flags:# channel_id:int top_msg_id:flags.0?int user_id:int action:SendMessageAction = Update;
----functions---
-contacts.block#68cc1411 id:InputPeer = Bool; -contacts.unblock#bea65d50 id:InputPeer = Bool;
-messages.search#4e17810b flags:# peer:InputPeer q:string from_id:flags.0?InputUser top_msg_id:flags.1?int filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:int = messages.Messages; -messages.setTyping#58943ee2 flags:# peer:InputPeer top_msg_id:flags.0?int action:SendMessageAction = Bool; -messages.getMessagesViews#5784d3e1 peer:InputPeer id:Vector<int> increment:Bool = messages.MessageViews; -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;
-channels.exportMessageLink#e63fadeb flags:# grouped:flags.0?true thread:flags.1?true channel:InputChannel id:int = ExportedMessageLink;
-messages.getReplies#24b581ba peer:InputPeer msg_id:int offset_id:int offset_date:int add_offset:int limit:int max_id:int min_id:int hash:int = messages.Messages; -messages.getDiscussionMessage#446972fd peer:InputPeer msg_id:int = messages.DiscussionMessage; -messages.readDiscussion#f731a9f4 peer:InputPeer msg_id:int read_max_id:int = Bool;
-contacts.blockFromReplies#29a8962c flags:# delete_message:flags.0?true delete_history:flags.1?true report_spam:flags.2?true msg_id:int = Updates;
-

Layer 118

-

Added method for fetching country names and phone patterns.

-

Scheme changes

-
New Methods
-
    -
  • Added help.getCountriesList - Get name, ISO code, localized name and phone codes/patterns of all available countries
  • -
-
Changed Methods
- -
New Constructors
- -
Changed Constructors
- -

Scheme

-
keyboardButtonCallback#35bbdb6b flags:# requires_password:flags.0?true text:string data:bytes = KeyboardButton;
-help.countryCode#4203c5ef flags:# country_code:string prefixes:flags.0?Vector<string> patterns:flags.1?Vector<string> = help.CountryCode; -help.country#c3878e23 flags:# hidden:flags.0?true iso2:string default_name:string name:flags.1?string country_codes:Vector<help.CountryCode> = help.Country; -help.countriesListNotModified#93cc1f32 = help.CountriesList; -help.countriesList#87d0759e countries:Vector<help.Country> hash:int = help.CountriesList;
----functions---
-messages.sendEncrypted#44fa7a15 flags:# silent:flags.0?true peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; -messages.sendEncryptedFile#5559481d flags:# silent:flags.0?true peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; -messages.getBotCallbackAnswer#9342ca07 flags:# game:flags.1?true peer:InputPeer msg_id:int data:flags.0?bytes password:flags.2?InputCheckPasswordSRP = messages.BotCallbackAnswer;
-help.getCountriesList#735787a8 lang_code:string hash:int = help.CountriesList;
-

Layer 117

-

Added WebRTC endpoint constructors.

-

Scheme changes

-
New Constructors
- -

Scheme

-
phoneConnectionWebrtc#635fe375 flags:# turn:flags.0?true stun:flags.1?true id:long ip:string ipv6:string port:int username:string password:string = PhoneConnection;
-

Layer 116

-

Added supergroup statistics and global privacy settings.

-

Scheme changes

-
New Methods
- -
Changed Methods
- -
New Constructors
- -
Changed Constructors
- -

Scheme

-
inputChatUploadedPhoto#c642724e flags:# file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double = InputChatPhoto;
-userProfilePhoto#69d3ab26 flags:# has_video:flags.0?true photo_id:long photo_small:FileLocation photo_big:FileLocation dc_id:int = UserProfilePhoto;
-chatPhoto#d20b9f3c flags:# has_video:flags.0?true photo_small:FileLocation photo_big:FileLocation dc_id:int = ChatPhoto;
-photo#fb197a65 flags:# has_stickers:flags.0?true id:long access_hash:long file_reference:bytes date:int sizes:Vector<PhotoSize> video_sizes:flags.1?Vector<VideoSize> dc_id:int = Photo; -peerSettings#733f2961 flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true autoarchived:flags.7?true geo_distance:flags.6?int = PeerSettings;
-encryptedChatRequested#62718a82 flags:# folder_id:flags.0?int id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-videoSize#e831c556 flags:# type:string location:FileLocation w:int h:int size:int video_start_ts:flags.0?double = VideoSize;
-statsGroupTopPoster#18f3d0f7 user_id:int messages:int avg_chars:int = StatsGroupTopPoster; -statsGroupTopAdmin#6014f412 user_id:int deleted:int kicked:int banned:int = StatsGroupTopAdmin; -statsGroupTopInviter#31962a4c user_id:int invitations:int = StatsGroupTopInviter; -stats.megagroupStats#ef7ff916 period:StatsDateRangeDays members:StatsAbsValueAndPrev messages:StatsAbsValueAndPrev viewers:StatsAbsValueAndPrev posters:StatsAbsValueAndPrev growth_graph:StatsGraph members_graph:StatsGraph new_members_by_source_graph:StatsGraph languages_graph:StatsGraph messages_graph:StatsGraph actions_graph:StatsGraph top_hours_graph:StatsGraph weekdays_graph:StatsGraph top_posters:Vector<StatsGroupTopPoster> top_admins:Vector<StatsGroupTopAdmin> top_inviters:Vector<StatsGroupTopInviter> users:Vector<User> = stats.MegagroupStats;
-globalPrivacySettings#bea2f424 flags:# archive_and_mute_new_noncontact_peers:flags.0?Bool = GlobalPrivacySettings;
-updateChannelParticipant#65d2b464 flags:# channel_id:int date:int user_id:int prev_participant:flags.0?ChannelParticipant new_participant:flags.1?ChannelParticipant qts:int = Update;
----functions---
-photos.updateProfilePhoto#72d4742c id:InputPhoto = photos.Photo; -photos.uploadProfilePhoto#89f30f69 flags:# file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double = photos.Photo;
-stats.getMegagroupStats#dcdf8607 flags:# dark:flags.0?true channel:InputChannel = stats.MegagroupStats;
-account.getGlobalPrivacySettings#eb2b4cf6 = GlobalPrivacySettings; -account.setGlobalPrivacySettings#1edaaac2 settings:GlobalPrivacySettings = GlobalPrivacySettings;
-help.dismissSuggestion#077fa99f suggestion:string = Bool;
-

Layer 115

-

Added a chat invitation that also allows peeking into the group to read messages without joining it.

-

Scheme changes

-
New Constructors
-
    -
  • Added chatInvitePeek - A chat invitation that also allows peeking into the group to read messages without joining it.
  • -
-

Scheme

-
chatInvitePeek#61695cb0 chat:Chat expires:int = ChatInvite;
-

Layer 114

-

Added WebRTC signaling methods.

-

Scheme changes

-
New Methods
- -
Changed Methods
- -
Deleted Methods
-
    -
  • Removed messages.searchGifs
  • -
-
New Constructors
- -
Changed Constructors
- -
Deleted Constructors
-
    -
  • Removed foundGif
  • -
  • Removed foundGifCached
  • -
  • Removed inputMediaGifExternal
  • -
  • Removed messages.foundGifs
  • -
-

Scheme

-
userFull#edf17c12 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 user:User 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 = UserFull;
-inputMediaUploadedDocument#5b38c6c1 flags:# nosound_video:flags.3?true force_file:flags.4?true file:InputFile thumb:flags.2?InputFile mime_type:string attributes:Vector<DocumentAttribute> stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int = InputMedia;
-document#1e87342b flags:# id:long access_hash:long file_reference:bytes date:int mime_type:string size:int thumbs:flags.0?Vector<PhotoSize> video_thumbs:flags.1?Vector<VideoSize> dc_id:int attributes:Vector<DocumentAttribute> = Document;
-user#938458c1 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string = User;
-channelFull#f0e6672a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int = ChatFull;
-phoneCallWaiting#1b8f4ad1 flags:# video:flags.6?true id:long access_hash:long date:int admin_id:int participant_id:int protocol:PhoneCallProtocol receive_date:flags.0?int = PhoneCall; -phoneCallRequested#87eabb53 flags:# video:flags.6?true id:long access_hash:long date:int admin_id:int participant_id:int g_a_hash:bytes protocol:PhoneCallProtocol = PhoneCall; -phoneCallAccepted#997c454a flags:# video:flags.6?true id:long access_hash:long date:int admin_id:int participant_id:int g_b:bytes protocol:PhoneCallProtocol = PhoneCall; -phoneCall#8742ae7f flags:# p2p_allowed:flags.5?true video:flags.6?true id:long access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long protocol:PhoneCallProtocol connections:Vector<PhoneConnection> start_date:int = PhoneCall; -phoneCallDiscarded#50ca4de1 flags:# need_rating:flags.2?true need_debug:flags.3?true video:flags.6?true id:long reason:flags.0?PhoneCallDiscardReason duration:flags.1?int = PhoneCall;
-chatAdminRights#5fb224d5 flags:# change_info:flags.0?true post_messages:flags.1?true edit_messages:flags.2?true delete_messages:flags.3?true ban_users:flags.4?true invite_users:flags.5?true pin_messages:flags.7?true add_admins:flags.9?true anonymous:flags.10?true = ChatAdminRights;
-videoSize#435bb987 type:string location:FileLocation w:int h:int size:int = VideoSize;
-updatePhoneCallSignalingData#2661bf09 phone_call_id:long data:bytes = Update;
----functions---
-messages.forwardMessages#d9fee60e flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer schedule_date:flags.10?int = Updates; -messages.updatePinnedMessage#d2aaf7ec flags:# silent:flags.0?true unpin:flags.1?true pm_oneside:flags.2?true peer:InputPeer id:int = Updates;
-phone.sendSignalingData#ff7a9383 peer:InputPhoneCall data:bytes = Bool;
-

Layer 113

-

Public Service Announcement constructors and better PUSH notifications.
-Notice that all PINNED_* PUSH notifications have two variants: one for groups, and one for channels.

-

Scheme changes

-
New Methods
- -
Deleted Methods
-
    -
  • Removed help.getProxyData
  • -
-
New Constructors
- -
Changed Constructors
- -
Deleted Constructors
-
    -
  • Removed help.proxyDataEmpty
  • -
  • Removed help.proxyDataPromo
  • -
-

PUSH notification changes

-
New PUSH notifications
- -
Changed PUSH notifications
- -

Scheme

-
messageFwdHeader#353a686b flags:# from_id:flags.0?int from_name:flags.5?string date:int channel_id:flags.1?int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int psa_type:flags.6?string = MessageFwdHeader;
-help.promoDataEmpty#98f6ac75 expires:int = help.PromoData; -help.promoData#8c39793f flags:# proxy:flags.0?true expires:int peer:Peer chats:Vector<Chat> users:Vector<User> psa_type:flags.1?string psa_message:flags.2?string = help.PromoData;
----functions---
-help.getPromoData#c0977421 = help.PromoData; -help.hidePromoData#1e251c95 peer:InputPeer = Bool;
-

Layer 112

-

Scheme changes

-
New Methods
- -
Changed Constructors
- -

Scheme

-
messages.featuredStickersNotModified#c6dc0c66 count:int = messages.FeaturedStickers;
-messages.featuredStickers#b6abc341 hash:int count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;
-poll#86e18161 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:string answers:Vector<PollAnswer> close_period:flags.4?int close_date:flags.5?int = Poll; -pollResults#badcc1a3 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<int> solution:flags.4?string solution_entities:flags.4?Vector<MessageEntity> = PollResults;
-inputMediaPoll#0f94e5f1 flags:# poll:Poll correct_answers:flags.0?Vector<bytes> solution:flags.1?string solution_entities:flags.1?Vector<MessageEntity> = InputMedia; -inputMediaDice#e66fbf7b emoticon:string = InputMedia;
-messageMediaDice#3f7ee58b value:int emoticon:string = MessageMedia;
-inputStickerSetDice#e67f520e emoticon:string = InputStickerSet;
----functions---
-initConnection#c1cd5ea9 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy params:flags.1?JSONValue query:!X = X;
-messages.getOldFeaturedStickers#5fe7025b offset:int limit:int hash:int = messages.FeaturedStickers;
-

Layer 111

-

Folders, channel stats, bot and sticker improvements

-

Scheme changes

-
New Methods
- -
Changed Methods
- -
New Constructors
- -
Changed Constructors
- -

Scheme

-
channelFull#f0e6672a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_view_stats:flags.12?true can_set_location:flags.16?true has_scheduled:flags.19?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int = ChatFull;
-webPageNotModified#7311ca11 flags:# cached_page_views:flags.0?int = WebPage;
-phoneCallProtocol#fc878fc8 flags:# udp_p2p:flags.0?true udp_reflector:flags.1?true min_layer:int max_layer:int library_versions:Vector<string> = PhoneCallProtocol; -page#98657f0d flags:# part:flags.0?true rtl:flags.1?true v2:flags.2?true url:string blocks:Vector<PageBlock> photos:Vector<Photo> documents:Vector<Document> views:flags.3?int = Page;
-dialogFilter#7438f7e8 flags:# contacts:flags.0?true non_contacts:flags.1?true groups:flags.2?true broadcasts:flags.3?true bots:flags.4?true exclude_muted:flags.11?true exclude_read:flags.12?true exclude_archived:flags.13?true id:int title:string emoticon:flags.25?string pinned_peers:Vector<InputPeer> include_peers:Vector<InputPeer> exclude_peers:Vector<InputPeer> = DialogFilter; -dialogFilterSuggested#77744d4a filter:DialogFilter description:string = DialogFilterSuggested;
-updateDialogFilter#26ffde7d flags:# id:int filter:flags.0?DialogFilter = Update; -updateDialogFilterOrder#a5d72105 order:Vector<int> = Update; -updateDialogFilters#3504914f = Update;
-statsDateRangeDays#b637edaf min_date:int max_date:int = StatsDateRangeDays; -statsAbsValueAndPrev#cb43acde current:double previous:double = StatsAbsValueAndPrev; -statsPercentValue#cbce2fe0 part:double total:double = StatsPercentValue; -statsGraphAsync#4a27eb2d token:string = StatsGraph; -statsGraphError#bedc9822 error:string = StatsGraph; -statsGraph#8ea464b6 flags:# json:DataJSON zoom_token:flags.0?string = StatsGraph;
-messageInteractionCounters#ad4fc9bd msg_id:int views:int forwards:int = MessageInteractionCounters;
-stats.broadcastStats#bdf78394 period:StatsDateRangeDays followers:StatsAbsValueAndPrev views_per_post:StatsAbsValueAndPrev shares_per_post:StatsAbsValueAndPrev enabled_notifications:StatsPercentValue growth_graph:StatsGraph followers_graph:StatsGraph mute_graph:StatsGraph top_hours_graph:StatsGraph interactions_graph:StatsGraph iv_interactions_graph:StatsGraph views_by_source_graph:StatsGraph new_followers_by_source_graph:StatsGraph languages_graph:StatsGraph recent_message_interactions:Vector<MessageInteractionCounters> = stats.BroadcastStats;
-inputMediaDice#aeffa807 = InputMedia;
-messageMediaDice#638fe46b value:int = MessageMedia;
-inputStickerSetDice#79e21a53 = InputStickerSet;
----functions---
-initConnection#785188b8 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy params:flags.1?JSONValue query:!X = X;
-stickers.createStickerSet#f1036780 flags:# masks:flags.0?true animated:flags.1?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> = messages.StickerSet;
-messages.getDialogFilters#f19ed96d = Vector<DialogFilter>; -messages.getSuggestedDialogFilters#a29cd42c = Vector<DialogFilterSuggested>; -messages.updateDialogFilter#1ad4a04a flags:# id:int filter:flags.0?DialogFilter = Bool; -messages.updateDialogFiltersOrder#c563c1e4 order:Vector<int> = Bool;
-stats.getBroadcastStats#ab42441a flags:# dark:flags.0?true channel:InputChannel = stats.BroadcastStats; -stats.loadAsyncGraph#621d5fa0 flags:# token:string x:flags.0?long = StatsGraph; -stickers.setStickerSetThumb#9a364e30 stickerset:InputStickerSet thumb:InputDocument = messages.StickerSet;
-bots.setBotCommands#805d46f6 commands:Vector<BotCommand> = Bool;
-

Layer 110

-

Credit card information

-

Scheme changes

-
New Methods
- -
Changed Methods
- -
New Constructors
- -

Scheme

-
messageEntityBankCard#761e6af4 offset:int length:int = MessageEntity;
-bankCardOpenUrl#f568028a url:string name:string = BankCardOpenUrl;
-payments.bankCardData#3e24e573 title:string open_urls:Vector<BankCardOpenUrl> = payments.BankCardData; -peerSelfLocated#f8ec284b expires:int = PeerLocated;
----functions---
-initConnection#785188b8 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy query:!X = X;
-contacts.getLocated#d348bc44 flags:# background:flags.1?true geo_point:InputGeoPoint self_expires:flags.0?int = Updates;
-payments.getBankCardData#2e79d779 number:string = payments.BankCardData;
-

Layer 109

-

Non-anonymous polls, improved sticker management

-

Scheme changes

-
New Methods
- -
Changed Methods
- -
New Constructors
- -
Changed Constructors
- -

Scheme

-
pollResults#c87024a2 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<int> = PollResults;
-inputMediaPoll#abe9ca25 flags:# poll:Poll correct_answers:flags.0?Vector<bytes> = InputMedia;
-updateMessagePollVote#42f88f2c poll_id:long user_id:int options:Vector<bytes> = Update;
-messageUserVote#a28e5559 user_id:int option:bytes date:int = MessageUserVote; -messageUserVoteInputOption#36377430 user_id:int date:int = MessageUserVote; -messageUserVoteMultiple#0e8fe0de user_id:int options:Vector<bytes> date:int = MessageUserVote; -messages.votesList#0823f649 flags:# count:int votes:Vector<MessageUserVote> users:Vector<User> next_offset:flags.0?string = messages.VotesList;
-keyboardButtonRequestPoll#bbc7515d flags:# quiz:flags.0?Bool text:string = KeyboardButton;
----functions---
-initConnection#785188b8 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy params:flags.1?JSONValue query:!X = X;
-messages.getPollVotes#b86e380e flags:# peer:InputPeer id:int option:flags.0?bytes offset:flags.1?string limit:int = messages.VotesList; -messages.toggleStickerSets#b5052fea flags:# uninstall:flags.0?true archive:flags.1?true unarchive:flags.2?true stickersets:Vector<InputStickerSet> = Bool;
-

Layer 108

-

Login with QR-code, sensitive content settings, quizes, multiple-choice and public polls, get inactive chats, improved wallpapers and themes.

-

Scheme changes

-
New Methods
- -
Changed Methods
- -
New Constructors
- -
Changed Constructors
-
    -
  • Added attributes parameter, removed documents parameter in webPage
  • -
  • Added public_voters, multiple_choice, quiz parameters in poll
  • -
  • Added correct parameter in pollAnswerVoters
  • -
  • Added second_background_color, rotation parameters in wallPaperSettings
  • -
  • Added video_upload_maxbitrate parameter in autoDownloadSettings
  • -
  • Added settings parameter in theme
  • -
-
Deleted Constructors
-
    -
  • Removed themeDocumentNotModified
  • -
-

Scheme

-
webPage#e89c45b2 flags:# id:long url:string display_url:string hash:int type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string document:flags.9?Document cached_page:flags.10?Page attributes:flags.12?Vector<WebPageAttribute> = WebPage;
-poll#d5529d06 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:string answers:Vector<PollAnswer> = Poll; -pollAnswerVoters#3b6ddad2 flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:int = PollAnswerVoters;
-wallPaperSettings#05086cf8 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int second_background_color:flags.4?int intensity:flags.3?int rotation:flags.4?int = WallPaperSettings;
-autoDownloadSettings#e04232f3 flags:# disabled:flags.0?true video_preload_large:flags.1?true audio_preload_next:flags.2?true phonecalls_less_data:flags.3?true photo_size_max:int video_size_max:int file_size_max:int video_upload_maxbitrate:int = AutoDownloadSettings;
-inputPhotoLegacyFileLocation#d83466f3 id:long access_hash:long file_reference:bytes volume_id:long local_id:int secret:long = InputFileLocation;
-theme#028f1114 flags:# creator:flags.0?true default:flags.1?true id:long access_hash:long slug:string title:string document:flags.2?Document settings:flags.3?ThemeSettings installs_count:int = Theme;
-updateGeoLiveViewed#871fb939 peer:Peer msg_id:int = Update; -updateLoginToken#564fe691 = Update;
-auth.loginToken#629f1980 expires:int token:bytes = auth.LoginToken; -auth.loginTokenMigrateTo#068e9916 dc_id:int token:bytes = auth.LoginToken; -auth.loginTokenSuccess#390d5c5e authorization:auth.Authorization = auth.LoginToken; -account.contentSettings#57e28221 flags:# sensitive_enabled:flags.0?true sensitive_can_change:flags.1?true = account.ContentSettings;
-messages.inactiveChats#a927fec5 dates:Vector<int> chats:Vector<Chat> users:Vector<User> = messages.InactiveChats;
-baseThemeClassic#c3a12462 = BaseTheme; -baseThemeDay#fbd81688 = BaseTheme; -baseThemeNight#b7b31ea8 = BaseTheme; -baseThemeTinted#6d5f77ee = BaseTheme; -baseThemeArctic#5b11125a = BaseTheme;
-inputWallPaperNoFile#8427bbac = InputWallPaper;
-wallPaperNoFile#8af40b25 flags:# default:flags.1?true dark:flags.4?true settings:flags.2?WallPaperSettings = WallPaper;
-inputThemeSettings#bd507cd1 flags:# base_theme:BaseTheme accent_color:int message_top_color:flags.0?int message_bottom_color:flags.0?int wallpaper:flags.1?InputWallPaper wallpaper_settings:flags.1?WallPaperSettings = InputThemeSettings;
-themeSettings#9c14984a flags:# base_theme:BaseTheme accent_color:int message_top_color:flags.0?int message_bottom_color:flags.0?int wallpaper:flags.1?WallPaper = ThemeSettings;
-webPageAttributeTheme#54b56617 flags:# documents:flags.0?Vector<Document> settings:flags.1?ThemeSettings = WebPageAttribute;
----functions---
-upload.getFile#b15a9afc flags:# precise:flags.0?true cdn_supported:flags.1?true location:InputFileLocation offset:int limit:int = upload.File;
-account.createTheme#8432c21f flags:# slug:string title:string document:flags.2?InputDocument settings:flags.3?InputThemeSettings = Theme; -account.updateTheme#5cb367d5 flags:# format:string theme:InputTheme slug:flags.0?string title:flags.1?string document:flags.2?InputDocument settings:flags.3?InputThemeSettings = Theme; -auth.exportLoginToken#b1b41517 api_id:int api_hash:string except_ids:Vector<int> = auth.LoginToken; -auth.importLoginToken#95ac5ce4 token:bytes = auth.LoginToken; -auth.acceptLoginToken#e894ad4d token:bytes = Authorization; -account.setContentSettings#b574b16b flags:# sensitive_enabled:flags.0?true = Bool; -account.getContentSettings#8b9b4dae = account.ContentSettings;
-channels.getInactiveChannels#11e831ee = messages.InactiveChats;
-account.getMultiWallPapers#65ad71dc wallpapers:Vector<InputWallPaper> = Vector<WallPaper>;
-

Layer 105

-

The API underwent huge changes, a full reread of the documentation is required.

-

Layer 23

-

Scheme changes

-
New Methods
- -
Deleted Methods
-
    -
  • Removed invokeWithLayer18
  • -
-
New Constructors
- -
Changed Constructors
- -

Scheme

-
contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
-config#7dae33e0 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_big_size:int chat_size_max:int broadcast_size_max:int disabled_features:Vector<DisabledFeature> = Config;
-inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia; -inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector<DocumentAttribute> = InputMedia;
-document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = Document;
-userStatusRecently#e26f42f1 = UserStatus; -userStatusLastWeek#07bf09fc = UserStatus; -userStatusLastMonth#77ebc742 = UserStatus; -updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
-inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
-privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
-inputPrivacyValueAllowContacts#0d09e07b = InputPrivacyRule; -inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule; -inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule; -inputPrivacyValueDisallowContacts#0ba52007 = InputPrivacyRule; -inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule; -inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
-privacyValueAllowContacts#fffe1bac = PrivacyRule; -privacyValueAllowAll#65427b82 = PrivacyRule; -privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule; -privacyValueDisallowContacts#f888fa1a = PrivacyRule; -privacyValueDisallowAll#8b73e763 = PrivacyRule; -privacyValueDisallowUsers#0c7f49b7 users:Vector<int> = PrivacyRule;
-account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules; -accountDaysTTL#b8d0afdf days:int = AccountDaysTTL; -account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode;
-updateUserPhone#12b9417b user_id:int phone:string = Update;
-documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; -documentAttributeAnimated#11b58939 = DocumentAttribute; -documentAttributeSticker#fb0a5727 = DocumentAttribute; -documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; -documentAttributeAudio#051448e5 duration:int = DocumentAttribute; -documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
-messages.stickersNotModified#f1749a22 = messages.Stickers; -messages.stickers#8a8ecd32 hash:string stickers:Vector<Document> = messages.Stickers;
-stickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;
-messages.allStickersNotModified#e86602c3 = messages.AllStickers; -messages.allStickers#dcef3102 hash:string packs:Vector<StickerPack> documents:Vector<Document> = messages.AllStickers;
-disabledFeature#ae636f24 feature:string description:string = DisabledFeature;
----functions---
-account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules; -account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules; -account.deleteAccount#418d4e0b reason:string = Bool; -account.getAccountTTL#08fc711d = AccountDaysTTL; -account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool;
-invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;
-contacts.resolveUsername#0bf0131c username:string = User;
-account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode; -account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User;
-messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers; -messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers;
-account.updateDeviceLocked#38df3532 period:int = Bool;
-

End-to-end scheme changes

-
New Constructors
- -

End-to-end scheme

-
===20===
-decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction; -decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction; -decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction; -decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction; -decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction;
-===23=== -documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; -documentAttributeAnimated#11b58939 = DocumentAttribute; -documentAttributeSticker#fb0a5727 = DocumentAttribute; -documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; -documentAttributeAudio#051448e5 duration:int = DocumentAttribute; -documentAttributeFilename#15590068 file_name:string = DocumentAttribute;
-photoSizeEmpty#0e17e23c type:string = PhotoSize; -photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; -photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize;
-fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; -fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation;
-decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector<DocumentAttribute> = DecryptedMessageMedia;
-

Layer 18

-

Added username support and a new type of updates for service messages.

-

Schema changes

- -

Schema

-
contactFound user_id:int = ContactFound;
-
-contacts.found results:Vector<ContactFound> users:Vector<User> = contacts.Found;
-
-updateUserName user_id:int first_name:string last_name:string username:string = Update;
-
-userSelf id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User;
-userContact id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userRequest id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User;
-userForeign id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User;
-userDeleted id:int first_name:string last_name:string username:string = User;
-
-updateServiceNotification type:string message:string media:MessageMedia popup:Bool = Update;
-
----functions---
-
-account.checkUsername username:string = Bool;
-account.updateUsername username:string = User;
-
-contacts.search q:string limit:int = contacts.Found;
-
-invokeWithLayer18#1c900537 {X:Type} query:!X = X;
-

Layer 17

-

Added new events for recording and uploading media, selecting contacts and locations to share.

-

Read status for multimedia (messages containing messageMediaVideo or messageMediaAudio) was moved to the new method messages.readMessageContents. In case read_contents is not passed or messages.readHistory is used with an older layer, messages will be marked as read in the traditional way.

-

Schema changes

-
    -
  • Added new type SendMessageAction for user actions aside from typing (recording, uploading media, etc.). It is used in updates updateUserTyping, updateChatUserTyping, in the method messages.setTyping, and in the new encrypted service message decryptedMessageActionTyping.
  • -
  • unread and out parameters in the constructors of the Message type were joined to form the new flags parameter, containing a flag mask.
  • -
  • Added new method messages.readMessageContents, to be called once the user listened to a voice message or watched a video.
  • -
  • Added parameters for end-to-end encrypted messages in_seq_no, out_seq_no and ttl.
  • -
  • Added mime_type field to secret chat audio and video constructors.
  • -
-

Schema

-
sendMessageTypingAction = SendMessageAction;
-sendMessageCancelAction = SendMessageAction;
-sendMessageRecordVideoAction = SendMessageAction;
-sendMessageUploadVideoAction = SendMessageAction;
-sendMessageRecordAudioAction = SendMessageAction;
-sendMessageUploadAudioAction = SendMessageAction;
-sendMessageUploadPhotoAction = SendMessageAction;
-sendMessageUploadDocumentAction = SendMessageAction;
-sendMessageGeoLocationAction = SendMessageAction;
-sendMessageChooseContactAction = SendMessageAction;
-
-updateUserTyping user_id:int action:SendMessageAction = Update;
-updateChatUserTyping chat_id:int user_id:int action:SendMessageAction = Update;
-
-// Message object
-message flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageForwarded flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message;
-messageService flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message;
-
----functions---
-
-messages.setTyping peer:InputPeer action:SendMessageAction = Bool;
-
-messages.readHistory peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory;
-messages.readMessageContents id:Vector<int> = Vector<int>;
-
-invokeWithLayer17#50858a19 {X:Type} query:!X = X;
-

End-to-end schema

-
===17===
-
-
-// Layer
-decryptedMessageLayer random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer;
-
-decryptedMessageMediaAudio duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaVideo thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-
-sendMessageTypingAction = SendMessageAction;
-sendMessageCancelAction = SendMessageAction;
-sendMessageRecordVideoAction = SendMessageAction;
-sendMessageUploadVideoAction = SendMessageAction;
-sendMessageRecordAudioAction = SendMessageAction;
-sendMessageUploadAudioAction = SendMessageAction;
-sendMessageUploadPhotoAction = SendMessageAction;
-sendMessageUploadDocumentAction = SendMessageAction;
-sendMessageGeoLocationAction = SendMessageAction;
-sendMessageChooseContactAction = SendMessageAction;
-
-decryptedMessageActionNotifyLayer layer:int = DecryptedMessageAction;
-decryptedMessageActionTyping action:SendMessageAction = DecryptedMessageAction;
-
-decryptedMessage random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService random_id:long action:DecryptedMessageAction = DecryptedMessage;
-

Layer 16

-

Added new sms_type = 5 in the method auth.sendCode.

-

Schema changes

-
    -
  • Added new constructor: auth.sentAppCode to determine whether a code was sent via Telegram.
  • -
  • Added new method auth.sendSms to force re-sending a code via SMS.
  • -
-

Schema

-
auth.sentAppCode phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
----functions---
-
-auth.sendSms phone_number:string phone_code_hash:string = Bool;
-
-invokeWithLayer16#cf5f0987 {X:Type} query:!X = X;
-

Layer 15

-

Modified behavior of the offset parameter in the method messages.getHistory. From now on it's possible to combine message_id offset and a numeric offset.

-

Schema

-
invokeWithLayer15#b4418b64 {X:Type} query:!X = X;
-

Layer 14

-

Schema changes

- -

Schema

-
notifyPeer peer:Peer = NotifyPeer;
-notifyUsers = NotifyPeer;
-notifyChats = NotifyPeer;
-notifyAll = NotifyPeer;
-
-dialog peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog;
-
-updateUserBlocked user_id:int blocked:Bool = Update;
-updateNotifySettings peer:NotifyPeer notify_settings:PeerNotifySettings = Update;
-
----functions---
-
-invokeWithLayer14#2b9b08fa {X:Type} query:!X = X;
-

Layer 13

-

Schema changes

-
    -
  • Added mime_type field to all audio and video constructors.
  • -
  • Added new service message types in secret chats: messages read, messages deleted, screenshot taken, chat history cleared and API layer used by client notifications.
  • -
  • Added retry_contacts field to the contacts.importedContacts constructor: ids of contacts, that will have to be imported at a later date.
  • -
-

Schema

-
contacts.importedContacts imported:Vector<ImportedContact> retry_contacts:Vector<long> users:Vector<User> = contacts.Im portedContacts;
-
-inputMediaUploadedAudio file:InputFile duration:int mime_type:string = InputMedia;
-inputMediaUploadedVideo file:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-inputMediaUploadedThumbVideo file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia;
-
-audio id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio;
-video id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video;
-
----functions---
-
-invokeWithLayer13#427c8ea2 {X:Type} query:!X = X;
-

Layer 12

-

Schema changes

-
    -
  • Added method help.getSupport for obtaining support user id.
  • -
  • Added broadcast_size_max field to the constructor config, contaning maximum number of broadcast recipients.
  • -
  • Added send_call_timeout field to the constructor auth.sentCode, containing required delay before calling auth.sendCall. New field is_password in the same constructor.
  • -
-

Schema

-
auth.sentCode phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;
-
-config date:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> chat_size_max:int broadcast_size_max:int = Config;
-
-help.support phone_number:string user:User = help.Support;
-
----functions---
-
-help.getSupport = help.Support;
-
-invokeWithLayer12#dda60d3c {X:Type} query:!X = X;
-

Layer 11

-

Schema changes

-
    -
  • The nonce parameter was removed from secret chat constructors. For purposes of backward compatibility, in all previous layers this field will contain empty bytes.
  • -
-

Schema

-
encryptedChatRequested id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-
----functions---
-
-invokeWithLayer11#a6b88fdf {X:Type} query:!X = X;
-

Layer 10

-

Added brief constructors for editing group members. Added new attachment types for ordinary and secret chats.

-

Schema changes

- -

Schema

-
updateChatParticipantAdd chat_id:int user_id:int inviter_id:int version:int = Update;
-updateChatParticipantDelete chat_id:int user_id:int version:int = Update;
-
-
-inputMediaUploadedAudio file:InputFile duration:int = InputMedia;
-inputMediaAudio id:InputAudio = InputMedia;
-
-inputMediaUploadedDocument file:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaUploadedThumbDocument file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia;
-inputMediaDocument id:InputDocument = InputMedia;
-
-messageMediaDocument document:Document = MessageMedia;
-messageMediaAudio audio:Audio = MessageMedia;
-
-// Input Audio
-inputAudioEmpty = InputAudio;
-inputAudio id:long access_hash:long = InputAudio;
-
-// Input Document
-inputDocumentEmpty = InputDocument;
-inputDocument id:long access_hash:long = InputDocument;
-
-// Input location
-inputAudioFileLocation id:long access_hash:long = InputFileLocation;
-inputDocumentFileLocation id:long access_hash:long = InputFileLocation;
-
-
-decryptedMessageMediaDocument thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-
-
-// Audio object
-audioEmpty id:long = Audio;
-audio id:long access_hash:long user_id:int date:int duration:int size:int dc_id:int = Audio;
-
-// Video object
-documentEmpty id:long = Document;
-document id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document;
-
----functions---
-
-invokeWithLayer10#39620c41 {X:Type} query:!X = X;
-PUSH-notifications
-
-Added MESSAGE_DOC, MESSAGE_AUDIO notifications — a message with document or audio received
-Added CHAT_MESSAGE_DOC, CHAT_MESSAGE_AUDIO notifications —  a message with document or audio received in a group
-

Layer 9

-

Increased efficiency when loading big files. Added important checks for certain methods.

-

Schema changes

- -

Schema

-
inputFileBig id:long parts:int name:string = InputFile;
-
-inputEncryptedFileBigUploaded id:long parts:int key_fingerprint:int = InputEncryptedFile;
-
----functions---
-
-upload.saveBigFilePart file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
-
-initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
-
-invokeWithLayer9#76715a63 {X:Type} query:!X = X;
-

Layer 8

-

Added support for end-to-end encryption in secret chats. More...

-

Schema changes

-
    -
  • Added many constructors and methods for secret chats.
  • -
  • Added qts field in constructor updates.state.
  • -
  • Added 4 new constructors of Update type
  • -
-

Schema

-
updateNewEncryptedMessage message:EncryptedMessage qts:int = Update;
-updateEncryptedChatTyping chat_id:int = Update;
-updateEncryption chat:EncryptedChat date:int = Update;
-updateEncryptedMessagesRead chat_id:int max_date:int = Update;
-
-// EncryptedChat object
-encryptedChatEmpty id:int = EncryptedChat;
-encryptedChatWaiting id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat;
-encryptedChatRequested id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat;
-encryptedChat id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat;
-encryptedChatDiscarded id:int = EncryptedChat;
-
-inputEncryptedChat chat_id:int access_hash:long = InputEncryptedChat;
-
-// EncryptedFile object
-encryptedFileEmpty = EncryptedFile;
-encryptedFile id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile;
-
-inputEncryptedFileEmpty = InputEncryptedFile;
-inputEncryptedFileUploaded id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;
-inputEncryptedFile id:long access_hash:long = InputEncryptedFile;
-
-inputEncryptedFileLocation id:long access_hash:long = InputFileLocation;
-
-// Encrypted message
-encryptedMessage random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;
-encryptedMessageService random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;
-
-// Diffie-Hellman config
-messages.dhConfigNotModified random:bytes = messages.DhConfig;
-messages.dhConfig g:int p:bytes version:int random:bytes = messages.DhConfig;
-
-messages.sentEncryptedMessage date:int = messages.SentEncryptedMessage;
-messages.sentEncryptedFile date:int file:EncryptedFile = messages.SentEncryptedMessage;
-
-// Updated state with qts
-updates.state pts:int qts:int date:int seq:int unread_count:int = updates.State;
-updates.difference new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;
-updates.differenceSlice new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;
-
----functions---
-
-messages.getDhConfig version:int random_length:int = messages.DhConfig;
-messages.requestEncryption user_id:InputUser random_id:int g_a:bytes = EncryptedChat;
-messages.acceptEncryption peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat;
-messages.discardEncryption chat_id:int = Bool;
-
-messages.setEncryptedTyping peer:InputEncryptedChat typing:Bool = Bool;
-messages.readEncryptedHistory peer:InputEncryptedChat max_date:int = Bool;
-messages.sendEncrypted peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.sendEncryptedFile peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage;
-messages.sendEncryptedService peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage;
-messages.receivedQueue max_qts:int = Vector<long>;
-
-updates.getDifference pts:int date:int qts:int = updates.Difference;
-
-invokeWithLayer8#e9abd9fd {X:Type} query:!X = X;
-

Push-notifications

-
    -
  • Added notification of ENCRYPTION_REQUEST type -- a contact requested secret chat creation
  • -
  • Added notification of ENCRYPTION_ACCEPT type -- a contact confirmed secret chat creation
  • -
  • Added notification of ENCRYPTED_MESSAGE type -- a contact sent message in a secret chat
  • -
-

End-to-end schema

-
===8===
-decryptedMessage random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage;
-decryptedMessageService random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage;
-
-decryptedMessageMediaEmpty = DecryptedMessageMedia;
-decryptedMessageMediaPhoto thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaVideo thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaGeoPoint lat:double long:double = DecryptedMessageMedia;
-decryptedMessageMediaContact phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia;
-
-decryptedMessageActionSetMessageTTL ttl_seconds:int = DecryptedMessageAction;
-
-decryptedMessageMediaDocument thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia;
-decryptedMessageMediaAudio duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia;
-
-decryptedMessageActionReadMessages random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionDeleteMessages random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionScreenshotMessages random_ids:Vector<long> = DecryptedMessageAction;
-decryptedMessageActionFlushHistory = DecryptedMessageAction;
-

Layer 7

-

Added wallpaper constructor wallPaperSolid.

-

Schema

-
wallPaperSolid id:int title:string bg_color:int color:int = WallPaper;
----functions---
-invokeWithLayer7#a5be56d3 {X:Type} query:!X = X;
-

Layer 6

-

Added location identifiers from foursquare.

-

Schema

-
geoChat id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat;
----functions---
-geochats.createGeoChat title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage;
-
-invokeWithLayer6#3a64d54d {X:Type} query:!X = X;
-

Layer 5

-

Added parameters for internationalization.

-

Schema changes

- -

Schema

-
---functions---
-auth.sendCode phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode;
-account.registerDevice token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool;
-
-invokeWithLayer5#417a57ae {X:Type} query:!X = X;
-

Layer 4

-

Added geochats. More...

-

Schema changes

-
    -
  • Added many constructors and methods for geochats.
  • -
  • Added friends_unread_count field to constructor updates.state.
  • -
-

Schema

-
inputGeoChat chat_id:int access_hash:long = InputGeoChat;
-
-geoChat id:int access_hash:long title:string address:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat;
-
-geoChatMessageEmpty chat_id:int id:int = GeoChatMessage;
-geoChatMessage chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage;
-geoChatMessageService chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage;
-
-geochats.statedMessage message:GeoChatMessage chats:Vector<Chat> users:Vector<User> seq:int = geochats.StatedMessage;
-
-geochats.located results:Vector<ChatLocated> messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Located;
-
-geochats.messages messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-geochats.messagesSlice count:int messages:Vector<GeoChatMessage> chats:Vector<Chat> users:Vector<User> = geochats.Messages;
-
-messageActionGeoChatCreate title:string address:string = MessageAction;
-messageActionGeoChatCheckin = MessageAction;
-updateNewGeoChatMessage message:GeoChatMessage = Update;
-updates.state pts:int date:int seq:int unread_count:int friends_unread_count:int = updates.State;
-
----functions---
-
-geochats.getLocated geo_point:InputGeoPoint radius:int limit:int = geochats.Located;
-geochats.checkin peer:InputGeoChat = geochats.StatedMessage;
-geochats.getFullChat peer:InputGeoChat = messages.ChatFull;
-geochats.editChatTitle peer:InputGeoChat title:string address:string = geochats.StatedMessage;
-geochats.editChatPhoto peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage;
-geochats.search peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages;
-geochats.getHistory peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages;
-geochats.setTyping peer:InputGeoChat typing:Bool = Bool;
-geochats.sendMessage peer:InputGeoChat message:string random_id:long = geochats.StatedMessage;
-geochats.sendMedia peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage;
-geochats.createGeoChat title:string geo_point:InputGeoPoint address:string = geochats.StatedMessage;
-
-invokeWithLayer4#dea0d430 {X:Type} query:!X = X;
-

Push-notifications

-
    -
  • Added notification of GEOCHAT_CHECKIN type -- a user has checked-in in a geochat.
  • -
-

Layer 3

-

Support for link changes for a contact when a message is sent. Now, if user X has user Y in the contact list and if user Y writes a message to user X, number X will become available for him. More...

-

Schema changes

- -

Schema

-
messages.statedMessagesLinks messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-messages.statedMessageLink message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-messages.sentMessageLink id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
-
----functions---
-
-messages.forwardMessage peer:InputPeer id:int random_id:long = messages.StatedMessage;
-messages.sendBroadcast contacts:Vector<InputUser> message:string media:InputMedia = messages.StatedMessages;
-
-invokeWithLayer3#b7475268 {X:Type} query:!X = X;
-

Layer 2

-

Support for notifications on changes of contact profile images. It is assumed that receiving such image changed notification a client will add a record on this event in the message history with this contact.

-

Schema changes

- -

Schema

-
inputPeerNotifySettings mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings;
-peerNotifySettings mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings;
-updateUserPhoto user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
-userProfilePhoto photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto;
-
----functions---
-
-photos.getUserPhotos user_id:InputUser offset:int max_id:int limit:int = photos.Photos;
-
-invokeWithLayer2#289dd1f6 {X:Type} query:!X = X;
-

Push-notifications

-
    -
  • Added notification of CONTACT_PHOTO type -- a contact has changed profile image.
  • -
- -
- -
-
- -
- - - - - - - - diff --git a/data/core.telegram.org/api/requests.html b/data/core.telegram.org/api/requests.html deleted file mode 100644 index 2fd75ee2c4..0000000000 --- a/data/core.telegram.org/api/requests.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - Requests - - - - - - - - - - - - - -
- -
-
-
- -

Requests

- -

Let's consider several typical interaction scenarios for two users.

-

One user knows the other's number

-

User A knows phone number of B (for instance, A has B's number in the phone book). But B does not know А's number. User A sends message to B. Immediately prior to sending a message relevant check is executed at the server side and the link between A and B will change automatically: A's number becomes available for B (user A is then presented as constructor userRequest). -The same happens if user B not having A's number sends a message to the latter. A's number also becomes available to B.

-

Users do not know numbers of each other

-

User A has found user B in a chat, geochat or any other way. For both of them phone numbers are not available (in API - constructor userForeign). A starts chat with B. When messaging A's number will not become available for B and vice versa. To provide B with A's number it is necessary to send him personal message with contact info (phone number should be transferred in constructor inputMediaContact using method messages.sendMedia). -Now B having personal message with A's phone number can store it in his phone book and import it using method contacts.importContacts to have it in contacts. With all that, it is not mandatory for him to send his number: after any message later between them B's number will be available for A (see One user knows the other's number).

-

Both user know each other number

-

This is quite obvious: messaging does not change links since target state has been reached.

-

Technical features

-

Since when sending messages to a current user updates on changed links are not sent constructors containing updated links were added to resulting types of messaging methods:

-
messages.statedMessagesLinks messages:Vector<Message> chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessages;
-messages.statedMessageLink message:Message chats:Vector<Chat> users:Vector<User> links:Vector<contacts.Link> pts:int seq:int = messages.StatedMessage;
-messages.sentMessageLink id:int date:int pts:int seq:int links:Vector<contacts.Link> = messages.SentMessage;
-

To indicate for clients that these constructors are supported one should use 3rd layer.

- -
- -
-
- -
- - - - - - diff --git a/data/core.telegram.org/schema/end-to-end-json.html b/data/core.telegram.org/schema/end-to-end-json.html new file mode 100644 index 0000000000..6c3b4f2cbe --- /dev/null +++ b/data/core.telegram.org/schema/end-to-end-json.html @@ -0,0 +1 @@ +{"constructors":[{"id":"528568095","predicate":"decryptedMessage","params":[{"name":"random_id","type":"long"},{"name":"random_bytes","type":"bytes"},{"name":"message","type":"string"},{"name":"media","type":"DecryptedMessageMedia"}],"type":"DecryptedMessage","layer":8},{"id":"541931640","predicate":"decryptedMessage","params":[{"name":"random_id","type":"long"},{"name":"ttl","type":"int"},{"name":"message","type":"string"},{"name":"media","type":"DecryptedMessageMedia"}],"type":"DecryptedMessage","layer":17},{"id":"917541342","predicate":"decryptedMessage","params":[{"name":"flags","type":"#"},{"name":"random_id","type":"long"},{"name":"ttl","type":"int"},{"name":"message","type":"string"},{"name":"media","type":"flags.9?DecryptedMessageMedia"},{"name":"entities","type":"flags.7?Vector"},{"name":"via_bot_name","type":"flags.11?string"},{"name":"reply_to_random_id","type":"flags.3?long"}],"type":"DecryptedMessage","layer":45},{"id":"-1848883596","predicate":"decryptedMessage","params":[{"name":"flags","type":"#"},{"name":"random_id","type":"long"},{"name":"ttl","type":"int"},{"name":"message","type":"string"},{"name":"media","type":"flags.9?DecryptedMessageMedia"},{"name":"entities","type":"flags.7?Vector"},{"name":"via_bot_name","type":"flags.11?string"},{"name":"reply_to_random_id","type":"flags.3?long"},{"name":"grouped_id","type":"flags.17?long"}],"type":"DecryptedMessage","layer":73},{"id":"-1438109059","predicate":"decryptedMessageService","params":[{"name":"random_id","type":"long"},{"name":"random_bytes","type":"bytes"},{"name":"action","type":"DecryptedMessageAction"}],"type":"DecryptedMessage","layer":8},{"id":"1930838368","predicate":"decryptedMessageService","params":[{"name":"random_id","type":"long"},{"name":"action","type":"DecryptedMessageAction"}],"type":"DecryptedMessage","layer":17},{"id":"144661578","predicate":"decryptedMessageMediaEmpty","params":[],"type":"DecryptedMessageMedia","layer":8},{"id":"846826124","predicate":"decryptedMessageMediaPhoto","params":[{"name":"thumb","type":"bytes"},{"name":"thumb_w","type":"int"},{"name":"thumb_h","type":"int"},{"name":"w","type":"int"},{"name":"h","type":"int"},{"name":"size","type":"int"},{"name":"key","type":"bytes"},{"name":"iv","type":"bytes"}],"type":"DecryptedMessageMedia","layer":8},{"id":"-235238024","predicate":"decryptedMessageMediaPhoto","params":[{"name":"thumb","type":"bytes"},{"name":"thumb_w","type":"int"},{"name":"thumb_h","type":"int"},{"name":"w","type":"int"},{"name":"h","type":"int"},{"name":"size","type":"int"},{"name":"key","type":"bytes"},{"name":"iv","type":"bytes"},{"name":"caption","type":"string"}],"type":"DecryptedMessageMedia","layer":45},{"id":"1290694387","predicate":"decryptedMessageMediaVideo","params":[{"name":"thumb","type":"bytes"},{"name":"thumb_w","type":"int"},{"name":"thumb_h","type":"int"},{"name":"duration","type":"int"},{"name":"w","type":"int"},{"name":"h","type":"int"},{"name":"size","type":"int"},{"name":"key","type":"bytes"},{"name":"iv","type":"bytes"}],"type":"DecryptedMessageMedia","layer":8},{"id":"1380598109","predicate":"decryptedMessageMediaVideo","params":[{"name":"thumb","type":"bytes"},{"name":"thumb_w","type":"int"},{"name":"thumb_h","type":"int"},{"name":"duration","type":"int"},{"name":"mime_type","type":"string"},{"name":"w","type":"int"},{"name":"h","type":"int"},{"name":"size","type":"int"},{"name":"key","type":"bytes"},{"name":"iv","type":"bytes"}],"type":"DecryptedMessageMedia","layer":17},{"id":"-1760785394","predicate":"decryptedMessageMediaVideo","params":[{"name":"thumb","type":"bytes"},{"name":"thumb_w","type":"int"},{"name":"thumb_h","type":"int"},{"name":"duration","type":"int"},{"name":"mime_type","type":"string"},{"name":"w","type":"int"},{"name":"h","type":"int"},{"name":"size","type":"int"},{"name":"key","type":"bytes"},{"name":"iv","type":"bytes"},{"name":"caption","type":"string"}],"type":"DecryptedMessageMedia","layer":45},{"id":"893913689","predicate":"decryptedMessageMediaGeoPoint","params":[{"name":"lat","type":"double"},{"name":"long","type":"double"}],"type":"DecryptedMessageMedia","layer":8},{"id":"1485441687","predicate":"decryptedMessageMediaContact","params":[{"name":"phone_number","type":"string"},{"name":"first_name","type":"string"},{"name":"last_name","type":"string"},{"name":"user_id","type":"int"}],"type":"DecryptedMessageMedia","layer":8},{"id":"-1586283796","predicate":"decryptedMessageActionSetMessageTTL","params":[{"name":"ttl_seconds","type":"int"}],"type":"DecryptedMessageAction","layer":8},{"id":"-1332395189","predicate":"decryptedMessageMediaDocument","params":[{"name":"thumb","type":"bytes"},{"name":"thumb_w","type":"int"},{"name":"thumb_h","type":"int"},{"name":"file_name","type":"string"},{"name":"mime_type","type":"string"},{"name":"size","type":"int"},{"name":"key","type":"bytes"},{"name":"iv","type":"bytes"}],"type":"DecryptedMessageMedia","layer":8},{"id":"2063502050","predicate":"decryptedMessageMediaDocument","params":[{"name":"thumb","type":"bytes"},{"name":"thumb_w","type":"int"},{"name":"thumb_h","type":"int"},{"name":"mime_type","type":"string"},{"name":"size","type":"int"},{"name":"key","type":"bytes"},{"name":"iv","type":"bytes"},{"name":"attributes","type":"Vector"},{"name":"caption","type":"string"}],"type":"DecryptedMessageMedia","layer":45},{"id":"1619031439","predicate":"decryptedMessageMediaAudio","params":[{"name":"duration","type":"int"},{"name":"size","type":"int"},{"name":"key","type":"bytes"},{"name":"iv","type":"bytes"}],"type":"DecryptedMessageMedia","layer":8},{"id":"1474341323","predicate":"decryptedMessageMediaAudio","params":[{"name":"duration","type":"int"},{"name":"mime_type","type":"string"},{"name":"size","type":"int"},{"name":"key","type":"bytes"},{"name":"iv","type":"bytes"}],"type":"DecryptedMessageMedia","layer":17},{"id":"206520510","predicate":"decryptedMessageActionReadMessages","params":[{"name":"random_ids","type":"Vector"}],"type":"DecryptedMessageAction","layer":8},{"id":"1700872964","predicate":"decryptedMessageActionDeleteMessages","params":[{"name":"random_ids","type":"Vector"}],"type":"DecryptedMessageAction","layer":8},{"id":"-1967000459","predicate":"decryptedMessageActionScreenshotMessages","params":[{"name":"random_ids","type":"Vector"}],"type":"DecryptedMessageAction","layer":8},{"id":"1729750108","predicate":"decryptedMessageActionFlushHistory","params":[],"type":"DecryptedMessageAction","layer":8},{"id":"467867529","predicate":"decryptedMessageLayer","params":[{"name":"random_bytes","type":"bytes"},{"name":"layer","type":"int"},{"name":"in_seq_no","type":"int"},{"name":"out_seq_no","type":"int"},{"name":"message","type":"DecryptedMessage"}],"type":"DecryptedMessageLayer","layer":17},{"id":"381645902","predicate":"sendMessageTypingAction","params":[],"type":"SendMessageAction","layer":17},{"id":"-44119819","predicate":"sendMessageCancelAction","params":[],"type":"SendMessageAction","layer":17},{"id":"-1584933265","predicate":"sendMessageRecordVideoAction","params":[],"type":"SendMessageAction","layer":17},{"id":"-1845219337","predicate":"sendMessageUploadVideoAction","params":[],"type":"SendMessageAction","layer":17},{"id":"-718310409","predicate":"sendMessageRecordAudioAction","params":[],"type":"SendMessageAction","layer":17},{"id":"-424899985","predicate":"sendMessageUploadAudioAction","params":[],"type":"SendMessageAction","layer":17},{"id":"-1727382502","predicate":"sendMessageUploadPhotoAction","params":[],"type":"SendMessageAction","layer":17},{"id":"-1884362354","predicate":"sendMessageUploadDocumentAction","params":[],"type":"SendMessageAction","layer":17},{"id":"393186209","predicate":"sendMessageGeoLocationAction","params":[],"type":"SendMessageAction","layer":17},{"id":"1653390447","predicate":"sendMessageChooseContactAction","params":[],"type":"SendMessageAction","layer":17},{"id":"1360072880","predicate":"decryptedMessageActionResend","params":[{"name":"start_seq_no","type":"int"},{"name":"end_seq_no","type":"int"}],"type":"DecryptedMessageAction","layer":17},{"id":"-217806717","predicate":"decryptedMessageActionNotifyLayer","params":[{"name":"layer","type":"int"}],"type":"DecryptedMessageAction","layer":17},{"id":"-860719551","predicate":"decryptedMessageActionTyping","params":[{"name":"action","type":"SendMessageAction"}],"type":"DecryptedMessageAction","layer":17},{"id":"-204906213","predicate":"decryptedMessageActionRequestKey","params":[{"name":"exchange_id","type":"long"},{"name":"g_a","type":"bytes"}],"type":"DecryptedMessageAction","layer":20},{"id":"1877046107","predicate":"decryptedMessageActionAcceptKey","params":[{"name":"exchange_id","type":"long"},{"name":"g_b","type":"bytes"},{"name":"key_fingerprint","type":"long"}],"type":"DecryptedMessageAction","layer":20},{"id":"-586814357","predicate":"decryptedMessageActionAbortKey","params":[{"name":"exchange_id","type":"long"}],"type":"DecryptedMessageAction","layer":20},{"id":"-332526693","predicate":"decryptedMessageActionCommitKey","params":[{"name":"exchange_id","type":"long"},{"name":"key_fingerprint","type":"long"}],"type":"DecryptedMessageAction","layer":20},{"id":"-1473258141","predicate":"decryptedMessageActionNoop","params":[],"type":"DecryptedMessageAction","layer":20},{"id":"1815593308","predicate":"documentAttributeImageSize","params":[{"name":"w","type":"int"},{"name":"h","type":"int"}],"type":"DocumentAttribute","layer":23},{"id":"297109817","predicate":"documentAttributeAnimated","params":[],"type":"DocumentAttribute","layer":23},{"id":"-83208409","predicate":"documentAttributeSticker","params":[],"type":"DocumentAttribute","layer":23},{"id":"978674434","predicate":"documentAttributeSticker","params":[{"name":"alt","type":"string"},{"name":"stickerset","type":"InputStickerSet"}],"type":"DocumentAttribute","layer":45},{"id":"1494273227","predicate":"documentAttributeVideo","params":[{"name":"duration","type":"int"},{"name":"w","type":"int"},{"name":"h","type":"int"}],"type":"DocumentAttribute","layer":23},{"id":"250621158","predicate":"documentAttributeVideo","params":[{"name":"flags","type":"#"},{"name":"duration","type":"int"},{"name":"w","type":"int"},{"name":"h","type":"int"}],"type":"DocumentAttribute","layer":66},{"id":"85215461","predicate":"documentAttributeAudio","params":[{"name":"duration","type":"int"}],"type":"DocumentAttribute","layer":23},{"id":"-556656416","predicate":"documentAttributeAudio","params":[{"name":"duration","type":"int"},{"name":"title","type":"string"},{"name":"performer","type":"string"}],"type":"DocumentAttribute","layer":45},{"id":"-1739392570","predicate":"documentAttributeAudio","params":[{"name":"flags","type":"#"},{"name":"duration","type":"int"},{"name":"title","type":"flags.0?string"},{"name":"performer","type":"flags.1?string"},{"name":"waveform","type":"flags.2?bytes"}],"type":"DocumentAttribute","layer":46},{"id":"358154344","predicate":"documentAttributeFilename","params":[{"name":"file_name","type":"string"}],"type":"DocumentAttribute","layer":23},{"id":"236446268","predicate":"photoSizeEmpty","params":[{"name":"type","type":"string"}],"type":"PhotoSize","layer":23},{"id":"2009052699","predicate":"photoSize","params":[{"name":"type","type":"string"},{"name":"location","type":"FileLocation"},{"name":"w","type":"int"},{"name":"h","type":"int"},{"name":"size","type":"int"}],"type":"PhotoSize","layer":23},{"id":"-374917894","predicate":"photoCachedSize","params":[{"name":"type","type":"string"},{"name":"location","type":"FileLocation"},{"name":"w","type":"int"},{"name":"h","type":"int"},{"name":"bytes","type":"bytes"}],"type":"PhotoSize","layer":23},{"id":"2086234950","predicate":"fileLocationUnavailable","params":[{"name":"volume_id","type":"long"},{"name":"local_id","type":"int"},{"name":"secret","type":"long"}],"type":"FileLocation","layer":23},{"id":"1406570614","predicate":"fileLocation","params":[{"name":"dc_id","type":"int"},{"name":"volume_id","type":"long"},{"name":"local_id","type":"int"},{"name":"secret","type":"long"}],"type":"FileLocation","layer":23},{"id":"-90853155","predicate":"decryptedMessageMediaExternalDocument","params":[{"name":"id","type":"long"},{"name":"access_hash","type":"long"},{"name":"date","type":"int"},{"name":"mime_type","type":"string"},{"name":"size","type":"int"},{"name":"thumb","type":"PhotoSize"},{"name":"dc_id","type":"int"},{"name":"attributes","type":"Vector"}],"type":"DecryptedMessageMedia","layer":23},{"id":"-1148011883","predicate":"messageEntityUnknown","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"}],"type":"MessageEntity","layer":45},{"id":"-100378723","predicate":"messageEntityMention","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"}],"type":"MessageEntity","layer":45},{"id":"1868782349","predicate":"messageEntityHashtag","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"}],"type":"MessageEntity","layer":45},{"id":"1827637959","predicate":"messageEntityBotCommand","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"}],"type":"MessageEntity","layer":45},{"id":"1859134776","predicate":"messageEntityUrl","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"}],"type":"MessageEntity","layer":45},{"id":"1692693954","predicate":"messageEntityEmail","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"}],"type":"MessageEntity","layer":45},{"id":"-1117713463","predicate":"messageEntityBold","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"}],"type":"MessageEntity","layer":45},{"id":"-2106619040","predicate":"messageEntityItalic","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"}],"type":"MessageEntity","layer":45},{"id":"681706865","predicate":"messageEntityCode","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"}],"type":"MessageEntity","layer":45},{"id":"1938967520","predicate":"messageEntityPre","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"},{"name":"language","type":"string"}],"type":"MessageEntity","layer":45},{"id":"1990644519","predicate":"messageEntityTextUrl","params":[{"name":"offset","type":"int"},{"name":"length","type":"int"},{"name":"url","type":"string"}],"type":"MessageEntity","layer":45},{"id":"-2044933984","predicate":"inputStickerSetShortName","params":[{"name":"short_name","type":"string"}],"type":"InputStickerSet","layer":45},{"id":"-4838507","predicate":"inputStickerSetEmpty","params":[],"type":"InputStickerSet","layer":45},{"id":"-1978796689","predicate":"decryptedMessageMediaVenue","params":[{"name":"lat","type":"double"},{"name":"long","type":"double"},{"name":"title","type":"string"},{"name":"address","type":"string"},{"name":"provider","type":"string"},{"name":"venue_id","type":"string"}],"type":"DecryptedMessageMedia","layer":45},{"id":"-452652584","predicate":"decryptedMessageMediaWebPage","params":[{"name":"url","type":"string"}],"type":"DecryptedMessageMedia","layer":45},{"id":"-1997373508","predicate":"sendMessageRecordRoundAction","params":[],"type":"SendMessageAction","layer":66},{"id":"-1150187996","predicate":"sendMessageUploadRoundAction","params":[],"type":"SendMessageAction","layer":66}],"methods":[]} \ No newline at end of file