Skip to content

Commit 00557aa

Browse files
authored
Merge pull request #806 from soramitsu/merge/staging-to-master
merge/staging-to-master
2 parents fe8473e + 5999972 commit 00557aa

File tree

5 files changed

+31
-6
lines changed

5 files changed

+31
-6
lines changed

app/proguard-rules.pro

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
-keep class jp.co.soramitsu.common.data.** { *; }
2626
-keep class jp.co.soramitsu.common.domain.** { *; }
2727

28+
-keep class jp.co.soramitsu.crowdloan.api.data.** { *; }
29+
30+
-keep class jp.co.soramitsu.crowdloan.impl.data.** { *; }
31+
-keep class jp.co.soramitsu.crowdloan.impl.domain.** { *; }
32+
2833
-keep class jp.co.soramitsu.core_db.** { *; }
2934
-keep class jp.co.soramitsu.coredb.** { *; }
3035
-keep class jp.co.soramitsu.core.** { *; }

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ buildscript {
22
ext {
33
// App version
44
versionName = '2.1.0'
5-
versionCode = 82
5+
versionCode = 83
66

77
// SDK and tools
88
compileSdkVersion = 33

feature-crowdloan-impl/src/main/java/jp/co/soramitsu/crowdloan/impl/data/network/api/parachain/ParachainMetadataApi.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import retrofit2.http.Url
55

66
interface ParachainMetadataApi {
77

8-
@GET()
8+
@GET
99
suspend fun getParachainMetadata(
1010
@Url url: String
1111
): List<ParachainMetadataRemote>

feature-staking-api/src/main/java/jp/co/soramitsu/staking/api/data/StakingSharedState.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,10 @@ class StakingSharedState(
9595
}
9696

9797
suspend fun availableToSelect(): List<StakingAssetSelection> {
98-
val allChains = chainRegistry.currentChains.first()
98+
val wallet = accountRepository.getSelectedMetaAccount()
99+
val allChains = chainRegistry.currentChains.first().filter {
100+
wallet.accountId(it) != null
101+
}
99102

100103
return allChains.map { chain ->
101104
val staking = chain.assets.filter { chainAsset ->

feature-staking-impl/src/main/java/jp/co/soramitsu/staking/impl/scenarios/parachain/StakingParachainScenarioInteractor.kt

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import jp.co.soramitsu.common.address.AddressModel
1111
import jp.co.soramitsu.common.address.createAddressModel
1212
import jp.co.soramitsu.common.address.createEthereumAddressModel
1313
import jp.co.soramitsu.common.resources.ResourceManager
14+
import jp.co.soramitsu.common.utils.flowOf
1415
import jp.co.soramitsu.common.utils.orZero
1516
import jp.co.soramitsu.common.utils.sumByBigInteger
1617
import jp.co.soramitsu.common.validation.CompositeValidation
@@ -25,6 +26,7 @@ import jp.co.soramitsu.runtime.ext.accountIdOf
2526
import jp.co.soramitsu.runtime.ext.utilityAsset
2627
import jp.co.soramitsu.runtime.multiNetwork.chain.model.Chain
2728
import jp.co.soramitsu.runtime.multiNetwork.chain.model.ChainId
29+
import jp.co.soramitsu.runtime.multiNetwork.chain.model.polkadotChainId
2830
import jp.co.soramitsu.runtime.state.SingleAssetSharedState
2931
import jp.co.soramitsu.staking.api.data.StakingSharedState
3032
import jp.co.soramitsu.staking.api.domain.api.AccountIdMap
@@ -144,8 +146,23 @@ class StakingParachainScenarioInteractor(
144146
)
145147

146148
override val stakingStateFlow = stakingInteractor.selectedChainFlow().flatMapConcat { chain ->
147-
val accountId = accountRepository.getSelectedMetaAccount().accountId(chain) ?: error("cannot find accountId")
148-
stakingParachainScenarioRepository.stakingStateFlow(chain, accountId)
149+
val availableStakingSelection = stakingSharedState.availableToSelect()
150+
val isSelectedChainAvailable = availableStakingSelection.any { it.chainId == chain.id }
151+
152+
val useChain = if (isSelectedChainAvailable) {
153+
chain
154+
} else {
155+
val chainId = with(availableStakingSelection) {
156+
firstOrNull { it.chainId == polkadotChainId } ?: first()
157+
}.chainId
158+
availableStakingSelection.firstOrNull { it.chainId == chainId }?.let { newSelection ->
159+
stakingSharedState.update(newSelection)
160+
}
161+
val availableChain = stakingInteractor.getChain(chainId)
162+
availableChain
163+
}
164+
val accountId = accountRepository.getSelectedMetaAccount().accountId(useChain) ?: error("cannot find accountId")
165+
stakingParachainScenarioRepository.stakingStateFlow(useChain, accountId)
149166
}
150167

151168
suspend fun getIdentities(collatorsIds: List<AccountId>): Map<String, Identity?> {
@@ -416,7 +433,7 @@ class StakingParachainScenarioInteractor(
416433
override suspend fun getUnstakeAvailableAmount(asset: Asset, collatorId: AccountId?): BigDecimal {
417434
collatorId ?: error("cannot find collatorId")
418435

419-
val chainToAccountIdFlow = jp.co.soramitsu.common.utils.flowOf {
436+
val chainToAccountIdFlow = flowOf {
420437
val chain = stakingInteractor.getSelectedChain()
421438
val accountId = accountRepository.getSelectedMetaAccount().accountId(chain) ?: error("cannot find accountId")
422439
chain to accountId

0 commit comments

Comments
 (0)