Update to TDLib 1.8.45

This commit is contained in:
c0re100 2025-02-14 02:21:05 +08:00
parent bda4018ed3
commit baee9b059d
No known key found for this signature in database
GPG key ID: 7C3B3004FE745AAF
4 changed files with 374 additions and 48 deletions

View file

@ -5963,6 +5963,32 @@ func (client *Client) RemoveMessageReaction(req *RemoveMessageReactionRequest) (
return UnmarshalOk(result.Data)
}
type GetChatAvailablePaidMessageReactionSendersRequest struct {
// Chat identifier
ChatId int64 `json:"chat_id"`
}
// Returns the list of message sender identifiers, which can be used to send a paid reaction in a chat
func (client *Client) GetChatAvailablePaidMessageReactionSenders(req *GetChatAvailablePaidMessageReactionSendersRequest) (*MessageSenders, error) {
result, err := client.Send(Request{
meta: meta{
Type: "getChatAvailablePaidMessageReactionSenders",
},
Data: map[string]interface{}{
"chat_id": req.ChatId,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalMessageSenders(result.Data)
}
type AddPendingPaidMessageReactionRequest struct {
// Identifier of the chat to which the message belongs
ChatId int64 `json:"chat_id"`
@ -5970,10 +5996,8 @@ type AddPendingPaidMessageReactionRequest struct {
MessageId int64 `json:"message_id"`
// Number of Telegram Stars to be used for the reaction. The total number of pending paid reactions must not exceed getOption("paid_reaction_star_count_max")
StarCount int64 `json:"star_count"`
// Pass true if the user didn't choose anonymity explicitly, for example, the reaction is set from the message bubble
UseDefaultIsAnonymous bool `json:"use_default_is_anonymous"`
// Pass true to make paid reaction of the user on the message anonymous; pass false to make the user's profile visible among top reactors. Ignored if use_default_is_anonymous == true
IsAnonymous bool `json:"is_anonymous"`
// Type of the paid reaction; pass null if the user didn't choose reaction type explicitly, for example, the reaction is set from the message bubble
Type PaidReactionType `json:"type"`
}
// Adds the paid message reaction to a message. Use getMessageAvailableReactions to check whether the reaction is available for the message
@ -5986,8 +6010,7 @@ func (client *Client) AddPendingPaidMessageReaction(req *AddPendingPaidMessageRe
"chat_id": req.ChatId,
"message_id": req.MessageId,
"star_count": req.StarCount,
"use_default_is_anonymous": req.UseDefaultIsAnonymous,
"is_anonymous": req.IsAnonymous,
"type": req.Type,
},
})
if err != nil {
@ -6059,25 +6082,25 @@ func (client *Client) RemovePendingPaidMessageReactions(req *RemovePendingPaidMe
return UnmarshalOk(result.Data)
}
type TogglePaidMessageReactionIsAnonymousRequest struct {
type SetPaidMessageReactionTypeRequest struct {
// Identifier of the chat to which the message belongs
ChatId int64 `json:"chat_id"`
// Identifier of the message
MessageId int64 `json:"message_id"`
// Pass true to make paid reaction of the user on the message anonymous; pass false to make the user's profile visible among top reactors
IsAnonymous bool `json:"is_anonymous"`
// New type of the paid reaction
Type PaidReactionType `json:"type"`
}
// Changes whether the paid message reaction of the user to a message is anonymous. The message must have paid reaction added by the user
func (client *Client) TogglePaidMessageReactionIsAnonymous(req *TogglePaidMessageReactionIsAnonymousRequest) (*Ok, error) {
// Changes type of paid message reaction of the current user on a message. The message must have paid reaction added by the current user
func (client *Client) SetPaidMessageReactionType(req *SetPaidMessageReactionTypeRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
Type: "togglePaidMessageReactionIsAnonymous",
Type: "setPaidMessageReactionType",
},
Data: map[string]interface{}{
"chat_id": req.ChatId,
"message_id": req.MessageId,
"is_anonymous": req.IsAnonymous,
"type": req.Type,
},
})
if err != nil {
@ -7318,7 +7341,7 @@ func (client *Client) GetWebAppLinkUrl(req *GetWebAppLinkUrlRequest) (*HttpUrl,
type GetMainWebAppRequest struct {
// Identifier of the chat in which the Web App is opened; pass 0 if none
ChatId int64 `json:"chat_id"`
// Identifier of the target bot
// Identifier of the target bot. If the bot is restricted for the current user, then show an error instead of calling the method
BotUserId int64 `json:"bot_user_id"`
// Start parameter from internalLinkTypeMainWebApp
StartParameter string `json:"start_parameter"`
@ -7351,7 +7374,7 @@ func (client *Client) GetMainWebApp(req *GetMainWebAppRequest) (*MainWebApp, err
}
type GetWebAppUrlRequest struct {
// Identifier of the target bot
// Identifier of the target bot. If the bot is restricted for the current user, then show an error instead of calling the method
BotUserId int64 `json:"bot_user_id"`
// The URL from a keyboardButtonTypeWebApp button, inlineQueryResultsButtonTypeWebApp button, or an empty string when the bot is opened from the side menu
Url string `json:"url"`
@ -7417,7 +7440,7 @@ func (client *Client) SendWebAppData(req *SendWebAppDataRequest) (*Ok, error) {
type OpenWebAppRequest struct {
// Identifier of the chat in which the Web App is opened. The Web App can't be opened in secret chats
ChatId int64 `json:"chat_id"`
// Identifier of the bot, providing the Web App
// Identifier of the bot, providing the Web App. If the bot is restricted for the current user, then show an error instead of calling the method
BotUserId int64 `json:"bot_user_id"`
// The URL from an inlineKeyboardButtonTypeWebApp button, a botMenuButton button, an internalLinkTypeAttachmentMenuBot link, or an empty string otherwise
Url string `json:"url"`
@ -12551,13 +12574,13 @@ func (client *Client) SearchFileDownloads(req *SearchFileDownloadsRequest) (*Fou
}
type SetApplicationVerificationTokenRequest struct {
// Unique identifier for the verification process as received from updateApplicationVerificationRequired
// Unique identifier for the verification process as received from updateApplicationVerificationRequired or updateApplicationRecaptchaVerificationRequired
VerificationId int64 `json:"verification_id"`
// Play Integrity API token for the Android application, or secret from push notification for the iOS application; pass an empty string to abort verification and receive error VERIFICATION_FAILED for the request
// Play Integrity API token for the Android application, or secret from push notification for the iOS application for application verification, or reCAPTCHA token for reCAPTCHA verifications; pass an empty string to abort verification and receive error VERIFICATION_FAILED for the request
Token string `json:"token"`
}
// Application verification has been completed. Can be called before authorization
// Application or reCAPTCHA verification has been completed. Can be called before authorization
func (client *Client) SetApplicationVerificationToken(req *SetApplicationVerificationTokenRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
@ -19097,15 +19120,15 @@ type GetReceivedGiftsRequest struct {
OwnerId MessageSender `json:"owner_id"`
// Pass true to exclude gifts that aren't saved to the chat's profile page. Always true for gifts received by other users and channel chats without can_post_messages administrator right
ExcludeUnsaved bool `json:"exclude_unsaved"`
// Pass true to exclude gifts that are saved to the chat's profile page; for channel chats with can_post_messages administrator right only
// Pass true to exclude gifts that are saved to the chat's profile page. Always false for gifts received by other users and channel chats without can_post_messages administrator right
ExcludeSaved bool `json:"exclude_saved"`
// Pass true to exclude gifts that can be purchased unlimited number of times; for channel chats with can_post_messages administrator right only
// Pass true to exclude gifts that can be purchased unlimited number of times
ExcludeUnlimited bool `json:"exclude_unlimited"`
// Pass true to exclude gifts that can be purchased limited number of times; for channel chats with can_post_messages administrator right only
// Pass true to exclude gifts that can be purchased limited number of times
ExcludeLimited bool `json:"exclude_limited"`
// Pass true to exclude upgraded gifts; for channel chats with can_post_messages administrator right only
// Pass true to exclude upgraded gifts
ExcludeUpgraded bool `json:"exclude_upgraded"`
// Pass true to sort results by gift price instead of send date; for channel chats with can_post_messages administrator right only
// Pass true to sort results by gift price instead of send date
SortByPrice bool `json:"sort_by_price"`
// Offset of the first entry to return as received from the previous request; use empty string to get the first chunk of results
Offset string `json:"offset"`
@ -24375,6 +24398,9 @@ func (client *Client) TestUseUpdate() (Update, error) {
case TypeUpdateApplicationVerificationRequired:
return UnmarshalUpdateApplicationVerificationRequired(result.Data)
case TypeUpdateApplicationRecaptchaVerificationRequired:
return UnmarshalUpdateApplicationRecaptchaVerificationRequired(result.Data)
case TypeUpdateCall:
return UnmarshalUpdateCall(result.Data)
@ -24480,6 +24506,9 @@ func (client *Client) TestUseUpdate() (Update, error) {
case TypeUpdateDefaultReactionType:
return UnmarshalUpdateDefaultReactionType(result.Data)
case TypeUpdateDefaultPaidReactionType:
return UnmarshalUpdateDefaultPaidReactionType(result.Data)
case TypeUpdateSavedMessagesTags:
return UnmarshalUpdateSavedMessagesTags(result.Data)

View file

@ -42,6 +42,7 @@ const (
ClassMessageReadDate = "MessageReadDate"
ClassMessageOrigin = "MessageOrigin"
ClassReactionType = "ReactionType"
ClassPaidReactionType = "PaidReactionType"
ClassMessageEffectType = "MessageEffectType"
ClassMessageSendingState = "MessageSendingState"
ClassMessageReplyTo = "MessageReplyTo"
@ -904,6 +905,9 @@ const (
TypeReactionTypeEmoji = "reactionTypeEmoji"
TypeReactionTypeCustomEmoji = "reactionTypeCustomEmoji"
TypeReactionTypePaid = "reactionTypePaid"
TypePaidReactionTypeRegular = "paidReactionTypeRegular"
TypePaidReactionTypeAnonymous = "paidReactionTypeAnonymous"
TypePaidReactionTypeChat = "paidReactionTypeChat"
TypePaidReactor = "paidReactor"
TypeMessageForwardInfo = "messageForwardInfo"
TypeMessageImportInfo = "messageImportInfo"
@ -2217,6 +2221,7 @@ const (
TypeUpdateFileDownload = "updateFileDownload"
TypeUpdateFileRemovedFromDownloads = "updateFileRemovedFromDownloads"
TypeUpdateApplicationVerificationRequired = "updateApplicationVerificationRequired"
TypeUpdateApplicationRecaptchaVerificationRequired = "updateApplicationRecaptchaVerificationRequired"
TypeUpdateCall = "updateCall"
TypeUpdateGroupCall = "updateGroupCall"
TypeUpdateGroupCallParticipant = "updateGroupCallParticipant"
@ -2252,6 +2257,7 @@ const (
TypeUpdateActiveEmojiReactions = "updateActiveEmojiReactions"
TypeUpdateAvailableMessageEffects = "updateAvailableMessageEffects"
TypeUpdateDefaultReactionType = "updateDefaultReactionType"
TypeUpdateDefaultPaidReactionType = "updateDefaultPaidReactionType"
TypeUpdateSavedMessagesTags = "updateSavedMessagesTags"
TypeUpdateActiveLiveLocationMessages = "updateActiveLiveLocationMessages"
TypeUpdateOwnedStarCount = "updateOwnedStarCount"
@ -2477,6 +2483,11 @@ type ReactionType interface {
ReactionTypeType() string
}
// Describes type of paid message reaction
type PaidReactionType interface {
PaidReactionTypeType() string
}
// Describes type of emoji effect
type MessageEffectType interface {
MessageEffectTypeType() string
@ -8651,6 +8662,8 @@ type UpgradedGift struct {
OwnerAddress string `json:"owner_address"`
// Name of the owner for the case when owner identifier and address aren't known
OwnerName string `json:"owner_name"`
// Address of the gift NFT in TON blockchain; may be empty if none
GiftAddress string `json:"gift_address"`
// Model of the upgraded gift
Model *UpgradedGiftModel `json:"model"`
// Symbol of the upgraded gift
@ -8688,6 +8701,7 @@ func (upgradedGift *UpgradedGift) UnmarshalJSON(data []byte) error {
OwnerId json.RawMessage `json:"owner_id"`
OwnerAddress string `json:"owner_address"`
OwnerName string `json:"owner_name"`
GiftAddress string `json:"gift_address"`
Model *UpgradedGiftModel `json:"model"`
Symbol *UpgradedGiftSymbol `json:"symbol"`
Backdrop *UpgradedGiftBackdrop `json:"backdrop"`
@ -8707,6 +8721,7 @@ func (upgradedGift *UpgradedGift) UnmarshalJSON(data []byte) error {
upgradedGift.MaxUpgradedCount = tmp.MaxUpgradedCount
upgradedGift.OwnerAddress = tmp.OwnerAddress
upgradedGift.OwnerName = tmp.OwnerName
upgradedGift.GiftAddress = tmp.GiftAddress
upgradedGift.Model = tmp.Model
upgradedGift.Symbol = tmp.Symbol
upgradedGift.Backdrop = tmp.Backdrop
@ -13166,6 +13181,83 @@ func (*ReactionTypePaid) ReactionTypeType() string {
return TypeReactionTypePaid
}
// A paid reaction on behalf of the current user
type PaidReactionTypeRegular struct{
meta
}
func (entity *PaidReactionTypeRegular) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub PaidReactionTypeRegular
return json.Marshal((*stub)(entity))
}
func (*PaidReactionTypeRegular) GetClass() string {
return ClassPaidReactionType
}
func (*PaidReactionTypeRegular) GetType() string {
return TypePaidReactionTypeRegular
}
func (*PaidReactionTypeRegular) PaidReactionTypeType() string {
return TypePaidReactionTypeRegular
}
// An anonymous paid reaction
type PaidReactionTypeAnonymous struct{
meta
}
func (entity *PaidReactionTypeAnonymous) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub PaidReactionTypeAnonymous
return json.Marshal((*stub)(entity))
}
func (*PaidReactionTypeAnonymous) GetClass() string {
return ClassPaidReactionType
}
func (*PaidReactionTypeAnonymous) GetType() string {
return TypePaidReactionTypeAnonymous
}
func (*PaidReactionTypeAnonymous) PaidReactionTypeType() string {
return TypePaidReactionTypeAnonymous
}
// A paid reaction on behalf of an owned chat
type PaidReactionTypeChat struct {
meta
// Identifier of the chat
ChatId int64 `json:"chat_id"`
}
func (entity *PaidReactionTypeChat) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub PaidReactionTypeChat
return json.Marshal((*stub)(entity))
}
func (*PaidReactionTypeChat) GetClass() string {
return ClassPaidReactionType
}
func (*PaidReactionTypeChat) GetType() string {
return TypePaidReactionTypeChat
}
func (*PaidReactionTypeChat) PaidReactionTypeType() string {
return TypePaidReactionTypeChat
}
// Contains information about a user that added paid reactions
type PaidReactor struct {
meta
@ -21459,6 +21551,10 @@ type LinkPreviewTypeVideo struct {
meta
// The video description
Video *Video `json:"video"`
// Cover of the video; may be null if none
Cover *Photo `json:"cover"`
// Timestamp from which the video playing must start, in seconds
StartTimestamp int32 `json:"start_timestamp"`
}
func (entity *LinkPreviewTypeVideo) MarshalJSON() ([]byte, error) {
@ -48591,7 +48687,7 @@ func (*InternalLinkTypeVideoChat) InternalLinkTypeType() string {
return TypeInternalLinkTypeVideoChat
}
// The link is a link to a Web App. Call searchPublicChat with the given bot username, check that the user is a bot, then call searchWebApp with the received bot and the given web_app_short_name. Process received foundWebApp by showing a confirmation dialog if needed. If the bot can be added to attachment or side menu, but isn't added yet, then show a disclaimer about Mini Apps being third-party applications instead of the dialog and ask the user to accept their Terms of service. If the user accept the terms and confirms adding, then use toggleBotIsAddedToAttachmentMenu to add the bot. Then, call getWebAppLinkUrl and open the returned URL as a Web App
// The link is a link to a Web App. Call searchPublicChat with the given bot username, check that the user is a bot. If the bot is restricted for the current user, then show an error message. Otherwise, call searchWebApp with the received bot and the given web_app_short_name. Process received foundWebApp by showing a confirmation dialog if needed. If the bot can be added to attachment or side menu, but isn't added yet, then show a disclaimer about Mini Apps being third-party applications instead of the dialog and ask the user to accept their Terms of service. If the user accept the terms and confirms adding, then use toggleBotIsAddedToAttachmentMenu to add the bot. Then, call getWebAppLinkUrl and open the returned URL as a Web App
type InternalLinkTypeWebApp struct {
meta
// Username of the bot that owns the Web App
@ -55542,6 +55638,37 @@ func (*UpdateApplicationVerificationRequired) UpdateType() string {
return TypeUpdateApplicationVerificationRequired
}
// A request can't be completed unless reCAPTCHA verification is performed; for official mobile applications only. The method setApplicationVerificationToken must be called once the verification is completed or failed
type UpdateApplicationRecaptchaVerificationRequired struct {
meta
// Unique identifier for the verification process
VerificationId int64 `json:"verification_id"`
// The action for the check
Action string `json:"action"`
// Identifier of the reCAPTCHA key
RecaptchaKeyId string `json:"recaptcha_key_id"`
}
func (entity *UpdateApplicationRecaptchaVerificationRequired) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub UpdateApplicationRecaptchaVerificationRequired
return json.Marshal((*stub)(entity))
}
func (*UpdateApplicationRecaptchaVerificationRequired) GetClass() string {
return ClassUpdate
}
func (*UpdateApplicationRecaptchaVerificationRequired) GetType() string {
return TypeUpdateApplicationRecaptchaVerificationRequired
}
func (*UpdateApplicationRecaptchaVerificationRequired) UpdateType() string {
return TypeUpdateApplicationRecaptchaVerificationRequired
}
// New call was created or information about a call was updated
type UpdateCall struct {
meta
@ -56737,6 +56864,49 @@ func (updateDefaultReactionType *UpdateDefaultReactionType) UnmarshalJSON(data [
return nil
}
// The type of default paid reaction has changed
type UpdateDefaultPaidReactionType struct {
meta
// The new type of the default paid reaction
Type PaidReactionType `json:"type"`
}
func (entity *UpdateDefaultPaidReactionType) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub UpdateDefaultPaidReactionType
return json.Marshal((*stub)(entity))
}
func (*UpdateDefaultPaidReactionType) GetClass() string {
return ClassUpdate
}
func (*UpdateDefaultPaidReactionType) GetType() string {
return TypeUpdateDefaultPaidReactionType
}
func (*UpdateDefaultPaidReactionType) UpdateType() string {
return TypeUpdateDefaultPaidReactionType
}
func (updateDefaultPaidReactionType *UpdateDefaultPaidReactionType) UnmarshalJSON(data []byte) error {
var tmp struct {
Type json.RawMessage `json:"type"`
}
err := json.Unmarshal(data, &tmp)
if err != nil {
return err
}
fieldType, _ := UnmarshalPaidReactionType(tmp.Type)
updateDefaultPaidReactionType.Type = fieldType
return nil
}
// Tags used in Saved Messages or a Saved Messages topic have changed
type UpdateSavedMessagesTags struct {
meta

View file

@ -1464,6 +1464,43 @@ func UnmarshalListOfReactionType(dataList []json.RawMessage) ([]ReactionType, er
return list, nil
}
func UnmarshalPaidReactionType(data json.RawMessage) (PaidReactionType, error) {
var meta meta
err := json.Unmarshal(data, &meta)
if err != nil {
return nil, err
}
switch meta.Type {
case TypePaidReactionTypeRegular:
return UnmarshalPaidReactionTypeRegular(data)
case TypePaidReactionTypeAnonymous:
return UnmarshalPaidReactionTypeAnonymous(data)
case TypePaidReactionTypeChat:
return UnmarshalPaidReactionTypeChat(data)
default:
return nil, fmt.Errorf("Error unmarshaling. Unknown type: " + meta.Type)
}
}
func UnmarshalListOfPaidReactionType(dataList []json.RawMessage) ([]PaidReactionType, error) {
list := []PaidReactionType{}
for _, data := range dataList {
entity, err := UnmarshalPaidReactionType(data)
if err != nil {
return nil, err
}
list = append(list, entity)
}
return list, nil
}
func UnmarshalMessageEffectType(data json.RawMessage) (MessageEffectType, error) {
var meta meta
@ -8158,6 +8195,9 @@ func UnmarshalUpdate(data json.RawMessage) (Update, error) {
case TypeUpdateApplicationVerificationRequired:
return UnmarshalUpdateApplicationVerificationRequired(data)
case TypeUpdateApplicationRecaptchaVerificationRequired:
return UnmarshalUpdateApplicationRecaptchaVerificationRequired(data)
case TypeUpdateCall:
return UnmarshalUpdateCall(data)
@ -8263,6 +8303,9 @@ func UnmarshalUpdate(data json.RawMessage) (Update, error) {
case TypeUpdateDefaultReactionType:
return UnmarshalUpdateDefaultReactionType(data)
case TypeUpdateDefaultPaidReactionType:
return UnmarshalUpdateDefaultPaidReactionType(data)
case TypeUpdateSavedMessagesTags:
return UnmarshalUpdateSavedMessagesTags(data)
@ -10853,6 +10896,30 @@ func UnmarshalReactionTypePaid(data json.RawMessage) (*ReactionTypePaid, error)
return &resp, err
}
func UnmarshalPaidReactionTypeRegular(data json.RawMessage) (*PaidReactionTypeRegular, error) {
var resp PaidReactionTypeRegular
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalPaidReactionTypeAnonymous(data json.RawMessage) (*PaidReactionTypeAnonymous, error) {
var resp PaidReactionTypeAnonymous
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalPaidReactionTypeChat(data json.RawMessage) (*PaidReactionTypeChat, error) {
var resp PaidReactionTypeChat
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalPaidReactor(data json.RawMessage) (*PaidReactor, error) {
var resp PaidReactor
@ -21357,6 +21424,14 @@ func UnmarshalUpdateApplicationVerificationRequired(data json.RawMessage) (*Upda
return &resp, err
}
func UnmarshalUpdateApplicationRecaptchaVerificationRequired(data json.RawMessage) (*UpdateApplicationRecaptchaVerificationRequired, error) {
var resp UpdateApplicationRecaptchaVerificationRequired
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalUpdateCall(data json.RawMessage) (*UpdateCall, error) {
var resp UpdateCall
@ -21637,6 +21712,14 @@ func UnmarshalUpdateDefaultReactionType(data json.RawMessage) (*UpdateDefaultRea
return &resp, err
}
func UnmarshalUpdateDefaultPaidReactionType(data json.RawMessage) (*UpdateDefaultPaidReactionType, error) {
var resp UpdateDefaultPaidReactionType
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalUpdateSavedMessagesTags(data json.RawMessage) (*UpdateSavedMessagesTags, error) {
var resp UpdateSavedMessagesTags
@ -22942,6 +23025,15 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeReactionTypePaid:
return UnmarshalReactionTypePaid(data)
case TypePaidReactionTypeRegular:
return UnmarshalPaidReactionTypeRegular(data)
case TypePaidReactionTypeAnonymous:
return UnmarshalPaidReactionTypeAnonymous(data)
case TypePaidReactionTypeChat:
return UnmarshalPaidReactionTypeChat(data)
case TypePaidReactor:
return UnmarshalPaidReactor(data)
@ -26881,6 +26973,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeUpdateApplicationVerificationRequired:
return UnmarshalUpdateApplicationVerificationRequired(data)
case TypeUpdateApplicationRecaptchaVerificationRequired:
return UnmarshalUpdateApplicationRecaptchaVerificationRequired(data)
case TypeUpdateCall:
return UnmarshalUpdateCall(data)
@ -26986,6 +27081,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeUpdateDefaultReactionType:
return UnmarshalUpdateDefaultReactionType(data)
case TypeUpdateDefaultPaidReactionType:
return UnmarshalUpdateDefaultPaidReactionType(data)
case TypeUpdateSavedMessagesTags:
return UnmarshalUpdateSavedMessagesTags(data)