Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mwr-911 #442

Merged
merged 86 commits into from
Oct 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
cc30da7
Set up defectdojo
C4tWithShell Jul 20, 2023
55ae302
Merge branch 'master' into feature/DOPS-2614/dojo_sonar
C4tWithShell Jul 31, 2023
1ac865f
Merge branch 'develop' into sora_3.3.0.1
arvifox Aug 28, 2023
a5345df
merge fixes from develop branch, sora v3.3.0.1
arvifox Aug 28, 2023
49c8bf5
Merge pull request #176 from sora-xor/sora_3.3.0.1
arvifox Aug 28, 2023
2101dbc
Merge branch 'release_sora_v3.3.0.2'
arvifox Sep 8, 2023
2a338c9
sora release v.3.3.0.2 100
arvifox Sep 8, 2023
e211974
Merge pull request #197 from sora-xor/release_sora_v3.3.0.2
arvifox Sep 9, 2023
8807aef
release sora v.3.3.0.3 101
arvifox Sep 11, 2023
db37ca7
Merge pull request #198 from sora-xor/release_sora_v3.3.0.3
arvifox Sep 11, 2023
52ff682
Merge branch 'master' into feature/DOPS-2614/dojo_sonar
C4tWithShell Sep 13, 2023
d02b602
Merge pull request #103 from sora-xor/feature/DOPS-2614/dojo_sonar
C4tWithShell Sep 13, 2023
ac14584
sora v3.3.0.4 102
arvifox Sep 21, 2023
1b67a1c
Merge pull request #208 from sora-xor/sora_v3.3.0.4
arvifox Sep 21, 2023
299b275
Merge branch 'develop' into dev_to_master
arvifox Oct 10, 2023
6362c02
Merge pull request #227 from sora-xor/dev_to_master
arvifox Oct 11, 2023
ebccd57
release sora v3.4.0.0 103
arvifox Oct 10, 2023
76602be
Merge pull request #228 from sora-xor/sora_v3.4.0.0_103
arvifox Oct 11, 2023
4d62fbb
Create TECH_TASK.yml
Tieumsan Oct 15, 2023
c2f9fb3
Create BUG_REPORT.yml
Tieumsan Oct 15, 2023
757653e
Create config.yml
Tieumsan Oct 15, 2023
d7c5ea0
Merge pull request #231 from sora-xor/issue_templates
arvifox Oct 16, 2023
9f60ff8
release sora v3.5.0.0 104
arvifox Oct 16, 2023
85ff7ef
Merge pull request #232 from sora-xor/sora_v3.5.0.0_104
arvifox Oct 16, 2023
bbec220
sa-234 minor fixes
arvifox Oct 17, 2023
07aac7d
Merge pull request #235 from sora-xor/sa-234
arvifox Oct 17, 2023
2abd3c1
release sora v3.5.0.1 105
arvifox Oct 17, 2023
52913e8
Merge pull request #240 from sora-xor/sora_v3.5.0.1_105
arvifox Oct 17, 2023
59a81e7
Merge branch 'develop' into master_dev
arvifox Oct 23, 2023
7654aa4
Merge pull request #255 from sora-xor/master_dev
arvifox Oct 23, 2023
0ba6562
Merge branch 'master' into dev_to_master
arvifox Oct 28, 2023
68c28e6
Merge pull request #265 from sora-xor/dev_to_master
arvifox Oct 28, 2023
1a5b98f
release sora v3.6.0.0 106
arvifox Oct 28, 2023
52779b6
Merge pull request #266 from sora-xor/sora_v3.6.0.0_106
arvifox Oct 28, 2023
a5845f3
Merge branch 'develop' into dev_to_master
Nov 9, 2023
7e453b0
Merge pull request #287 from sora-xor/dev_to_master
arvifox Nov 9, 2023
4fe8a0b
release sora v3.7.0.0 107
Nov 9, 2023
9a632ca
Merge pull request #288 from sora-xor/sora_v3.7.0.0_107
arvifox Nov 10, 2023
6751eda
Update TECH_TASK.yml
Tieumsan Nov 14, 2023
5074eff
Merge pull request #293 from sora-xor/update_template
arvifox Nov 16, 2023
41ab5a0
Merge branch 'develop' into dev_to_master
arvifox Dec 4, 2023
9d4284b
release sora v3.8.0.0 108
arvifox Dec 4, 2023
c62f56d
Merge pull request #318 from sora-xor/sora_v3.8.0.0_108
arvifox Dec 4, 2023
e222574
Merge branch 'develop' into develop_to_master
arvifox Dec 29, 2023
371e33b
Merge pull request #362 from sora-xor/develop_to_master
arvifox Dec 29, 2023
0baa408
release sora v3.8.1.0 109
arvifox Dec 29, 2023
ae91188
Merge pull request #363 from sora-xor/sora_v3.8.1.0_109
arvifox Dec 29, 2023
0164aec
Merge branch 'develop' into dev_to_master
arvifox Jan 12, 2024
bd8d4f8
release sora v3.8.1.1 110
arvifox Jan 12, 2024
f5eda8d
Merge pull request #379 from sora-xor/dev_to_master
arvifox Jan 15, 2024
f32e8e8
Update dojoProductType
marat-biriushev Jan 17, 2024
fd2b19b
Update dojoProductType
marat-biriushev Jan 24, 2024
2e17634
Merge pull request #382 from sora-xor/feature/DOPS-2950
marat-biriushev Jan 25, 2024
afabe18
Merge branch 'develop' into dev_to_master
arvifox Jan 26, 2024
b00e639
Merge pull request #392 from sora-xor/dev_to_master
arvifox Jan 26, 2024
14e364a
release sora v3.8.2.0 111
arvifox Jan 29, 2024
56c43ba
Merge pull request #394 from sora-xor/sora_v3.8.2.0_111
arvifox Feb 15, 2024
c86a976
Merge branch 'develop' into dev_to_master
arvifox Feb 20, 2024
18abba2
Merge pull request #399 from sora-xor/dev_to_master
arvifox Feb 20, 2024
a8e67b3
release sora v3.8.3.0 112
arvifox Feb 20, 2024
b02ce2c
Merge pull request #400 from sora-xor/sora_v3.8.3.0
arvifox Feb 21, 2024
678810a
release sora v3.8.3.1 113
arvifox Feb 21, 2024
cc73695
Merge pull request #402 from sora-xor/sora_v3.8.3.1_113
arvifox Feb 21, 2024
208cb83
sa-405
arvifox Mar 19, 2024
252d2a0
release sora v3.8.4.0 114
arvifox Mar 19, 2024
c375952
Merge pull request #408 from sora-xor/sa-405
arvifox Mar 19, 2024
7c4bece
support - update build notification format
baotn166 Apr 24, 2024
65a1fd0
Test with jenkins test branch
Naghme98 May 2, 2024
4069a6b
revert jenkins test link to PR
Naghme98 May 6, 2024
c46ea37
Merge pull request #411 from sora-xor/support/update-build-notification
baotn166 May 6, 2024
4325e72
version up
arvifox Jun 17, 2024
ffca336
Merge pull request #418 from sora-xor/version_up
arvifox Jun 18, 2024
cad9bbc
develop to master
arvifox Sep 8, 2024
66dc70f
Merge pull request #432 from sora-xor/develop_to_master
arvifox Sep 8, 2024
4444b0e
release sora v3.8.5.0 115
arvifox Sep 9, 2024
b14d6c6
Merge pull request #433 from sora-xor/sora_v3.8.5.0_115
arvifox Sep 9, 2024
86c5cc6
mwr-995
arvifox Oct 23, 2024
758a7a9
MWR-923 Replaced StartActivityForResult to PickVisualMedia & removed …
ZFRFM Oct 7, 2024
6e2b387
release sora v3.8.5.1 116
arvifox Oct 23, 2024
f872f58
Merge pull request #439 from sora-xor/mwr-995
arvifox Oct 23, 2024
0dac9cf
release sora v3.8.5.2 117
arvifox Oct 23, 2024
f496554
release sora v3.8.5.3 118
arvifox Oct 23, 2024
b7f4fea
Merge pull request #441 from sora-xor/mwr-995
arvifox Oct 24, 2024
efa303f
mwr-911
arvifox Oct 29, 2024
ffaea2f
Merge branch 'master' into mwr-911
arvifox Oct 29, 2024
4a10f58
release soralution v3.8.6.1 141
arvifox Oct 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Bug Report
description: A clear and concise description of what the bug is.
title: "[Bug]: "
labels: ["bug"]

body:
- type: markdown
attributes:
value: |
Thank you for helping us improve SORA!

- type: textarea
id: preconditions
attributes:
label: Preconditions
description: What are the preconditions to reproduce the bug ?

- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to reproduce
description: What are the steps to reproduce the bug ?
placeholder: |
(e.g.)
1. Go to
2. Click on
validations:
required: true

- type: textarea
id: actual-behavior
attributes:
label: Actual behavior
description: What is the actual behavior when encountering the bug ?
validations:
required: true

- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true

- type: dropdown
attributes:
label: Environment
description: In which environment did the bug occur ?
multiple: false
options:
- label: Development
- label: Test
- label: Stage
- label: Production
validations:
required: true

- type: input
id: os
attributes:
label: OS version
description: What version of the OS are you using when encountering the bug?

- type: textarea
id: additional-context
attributes:
label: Additional context
description: Add any other context about the problem here. If applicable, add screenshots to help explain your problem.
61 changes: 61 additions & 0 deletions .github/ISSUE_TEMPLATE/TECH_TASK.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Technical-Task
description: A clear and comprehensive description of the technical task that needs to be implemented.
title: "[Tech]: "
labels: ["tech"]

body:
- type: markdown
attributes:
value: |
Let us guide you through the creation of the issue that will best set the tech task up for success :)

- type: textarea
id: tech-problem
attributes:
label: Problem statement
description: What needs to be solved or optimized in the current system ?
placeholder: We don't account for X when using functions Y so we need to implement a value check in each of them.
validations:
required: true

- type: textarea
id: tech-description
attributes:
label: Description
description: Can you provide a clear and concise description of the context in which the problem statement happens?
placeholder: |
- As part of the work on bridge X we realized that Y was not implemented in the best way
- ...

- type: textarea
id: tech-ac
attributes:
label: Acceptance Criteria
description: What are the expected behavior ?
placeholder: |
1. Given ... when ..., ... happens
2. Given ... when ..., ... happens
validations:
required: true

- type: textarea
id: tech-dod
attributes:
label: Definition of Done
description: When do we consider the task done ?
placeholder: |
1. Unit tests
2. Migration tests
3. Integration tests
4. Acceptance criteria
validations:
required: true

- type: textarea
id: tech-requirements
attributes:
label: Requirements
description: Are there any additional requirements that the tech task implementation should comply with?
placeholder: |
- Make sure we use a certain set of good practices
- Use a specific programming paradigm
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
5 changes: 3 additions & 2 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ def pipeline = new org.android.AppPipeline(steps: this,
testCmd: 'ktlintCheck clean testDevelopDebugUnitTest koverVerifyDevelopDebug',
publishType: 'Bundle',
jobParams: jobParams,
appPushNoti: true,
statusNotif: true,
gitUpdateSubmodule: true,
dockerImage: 'build-tools/android-build-box:jdk17',
gpgFiles: ['app/google-services.json'])
gpgFiles: ['app/google-services.json'],
dojoProductType: 'sora-mobile')
pipeline.runPipeline('sora')
10 changes: 5 additions & 5 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ kotlin {
jvmToolchain(17)
}

// soralution 140 3.8.6.0 2024.10.21
// sora dae 108 3.8.0.0 2023.12.04
// soralution 141 3.8.6.1 2024.10.29
// sora dae 118 3.8.5.3 2024.10.23

android {
namespace = "jp.co.soramitsu.sora"
Expand All @@ -30,8 +30,8 @@ android {
applicationId = "jp.co.soramitsu.sora"
minSdk = 26
targetSdk = 34
versionCode = System.getenv("CI_BUILD_ID")?.toInt() ?: 140
versionName = "3.8.6.0"
versionCode = System.getenv("CI_BUILD_ID")?.toInt() ?: 141
versionName = "3.8.6.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled = true
// resConfigs "en", "ru", "es", "fr", "de", "nb", "in", "tr", "ar"
Expand Down Expand Up @@ -172,7 +172,7 @@ play {
serviceAccountCredentials = file(System.getenv("CI_PLAY_KEY") ?: "../key/fake.json")
track = "internal"
releaseStatus = ReleaseStatus.DRAFT
releaseName = "3.8.6.0 - SORA Card Improvements"
releaseName = "3.8.6.1 - SORA Card Improvements"
defaultToAppBundles = true
}

Expand Down
1 change: 0 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

<queries>
Expand Down
2 changes: 1 addition & 1 deletion common/src/production/assets/sora2_metadata
100755 → 100644

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ internal fun AssetDetailsBalanceCard(
res = R.drawable.ic_buy_crypto,
text = stringResource(id = R.string.common_buy),
enabled = true,
onClick = onBuyCryptoClick
onClick = onBuyCryptoClick,
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@ import jp.co.soramitsu.feature_blockexplorer_api.data.SoraConfigManager
import jp.co.soramitsu.feature_blockexplorer_api.domain.TransactionHistoryHandler
import jp.co.soramitsu.feature_polkaswap_api.domain.interfaces.PoolsInteractor
import jp.co.soramitsu.feature_polkaswap_api.launcher.PolkaswapRouter
import jp.co.soramitsu.feature_sora_card_api.domain.SoraCardInteractor
import jp.co.soramitsu.feature_sora_card_api.util.createSoraCardGateHubContract
import jp.co.soramitsu.feature_sora_card_api.util.readyToStartGatehubOnboarding
import jp.co.soramitsu.feature_wallet_api.launcher.WalletRouter
import jp.co.soramitsu.oauth.base.sdk.contract.SoraCardContractData
import jp.co.soramitsu.sora.substrate.runtime.SubstrateOptionsProvider
Expand All @@ -92,6 +94,7 @@ class AssetDetailsViewModel @AssistedInject constructor(
private val resourceManager: ResourceManager,
private val soraConfigManager: SoraConfigManager,
private val coroutineManager: CoroutineManager,
private val soraCardInteractor: SoraCardInteractor,
) : BaseViewModel() {

@AssistedFactory
Expand Down Expand Up @@ -157,7 +160,8 @@ class AssetDetailsViewModel @AssistedInject constructor(
tokenName = asset.token.name,
tokenIcon = asset.token.iconUri(),
tokenSymbol = asset.token.symbol,
poolsCardTitle = resourceManager.getString(R.string.asset_details_your_pools).format(asset.token.symbol),
poolsCardTitle = resourceManager.getString(R.string.asset_details_your_pools)
.format(asset.token.symbol),
price = asset.token.formatFiatOrEmpty(
asset.token.fiatPrice,
numbersFormatter,
Expand All @@ -176,12 +180,19 @@ class AssetDetailsViewModel @AssistedInject constructor(
numbersFormatter,
),
frozenBalance = if (assetId == SubstrateOptionsProvider.feeAssetId) {
asset.token.printBalance(xorAssetBalance?.frozen ?: BigDecimal.ZERO, numbersFormatter, AssetHolder.ROUNDING)
asset.token.printBalance(
xorAssetBalance?.frozen ?: BigDecimal.ZERO,
numbersFormatter,
AssetHolder.ROUNDING
)
} else {
null
},
frozenBalanceFiat = if (assetId == SubstrateOptionsProvider.feeAssetId) {
asset.token.printFiat(xorAssetBalance?.frozen ?: BigDecimal.ZERO, numbersFormatter)
asset.token.printFiat(
xorAssetBalance?.frozen ?: BigDecimal.ZERO,
numbersFormatter
)
} else {
null
},
Expand Down Expand Up @@ -257,17 +268,41 @@ class AssetDetailsViewModel @AssistedInject constructor(
state = curState.copy(
state = curState.state.copy(
xorBalance = FrozenXorDetailsModel(
token.printBalance(xorBalance.frozen, numbersFormatter, AssetHolder.ROUNDING),
token.printBalance(
xorBalance.frozen,
numbersFormatter,
AssetHolder.ROUNDING,
),
token.printFiat(xorBalance.frozen, numbersFormatter),
token.printBalance(xorBalance.bonded, numbersFormatter, AssetHolder.ROUNDING),
token.printBalance(
xorBalance.bonded,
numbersFormatter,
AssetHolder.ROUNDING,
),
token.printFiat(xorBalance.bonded, numbersFormatter),
token.printBalance(xorBalance.locked, numbersFormatter, AssetHolder.ROUNDING),
token.printBalance(
xorBalance.locked,
numbersFormatter,
AssetHolder.ROUNDING,
),
token.printFiat(xorBalance.locked, numbersFormatter),
token.printBalance(xorBalance.reserved, numbersFormatter, AssetHolder.ROUNDING),
token.printBalance(
xorBalance.reserved,
numbersFormatter,
AssetHolder.ROUNDING,
),
token.printFiat(xorBalance.reserved, numbersFormatter),
token.printBalance(xorBalance.redeemable, numbersFormatter, AssetHolder.ROUNDING),
token.printBalance(
xorBalance.redeemable,
numbersFormatter,
AssetHolder.ROUNDING,
),
token.printFiat(xorBalance.redeemable, numbersFormatter),
token.printBalance(xorBalance.unbonding, numbersFormatter, AssetHolder.ROUNDING),
token.printBalance(
xorBalance.unbonding,
numbersFormatter,
AssetHolder.ROUNDING,
),
token.printFiat(xorBalance.unbonding, numbersFormatter),
)
)
Expand All @@ -284,6 +319,7 @@ class AssetDetailsViewModel @AssistedInject constructor(
}

fun onBuyCrypto() {
_launchSoraCardSignIn.value = createSoraCardGateHubContract()
if (soraCardInteractor.basicStatus.value.ibanInfo?.ibanStatus.readyToStartGatehubOnboarding())
_launchSoraCardSignIn.value = createSoraCardGateHubContract()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ import jp.co.soramitsu.feature_select_node_api.SelectNodeRouter
import jp.co.soramitsu.feature_sora_card_api.domain.SoraCardInteractor
import jp.co.soramitsu.feature_sora_card_api.util.createSoraCardContract
import jp.co.soramitsu.feature_sora_card_api.util.createSoraCardGateHubContract
import jp.co.soramitsu.feature_sora_card_api.util.readyToStartGatehubOnboarding
import jp.co.soramitsu.feature_wallet_api.launcher.WalletRouter
import jp.co.soramitsu.oauth.base.sdk.contract.IbanStatus
import jp.co.soramitsu.oauth.base.sdk.contract.OutwardsScreen
Expand Down Expand Up @@ -200,7 +201,9 @@ class ProfileViewModel @Inject constructor(
}

fun showBuyCrypto() {
_launchSoraCardSignIn.value = createSoraCardGateHubContract()
if (soraCardInteractor.basicStatus.value.ibanInfo?.ibanStatus.readyToStartGatehubOnboarding()) {
_launchSoraCardSignIn.value = createSoraCardGateHubContract()
}
}

fun showSelectNode() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ import jp.co.soramitsu.feature_select_node_api.SelectNodeRouter
import jp.co.soramitsu.feature_sora_card_api.domain.SoraCardAvailabilityInfo
import jp.co.soramitsu.feature_sora_card_api.domain.SoraCardInteractor
import jp.co.soramitsu.feature_wallet_api.launcher.WalletRouter
import jp.co.soramitsu.oauth.base.sdk.contract.IbanInfo
import jp.co.soramitsu.oauth.base.sdk.contract.IbanStatus
import jp.co.soramitsu.oauth.base.sdk.contract.SoraCardCommonVerification
import jp.co.soramitsu.oauth.base.sdk.contract.SoraCardFlow
import jp.co.soramitsu.test_data.SoraCardTestData.soraCardBasicStatusTest
Expand Down Expand Up @@ -195,6 +197,14 @@ class ProfileViewModelTest {

@Test
fun `call showBuyCrypto EXPECT navigate to buy crypto screen`() {
every { soraCardInteractor.basicStatus } returns
MutableStateFlow(
soraCardBasicStatusTest.copy(
initialized = true,
verification = SoraCardCommonVerification.Pending,
ibanInfo = IbanInfo("", IbanStatus.ACTIVE, "", "")
)
)
initViewModel()
profileViewModel.showBuyCrypto()
val launch = profileViewModel.launchSoraCardSignIn.getOrAwaitValue()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ class PoolsInteractorImpl(
tokenTo.id,
tokenTo.precision,
enabled,
presented
presented,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,15 @@ import jp.co.soramitsu.common.util.BuildUtils
import jp.co.soramitsu.common.util.Flavor
import jp.co.soramitsu.oauth.base.sdk.SoraCardEnvironmentType
import jp.co.soramitsu.oauth.base.sdk.SoraCardKycCredentials
import jp.co.soramitsu.oauth.base.sdk.contract.IbanStatus
import jp.co.soramitsu.oauth.base.sdk.contract.SoraCardBasicContractData
import jp.co.soramitsu.oauth.base.sdk.contract.SoraCardContractData
import jp.co.soramitsu.oauth.base.sdk.contract.SoraCardFlow

fun IbanStatus?.readyToStartGatehubOnboarding(): Boolean {
return (this != null) && (this == IbanStatus.ACTIVE)
}

fun createSoraCardBasicContract() = SoraCardBasicContractData(
apiKey = BuildConfig.SORA_CARD_API_KEY,
domain = BuildConfig.SORA_CARD_DOMAIN,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import jp.co.soramitsu.common.presentation.viewmodel.BaseViewModel
import jp.co.soramitsu.common.util.BuildUtils
import jp.co.soramitsu.feature_sora_card_api.domain.SoraCardInteractor
import jp.co.soramitsu.feature_sora_card_api.util.createSoraCardGateHubContract
import jp.co.soramitsu.feature_sora_card_api.util.readyToStartGatehubOnboarding
import jp.co.soramitsu.oauth.base.sdk.contract.IbanInfo
import jp.co.soramitsu.oauth.base.sdk.contract.IbanStatus
import jp.co.soramitsu.oauth.base.sdk.contract.SoraCardContractData
Expand Down Expand Up @@ -165,7 +166,9 @@ class SoraCardDetailsViewModel @Inject constructor(
}

fun onExchangeXorClick() {
_launchSoraCard.value = createSoraCardGateHubContract()
if (soraCardInteractor.basicStatus.value.ibanInfo?.ibanStatus.readyToStartGatehubOnboarding()) {
_launchSoraCard.value = createSoraCardGateHubContract()
}
}

fun onSettingsOptionClick(position: Int, context: Context?) {
Expand Down
5 changes: 4 additions & 1 deletion feature_wallet_impl/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" />
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

</manifest>
Loading