commit b8b186a6382fef3433170bdf5f8e7b218a2f60b6
parent 6326c3450133618e17180d1fbe4e91d35d28d347
Author: Iván Ávalos <avalos@disroot.org>
Date: Wed, 6 Nov 2024 13:25:21 +0100
[wallet] Bump qtart to 0.13.10
Diffstat:
3 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/wallet/build.gradle b/wallet/build.gradle
@@ -23,7 +23,7 @@ plugins {
id "com.google.protobuf" version "0.9.4"
}
-def qtart_version = "0.13.6"
+def qtart_version = "0.13.10"
static def versionCodeEpoch() {
return (new Date().getTime() / 1000).toInteger()
diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullFragment.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullFragment.kt
@@ -61,7 +61,13 @@ class OutgoingPullFragment : Fragment() {
defaultCurrency = selectedScope?.currency,
currencies = balanceManager.getCurrencies(),
getCurrencySpec = balanceManager::getSpecForCurrency,
- checkPeerPullCredit = peerManager::checkPeerPullCredit,
+ checkPeerPullCredit = {
+ // TODO: this should work with scopeInfo/exchangeBaseUrl
+ exchangeManager.findExchange(it.currency)?.let { ex ->
+ peerManager.checkPeerPullCredit(it,
+ exchangeBaseUrl = ex.exchangeBaseUrl)
+ }
+ },
onClose = {
findNavController().navigate(R.id.action_nav_peer_pull_to_nav_main)
}
diff --git a/wallet/src/main/java/net/taler/wallet/peer/PeerManager.kt b/wallet/src/main/java/net/taler/wallet/peer/PeerManager.kt
@@ -31,9 +31,11 @@ import kotlinx.serialization.json.jsonPrimitive
import net.taler.common.Amount
import net.taler.common.Timestamp
import net.taler.wallet.TAG
+import net.taler.wallet.backend.BackendManager
import net.taler.wallet.backend.TalerErrorCode.WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE
import net.taler.wallet.backend.TalerErrorInfo
import net.taler.wallet.backend.WalletBackendApi
+import net.taler.wallet.balances.ScopeInfo
import net.taler.wallet.cleanExchange
import net.taler.wallet.exchanges.ExchangeItem
import net.taler.wallet.exchanges.ExchangeManager
@@ -76,12 +78,17 @@ class PeerManager(
private val _incomingPushState = MutableStateFlow<IncomingState>(IncomingChecking)
val incomingPushState: StateFlow<IncomingState> = _incomingPushState
- suspend fun checkPeerPullCredit(amount: Amount, exchangeBaseUrl: String? = null): CheckPeerPullCreditResult? {
+ suspend fun checkPeerPullCredit(
+ amount: Amount,
+ exchangeBaseUrl: String? = null,
+ scopeInfo: ScopeInfo? = null,
+ ): CheckPeerPullCreditResult? {
var response: CheckPeerPullCreditResult? = null
val exchangeItem = exchangeManager.findExchange(amount.currency) ?: return null
api.request("checkPeerPullCredit", CheckPeerPullCreditResponse.serializer()) {
exchangeBaseUrl?.let { put("exchangeBaseUrl", it) }
+ scopeInfo?.let { put("restrictScope", JSONObject(BackendManager.json.encodeToString(scopeInfo))) }
put("amount", amount.toJSONString())
}.onSuccess {
response = CheckPeerPullCreditResult(