2019-11-01 17:11:12 +04:00

40 lines
1.1 KiB
Swift

import Foundation
import Postbox
import SwiftSignalKit
import MtProtoKit
import TelegramApi
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()
}
}
}