Keystone hotfix

This commit is contained in:
Milan Cerovsky 2025-05-16 12:08:16 +02:00
parent 8bae0f5d27
commit 4c9c29315e
1 changed files with 17 additions and 22 deletions

View File

@ -117,8 +117,7 @@ class AccountDataSourceImpl(
}?.combineToFlow() ?: flowOf(null)
}
?: flowOf(null)
}
.map { it?.sortedDescending() }
}.map { it?.sortedDescending() }
.flowOn(Dispatchers.IO)
.stateIn(
scope = scope,
@ -177,12 +176,8 @@ class AccountDataSourceImpl(
override suspend fun requestNextShieldedAddress() {
scope
.launch {
val selectedAccount = getSelectedAccount()
if (selectedAccount is ZashiAccount) {
requestNextShieldedAddressPipeline.emit(selectedAccount.sdkAccount.accountUuid)
}
}
.join()
requestNextShieldedAddressPipeline.emit(getSelectedAccount().sdkAccount.accountUuid)
}.join()
}
private fun observeIsSelected(sdkAccount: Account, allAccounts: List<Account>) =
@ -197,21 +192,21 @@ class AccountDataSourceImpl(
private fun observeUnified(synchronizer: Synchronizer, sdkAccount: Account): Flow<UnifiedInfo> {
val addressFlow =
when (sdkAccount.keySource?.lowercase()) {
KEYSTONE_KEYSOURCE -> flow { emit(WalletAddress.Unified.new(synchronizer.getUnifiedAddress(sdkAccount))) }
else ->
requestNextShieldedAddressPipeline
.onStart { emit(sdkAccount.accountUuid) }
.map {
WalletAddress.Unified.new(
synchronizer.getCustomUnifiedAddress(sdkAccount, UnifiedAddressRequest.SHIELDED)
)
requestNextShieldedAddressPipeline
.onStart { emit(sdkAccount.accountUuid) }
.map {
val request =
if (sdkAccount.keySource?.lowercase() == KEYSTONE_KEYSOURCE) {
UnifiedAddressRequest.ORCHARD
} else {
UnifiedAddressRequest.SHIELDED
}
}.retryWhen { _, attempt ->
delay(attempt.coerceAtMost(RETRY_DELAY).seconds)
true
}
WalletAddress.Unified.new(synchronizer.getCustomUnifiedAddress(sdkAccount, request))
}.retryWhen { _, attempt ->
delay(attempt.coerceAtMost(RETRY_DELAY).seconds)
true
}
return combine(addressFlow, synchronizer.walletBalances) { address, balances ->
val balance = balances?.get(sdkAccount.accountUuid)