mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
47 lines
1.2 KiB
Swift
47 lines
1.2 KiB
Swift
import Foundation
|
|
#if os(macOS)
|
|
import PostboxMac
|
|
import SwiftSignalKitMac
|
|
import MtProtoKitMac
|
|
import TelegramApiMac
|
|
#else
|
|
import Postbox
|
|
import SwiftSignalKit
|
|
import MtProtoKit
|
|
import TelegramApi
|
|
#endif
|
|
|
|
public enum GetServerWalletSaltError {
|
|
case generic
|
|
}
|
|
|
|
public func getServerWalletSalt(network: Network) -> Signal<Data, GetServerWalletSaltError> {
|
|
return network.request(Api.functions.wallet.getKeySecretSalt(revoke: .boolFalse))
|
|
|> mapError { _ -> GetServerWalletSaltError in
|
|
return .generic
|
|
}
|
|
|> map { result -> Data in
|
|
switch result {
|
|
case let .secretSalt(salt):
|
|
return salt.makeData()
|
|
}
|
|
}
|
|
}
|
|
|
|
public enum WalletProxyRequestError {
|
|
case generic(Int32, String)
|
|
}
|
|
|
|
public func walletProxyRequest(network: Network, data: Data) -> Signal<Data, WalletProxyRequestError> {
|
|
return network.request(Api.functions.wallet.sendLiteRequest(body: Buffer(data: data)))
|
|
|> mapError { error -> WalletProxyRequestError in
|
|
return .generic(error.errorCode, error.errorDescription)
|
|
}
|
|
|> map { result -> Data in
|
|
switch result {
|
|
case let .liteResponse(response):
|
|
return response.makeData()
|
|
}
|
|
}
|
|
}
|