From 596bea015866e0282d132d2b3413024d57a9287e Mon Sep 17 00:00:00 2001 From: Kevin Gorham Date: Wed, 18 Dec 2019 23:28:06 -0500 Subject: [PATCH] Refactor to support new app. --- .../cash/z/wallet/sdk/db/IntegrationTest.kt | 36 +++++++++---------- .../java/cash/z/wallet/sdk/Initializer.kt | 2 ++ .../java/cash/z/wallet/sdk/SdkSynchronizer.kt | 13 +++++-- .../cash/z/wallet/sdk/ext/ZcashSdkCommon.kt | 2 +- .../sdk/service/LightWalletGrpcService.kt | 6 ++-- .../saplingtree/{643500.json => 400000.json} | 0 .../java/cash/z/wallet/sdk/ext/ZcashSdk.kt | 2 +- 7 files changed, 36 insertions(+), 25 deletions(-) rename src/zcashmainnet/assets/zcash/saplingtree/{643500.json => 400000.json} (100%) diff --git a/src/androidTest/java/cash/z/wallet/sdk/db/IntegrationTest.kt b/src/androidTest/java/cash/z/wallet/sdk/db/IntegrationTest.kt index 55d0af62..75b1bd7f 100644 --- a/src/androidTest/java/cash/z/wallet/sdk/db/IntegrationTest.kt +++ b/src/androidTest/java/cash/z/wallet/sdk/db/IntegrationTest.kt @@ -4,13 +4,13 @@ import androidx.test.platform.app.InstrumentationRegistry import cash.z.wallet.sdk.block.CompactBlockDbStore import cash.z.wallet.sdk.block.CompactBlockDownloader import cash.z.wallet.sdk.block.CompactBlockProcessor -import cash.z.wallet.sdk.transaction.PollingTransactionRepository +//import cash.z.wallet.sdk.transaction.PollingTransactionRepository import cash.z.wallet.sdk.ext.TroubleshootingTwig import cash.z.wallet.sdk.ext.Twig import cash.z.wallet.sdk.ext.SampleSeedProvider import cash.z.wallet.sdk.ext.SampleSpendingKeyProvider import cash.z.wallet.sdk.jni.RustBackend -import cash.z.wallet.sdk.secure.Wallet +//import cash.z.wallet.sdk.secure.Wallet import cash.z.wallet.sdk.service.LightWalletGrpcService import kotlinx.coroutines.runBlocking import org.junit.AfterClass @@ -30,7 +30,7 @@ class IntegrationTest { private lateinit var downloader: CompactBlockDownloader private lateinit var processor: CompactBlockProcessor - private lateinit var wallet: Wallet +// private lateinit var wallet: Wallet @Before fun setup() { @@ -48,20 +48,20 @@ class IntegrationTest { @Test(timeout = 120_000L) fun testSync() = runBlocking { - val rustBackend = RustBackend.init(context) +// val rustBackend = RustBackend.init(context) val lightwalletService = LightWalletGrpcService(context,"192.168.1.134") - val compactBlockStore = CompactBlockDbStore(context) +// val compactBlockStore = CompactBlockDbStore(context) - downloader = CompactBlockDownloader(lightwalletService, compactBlockStore) - processor = CompactBlockProcessor(downloader, repository, rustBackend) - repository = PollingTransactionRepository(context, dataDbName, 10_000L) - wallet = Wallet( - context, - rustBackend, - SampleSeedProvider("dummyseed"), - SampleSpendingKeyProvider("dummyseed") - ) +// downloader = CompactBlockDownloader(lightwalletService, compactBlockStore) +// processor = CompactBlockProcessor(downloader, repository, rustBackend) +// repository = PollingTransactionRepository(context, dataDbName, 10_000L) +// wallet = Wallet( +// context, +// rustBackend, +// SampleSeedProvider("dummyseed"), +// SampleSpendingKeyProvider("dummyseed") +// ) // repository.start(this) // synchronizer = SdkSynchronizer(wallet, repository, , processor) @@ -78,12 +78,12 @@ class IntegrationTest { } companion object { - private lateinit var synchronizer: Synchronizer - private lateinit var repository: PollingTransactionRepository +// private lateinit var synchronizer: Synchronizer +// private lateinit var repository: PollingTransactionRepository @AfterClass fun tearDown() { - repository.stop() - synchronizer.stop() +// repository.stop() +// synchronizer.stop() } } } \ No newline at end of file diff --git a/src/main/java/cash/z/wallet/sdk/Initializer.kt b/src/main/java/cash/z/wallet/sdk/Initializer.kt index 5f57283e..b05a426a 100644 --- a/src/main/java/cash/z/wallet/sdk/Initializer.kt +++ b/src/main/java/cash/z/wallet/sdk/Initializer.kt @@ -19,6 +19,8 @@ import java.io.InputStreamReader */ class Initializer( appContext: Context, + val host: String = ZcashSdk.DEFAULT_LIGHTWALLETD_HOST, + val port: Int = ZcashSdk.DEFAULT_LIGHTWALLETD_PORT, private val alias: String = ZcashSdk.DEFAULT_DB_NAME_PREFIX ) { init { diff --git a/src/main/java/cash/z/wallet/sdk/SdkSynchronizer.kt b/src/main/java/cash/z/wallet/sdk/SdkSynchronizer.kt index 720d9a21..d7b4303a 100644 --- a/src/main/java/cash/z/wallet/sdk/SdkSynchronizer.kt +++ b/src/main/java/cash/z/wallet/sdk/SdkSynchronizer.kt @@ -311,6 +311,7 @@ class SdkSynchronizer internal constructor( fun Synchronizer( appContext: Context, lightwalletdHost: String = ZcashSdk.DEFAULT_LIGHTWALLETD_HOST, + lightwalletdPort: Int = ZcashSdk.DEFAULT_LIGHTWALLETD_PORT, seed: ByteArray? = null, birthday: Initializer.WalletBirthday? = null ): Synchronizer { @@ -331,9 +332,14 @@ fun Synchronizer( initializer.import(seed, birthday, overwrite = true) } } - return Synchronizer(appContext, lightwalletdHost, initializer.rustBackend) + return Synchronizer(appContext, initializer.rustBackend, lightwalletdHost, lightwalletdPort) } +fun Synchronizer( + appContext: Context, + initializer: Initializer +) = Synchronizer(appContext, initializer.rustBackend, initializer.host, initializer.port) + /** * Constructor function for building a Synchronizer in the most flexible way possible. This allows * a wallet maker to customize any subcomponent of the Synchronzier. @@ -341,12 +347,13 @@ fun Synchronizer( @Suppress("FunctionName") fun Synchronizer( appContext: Context, - lightwalletdHost: String, rustBackend: RustBackend, + lightwalletdHost: String = ZcashSdk.DEFAULT_LIGHTWALLETD_HOST, + lightwalletdPort: Int = ZcashSdk.DEFAULT_LIGHTWALLETD_PORT, ledger: TransactionRepository = PagedTransactionRepository(appContext, 10, rustBackend.dbDataPath), blockStore: CompactBlockStore = CompactBlockDbStore(appContext, rustBackend.dbCachePath), - service: LightWalletService = LightWalletGrpcService(appContext, lightwalletdHost), + service: LightWalletService = LightWalletGrpcService(appContext, lightwalletdHost, lightwalletdPort), encoder: TransactionEncoder = WalletTransactionEncoder(rustBackend, ledger), downloader: CompactBlockDownloader = CompactBlockDownloader(service, blockStore), manager: OutboundTransactionManager = diff --git a/src/main/java/cash/z/wallet/sdk/ext/ZcashSdkCommon.kt b/src/main/java/cash/z/wallet/sdk/ext/ZcashSdkCommon.kt index 59cbfc88..4d8cdd73 100644 --- a/src/main/java/cash/z/wallet/sdk/ext/ZcashSdkCommon.kt +++ b/src/main/java/cash/z/wallet/sdk/ext/ZcashSdkCommon.kt @@ -66,7 +66,7 @@ open class ZcashSdkCommon { /** * The default port to use for connecting to lightwalletd instances. */ - open val LIGHTWALLETD_PORT = 9067 + open val DEFAULT_LIGHTWALLETD_PORT = 9067 /** * The default host to use for lightwalletd. diff --git a/src/main/java/cash/z/wallet/sdk/service/LightWalletGrpcService.kt b/src/main/java/cash/z/wallet/sdk/service/LightWalletGrpcService.kt index fcc98df8..5b9e0ab3 100644 --- a/src/main/java/cash/z/wallet/sdk/service/LightWalletGrpcService.kt +++ b/src/main/java/cash/z/wallet/sdk/service/LightWalletGrpcService.kt @@ -3,7 +3,8 @@ package cash.z.wallet.sdk.service import android.content.Context import cash.z.wallet.sdk.R import cash.z.wallet.sdk.exception.LightwalletException -import cash.z.wallet.sdk.ext.ZcashSdk.LIGHTWALLETD_PORT +import cash.z.wallet.sdk.ext.ZcashSdk.DEFAULT_LIGHTWALLETD_PORT +import cash.z.wallet.sdk.ext.twig import cash.z.wallet.sdk.rpc.CompactFormats import cash.z.wallet.sdk.rpc.CompactTxStreamerGrpc import cash.z.wallet.sdk.rpc.Service @@ -31,7 +32,7 @@ class LightWalletGrpcService private constructor( constructor( appContext: Context, host: String, - port: Int = LIGHTWALLETD_PORT, + port: Int = DEFAULT_LIGHTWALLETD_PORT, usePlaintext: Boolean = !appContext.resources.getBoolean(R.bool.is_mainnet) ) : this(createDefaultChannel(appContext, host, port, usePlaintext)) @@ -94,6 +95,7 @@ class LightWalletGrpcService private constructor( port: Int, usePlaintext: Boolean ): ManagedChannel { + twig("Creating connection to $host:$port") return AndroidChannelBuilder .forAddress(host, port) .context(appContext) diff --git a/src/zcashmainnet/assets/zcash/saplingtree/643500.json b/src/zcashmainnet/assets/zcash/saplingtree/400000.json similarity index 100% rename from src/zcashmainnet/assets/zcash/saplingtree/643500.json rename to src/zcashmainnet/assets/zcash/saplingtree/400000.json diff --git a/src/zcashmainnet/java/cash/z/wallet/sdk/ext/ZcashSdk.kt b/src/zcashmainnet/java/cash/z/wallet/sdk/ext/ZcashSdk.kt index 65cf051d..20928b7c 100644 --- a/src/zcashmainnet/java/cash/z/wallet/sdk/ext/ZcashSdk.kt +++ b/src/zcashmainnet/java/cash/z/wallet/sdk/ext/ZcashSdk.kt @@ -17,7 +17,7 @@ object ZcashSdk : ZcashSdkCommon() { /** * The default port to use for connecting to lightwalletd instances. */ - override val LIGHTWALLETD_PORT = 443 + override val DEFAULT_LIGHTWALLETD_PORT = 443 /** * The default host to use for lightwalletd.