import com.privacyboost.sdk.*
import kotlinx.coroutines.*
class PrivacyBoostRepository(config: SdkConfig) {
private val sdk = PrivacyBoostSdk(config)
private var walletDelegate: WalletDelegate? = null
val isConnected: Boolean
get() = sdk.isConnected()
val isAuthenticated: Boolean
get() = sdk.isAuthenticated()
val privacyAddress: String?
get() = sdk.getPrivacyAddress()
suspend fun connect(wallet: WalletDelegate): ConnectResult =
withContext(Dispatchers.IO) {
walletDelegate = wallet
sdk.connect(wallet)
}
suspend fun login(): LoginResult =
withContext(Dispatchers.IO) {
sdk.login()
}
suspend fun deposit(token: String, amount: String): DepositResult =
withContext(Dispatchers.IO) {
sdk.deposit(token, amount)
}
suspend fun withdraw(token: String, amount: String, recipient: String): WithdrawResult =
withContext(Dispatchers.IO) {
sdk.withdraw(token, amount, recipient)
}
suspend fun send(token: String, amount: String, to: String): TransferResult =
withContext(Dispatchers.IO) {
sdk.send(token, amount, to)
}
suspend fun getBalance(token: String): TokenBalance =
withContext(Dispatchers.IO) {
sdk.getBalance(token)
}
fun disconnect() {
sdk.disconnect()
walletDelegate = null
}
}