From 9c839128bbafa472e17782d1b18de7323bcbcdc1 Mon Sep 17 00:00:00 2001
From: Wizou <11647984+wiz0u@users.noreply.github.com>
Date: Sun, 14 Dec 2025 20:24:02 +0100
Subject: [PATCH] Update to Telegram API Layer 220
- Added support for passkey-based authentication with new classes (`Passkey`, `Account_Passkeys`, etc.) and methods (`Auth_InitPasskeyLogin`, `Account_RegisterPasskey`, etc.).
- Added new methods for handling star gift offers and upgrades (`Payments_ResolveStarGiftOffer`, `Payments_SendStarGiftOffer`, etc.).
- Enhanced star gift functionality with new fields (`gift_num`, `upgrade_variants`, etc.), flags, and classes (`MessageActionStarGiftPurchaseOffer`, `StarGiftBackground`, etc.).
- Updated `Messages_ForwardMessages` to include a new `effect` parameter.
---
README.md | 2 +-
src/TL.Schema.cs | 198 +++++++++++++++++++++++++++++++++----
src/TL.SchemaFuncs.cs | 155 ++++++++++++++++++++++++++++-
src/TL.Table.cs | 35 ++++---
src/WTelegramClient.csproj | 4 +-
5 files changed, 360 insertions(+), 34 deletions(-)
diff --git a/README.md b/README.md
index 85bfbb0..3edbec0 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[](https://corefork.telegram.org/methods)
+[](https://corefork.telegram.org/methods)
[](https://www.nuget.org/packages/WTelegramClient/)
[](https://www.nuget.org/packages/WTelegramClient/absoluteLatest)
[](https://buymeacoffee.com/wizou)
diff --git a/src/TL.Schema.cs b/src/TL.Schema.cs
index d5800b5..8d88c61 100644
--- a/src/TL.Schema.cs
+++ b/src/TL.Schema.cs
@@ -2988,7 +2988,7 @@ namespace TL
}
}
/// You received a gift, see here » for more info. See
- [TLDef(0xDB596550)]
+ [TLDef(0xEA2C31D3)]
public sealed partial class MessageActionStarGift : MessageAction
{
/// Extra bits of information, use flags.HasFlag(...) to test for those
@@ -3014,6 +3014,7 @@ namespace TL
/// For separate upgrades, the identifier of the message with the gift whose upgrade was prepaid (only valid for the receiver of the service message).
[IfFlag(15)] public int gift_msg_id;
[IfFlag(18)] public Peer to_id;
+ [IfFlag(19)] public int gift_num;
[Flags] public enum Flags : uint
{
@@ -3050,6 +3051,8 @@ namespace TL
auction_acquired = 0x20000,
/// Field has a value
has_to_id = 0x40000,
+ /// Field has a value
+ has_gift_num = 0x80000,
}
}
/// A gift » was upgraded to a collectible gift ». See
@@ -3107,6 +3110,7 @@ namespace TL
/// Field has a value
has_drop_original_details_stars = 0x1000,
assigned = 0x2000,
+ from_offer = 0x4000,
}
}
/// Sent from peer A to B, indicates that A refunded all stars B previously paid to send messages to A, see here » for more info on paid messages. See
@@ -3252,6 +3256,34 @@ namespace TL
{
public Birthday birthday;
}
+ /// See
+ [TLDef(0x774278D4)]
+ public sealed partial class MessageActionStarGiftPurchaseOffer : MessageAction
+ {
+ public Flags flags;
+ public StarGiftBase gift;
+ public StarsAmountBase price;
+ public DateTime expires_at;
+
+ [Flags] public enum Flags : uint
+ {
+ accepted = 0x1,
+ declined = 0x2,
+ }
+ }
+ /// See
+ [TLDef(0x73ADA76B)]
+ public sealed partial class MessageActionStarGiftPurchaseOfferDeclined : MessageAction
+ {
+ public Flags flags;
+ public StarGiftBase gift;
+ public StarsAmountBase price;
+
+ [Flags] public enum Flags : uint
+ {
+ expired = 0x1,
+ }
+ }
/// Chat info. See Derived classes: ,
public abstract partial class DialogBase : IObject
@@ -14553,14 +14585,11 @@ namespace TL
public DocumentBase[] icons;
}
/// See
- [TLDef(0x034986AB)]
+ [TLDef(0x01C641C2)]
public sealed partial class WebPageAttributeStarGiftAuction : WebPageAttribute
{
public StarGiftBase gift;
public DateTime end_date;
- public int center_color;
- public int edge_color;
- public int text_color;
}
/// How users voted in a poll See
@@ -20258,6 +20287,7 @@ namespace TL
stargift_drop_original_details = 0x4000000,
phonegroup_message = 0x8000000,
stargift_auction_bid = 0x10000000,
+ offer = 0x20000000,
}
}
@@ -20642,7 +20672,7 @@ namespace TL
public virtual Peer ReleasedBy => default;
}
/// Represents a star gift, see here » for more info. See
- [TLDef(0x1B9A4D7F)]
+ [TLDef(0x313A9547)]
public sealed partial class StarGift : StarGiftBase
{
/// Extra bits of information, use flags.HasFlag(...) to test for those
@@ -20681,6 +20711,9 @@ namespace TL
[IfFlag(9)] public DateTime locked_until_date;
[IfFlag(11)] public string auction_slug;
[IfFlag(11)] public int gifts_per_round;
+ [IfFlag(11)] public DateTime auction_start_date;
+ [IfFlag(12)] public int upgrade_variants;
+ [IfFlag(13)] public StarGiftBackground background;
[Flags] public enum Flags : uint
{
@@ -20706,6 +20739,10 @@ namespace TL
has_locked_until_date = 0x200,
peer_color_available = 0x400,
auction = 0x800,
+ /// Field has a value
+ has_upgrade_variants = 0x1000,
+ /// Field has a value
+ has_background = 0x2000,
}
/// Identifier of the gift
@@ -20718,7 +20755,7 @@ namespace TL
public override Peer ReleasedBy => released_by;
}
/// Represents a collectible star gift, see here » for more info. See
- [TLDef(0xB0BF741B)]
+ [TLDef(0x569D64C9)]
public sealed partial class StarGiftUnique : StarGiftBase
{
/// Extra bits of information, use flags.HasFlag(...) to test for those
@@ -20755,10 +20792,12 @@ namespace TL
[IfFlag(8)] public long value_amount;
/// Currency for the gift's price.
[IfFlag(8)] public string value_currency;
+ [IfFlag(8)] public long value_usd_amount;
/// The current chat where the associated chat theme is installed, if any (gift-based themes can only be installed in one chat at a time).
[IfFlag(10)] public Peer theme_peer;
[IfFlag(11)] public PeerColorBase peer_color;
[IfFlag(12)] public Peer host_id;
+ [IfFlag(13)] public int offer_min_stars;
[Flags] public enum Flags : uint
{
@@ -20778,7 +20817,7 @@ namespace TL
require_premium = 0x40,
/// Whether the gift can be bought only using Toncoins.
resale_ton_only = 0x80,
- /// Fields and have a value
+ /// Fields , and have a value
has_value_amount = 0x100,
/// A chat theme associated to this gift is available, see here » for more info on how to use it.
theme_available = 0x200,
@@ -20788,6 +20827,8 @@ namespace TL
has_peer_color = 0x800,
/// Field has a value
has_host_id = 0x1000,
+ /// Field has a value
+ has_offer_min_stars = 0x2000,
}
/// Identifier of the collectible gift.
@@ -21228,7 +21269,7 @@ namespace TL
}
/// Represents a gift owned by a peer. See
- [TLDef(0x8983A452)]
+ [TLDef(0xEAD6805E)]
public sealed partial class SavedStarGift : IObject
{
/// Extra bits of information, use flags.HasFlag(...) to test for those
@@ -21262,6 +21303,7 @@ namespace TL
/// Hash to prepay for a gift upgrade separately ».
[IfFlag(16)] public string prepaid_upgrade_hash;
[IfFlag(18)] public long drop_original_details_stars;
+ [IfFlag(19)] public int gift_num;
[Flags] public enum Flags : uint
{
@@ -21303,6 +21345,8 @@ namespace TL
upgrade_separate = 0x20000,
/// Field has a value
has_drop_original_details_stars = 0x40000,
+ /// Field has a value
+ has_gift_num = 0x80000,
}
}
@@ -21946,7 +21990,6 @@ namespace TL
{
top = 0x1,
my = 0x2,
- anonymous = 0x4,
has_peer_id = 0x8,
}
}
@@ -21994,7 +22037,7 @@ namespace TL
public virtual DateTime EndDate => default;
}
/// See
- [TLDef(0x5DB04F4B)]
+ [TLDef(0x771A4E66)]
public sealed partial class StarGiftAuctionState : StarGiftAuctionStateBase
{
public int version;
@@ -22004,20 +22047,32 @@ namespace TL
public AuctionBidLevel[] bid_levels;
public long[] top_bidders;
public DateTime next_round_at;
+ public int last_gift_num;
public int gifts_left;
public int current_round;
public int total_rounds;
+ public StarGiftAuctionRound[] rounds;
public override DateTime StartDate => start_date;
public override DateTime EndDate => end_date;
}
/// See
- [TLDef(0x7D967C3A)]
+ [TLDef(0x972DABBF)]
public sealed partial class StarGiftAuctionStateFinished : StarGiftAuctionStateBase
{
+ public Flags flags;
public DateTime start_date;
public DateTime end_date;
public long average_price;
+ [IfFlag(0)] public int listed_count;
+ [IfFlag(1)] public int fragment_listed_count;
+ [IfFlag(1)] public string fragment_listed_url;
+
+ [Flags] public enum Flags : uint
+ {
+ has_listed_count = 0x1,
+ has_fragment_listed_count = 0x2,
+ }
public override DateTime StartDate => start_date;
public override DateTime EndDate => end_date;
@@ -22042,18 +22097,21 @@ namespace TL
}
/// See
- [TLDef(0x0E98E474)]
- public sealed partial class Payments_StarGiftAuctionState : IObject
+ [TLDef(0x6B39F4EC)]
+ public sealed partial class Payments_StarGiftAuctionState : IObject, IPeerResolver
{
public StarGiftBase gift;
public StarGiftAuctionStateBase state;
public StarGiftAuctionUserState user_state;
public int timeout;
public Dictionary users;
+ public Dictionary chats;
+ /// returns a or for the given Peer
+ public IPeerInfo UserOrChat(Peer peer) => peer?.UserOrChat(users, chats);
}
/// See
- [TLDef(0xAB60E20B)]
+ [TLDef(0x42B00348)]
public sealed partial class StarGiftAuctionAcquiredGift : IObject
{
public Flags flags;
@@ -22063,11 +22121,13 @@ namespace TL
public int round;
public int pos;
[IfFlag(1)] public TextWithEntities message;
+ [IfFlag(2)] public int gift_num;
[Flags] public enum Flags : uint
{
name_hidden = 0x1,
has_message = 0x2,
+ has_gift_num = 0x4,
}
}
@@ -22093,11 +22153,14 @@ namespace TL
/// See
/// a value means payments.starGiftActiveAuctionsNotModified
- [TLDef(0x97F187D8)]
- public sealed partial class Payments_StarGiftActiveAuctions : IObject
+ [TLDef(0xAEF6ABBC)]
+ public sealed partial class Payments_StarGiftActiveAuctions : IObject, IPeerResolver
{
public StarGiftActiveAuctionState[] auctions;
public Dictionary users;
+ public Dictionary chats;
+ /// returns a or for the given Peer
+ public IPeerInfo UserOrChat(Peer peer) => peer?.UserOrChat(users, chats);
}
/// See
@@ -22114,4 +22177,105 @@ namespace TL
{
public string slug;
}
+
+ /// See
+ [TLDef(0x98613EBF)]
+ public sealed partial class Passkey : IObject
+ {
+ public Flags flags;
+ public string id;
+ public string name;
+ public DateTime date;
+ [IfFlag(0)] public long software_emoji_id;
+ [IfFlag(1)] public DateTime last_usage_date;
+
+ [Flags] public enum Flags : uint
+ {
+ has_software_emoji_id = 0x1,
+ has_last_usage_date = 0x2,
+ }
+ }
+
+ /// See
+ [TLDef(0xF8E0AA1C)]
+ public sealed partial class Account_Passkeys : IObject
+ {
+ public Passkey[] passkeys;
+ }
+
+ /// See
+ [TLDef(0xE16B5CE1)]
+ public sealed partial class Account_PasskeyRegistrationOptions : IObject
+ {
+ public DataJSON options;
+ }
+
+ /// See
+ [TLDef(0xE2037789)]
+ public sealed partial class Auth_PasskeyLoginOptions : IObject
+ {
+ public DataJSON options;
+ }
+
+ /// See
+ public abstract partial class InputPasskeyResponse : IObject
+ {
+ public DataJSON client_data;
+ }
+ /// See
+ [TLDef(0x3E63935C, inheritBefore = true)]
+ public sealed partial class InputPasskeyResponseRegister : InputPasskeyResponse
+ {
+ public byte[] attestation_data;
+ }
+ /// See
+ [TLDef(0xC31FC14A, inheritBefore = true)]
+ public sealed partial class InputPasskeyResponseLogin : InputPasskeyResponse
+ {
+ public byte[] authenticator_data;
+ public byte[] signature;
+ public string user_handle;
+ }
+
+ /// See
+ public abstract partial class InputPasskeyCredential : IObject { }
+ /// See
+ [TLDef(0x3C27B78F)]
+ public sealed partial class InputPasskeyCredentialPublicKey : InputPasskeyCredential
+ {
+ public string id;
+ public string raw_id;
+ public InputPasskeyResponse response;
+ }
+
+ /// See
+ [TLDef(0xAFF56398)]
+ public sealed partial class StarGiftBackground : IObject
+ {
+ public int center_color;
+ public int edge_color;
+ public int text_color;
+ }
+
+ /// See
+ [TLDef(0x3AAE0528)]
+ public partial class StarGiftAuctionRound : IObject
+ {
+ public int num;
+ public int duration;
+ }
+ /// See
+ [TLDef(0x0AA021E5, inheritBefore = true)]
+ public sealed partial class StarGiftAuctionRoundExtendable : StarGiftAuctionRound
+ {
+ public int extend_top;
+ public int extend_window;
+ }
+
+ /// See
+ [TLDef(0x46C6E36F)]
+ public sealed partial class Payments_StarGiftUpgradeAttributes : IObject
+ {
+ public StarGiftAttribute[] attributes;
+ }
}
diff --git a/src/TL.SchemaFuncs.cs b/src/TL.SchemaFuncs.cs
index 9d21f96..5e2cdbc 100644
--- a/src/TL.SchemaFuncs.cs
+++ b/src/TL.SchemaFuncs.cs
@@ -396,6 +396,24 @@ namespace TL
form_id = form_id,
});
+ /// See
+ public static Task Auth_InitPasskeyLogin(this Client client, int api_id, string api_hash)
+ => client.Invoke(new Auth_InitPasskeyLogin
+ {
+ api_id = api_id,
+ api_hash = api_hash,
+ });
+
+ /// See
+ public static Task Auth_FinishPasskeyLogin(this Client client, InputPasskeyCredential credential, int? from_dc_id = null, long? from_auth_key_id = null)
+ => client.Invoke(new Auth_FinishPasskeyLogin
+ {
+ flags = (Auth_FinishPasskeyLogin.Flags)((from_dc_id != null ? 0x1 : 0) | (from_auth_key_id != null ? 0x1 : 0)),
+ credential = credential,
+ from_dc_id = from_dc_id ?? default,
+ from_auth_key_id = from_auth_key_id ?? default,
+ });
+
/// Register device to receive PUSH notifications See Possible codes: 400 (details)
/// Avoid receiving (silent and invisible background) notifications. Useful to save battery.
/// Device token type, see PUSH updates for the possible values.
@@ -1510,6 +1528,32 @@ namespace TL
hash = hash,
});
+ /// See
+ public static Task Account_InitPasskeyRegistration(this Client client)
+ => client.Invoke(new Account_InitPasskeyRegistration
+ {
+ });
+
+ /// See
+ public static Task Account_RegisterPasskey(this Client client, InputPasskeyCredential credential)
+ => client.Invoke(new Account_RegisterPasskey
+ {
+ credential = credential,
+ });
+
+ /// See
+ public static Task Account_GetPasskeys(this Client client)
+ => client.Invoke(new Account_GetPasskeys
+ {
+ });
+
+ /// See
+ public static Task Account_DeletePasskey(this Client client, string id)
+ => client.Invoke(new Account_DeletePasskey
+ {
+ id = id,
+ });
+
/// Returns basic user info according to their identifiers. See [bots: ✓] Possible codes: 400 (details)
/// List of user identifiers
public static Task Users_GetUsers(this Client client, params InputUserBase[] id)
@@ -2089,10 +2133,10 @@ namespace TL
/// Start playing the video at the specified timestamp (seconds).
/// For paid messages », specifies the amount of Telegram Stars the user has agreed to pay in order to send the message.
/// Used to suggest a post to a channel, see here » for more info on the full flow.
- public static Task Messages_ForwardMessages(this Client client, InputPeer from_peer, int[] id, long[] random_id, InputPeer to_peer, int? top_msg_id = null, DateTime? schedule_date = null, InputPeer send_as = null, InputQuickReplyShortcutBase quick_reply_shortcut = null, int? video_timestamp = null, long? allow_paid_stars = null, InputReplyTo reply_to = null, SuggestedPost suggested_post = null, int? schedule_repeat_period = null, bool silent = false, bool background = false, bool with_my_score = false, bool drop_author = false, bool drop_media_captions = false, bool noforwards = false, bool allow_paid_floodskip = false)
+ public static Task Messages_ForwardMessages(this Client client, InputPeer from_peer, int[] id, long[] random_id, InputPeer to_peer, int? top_msg_id = null, DateTime? schedule_date = null, InputPeer send_as = null, InputQuickReplyShortcutBase quick_reply_shortcut = null, long? effect = null, int? video_timestamp = null, long? allow_paid_stars = null, InputReplyTo reply_to = null, SuggestedPost suggested_post = null, int? schedule_repeat_period = null, bool silent = false, bool background = false, bool with_my_score = false, bool drop_author = false, bool drop_media_captions = false, bool noforwards = false, bool allow_paid_floodskip = false)
=> client.Invoke(new Messages_ForwardMessages
{
- flags = (Messages_ForwardMessages.Flags)((top_msg_id != null ? 0x200 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0) | (quick_reply_shortcut != null ? 0x20000 : 0) | (video_timestamp != null ? 0x100000 : 0) | (allow_paid_stars != null ? 0x200000 : 0) | (reply_to != null ? 0x400000 : 0) | (suggested_post != null ? 0x800000 : 0) | (schedule_repeat_period != null ? 0x1000000 : 0) | (silent ? 0x20 : 0) | (background ? 0x40 : 0) | (with_my_score ? 0x100 : 0) | (drop_author ? 0x800 : 0) | (drop_media_captions ? 0x1000 : 0) | (noforwards ? 0x4000 : 0) | (allow_paid_floodskip ? 0x80000 : 0)),
+ flags = (Messages_ForwardMessages.Flags)((top_msg_id != null ? 0x200 : 0) | (schedule_date != null ? 0x400 : 0) | (send_as != null ? 0x2000 : 0) | (quick_reply_shortcut != null ? 0x20000 : 0) | (effect != null ? 0x40000 : 0) | (video_timestamp != null ? 0x100000 : 0) | (allow_paid_stars != null ? 0x200000 : 0) | (reply_to != null ? 0x400000 : 0) | (suggested_post != null ? 0x800000 : 0) | (schedule_repeat_period != null ? 0x1000000 : 0) | (silent ? 0x20 : 0) | (background ? 0x40 : 0) | (with_my_score ? 0x100 : 0) | (drop_author ? 0x800 : 0) | (drop_media_captions ? 0x1000 : 0) | (noforwards ? 0x4000 : 0) | (allow_paid_floodskip ? 0x80000 : 0)),
from_peer = from_peer,
id = id,
random_id = random_id,
@@ -2103,6 +2147,7 @@ namespace TL
schedule_repeat_period = schedule_repeat_period ?? default,
send_as = send_as,
quick_reply_shortcut = quick_reply_shortcut,
+ effect = effect ?? default,
video_timestamp = video_timestamp ?? default,
allow_paid_stars = allow_paid_stars ?? default,
suggested_post = suggested_post,
@@ -6804,6 +6849,34 @@ namespace TL
hash = hash,
});
+ /// See
+ public static Task Payments_ResolveStarGiftOffer(this Client client, int offer_msg_id, bool decline = false)
+ => client.Invoke(new Payments_ResolveStarGiftOffer
+ {
+ flags = (Payments_ResolveStarGiftOffer.Flags)(decline ? 0x1 : 0),
+ offer_msg_id = offer_msg_id,
+ });
+
+ /// See
+ public static Task Payments_SendStarGiftOffer(this Client client, InputPeer peer, string slug, StarsAmountBase price, int duration, long random_id, long? allow_paid_stars = null)
+ => client.Invoke(new Payments_SendStarGiftOffer
+ {
+ flags = (Payments_SendStarGiftOffer.Flags)(allow_paid_stars != null ? 0x1 : 0),
+ peer = peer,
+ slug = slug,
+ price = price,
+ duration = duration,
+ random_id = random_id,
+ allow_paid_stars = allow_paid_stars ?? default,
+ });
+
+ /// See
+ public static Task Payments_GetStarGiftUpgradeAttributes(this Client client, long gift_id)
+ => client.Invoke(new Payments_GetStarGiftUpgradeAttributes
+ {
+ gift_id = gift_id,
+ });
+
/// Create a stickerset. See [bots: ✓] Possible codes: 400 (details)
/// Whether this is a mask stickerset
/// Whether this is a custom emoji stickerset.
@@ -8489,6 +8562,27 @@ namespace TL.Methods
public long form_id;
}
+ [TLDef(0x518AD0B7)]
+ public sealed partial class Auth_InitPasskeyLogin : IMethod
+ {
+ public int api_id;
+ public string api_hash;
+ }
+
+ [TLDef(0x9857AD07)]
+ public sealed partial class Auth_FinishPasskeyLogin : IMethod
+ {
+ public Flags flags;
+ public InputPasskeyCredential credential;
+ [IfFlag(0)] public int from_dc_id;
+ [IfFlag(0)] public long from_auth_key_id;
+
+ [Flags] public enum Flags : uint
+ {
+ has_from_dc_id = 0x1,
+ }
+ }
+
[TLDef(0xEC86017A)]
public sealed partial class Account_RegisterDevice : IMethod
{
@@ -9392,6 +9486,24 @@ namespace TL.Methods
public long hash;
}
+ [TLDef(0x429547E8)]
+ public sealed partial class Account_InitPasskeyRegistration : IMethod { }
+
+ [TLDef(0x55B41FD6)]
+ public sealed partial class Account_RegisterPasskey : IMethod
+ {
+ public InputPasskeyCredential credential;
+ }
+
+ [TLDef(0xEA1F0C52)]
+ public sealed partial class Account_GetPasskeys : IMethod { }
+
+ [TLDef(0xF5B5563F)]
+ public sealed partial class Account_DeletePasskey : IMethod
+ {
+ public string id;
+ }
+
[TLDef(0x0D91A548)]
public sealed partial class Users_GetUsers : IMethod
{
@@ -9877,7 +9989,7 @@ namespace TL.Methods
}
}
- [TLDef(0x41D41ADE)]
+ [TLDef(0x13704A7C)]
public sealed partial class Messages_ForwardMessages : IMethod
{
public Flags flags;
@@ -9891,6 +10003,7 @@ namespace TL.Methods
[IfFlag(24)] public int schedule_repeat_period;
[IfFlag(13)] public InputPeer send_as;
[IfFlag(17)] public InputQuickReplyShortcutBase quick_reply_shortcut;
+ [IfFlag(18)] public long effect;
[IfFlag(20)] public int video_timestamp;
[IfFlag(21)] public long allow_paid_stars;
[IfFlag(23)] public SuggestedPost suggested_post;
@@ -9907,6 +10020,7 @@ namespace TL.Methods
has_send_as = 0x2000,
noforwards = 0x4000,
has_quick_reply_shortcut = 0x20000,
+ has_effect = 0x40000,
allow_paid_floodskip = 0x80000,
has_video_timestamp = 0x100000,
has_allow_paid_stars = 0x200000,
@@ -13854,6 +13968,41 @@ namespace TL.Methods
public long hash;
}
+ [TLDef(0xE9CE781C)]
+ public sealed partial class Payments_ResolveStarGiftOffer : IMethod
+ {
+ public Flags flags;
+ public int offer_msg_id;
+
+ [Flags] public enum Flags : uint
+ {
+ decline = 0x1,
+ }
+ }
+
+ [TLDef(0x8FB86B41)]
+ public sealed partial class Payments_SendStarGiftOffer : IMethod
+ {
+ public Flags flags;
+ public InputPeer peer;
+ public string slug;
+ public StarsAmountBase price;
+ public int duration;
+ public long random_id;
+ [IfFlag(0)] public long allow_paid_stars;
+
+ [Flags] public enum Flags : uint
+ {
+ has_allow_paid_stars = 0x1,
+ }
+ }
+
+ [TLDef(0x6D038B58)]
+ public sealed partial class Payments_GetStarGiftUpgradeAttributes : IMethod
+ {
+ public long gift_id;
+ }
+
[TLDef(0x9021AB67)]
public sealed partial class Stickers_CreateStickerSet : IMethod
{
diff --git a/src/TL.Table.cs b/src/TL.Table.cs
index 76ac918..7e253c3 100644
--- a/src/TL.Table.cs
+++ b/src/TL.Table.cs
@@ -6,7 +6,7 @@ namespace TL
{
public static partial class Layer
{
- public const int Version = 218; // fetched 11/15/2025 21:06:24
+ public const int Version = 220; // fetched 12/06/2025 13:11:05
internal const int SecretChats = 144;
internal const int MTProto2 = 73;
internal const uint VectorCtor = 0x1CB5C415;
@@ -219,7 +219,7 @@ namespace TL
[0x41B3E202] = typeof(MessageActionPaymentRefunded),
[0x45D5B021] = typeof(MessageActionGiftStars),
[0xB00C47A2] = typeof(MessageActionPrizeStars),
- [0xDB596550] = typeof(MessageActionStarGift),
+ [0xEA2C31D3] = typeof(MessageActionStarGift),
[0x95728543] = typeof(MessageActionStarGiftUnique),
[0xAC1F1FCD] = typeof(MessageActionPaidMessagesRefunded),
[0x84B88578] = typeof(MessageActionPaidMessagesPrice),
@@ -231,6 +231,8 @@ namespace TL
[0x69F916F8] = typeof(MessageActionSuggestedPostRefund),
[0xA8A3C699] = typeof(MessageActionGiftTon),
[0x2C8F2A25] = typeof(MessageActionSuggestBirthday),
+ [0x774278D4] = typeof(MessageActionStarGiftPurchaseOffer),
+ [0x73ADA76B] = typeof(MessageActionStarGiftPurchaseOfferDeclined),
[0xD58A08C6] = typeof(Dialog),
[0x71BD134C] = typeof(DialogFolder),
[0x2331B22D] = typeof(PhotoEmpty),
@@ -1020,7 +1022,7 @@ namespace TL
[0x50CC03D3] = typeof(WebPageAttributeStickerSet),
[0xCF6F6DB8] = typeof(WebPageAttributeUniqueStarGift),
[0x31CAD303] = typeof(WebPageAttributeStarGiftCollection),
- [0x034986AB] = typeof(WebPageAttributeStarGiftAuction),
+ [0x01C641C2] = typeof(WebPageAttributeStarGiftAuction),
[0x4899484E] = typeof(Messages_VotesList),
[0xF568028A] = typeof(BankCardOpenUrl),
[0x3E24E573] = typeof(Payments_BankCardData),
@@ -1384,8 +1386,8 @@ namespace TL
[0x4BA3A95A] = typeof(MessageReactor),
[0x94CE852A] = typeof(StarsGiveawayOption),
[0x54236209] = typeof(StarsGiveawayWinnersOption),
- [0x1B9A4D7F] = typeof(StarGift),
- [0xB0BF741B] = typeof(StarGiftUnique),
+ [0x313A9547] = typeof(StarGift),
+ [0x569D64C9] = typeof(StarGiftUnique),
[0xA388A368] = null,//Payments_StarGiftsNotModified
[0x2ED82995] = typeof(Payments_StarGifts),
[0x7903E3D9] = typeof(MessageReportOption),
@@ -1414,7 +1416,7 @@ namespace TL
[0x315A4974] = typeof(Users_UsersSlice),
[0x416C56E8] = typeof(Payments_UniqueStarGift),
[0x8C9A88AC] = typeof(Messages_WebPagePreview),
- [0x8983A452] = typeof(SavedStarGift),
+ [0xEAD6805E] = typeof(SavedStarGift),
[0x95F389B1] = typeof(Payments_SavedStarGifts),
[0x69279795] = typeof(InputSavedStarGiftUser),
[0xF101AA7F] = typeof(InputSavedStarGiftChat),
@@ -1468,17 +1470,28 @@ namespace TL
[0x711D692D] = typeof(RecentStory),
[0x310240CC] = typeof(AuctionBidLevel),
[0xFE333952] = null,//StarGiftAuctionStateNotModified
- [0x5DB04F4B] = typeof(StarGiftAuctionState),
- [0x7D967C3A] = typeof(StarGiftAuctionStateFinished),
+ [0x771A4E66] = typeof(StarGiftAuctionState),
+ [0x972DABBF] = typeof(StarGiftAuctionStateFinished),
[0x2EEED1C4] = typeof(StarGiftAuctionUserState),
- [0x0E98E474] = typeof(Payments_StarGiftAuctionState),
- [0xAB60E20B] = typeof(StarGiftAuctionAcquiredGift),
+ [0x6B39F4EC] = typeof(Payments_StarGiftAuctionState),
+ [0x42B00348] = typeof(StarGiftAuctionAcquiredGift),
[0x7D5BD1F0] = typeof(Payments_StarGiftAuctionAcquiredGifts),
[0xD31BC45D] = typeof(StarGiftActiveAuctionState),
[0xDB33DAD0] = null,//Payments_StarGiftActiveAuctionsNotModified
- [0x97F187D8] = typeof(Payments_StarGiftActiveAuctions),
+ [0xAEF6ABBC] = typeof(Payments_StarGiftActiveAuctions),
[0x02E16C98] = typeof(InputStarGiftAuction),
[0x7AB58308] = typeof(InputStarGiftAuctionSlug),
+ [0x98613EBF] = typeof(Passkey),
+ [0xF8E0AA1C] = typeof(Account_Passkeys),
+ [0xE16B5CE1] = typeof(Account_PasskeyRegistrationOptions),
+ [0xE2037789] = typeof(Auth_PasskeyLoginOptions),
+ [0x3E63935C] = typeof(InputPasskeyResponseRegister),
+ [0xC31FC14A] = typeof(InputPasskeyResponseLogin),
+ [0x3C27B78F] = typeof(InputPasskeyCredentialPublicKey),
+ [0xAFF56398] = typeof(StarGiftBackground),
+ [0x3AAE0528] = typeof(StarGiftAuctionRound),
+ [0x0AA021E5] = typeof(StarGiftAuctionRoundExtendable),
+ [0x46C6E36F] = typeof(Payments_StarGiftUpgradeAttributes),
// from TL.Secret:
[0x6ABD9782] = typeof(Layer143.DecryptedMessageMediaDocument),
[0x020DF5D0] = typeof(Layer101.MessageEntityBlockquote),
diff --git a/src/WTelegramClient.csproj b/src/WTelegramClient.csproj
index c043406..8eaa0c5 100644
--- a/src/WTelegramClient.csproj
+++ b/src/WTelegramClient.csproj
@@ -13,8 +13,8 @@
WTelegramClient
Wizou
0.0.0
- layer.218
- Telegram Client API (MTProto) library written 100% in C# and .NET Standard | Latest API layer: 218
+ layer.220
+ Telegram Client API (MTProto) library written 100% in C# and .NET Standard | Latest API layer: 220
Release Notes:
$(ReleaseNotes)