diff --git a/zcash-android-wallet-app/app/libs/zcash-android-testnet-1.7.5-alpha.aar b/zcash-android-wallet-app/app/libs/zcash-android-testnet-1.7.5-alpha.aar deleted file mode 100644 index 841e3d8..0000000 Binary files a/zcash-android-wallet-app/app/libs/zcash-android-testnet-1.7.5-alpha.aar and /dev/null differ diff --git a/zcash-android-wallet-app/app/libs/zcash-android-testnet-1.7.8-alpha.aar b/zcash-android-wallet-app/app/libs/zcash-android-testnet-1.7.8-alpha.aar new file mode 100644 index 0000000..739ed4c Binary files /dev/null and b/zcash-android-wallet-app/app/libs/zcash-android-testnet-1.7.8-alpha.aar differ diff --git a/zcash-android-wallet-app/app/src/debug/java/cash/z/android/wallet/di/module/SynchronizerModule.kt b/zcash-android-wallet-app/app/src/debug/java/cash/z/android/wallet/di/module/SynchronizerModule.kt index f945d1f..5e63ade 100644 --- a/zcash-android-wallet-app/app/src/debug/java/cash/z/android/wallet/di/module/SynchronizerModule.kt +++ b/zcash-android-wallet-app/app/src/debug/java/cash/z/android/wallet/di/module/SynchronizerModule.kt @@ -31,6 +31,15 @@ internal object SynchronizerModule { return PreferenceManager.getDefaultSharedPreferences(ZcashWalletApplication.instance) } + @JvmStatic + @Provides + @Singleton + fun provideJniConverter(): JniConverter { + return JniConverter().also { + if (BuildConfig.DEBUG) it.initLogs() + } + } + @JvmStatic @Provides @Singleton @@ -58,11 +67,6 @@ internal object SynchronizerModule { return server } - @JvmStatic - @Provides - @Singleton - fun provideTwig(): Twig = TroubleshootingTwig() // troubleshoot on debug, silent on release - @JvmStatic @Provides @Singleton @@ -73,8 +77,8 @@ internal object SynchronizerModule { @JvmStatic @Provides @Singleton - fun provideProcessor(application: ZcashWalletApplication, converter: JniConverter, walletConfig: WalletConfig, twigger: Twig): CompactBlockProcessor { - return CompactBlockProcessor(application, converter, walletConfig.cacheDbName, walletConfig.dataDbName, logger = twigger) + fun provideProcessor(application: ZcashWalletApplication, converter: JniConverter, walletConfig: WalletConfig): CompactBlockProcessor { + return CompactBlockProcessor(application, converter, walletConfig.cacheDbName, walletConfig.dataDbName) } @JvmStatic @@ -101,17 +105,8 @@ internal object SynchronizerModule { @JvmStatic @Provides @Singleton - fun provideManager(wallet: Wallet, repository: TransactionRepository, downloader: CompactBlockStream, twigger: Twig): ActiveTransactionManager { - return ActiveTransactionManager(repository, downloader.connection, wallet, twigger) - } - - @JvmStatic - @Provides - @Singleton - fun provideJniConverter(): JniConverter { - return JniConverter().also { - if (BuildConfig.DEBUG) it.initLogs() - } + fun provideManager(wallet: Wallet, repository: TransactionRepository, downloader: CompactBlockStream): ActiveTransactionManager { + return ActiveTransactionManager(repository, downloader.connection, wallet) } @JvmStatic @@ -124,15 +119,7 @@ internal object SynchronizerModule { manager: ActiveTransactionManager, wallet: Wallet ): Synchronizer { - return SdkSynchronizer( - downloader, - processor, - repository, - manager, - wallet, - batchSize = 100, - blockPollFrequency = 50_000L - ) + return SdkSynchronizer(downloader, processor, repository, manager, wallet, batchSize = 100, blockPollFrequency = 50_000L) } } diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/data/SampleTransactionRepository.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/data/SampleTransactionRepository.kt deleted file mode 100644 index b275e3a..0000000 --- a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/data/SampleTransactionRepository.kt +++ /dev/null @@ -1,59 +0,0 @@ -package cash.z.android.wallet.data - -import android.text.format.DateUtils -import cash.z.wallet.sdk.dao.WalletTransaction -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.channels.ReceiveChannel -import kotlinx.coroutines.channels.produce -import kotlinx.coroutines.delay -import kotlinx.coroutines.isActive -import java.math.BigDecimal -import kotlin.math.roundToLong -import kotlin.random.Random -import kotlin.random.nextInt -import kotlin.random.nextLong - -class SampleTransactionRepository(val scope: CoroutineScope) : TransactionRepository { - /** - * Just send a sample stream of balances, every so often - */ - override fun balance() = scope.produce { - var currentBalance = 0.0 - while (isActive) { - send(BigDecimal(currentBalance)) - delay(500) - currentBalance += 0.1 - } - } - - /** - * Just send a sample stream of transactions, every so often - */ - override fun transactions(): ReceiveChannel = scope.produce { - var oldestTimestamp = System.currentTimeMillis() - (4 * DateUtils.WEEK_IN_MILLIS) - while (isActive) { - delay(1500L) - send(createSampleTransaction(oldestTimestamp).also { oldestTimestamp = it.timeInSeconds * 1000 }) - } - } - - private fun createSampleTransaction(oldestTimestamp: Long): WalletTransaction { - // up to 20% of the delta - val upperBound = System.currentTimeMillis() + Math.round(0.2 * (System.currentTimeMillis() - oldestTimestamp)) - val txId = Random.nextLong(0L..(Long.MAX_VALUE - 1L)) - val value = Random.nextLong(1L..1_500_000_000L) - 750_000_000L - val height = Random.nextInt(0..(Int.MAX_VALUE - 1)) - val isSend = value > 0L - val time = Random.nextLong(oldestTimestamp..upperBound) - val isMined = Random.nextBoolean() - return WalletTransaction( - txId = txId, - value = value, - height = height, - isSend = isSend, - timeInSeconds = time/1000, - isMined = isMined - ) - } - -} \ No newline at end of file diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/data/TransactionRepository.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/data/TransactionRepository.kt deleted file mode 100644 index 5f196fc..0000000 --- a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/data/TransactionRepository.kt +++ /dev/null @@ -1,10 +0,0 @@ -package cash.z.android.wallet.data - -import cash.z.wallet.sdk.dao.WalletTransaction -import kotlinx.coroutines.channels.ReceiveChannel -import java.math.BigDecimal - -interface TransactionRepository { - fun balance(): ReceiveChannel - fun transactions(): ReceiveChannel -} \ No newline at end of file diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/HomePresenter.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/HomePresenter.kt index 65b8f38..2ee4356 100644 --- a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/HomePresenter.kt +++ b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/HomePresenter.kt @@ -35,7 +35,7 @@ class HomePresenter @Inject constructor( job = Job() twig("homePresenter starting! from ${this.hashCode()}") with(view) { - launchBalanceBinder(synchronizer.balance()) + launchBalanceBinder(synchronizer.balances()) launchTransactionBinder(synchronizer.allTransactions()) launchActiveTransactionMonitor(synchronizer.activeTransactions()) } diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/SendPresenter.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/SendPresenter.kt index f7aecec..635e664 100644 --- a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/SendPresenter.kt +++ b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/SendPresenter.kt @@ -67,7 +67,7 @@ class SendPresenter @Inject constructor( inputToggleCurrency() balanceJob?.cancel() balanceJob = Job() - balanceJob = view.launchBalanceBinder(synchronizer.balance()) + balanceJob = view.launchBalanceBinder(synchronizer.balances()) } override fun stop() { diff --git a/zcash-android-wallet-app/app/src/release/java/cash/z/android/wallet/di/module/SynchronizerModule.kt b/zcash-android-wallet-app/app/src/release/java/cash/z/android/wallet/di/module/SynchronizerModule.kt index d8144fa..5bb20f9 100644 --- a/zcash-android-wallet-app/app/src/release/java/cash/z/android/wallet/di/module/SynchronizerModule.kt +++ b/zcash-android-wallet-app/app/src/release/java/cash/z/android/wallet/di/module/SynchronizerModule.kt @@ -22,41 +22,36 @@ internal object SynchronizerModule { @JvmStatic @Provides @Singleton - fun provideTwig(): Twig = if (BuildConfig.DEBUG) TroubleshootingTwig() else SilentTwig() - - @JvmStatic - @Provides - @Singleton - fun provideDownloader(twigger: Twig): CompactBlockStream { - return CompactBlockStream(COMPACT_BLOCK_SERVER, COMPACT_BLOCK_PORT, twigger) + fun provideDownloader(): CompactBlockStream { + return CompactBlockStream(COMPACT_BLOCK_SERVER, COMPACT_BLOCK_PORT) } @JvmStatic @Provides @Singleton - fun provideProcessor(application: ZcashWalletApplication, converter: JniConverter, twigger: Twig): CompactBlockProcessor { - return CompactBlockProcessor(application, converter, SampleProperties.wallet.cacheDbName, SampleProperties.wallet.dataDbName, logger = twigger) + fun provideProcessor(application: ZcashWalletApplication, converter: JniConverter): CompactBlockProcessor { + return CompactBlockProcessor(application, converter, SampleProperties.wallet.cacheDbName, SampleProperties.wallet.dataDbName) } @JvmStatic @Provides @Singleton - fun provideRepository(application: ZcashWalletApplication, converter: JniConverter, twigger: Twig): TransactionRepository { - return PollingTransactionRepository(application, SampleProperties.wallet.dataDbName, 10_000L, converter, twigger) + fun provideRepository(application: ZcashWalletApplication, converter: JniConverter): TransactionRepository { + return PollingTransactionRepository(application, SampleProperties.wallet.dataDbName, 10_000L, converter) } @JvmStatic @Provides @Singleton - fun provideWallet(application: ZcashWalletApplication, converter: JniConverter, twigger: Twig): Wallet { - return Wallet(converter, application.getDatabasePath(SampleProperties.wallet.dataDbName).absolutePath, "${application.cacheDir.absolutePath}/params", seedProvider = SampleProperties.wallet.seedProvider, spendingKeyProvider = SampleProperties.wallet.spendingKeyProvider, logger = twigger) + fun provideWallet(application: ZcashWalletApplication, converter: JniConverter): Wallet { + return Wallet(converter, application.getDatabasePath(SampleProperties.wallet.dataDbName).absolutePath, "${application.cacheDir.absolutePath}/params", seedProvider = SampleProperties.wallet.seedProvider, spendingKeyProvider = SampleProperties.wallet.spendingKeyProvider) } @JvmStatic @Provides @Singleton - fun provideManager(wallet: Wallet, repository: TransactionRepository, downloader: CompactBlockStream, twigger: Twig): ActiveTransactionManager { - return ActiveTransactionManager(repository, downloader.connection, wallet, twigger) + fun provideManager(wallet: Wallet, repository: TransactionRepository, downloader: CompactBlockStream): ActiveTransactionManager { + return ActiveTransactionManager(repository, downloader.connection, wallet) } @JvmStatic @@ -76,10 +71,9 @@ internal object SynchronizerModule { processor: CompactBlockProcessor, repository: TransactionRepository, manager: ActiveTransactionManager, - wallet: Wallet, - twigger: Twig + wallet: Wallet ): Synchronizer { - return SdkSynchronizer(downloader, processor, repository, manager, wallet, blockPollFrequency = 500_000L, logger = twigger) + return SdkSynchronizer(downloader, processor, repository, manager, wallet, blockPollFrequency = 500_000L) } } diff --git a/zcash-android-wallet-app/build.gradle b/zcash-android-wallet-app/build.gradle index bee7c21..7ef7909 100644 --- a/zcash-android-wallet-app/build.gradle +++ b/zcash-android-wallet-app/build.gradle @@ -58,7 +58,7 @@ buildscript { 'speeddial': 'com.leinardi.android:speed-dial:2.0.0', 'stetho': 'com.facebook.stetho:stetho:1.5.1', 'zcash': [ - 'walletSdk': "cash.z.android.wallet:zcash-android-testnet:1.7.5-alpha@aar" + 'walletSdk': "cash.z.android.wallet:zcash-android-testnet:1.7.8-alpha@aar" ] ] repositories {