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

Merge Version/0.40 into Master #7689

Merged
merged 24 commits into from
Oct 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
3a8c24e
Increase version name to "0.40.0"
rafaelekol Jun 18, 2024
409b835
Replace page column with Scaffold
rafaelekol Jun 18, 2024
aefa779
Replace Listener with Coroutine Flow in BackgroundManager
rafaelekol Jun 6, 2024
54a94ef
Use `CoroutineScope(Dispatchers.Default)` for scope creation
rafaelekol Jun 18, 2024
38440cb
Update UtxoExpertMode page
rafaelekol Jun 18, 2024
56b1a9b
Merge remote-tracking branch 'refs/remotes/origin/master' into versio…
rafaelekol Aug 16, 2024
5b4b2cd
Merge remote-tracking branch 'refs/remotes/origin/master' into versio…
abdrasulov Sep 11, 2024
20ffd4b
Implement Ton and Jetton support
abdrasulov Sep 17, 2024
4915073
Implement TonTransactionConverter
abdrasulov Sep 17, 2024
4a66b48
Implement showing txs of Ton and Jettons
abdrasulov Sep 18, 2024
12a52a6
Add ton default icons
abdrasulov Sep 18, 2024
a836086
Implement sending TON
abdrasulov Sep 24, 2024
af21a94
Implement sending Jetton
abdrasulov Sep 24, 2024
e785733
Implement adding custom ton jetton
abdrasulov Sep 24, 2024
bf634d6
Auto enable jettons on new transactions
abdrasulov Sep 26, 2024
f029407
Add conversion for remaining ton transaction types
abdrasulov Sep 26, 2024
31dd0b5
Add link to BeUnstoppable mini-app
abdrasulov Sep 27, 2024
eeb1ea8
Add info for ZCash pending balance
abdrasulov Sep 27, 2024
b3fba35
Handle sending max available TON
abdrasulov Sep 27, 2024
d0fa4b9
Add Base network
abdrasulov Sep 30, 2024
09b0c4a
Add ivfun launcher icons
rafaelekol Sep 30, 2024
459b73f
Fix stopping ethereum-kit
abdrasulov Sep 30, 2024
59ca19d
Disable NftKit creation
abdrasulov Sep 30, 2024
40ddb05
Merge remote-tracking branch 'refs/remotes/origin/master' into versio…
abdrasulov Oct 2, 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
20 changes: 14 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ android {
compileSdk compile_sdk_version
minSdkVersion min_sdk_version
targetSdkVersion compile_sdk_version
versionCode 115
versionName "0.39.5"
versionCode 116
versionName "0.40.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

ksp {
Expand Down Expand Up @@ -75,6 +75,7 @@ android {
resValue "string", "arbiscanApiKey", "Z43JN5434XVNA5D73UGPWKF26G5D9MGDPZ"
resValue "string", "gnosisscanApiKey", "V2J8YU15ZX9S1W3GTUV2HXM11TP2TUBRW4"
resValue "string", "ftmscanApiKey", "57YQ2GIRAZNV6M5HIJYYG3XQGGNIPVV8MF"
resValue "string", "basescanApiKey", "AKEWS351FN9P9E2CFPWRWQVGHYUP7W8SUF"
resValue "string", "is_release", "false"
resValue "string", "guidesUrl", "https://raw.githubusercontent.com/horizontalsystems/blockchain-crypto-guides/develop/index.json"
resValue "string", "faqUrl", "https://raw.githubusercontent.com/horizontalsystems/Unstoppable-Wallet-Website/master/src/faq.json"
Expand Down Expand Up @@ -113,6 +114,7 @@ android {
resValue "string", "arbiscanApiKey", "4QWW522BV13BJCZMXH1JIB2ESJ7MZTSJYI"
resValue "string", "gnosisscanApiKey", "KEXFAQKDUENZ5U9CW3ZKYJEJ84ZIHH9QTY"
resValue "string", "ftmscanApiKey", "JAWRPW27KEMVXMJJ9UKY63CVPH3X5V9SMP"
resValue "string", "basescanApiKey", "QU4RJVJXQCW812J3234EW9EV815TA6XC55"
resValue "string", "is_release", "true"
resValue "string", "guidesUrl", "https://raw.githubusercontent.com/horizontalsystems/blockchain-crypto-guides/v1.2/index.json"
resValue "string", "faqUrl", "https://raw.githubusercontent.com/horizontalsystems/Unstoppable-Wallet-Website/v1.3/src/faq.json"
Expand Down Expand Up @@ -179,6 +181,12 @@ android {
substitute module('com.tinder.scarlet:message-adapter-gson:0.1.12') using module('com.github.WalletConnect.Scarlet:message-adapter-gson:1.0.0')
substitute module('com.tinder.scarlet:lifecycle-android:0.1.12') using module('com.github.WalletConnect.Scarlet:lifecycle-android:1.0.0')
}

resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.squareup.okhttp3') {
details.useVersion "4.12.0"
}
}
}

}
Expand Down Expand Up @@ -232,7 +240,7 @@ dependencies {
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.11.0'
implementation 'com.squareup.retrofit2:converter-gson:2.11.0'
implementation 'com.squareup.retrofit2:converter-scalars:2.11.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.11.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
implementation 'com.google.code.gson:gson:2.10.1'
implementation "androidx.biometric:biometric:$biometric_version"

Expand Down Expand Up @@ -269,12 +277,12 @@ dependencies {
debugImplementation leakCanary

// Wallet kits
implementation 'com.github.horizontalsystems:ton-kit-kmm:f1fd301'
implementation 'com.github.horizontalsystems:ton-kit-android:e907480'
implementation 'com.github.horizontalsystems:bitcoin-kit-android:47db768'
implementation 'com.github.horizontalsystems:ethereum-kit-android:3d83900'
implementation 'com.github.horizontalsystems:ethereum-kit-android:a30cc3a71'
implementation 'com.github.horizontalsystems:blockchain-fee-rate-kit-android:1d3bd49'
implementation 'com.github.horizontalsystems:binance-chain-kit-android:c1509a2'
implementation 'com.github.horizontalsystems:market-kit-android:636ca4d'
implementation 'com.github.horizontalsystems:market-kit-android:5fe87c2'
implementation 'com.github.horizontalsystems:solana-kit-android:ce738d8'
implementation 'com.github.horizontalsystems:tron-kit-android:dc3dca7'
// Zcash SDK
Expand Down
64 changes: 64 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,70 @@
<data android:pathPrefix="/referral" />
</intent-filter>
</activity-alias>
<activity-alias
android:name="${applicationId}.IvfunLauncherAlias"
android:enabled="false"
android:icon="@mipmap/launcher_ivfun"
android:label="@string/App_Name"
android:exported="true"
android:targetActivity=".modules.main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:label="@string/App_Name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="wc" />
</intent-filter>
<intent-filter android:label="@string/App_Name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/DeeplinkScheme" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="unstoppable.money" />
<data android:pathPrefix="/referral" />
</intent-filter>
</activity-alias>
<activity-alias
android:name="${applicationId}.DuckLauncherAlias"
android:enabled="false"
android:icon="@mipmap/launcher_duck"
android:label="@string/App_Name"
android:exported="true"
android:targetActivity=".modules.main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:label="@string/App_Name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="wc" />
</intent-filter>
<intent-filter android:label="@string/App_Name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/DeeplinkScheme" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="unstoppable.money" />
<data android:pathPrefix="/referral" />
</intent-filter>
</activity-alias>
</application>

</manifest>
29 changes: 21 additions & 8 deletions app/src/main/java/io/horizontalsystems/bankwallet/core/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import io.horizontalsystems.bankwallet.core.managers.AccountCleaner
import io.horizontalsystems.bankwallet.core.managers.AccountManager
import io.horizontalsystems.bankwallet.core.managers.AdapterManager
import io.horizontalsystems.bankwallet.core.managers.AppVersionManager
import io.horizontalsystems.bankwallet.core.managers.BackgroundStateChangeListener
import io.horizontalsystems.bankwallet.core.managers.BackupManager
import io.horizontalsystems.bankwallet.core.managers.BalanceHiddenManager
import io.horizontalsystems.bankwallet.core.managers.BaseTokenManager
Expand Down Expand Up @@ -61,6 +60,8 @@ import io.horizontalsystems.bankwallet.core.managers.SubscriptionManager
import io.horizontalsystems.bankwallet.core.managers.SystemInfoManager
import io.horizontalsystems.bankwallet.core.managers.TermsManager
import io.horizontalsystems.bankwallet.core.managers.TokenAutoEnableManager
import io.horizontalsystems.bankwallet.core.managers.TonAccountManager
import io.horizontalsystems.bankwallet.core.managers.TonKitManager
import io.horizontalsystems.bankwallet.core.managers.TorManager
import io.horizontalsystems.bankwallet.core.managers.TransactionAdapterManager
import io.horizontalsystems.bankwallet.core.managers.TronAccountManager
Expand Down Expand Up @@ -141,7 +142,6 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory {
lateinit var btcBlockchainManager: BtcBlockchainManager
lateinit var wordsManager: WordsManager
lateinit var networkManager: INetworkManager
lateinit var backgroundStateChangeListener: BackgroundStateChangeListener
lateinit var appConfigProvider: AppConfigProvider
lateinit var adapterManager: IAdapterManager
lateinit var transactionAdapterManager: TransactionAdapterManager
Expand All @@ -163,6 +163,7 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory {
lateinit var binanceKitManager: BinanceKitManager
lateinit var solanaKitManager: SolanaKitManager
lateinit var tronKitManager: TronKitManager
lateinit var tonKitManager: TonKitManager
lateinit var numberFormatter: IAppNumberFormatter
lateinit var feeCoinProvider: FeeTokenProvider
lateinit var accountCleaner: IAccountCleaner
Expand Down Expand Up @@ -275,6 +276,7 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory {
solanaKitManager = SolanaKitManager(appConfigProvider, solanaRpcSourceManager, solanaWalletManager, backgroundManager)

tronKitManager = TronKitManager(appConfigProvider, backgroundManager)
tonKitManager = TonKitManager(backgroundManager)

wordsManager = WordsManager(Mnemonic())
networkManager = NetworkManager()
Expand Down Expand Up @@ -318,6 +320,9 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory {
)
tronAccountManager.start()

val tonAccountManager = TonAccountManager(accountManager, walletManager, tonKitManager, tokenAutoEnableManager)
tonAccountManager.start()

systemInfoManager = SystemInfoManager(appConfigProvider)

languageManager = LanguageManager()
Expand All @@ -344,27 +349,35 @@ class App : CoreApp(), WorkConfiguration.Provider, ImageLoaderFactory {
binanceKitManager = binanceKitManager,
solanaKitManager = solanaKitManager,
tronKitManager = tronKitManager,
tonKitManager = tonKitManager,
backgroundManager = backgroundManager,
restoreSettingsManager = restoreSettingsManager,
coinManager = coinManager,
evmLabelManager = evmLabelManager,
localStorage = localStorage
)
adapterManager = AdapterManager(walletManager, adapterFactory, btcBlockchainManager, evmBlockchainManager, binanceKitManager, solanaKitManager, tronKitManager)
adapterManager = AdapterManager(
walletManager,
adapterFactory,
btcBlockchainManager,
evmBlockchainManager,
binanceKitManager,
solanaKitManager,
tronKitManager,
tonKitManager,
)
transactionAdapterManager = TransactionAdapterManager(adapterManager, adapterFactory)

feeCoinProvider = FeeTokenProvider(marketKit)

pinComponent = PinComponent(
pinSettingsStorage = pinSettingsStorage,
userManager = userManager,
pinDbStorage = PinDbStorage(appDatabase.pinDao())
pinDbStorage = PinDbStorage(appDatabase.pinDao()),
backgroundManager = backgroundManager
)

statsManager = StatsManager(appDatabase.statsDao(), localStorage, marketKit, appConfigProvider)
backgroundStateChangeListener = BackgroundStateChangeListener(pinComponent, statsManager).apply {
backgroundManager.registerListener(this)
}
statsManager = StatsManager(appDatabase.statsDao(), localStorage, marketKit, appConfigProvider, backgroundManager)

rateAppManager = RateAppManager(walletManager, adapterManager, localStorage)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ import io.horizontalsystems.marketkit.models.BlockchainType
import io.horizontalsystems.marketkit.models.Token
import io.horizontalsystems.marketkit.models.TokenQuery
import io.horizontalsystems.solanakit.models.FullTransaction
import io.horizontalsystems.tonkit.FriendlyAddress
import io.horizontalsystems.tronkit.transaction.Fee
import io.reactivex.Flowable
import io.reactivex.Observable
Expand All @@ -62,7 +63,7 @@ import io.horizontalsystems.tronkit.models.Address as TronAddress
interface IAdapterManager {
val adaptersReadyObservable: Flowable<Map<Wallet, IAdapter>>
fun startAdapterManager()
fun refresh()
suspend fun refresh()
fun getAdapterForWallet(wallet: Wallet): IAdapter?
fun getAdapterForToken(token: Token): IAdapter?
fun getBalanceAdapterForWallet(wallet: Wallet): IBalanceAdapter?
Expand Down Expand Up @@ -299,9 +300,10 @@ interface IBalanceAdapter {
data class BalanceData(
val available: BigDecimal,
val timeLocked: BigDecimal = BigDecimal.ZERO,
val notRelayed: BigDecimal = BigDecimal.ZERO
val notRelayed: BigDecimal = BigDecimal.ZERO,
val pending: BigDecimal = BigDecimal.ZERO,
) {
val total get() = available + timeLocked + notRelayed
val total get() = available + timeLocked + notRelayed + pending
}

interface IReceiveAdapter {
Expand Down Expand Up @@ -399,8 +401,8 @@ interface ISendSolanaAdapter {

interface ISendTonAdapter {
val availableBalance: BigDecimal
suspend fun send(amount: BigDecimal, address: String, memo: String?)
suspend fun estimateFee() : BigDecimal
suspend fun send(amount: BigDecimal, address: FriendlyAddress, memo: String?)
suspend fun estimateFee(amount: BigDecimal, address: FriendlyAddress, memo: String?) : BigDecimal
}

interface ISendTronAdapter {
Expand Down
Loading
Loading