Skip to content

Commit c2cdfb9

Browse files
macosswiftclaude
andcommitted
Support wallet channel peers and gift withdrawal tmp passwords
Add walletTransactionPeerChannel (layer 232) as a .channel transaction peer resolved from the transactions' chats, shown with the channel's name and avatar, and persisted in the stored wallet state. payments.withdrawStarGift and payments.getStarGiftWithdrawalUrl now take account.TmpPassword: entering the password fetches a 10-minute token that later withdrawals reuse, so the password is asked at most once per 10 minutes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 653f0d0 commit c2cdfb9

13 files changed

Lines changed: 299 additions & 167 deletions

File tree

‎submodules/TelegramApi/schema.json‎

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

‎submodules/TelegramApi/swift_scheme.tl‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2310,6 +2310,7 @@ wallet.userAddresses#928e7b55 addresses:Vector<WalletUserAddress> users:Vector<U
23102310
walletTransactionPeerUser#d4ea706d flags:# user_id:long address:string domain:flags.0?string = WalletTransactionPeer;
23112311
walletTransactionPeerAddress#62cc1bc flags:# address:string domain:flags.0?string = WalletTransactionPeer;
23122312
walletTransactionPeerOnramp#e595186e flags:# address:string domain:flags.0?string provider_name:string = WalletTransactionPeer;
2313+
walletTransactionPeerChannel#54e70c31 flags:# channel_id:long address:string domain:flags.0?string = WalletTransactionPeer;
23132314
walletTransactionPeerUnsupported#728bed5a = WalletTransactionPeer;
23142315

23152316
walletTransaction#952dc143 flags:# incoming:flags.0?true gasless:flags.1?true failed:flags.2?true key_change:flags.5?true comment_encrypted:flags.6?true id:string amount:long fee:long date:int peer:WalletTransactionPeer comment:flags.3?string tx_hash:flags.4?string nft:flags.7?wallet.NftItem = WalletTransaction;
@@ -3048,7 +3049,7 @@ payments.transferStarGift#7f18176a stargift:InputSavedStarGift to_id:InputPeer =
30483049
payments.getUniqueStarGift#a1974d72 slug:string = payments.UniqueStarGift;
30493050
payments.getSavedStarGifts#a319e569 flags:# exclude_unsaved:flags.0?true exclude_saved:flags.1?true exclude_unlimited:flags.2?true exclude_unique:flags.4?true sort_by_value:flags.5?true exclude_upgradable:flags.7?true exclude_unupgradable:flags.8?true peer_color_available:flags.9?true exclude_hosted:flags.10?true peer:InputPeer collection_id:flags.6?int offset:string limit:int = payments.SavedStarGifts;
30503051
payments.getSavedStarGift#b455a106 stargift:Vector<InputSavedStarGift> = payments.SavedStarGifts;
3051-
payments.getStarGiftWithdrawalUrl#d06e93a8 stargift:InputSavedStarGift password:InputCheckPasswordSRP = payments.StarGiftWithdrawalUrl;
3052+
payments.getStarGiftWithdrawalUrl#cb4ead0b flags:# stargift:InputSavedStarGift password:InputCheckPasswordSRP tmp_password:flags.0?bytes = payments.StarGiftWithdrawalUrl;
30523053
payments.toggleChatStarGiftNotifications#60eaefa1 flags:# enabled:flags.0?true peer:InputPeer = Bool;
30533054
payments.toggleStarGiftsPinnedToTop#1513e7b0 peer:InputPeer stargift:Vector<InputSavedStarGift> = Bool;
30543055
payments.canPurchaseStore#4fdc5ea7 purpose:InputStorePaymentPurpose = Bool;
@@ -3076,7 +3077,7 @@ payments.getOnrampAvailability#2ec29951 flags:# provider:string crypto_currency:
30763077
payments.getOnrampLimits#80e851fd flags:# provider:string crypto_currency:string base_currency:string payment_method:flags.0?string = OnrampLimits;
30773078
payments.getOnrampQuote#e06645fa flags:# provider:string crypto_currency:string base_currency:string base_amount:flags.0?string crypto_amount:flags.1?string payment_method:flags.2?string = OnrampQuote;
30783079
payments.createOnrampSession#a2197cf6 flags:# provider:string crypto_currency:string address:string payment_method:flags.0?string base_currency:flags.1?string base_amount:flags.2?string memo:flags.3?string theme:flags.4?string success_return_url:flags.5?string fail_return_url:flags.6?string crypto_amount:flags.7?string = OnrampSession;
3079-
payments.withdrawStarGift#97c2805a flags:# keep_on_profile:flags.0?true stargift:InputSavedStarGift password:InputCheckPasswordSRP = Bool;
3080+
payments.withdrawStarGift#20109cb3 flags:# keep_on_profile:flags.0?true stargift:InputSavedStarGift password:InputCheckPasswordSRP tmp_password:flags.1?bytes = Bool;
30803081
payments.depositStarGift#c0a2ea9f flags:# hide_sender:flags.0?true peer:InputPeer slug:string = payments.StarGiftDepositPayload;
30813082
payments.displayStarGift#4aa5f0fe flags:# peer:flags.0?InputPeer slug:string = Bool;
30823083

‎submodules/TelegramCore/Sources/State/UpdatesApiUtils.swift‎

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -403,9 +403,15 @@ extension Api.Update {
403403
var peerIds: [PeerId] {
404404
switch self {
405405
case let .updateSentWalletTransaction(data):
406-
if case let .walletTransaction(value)? = data.transaction,
407-
case let .walletTransactionPeerUser(peer) = value.peer {
408-
return [PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(peer.userId))]
406+
if case let .walletTransaction(value)? = data.transaction {
407+
switch value.peer {
408+
case let .walletTransactionPeerUser(peer):
409+
return [PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(peer.userId))]
410+
case let .walletTransactionPeerChannel(peer):
411+
return [PeerId(namespace: Namespaces.Peer.CloudChannel, id: PeerId.Id._internalFromInt64Value(peer.channelId))]
412+
default:
413+
break
414+
}
409415
}
410416
return []
411417
case let .updateChannel(updateChannelData):

0 commit comments

Comments
 (0)