Refactor to support new app.

This commit is contained in:
Kevin Gorham 2019-12-18 23:28:06 -05:00
parent 88aeb4f5ac
commit 596bea0158
No known key found for this signature in database
GPG Key ID: CCA55602DF49FC38
7 changed files with 36 additions and 25 deletions

View File

@ -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<Unit> {
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()
}
}
}

View File

@ -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 {

View File

@ -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 =

View File

@ -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.

View File

@ -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)

View File

@ -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.