Updated on 2026-08-14
This commit is contained in:
parent
9a9c365735
commit
3ed4ba95cd
20 changed files with 78 additions and 15 deletions
|
|
@ -128,7 +128,7 @@ class DefaultWalletManagersFacade(
|
|||
val walletManager = getOrCreateWalletManager(userWalletId, blockchain, derivationPath)
|
||||
if (walletManager == null || blockchain == Blockchain.Unknown) {
|
||||
Timber.w("Unable to get a wallet manager for blockchain: $blockchain")
|
||||
return UpdateWalletManagerResult.Unreachable
|
||||
return UpdateWalletManagerResult.UnreachableWithoutAddresses
|
||||
}
|
||||
|
||||
return getLastWalletManagerResult(walletManager)
|
||||
|
|
@ -248,7 +248,7 @@ class DefaultWalletManagersFacade(
|
|||
)
|
||||
if (walletManager == null || blockchain == Blockchain.Unknown) {
|
||||
Timber.w("Unable to get a wallet manager for blockchain: $blockchain")
|
||||
return UpdateWalletManagerResult.Unreachable
|
||||
return UpdateWalletManagerResult.UnreachableWithoutAddresses
|
||||
}
|
||||
|
||||
updateWalletManagerTokensIfNeeded(walletManager, extraTokens)
|
||||
|
|
@ -281,7 +281,7 @@ class DefaultWalletManagersFacade(
|
|||
} catch (e: Throwable) {
|
||||
Timber.w(e, "Unable to update a wallet manager for: ${walletManager.wallet.blockchain}")
|
||||
|
||||
UpdateWalletManagerResult.Unreachable
|
||||
resultFactory.getUnreachableResult(walletManager)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -293,7 +293,7 @@ class DefaultWalletManagersFacade(
|
|||
} catch (e: Throwable) {
|
||||
Timber.w(e, "Unable to update a wallet manager for: ${walletManager.wallet.blockchain}")
|
||||
|
||||
UpdateWalletManagerResult.Unreachable
|
||||
resultFactory.getUnreachableResult(walletManager)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,12 @@ sealed class UpdateWalletManagerResult {
|
|||
|
||||
object MissedDerivation : UpdateWalletManagerResult()
|
||||
|
||||
object Unreachable : UpdateWalletManagerResult()
|
||||
object UnreachableWithoutAddresses : UpdateWalletManagerResult()
|
||||
|
||||
data class Unreachable(
|
||||
val selectedAddress: String,
|
||||
val addresses: Set<Address>,
|
||||
) : UpdateWalletManagerResult()
|
||||
|
||||
data class Verified(
|
||||
val selectedAddress: String,
|
||||
|
|
|
|||
|
|
@ -46,7 +46,10 @@ internal class UpdateWalletManagerResultFactory {
|
|||
|
||||
return if (amountToCreateAccount == null) {
|
||||
Timber.w("Unable to get required amount to create account for: $blockchain")
|
||||
UpdateWalletManagerResult.Unreachable
|
||||
UpdateWalletManagerResult.Unreachable(
|
||||
selectedAddress = wallet.address,
|
||||
addresses = getAvailableAddresses(wallet.addresses),
|
||||
)
|
||||
} else {
|
||||
UpdateWalletManagerResult.NoAccount(
|
||||
selectedAddress = wallet.address,
|
||||
|
|
@ -57,6 +60,15 @@ internal class UpdateWalletManagerResultFactory {
|
|||
}
|
||||
}
|
||||
|
||||
fun getUnreachableResult(walletManager: WalletManager): UpdateWalletManagerResult {
|
||||
val wallet = walletManager.wallet
|
||||
|
||||
return UpdateWalletManagerResult.Unreachable(
|
||||
selectedAddress = wallet.address,
|
||||
addresses = getAvailableAddresses(wallet.addresses),
|
||||
)
|
||||
}
|
||||
|
||||
private fun getTokensAmounts(amounts: Set<Amount>): Set<CryptoCurrencyAmount> {
|
||||
return amounts.mapNotNullTo(hashSetOf(), ::createCurrencyAmount)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue