[#319] Fix ktlint issues
This commit is contained in:
parent
108fe249d9
commit
dca91f2558
|
@ -235,4 +235,5 @@ Publishing instructions for maintainers of this repository can be found in [PUBL
|
|||
|
||||
# Known Issues
|
||||
|
||||
1. During builds, a warning will be printed that says "Unable to detect AGP versions for included builds. All projects in the build should use the same AGP version." This can be safely ignored. The version under build-conventions is the same as the version used elsewhere in the application.
|
||||
1. During builds, a warning will be printed that says "Unable to detect AGP versions for included builds. All projects in the build should use the same AGP version." This can be safely ignored. The version under build-conventions is the same as the version used elsewhere in the application.
|
||||
1. `ktlintFormat` may fail on Java 16 or greater. A temporary workaround is to install an older JDK and explicitly set the JDK version when executing the task. For example: `./gradlew ktlintFormat -Dorg.gradle.java.home=/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home`
|
|
@ -5,7 +5,11 @@ plugins {
|
|||
val ktlint by configurations.creating
|
||||
|
||||
dependencies {
|
||||
ktlint("com.pinterest:ktlint:${project.property("KTLINT_VERSION")}")
|
||||
ktlint("com.pinterest:ktlint:${project.property("KTLINT_VERSION")}") {
|
||||
attributes {
|
||||
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named<Bundling>(Bundling.EXTERNAL))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks {
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
package cash.z.ecc.android.sdk.darkside.reorgs
|
||||
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import cash.z.ecc.android.sdk.darkside.test.DarksideTestCoordinator
|
||||
import cash.z.ecc.android.sdk.darkside.test.ScopedTest
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.darkside.test.DarksideTestCoordinator
|
||||
import org.junit.BeforeClass
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package cash.z.ecc.android.sdk.darkside.reorgs
|
||||
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import cash.z.ecc.android.sdk.darkside.test.DarksideTestCoordinator
|
||||
import cash.z.ecc.android.sdk.darkside.test.ScopedTest
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package cash.z.ecc.android.sdk.darkside.reorgs
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.darkside.test.DarksideTestCoordinator
|
||||
import cash.z.ecc.android.sdk.darkside.test.ScopedTest
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.BeforeClass
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package cash.z.ecc.android.sdk.darkside.reorgs
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import cash.z.ecc.android.sdk.ext.toHex
|
||||
import cash.z.ecc.android.sdk.darkside.test.DarksideTestCoordinator
|
||||
import cash.z.ecc.android.sdk.darkside.test.ScopedTest
|
||||
import cash.z.ecc.android.sdk.darkside.test.SimpleMnemonics
|
||||
import cash.z.ecc.android.sdk.ext.toHex
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
|
|
|
@ -2,8 +2,8 @@ package cash.z.ecc.android.sdk.darkside.test
|
|||
|
||||
import android.content.Context
|
||||
import cash.z.ecc.android.sdk.R
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletGrpcService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.type.ZcashNetwork
|
||||
import cash.z.wallet.sdk.rpc.Darkside
|
||||
import cash.z.wallet.sdk.rpc.Darkside.DarksideTransactionsURL
|
||||
|
|
|
@ -21,9 +21,9 @@ open class DarksideTestPrerequisites {
|
|||
private fun isProbablyEmulator(context: Context): Boolean {
|
||||
if (isDebuggable(context)) {
|
||||
// This is imperfect and could break in the future
|
||||
if (null == Build.DEVICE
|
||||
|| "generic" == Build.DEVICE //$NON-NLS
|
||||
|| ("generic_x86" == Build.DEVICE) //$NON-NLS
|
||||
if (null == Build.DEVICE ||
|
||||
"generic" == Build.DEVICE || // $NON-NLS
|
||||
("generic_x86" == Build.DEVICE) // $NON-NLS
|
||||
) {
|
||||
return true
|
||||
}
|
||||
|
@ -45,4 +45,4 @@ open class DarksideTestPrerequisites {
|
|||
} ?: false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,4 +88,4 @@ open class ScopedTest(val defaultTimeout: Long = 2000L) : DarksideTestPrerequisi
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@ import cash.z.ecc.android.sdk.SdkSynchronizer
|
|||
import cash.z.ecc.android.sdk.Synchronizer
|
||||
import cash.z.ecc.android.sdk.db.entity.isPending
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletGrpcService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.tool.DerivationTool
|
||||
import cash.z.ecc.android.sdk.type.WalletBalance
|
||||
import cash.z.ecc.android.sdk.type.ZcashNetwork
|
||||
|
|
|
@ -4,12 +4,12 @@ import androidx.test.platform.app.InstrumentationRegistry
|
|||
import cash.z.ecc.android.sdk.Initializer
|
||||
import cash.z.ecc.android.sdk.Synchronizer
|
||||
import cash.z.ecc.android.sdk.db.entity.isFailure
|
||||
import cash.z.ecc.android.sdk.internal.TroubleshootingTwig
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.ext.convertZecToZatoshi
|
||||
import cash.z.ecc.android.sdk.ext.toHex
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.TroubleshootingTwig
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletGrpcService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.tool.DerivationTool
|
||||
import cash.z.ecc.android.sdk.type.ZcashNetwork
|
||||
import kotlinx.coroutines.flow.collect
|
||||
|
|
|
@ -47,10 +47,12 @@ class GetBalanceFragment : BaseDemoFragment<FragmentGetBalanceBinding>() {
|
|||
val viewingKey = runBlocking { DerivationTool.deriveUnifiedViewingKeys(seed, ZcashNetwork.fromResources(requireApplicationContext())).first() }
|
||||
|
||||
// using the ViewingKey to initialize
|
||||
runBlocking {Initializer.new(requireApplicationContext(), null) {
|
||||
it.setNetwork(ZcashNetwork.fromResources(requireApplicationContext()))
|
||||
it.importWallet(viewingKey, network = ZcashNetwork.fromResources(requireApplicationContext()))
|
||||
}}.let { initializer ->
|
||||
runBlocking {
|
||||
Initializer.new(requireApplicationContext(), null) {
|
||||
it.setNetwork(ZcashNetwork.fromResources(requireApplicationContext()))
|
||||
it.importWallet(viewingKey, network = ZcashNetwork.fromResources(requireApplicationContext()))
|
||||
}
|
||||
}.let { initializer ->
|
||||
synchronizer = Synchronizer(initializer)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,10 +48,12 @@ class ListTransactionsFragment : BaseDemoFragment<FragmentListTransactionsBindin
|
|||
// have the seed stored
|
||||
val seed = Mnemonics.MnemonicCode(seedPhrase).toSeed()
|
||||
|
||||
initializer = runBlocking {Initializer.new(requireApplicationContext()) {
|
||||
runBlocking { it.importWallet(seed, network = ZcashNetwork.fromResources(requireApplicationContext())) }
|
||||
it.setNetwork(ZcashNetwork.fromResources(requireApplicationContext()))
|
||||
}}
|
||||
initializer = runBlocking {
|
||||
Initializer.new(requireApplicationContext()) {
|
||||
runBlocking { it.importWallet(seed, network = ZcashNetwork.fromResources(requireApplicationContext())) }
|
||||
it.setNetwork(ZcashNetwork.fromResources(requireApplicationContext()))
|
||||
}
|
||||
}
|
||||
address = runBlocking {
|
||||
DerivationTool.deriveShieldedAddress(
|
||||
seed,
|
||||
|
|
|
@ -61,10 +61,12 @@ class ListUtxosFragment : BaseDemoFragment<FragmentListUtxosBinding>() {
|
|||
// Use a BIP-39 library to convert a seed phrase into a byte array. Most wallets already
|
||||
// have the seed stored
|
||||
seed = Mnemonics.MnemonicCode(sharedViewModel.seedPhrase.value).toSeed()
|
||||
initializer = runBlocking {Initializer.new(requireApplicationContext()) {
|
||||
runBlocking { it.importWallet(seed, network = ZcashNetwork.fromResources(requireApplicationContext())) }
|
||||
it.alias = "Demo_Utxos"
|
||||
}}
|
||||
initializer = runBlocking {
|
||||
Initializer.new(requireApplicationContext()) {
|
||||
runBlocking { it.importWallet(seed, network = ZcashNetwork.fromResources(requireApplicationContext())) }
|
||||
it.alias = "Demo_Utxos"
|
||||
}
|
||||
}
|
||||
synchronizer = Synchronizer(initializer)
|
||||
}
|
||||
|
||||
|
|
|
@ -23,11 +23,11 @@ import cash.z.ecc.android.sdk.demoapp.databinding.FragmentSendBinding
|
|||
import cash.z.ecc.android.sdk.demoapp.ext.requireApplicationContext
|
||||
import cash.z.ecc.android.sdk.demoapp.util.fromResources
|
||||
import cash.z.ecc.android.sdk.demoapp.util.mainActivity
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.ext.collectWith
|
||||
import cash.z.ecc.android.sdk.ext.convertZatoshiToZecString
|
||||
import cash.z.ecc.android.sdk.ext.convertZecToZatoshi
|
||||
import cash.z.ecc.android.sdk.ext.toZecString
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.tool.DerivationTool
|
||||
import cash.z.ecc.android.sdk.type.WalletBalance
|
||||
|
@ -64,10 +64,12 @@ class SendFragment : BaseDemoFragment<FragmentSendBinding>() {
|
|||
// have the seed stored
|
||||
val seed = Mnemonics.MnemonicCode(seedPhrase).toSeed()
|
||||
|
||||
runBlocking { Initializer.new(requireApplicationContext()) {
|
||||
runBlocking { it.importWallet(seed, network = ZcashNetwork.fromResources(requireApplicationContext())) }
|
||||
it.setNetwork(ZcashNetwork.fromResources(requireApplicationContext()))
|
||||
}}.let { initializer ->
|
||||
runBlocking {
|
||||
Initializer.new(requireApplicationContext()) {
|
||||
runBlocking { it.importWallet(seed, network = ZcashNetwork.fromResources(requireApplicationContext())) }
|
||||
it.setNetwork(ZcashNetwork.fromResources(requireApplicationContext()))
|
||||
}
|
||||
}.let { initializer ->
|
||||
synchronizer = Synchronizer(initializer)
|
||||
}
|
||||
spendingKey = runBlocking { DerivationTool.deriveSpendingKeys(seed, ZcashNetwork.fromResources(requireApplicationContext())).first() }
|
||||
|
|
|
@ -61,7 +61,7 @@ ANDROID_GRADLE_PLUGIN_VERSION=7.0.2
|
|||
DETEKT_VERSION=1.18.1
|
||||
DOKKA_VERSION=1.4.30
|
||||
GRADLE_VERSIONS_PLUGIN_VERSION=0.38.0
|
||||
KTLINT_VERSION=0.42.1
|
||||
KTLINT_VERSION=0.43.0
|
||||
MAVEN_PUBLISH_GRADLE_PLUGIN=0.17.0
|
||||
OWASP_DEPENDENCY_CHECK_VERSION=6.3.1
|
||||
PROTOBUF_GRADLE_PLUGIN_VERSION=0.8.17
|
||||
|
|
|
@ -93,9 +93,11 @@ class AssetTest {
|
|||
private data class JsonFile(val jsonObject: JSONObject, val filename: String)
|
||||
|
||||
companion object {
|
||||
fun listAssets(network: ZcashNetwork) = runBlocking { WalletBirthdayTool.listBirthdayDirectoryContents(
|
||||
ApplicationProvider.getApplicationContext<Context>(),
|
||||
WalletBirthdayTool.birthdayDirectory(network))
|
||||
fun listAssets(network: ZcashNetwork) = runBlocking {
|
||||
WalletBirthdayTool.listBirthdayDirectoryContents(
|
||||
ApplicationProvider.getApplicationContext<Context>(),
|
||||
WalletBirthdayTool.birthdayDirectory(network)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,9 +3,9 @@ package cash.z.ecc.android.sdk
|
|||
import cash.z.ecc.android.sdk.integration.SanityTest
|
||||
import cash.z.ecc.android.sdk.integration.SmokeTest
|
||||
import cash.z.ecc.android.sdk.integration.service.ChangeServiceTest
|
||||
import cash.z.ecc.android.sdk.internal.transaction.PersistentTransactionManagerTest
|
||||
import cash.z.ecc.android.sdk.jni.BranchIdTest
|
||||
import cash.z.ecc.android.sdk.jni.TransparentTest
|
||||
import cash.z.ecc.android.sdk.internal.transaction.PersistentTransactionManagerTest
|
||||
import org.junit.runner.RunWith
|
||||
import org.junit.runners.Suite
|
||||
|
||||
|
|
|
@ -6,12 +6,12 @@ import cash.z.ecc.android.sdk.Initializer
|
|||
import cash.z.ecc.android.sdk.Synchronizer
|
||||
import cash.z.ecc.android.sdk.Synchronizer.Status.SYNCED
|
||||
import cash.z.ecc.android.sdk.db.entity.isSubmitSuccess
|
||||
import cash.z.ecc.android.sdk.internal.TroubleshootingTwig
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk
|
||||
import cash.z.ecc.android.sdk.ext.onFirst
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.TroubleshootingTwig
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletGrpcService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.test.ScopedTest
|
||||
import cash.z.ecc.android.sdk.tool.DerivationTool
|
||||
import cash.z.ecc.android.sdk.tool.WalletBirthdayTool
|
||||
|
|
|
@ -4,13 +4,13 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
|
|||
import androidx.test.filters.SmallTest
|
||||
import cash.z.ecc.android.sdk.annotation.MaintainedTest
|
||||
import cash.z.ecc.android.sdk.annotation.TestPurpose
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockDownloader
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockStore
|
||||
import cash.z.ecc.android.sdk.exception.LightWalletException.ChangeServerException.ChainInfoNotMatching
|
||||
import cash.z.ecc.android.sdk.exception.LightWalletException.ChangeServerException.StatusException
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockDownloader
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockStore
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletGrpcService
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.test.ScopedTest
|
||||
import cash.z.ecc.android.sdk.type.ZcashNetwork
|
||||
import kotlinx.coroutines.delay
|
||||
|
|
|
@ -4,7 +4,6 @@ import android.content.Context
|
|||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk
|
||||
import cash.z.ecc.android.sdk.internal.SaplingParamTool
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.junit.Assert
|
||||
import org.junit.Before
|
||||
|
|
|
@ -9,8 +9,8 @@ import cash.z.ecc.android.sdk.db.entity.PendingTransaction
|
|||
import cash.z.ecc.android.sdk.db.entity.isCancelled
|
||||
import cash.z.ecc.android.sdk.internal.TroubleshootingTwig
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.test.ScopedTest
|
||||
import com.nhaarman.mockitokotlin2.any
|
||||
import com.nhaarman.mockitokotlin2.stub
|
||||
|
|
|
@ -64,13 +64,15 @@ class DataDbScannerUtil {
|
|||
@Test
|
||||
@Ignore("This test is broken")
|
||||
fun scanExistingDb() {
|
||||
synchronizer = Synchronizer(runBlocking {
|
||||
Initializer.new(context) {
|
||||
it.setBirthdayHeight(
|
||||
birthdayHeight
|
||||
)
|
||||
synchronizer = Synchronizer(
|
||||
runBlocking {
|
||||
Initializer.new(context) {
|
||||
it.setBirthdayHeight(
|
||||
birthdayHeight
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
println("sync!")
|
||||
synchronizer.start()
|
||||
|
|
|
@ -8,8 +8,8 @@ import cash.z.ecc.android.sdk.SdkSynchronizer
|
|||
import cash.z.ecc.android.sdk.Synchronizer
|
||||
import cash.z.ecc.android.sdk.db.entity.isPending
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletGrpcService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.tool.DerivationTool
|
||||
import cash.z.ecc.android.sdk.type.WalletBalance
|
||||
import cash.z.ecc.android.sdk.type.ZcashNetwork
|
||||
|
|
|
@ -3,8 +3,8 @@ package cash.z.ecc.android.sdk.util
|
|||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import cash.z.ecc.android.sdk.internal.TroubleshootingTwig
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletGrpcService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.type.ZcashNetwork
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
|
|
|
@ -3,17 +3,16 @@ package cash.z.ecc.android.sdk
|
|||
import android.content.Context
|
||||
import cash.z.ecc.android.sdk.exception.InitializerException
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.SdkDispatchers
|
||||
import cash.z.ecc.android.sdk.internal.ext.getCacheDirSuspend
|
||||
import cash.z.ecc.android.sdk.internal.ext.getDatabasePathSuspend
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.jni.RustBackend
|
||||
import cash.z.ecc.android.sdk.tool.DerivationTool
|
||||
import cash.z.ecc.android.sdk.tool.WalletBirthdayTool
|
||||
import cash.z.ecc.android.sdk.type.UnifiedViewingKey
|
||||
import cash.z.ecc.android.sdk.type.WalletBirthday
|
||||
import cash.z.ecc.android.sdk.type.ZcashNetwork
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
|
||||
|
@ -294,13 +293,12 @@ class Initializer private constructor(
|
|||
private fun validateViewingKeys() {
|
||||
require(viewingKeys.isNotEmpty()) {
|
||||
"Unified Viewing keys are required. Ensure that the unified viewing keys or seed" +
|
||||
" have been set on this Initializer."
|
||||
" have been set on this Initializer."
|
||||
}
|
||||
viewingKeys.forEach {
|
||||
DerivationTool.validateUnifiedViewingKey(it)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
companion object : SdkSynchronizer.Erasable {
|
||||
|
@ -350,12 +348,12 @@ class Initializer private constructor(
|
|||
if (onCriticalErrorHandler == null) {
|
||||
twig(
|
||||
"WARNING: a critical error occurred on the Initializer but no callback is " +
|
||||
"registered to be notified of critical errors! THIS IS PROBABLY A MISTAKE. To " +
|
||||
"respond to these errors (perhaps to update the UI or alert the user) set " +
|
||||
"initializer.onCriticalErrorHandler to a non-null value or use the secondary " +
|
||||
"constructor: Initializer(context, handler) { ... }. Note that the synchronizer " +
|
||||
"and initializer BOTH have error handlers and since the initializer exists " +
|
||||
"before the synchronizer, it needs its error handler set separately."
|
||||
"registered to be notified of critical errors! THIS IS PROBABLY A MISTAKE. To " +
|
||||
"respond to these errors (perhaps to update the UI or alert the user) set " +
|
||||
"initializer.onCriticalErrorHandler to a non-null value or use the secondary " +
|
||||
"constructor: Initializer(context, handler) { ... }. Note that the synchronizer " +
|
||||
"and initializer BOTH have error handlers and since the initializer exists " +
|
||||
"before the synchronizer, it needs its error handler set separately."
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -494,9 +492,9 @@ class Initializer private constructor(
|
|||
internal fun validateAlias(alias: String) {
|
||||
require(
|
||||
alias.length in 1..99 && alias[0].isLetter() &&
|
||||
alias.all { it.isLetterOrDigit() || it == '_' }
|
||||
alias.all { it.isLetterOrDigit() || it == '_' }
|
||||
) {
|
||||
"ERROR: Invalid alias ($alias). For security, the alias must be shorter than 100 " +
|
||||
"characters and only contain letters, digits or underscores and start with a letter."
|
||||
"characters and only contain letters, digits or underscores and start with a letter."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,8 +8,6 @@ import cash.z.ecc.android.sdk.Synchronizer.Status.SCANNING
|
|||
import cash.z.ecc.android.sdk.Synchronizer.Status.STOPPED
|
||||
import cash.z.ecc.android.sdk.Synchronizer.Status.SYNCED
|
||||
import cash.z.ecc.android.sdk.Synchronizer.Status.VALIDATING
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockDbStore
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockDownloader
|
||||
import cash.z.ecc.android.sdk.block.CompactBlockProcessor
|
||||
import cash.z.ecc.android.sdk.block.CompactBlockProcessor.State.Disconnected
|
||||
import cash.z.ecc.android.sdk.block.CompactBlockProcessor.State.Downloading
|
||||
|
@ -19,7 +17,6 @@ import cash.z.ecc.android.sdk.block.CompactBlockProcessor.State.Scanned
|
|||
import cash.z.ecc.android.sdk.block.CompactBlockProcessor.State.Scanning
|
||||
import cash.z.ecc.android.sdk.block.CompactBlockProcessor.State.Stopped
|
||||
import cash.z.ecc.android.sdk.block.CompactBlockProcessor.State.Validating
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockStore
|
||||
import cash.z.ecc.android.sdk.db.entity.PendingTransaction
|
||||
import cash.z.ecc.android.sdk.db.entity.hasRawTransactionId
|
||||
import cash.z.ecc.android.sdk.db.entity.isCancelled
|
||||
|
@ -34,19 +31,22 @@ import cash.z.ecc.android.sdk.db.entity.isSubmitted
|
|||
import cash.z.ecc.android.sdk.exception.SynchronizerException
|
||||
import cash.z.ecc.android.sdk.ext.ConsensusBranchId
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockDbStore
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockDownloader
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockStore
|
||||
import cash.z.ecc.android.sdk.internal.ext.toHexReversed
|
||||
import cash.z.ecc.android.sdk.internal.ext.tryNull
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.twigTask
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletGrpcService
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletService
|
||||
import cash.z.ecc.android.sdk.tool.DerivationTool
|
||||
import cash.z.ecc.android.sdk.internal.transaction.OutboundTransactionManager
|
||||
import cash.z.ecc.android.sdk.internal.transaction.PagedTransactionRepository
|
||||
import cash.z.ecc.android.sdk.internal.transaction.PersistentTransactionManager
|
||||
import cash.z.ecc.android.sdk.internal.transaction.TransactionEncoder
|
||||
import cash.z.ecc.android.sdk.internal.transaction.TransactionRepository
|
||||
import cash.z.ecc.android.sdk.internal.transaction.WalletTransactionEncoder
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.twigTask
|
||||
import cash.z.ecc.android.sdk.tool.DerivationTool
|
||||
import cash.z.ecc.android.sdk.type.AddressType
|
||||
import cash.z.ecc.android.sdk.type.AddressType.Shielded
|
||||
import cash.z.ecc.android.sdk.type.AddressType.Transparent
|
||||
|
|
|
@ -20,7 +20,6 @@ import cash.z.ecc.android.sdk.exception.CompactBlockProcessorException.Mismatche
|
|||
import cash.z.ecc.android.sdk.exception.InitializerException
|
||||
import cash.z.ecc.android.sdk.exception.RustLayerException
|
||||
import cash.z.ecc.android.sdk.ext.BatchMetrics
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk.DOWNLOAD_BATCH_SIZE
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk.MAX_BACKOFF_INTERVAL
|
||||
|
@ -29,16 +28,17 @@ import cash.z.ecc.android.sdk.ext.ZcashSdk.POLL_INTERVAL
|
|||
import cash.z.ecc.android.sdk.ext.ZcashSdk.RETRIES
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk.REWIND_DISTANCE
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk.SCAN_BATCH_SIZE
|
||||
import cash.z.ecc.android.sdk.internal.Twig
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockDownloader
|
||||
import cash.z.ecc.android.sdk.internal.ext.retryUpTo
|
||||
import cash.z.ecc.android.sdk.internal.ext.retryWithBackoff
|
||||
import cash.z.ecc.android.sdk.internal.ext.toHexReversed
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.twigTask
|
||||
import cash.z.ecc.android.sdk.internal.block.CompactBlockDownloader
|
||||
import cash.z.ecc.android.sdk.jni.RustBackend
|
||||
import cash.z.ecc.android.sdk.jni.RustBackendWelding
|
||||
import cash.z.ecc.android.sdk.internal.transaction.PagedTransactionRepository
|
||||
import cash.z.ecc.android.sdk.internal.transaction.TransactionRepository
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.twigTask
|
||||
import cash.z.ecc.android.sdk.jni.RustBackend
|
||||
import cash.z.ecc.android.sdk.jni.RustBackendWelding
|
||||
import cash.z.ecc.android.sdk.type.WalletBalance
|
||||
import cash.z.wallet.sdk.rpc.Service
|
||||
import io.grpc.StatusRuntimeException
|
||||
|
|
|
@ -11,4 +11,4 @@ internal object SdkDispatchers {
|
|||
* is a simple solution.
|
||||
*/
|
||||
val IO = Executors.newSingleThreadExecutor().asCoroutineDispatcher()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,4 +40,4 @@ class Sma(val window: Int = 3) {
|
|||
}
|
||||
|
||||
fun format(places: Int = 0) = "%.${places}f".format(average)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,12 +3,11 @@ package cash.z.ecc.android.sdk.internal.block
|
|||
import android.content.Context
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import cash.z.ecc.android.sdk.internal.db.CompactBlockDao
|
||||
import cash.z.ecc.android.sdk.internal.db.CompactBlockDb
|
||||
import cash.z.ecc.android.sdk.db.entity.CompactBlockEntity
|
||||
import cash.z.ecc.android.sdk.internal.SdkDispatchers
|
||||
import cash.z.ecc.android.sdk.internal.db.CompactBlockDao
|
||||
import cash.z.ecc.android.sdk.internal.db.CompactBlockDb
|
||||
import cash.z.wallet.sdk.rpc.CompactFormats
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
/**
|
||||
|
|
|
@ -2,8 +2,8 @@ package cash.z.ecc.android.sdk.internal.block
|
|||
import cash.z.ecc.android.sdk.exception.LightWalletException
|
||||
import cash.z.ecc.android.sdk.internal.ext.retryUpTo
|
||||
import cash.z.ecc.android.sdk.internal.ext.tryWarn
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.wallet.sdk.rpc.Service
|
||||
import io.grpc.StatusRuntimeException
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
|
|
|
@ -6,4 +6,4 @@ internal fun ByteArray.toHexReversed(): String {
|
|||
while (i >= 0)
|
||||
sb.append(String.format("%02x", this[i--]))
|
||||
return sb.toString()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,4 +8,4 @@ suspend fun Context.getDatabasePathSuspend(fileName: String) =
|
|||
withContext(Dispatchers.IO) { getDatabasePath(fileName) }
|
||||
|
||||
suspend fun Context.getCacheDirSuspend() =
|
||||
withContext(Dispatchers.IO) { cacheDir }
|
||||
withContext(Dispatchers.IO) { cacheDir }
|
||||
|
|
|
@ -4,4 +4,4 @@ import kotlinx.coroutines.Dispatchers
|
|||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
|
||||
suspend fun File.deleteSuspend() = withContext(Dispatchers.IO) { delete() }
|
||||
suspend fun File.deleteSuspend() = withContext(Dispatchers.IO) { delete() }
|
||||
|
|
|
@ -18,7 +18,12 @@ import kotlin.random.Random
|
|||
* @param block the code to execute, which will be wrapped in a try/catch and retried whenever an
|
||||
* exception is thrown up to [retries] attempts.
|
||||
*/
|
||||
suspend inline fun retryUpTo(retries: Int, exceptionWrapper: (Throwable) -> Throwable = { it }, initialDelayMillis: Long = 500L, block: (Int) -> Unit) {
|
||||
suspend inline fun retryUpTo(
|
||||
retries: Int,
|
||||
exceptionWrapper: (Throwable) -> Throwable = { it },
|
||||
initialDelayMillis: Long = 500L,
|
||||
block: (Int) -> Unit
|
||||
) {
|
||||
var failedAttempts = 0
|
||||
while (failedAttempts <= retries) {
|
||||
try {
|
||||
|
@ -68,7 +73,12 @@ inline fun retrySimple(retries: Int = 2, sleepTime: Long = 20L, block: (Int) ->
|
|||
* @param maxDelayMillis the maximum delay between retries.
|
||||
* @param block the logic to run once and then run again if it fails.
|
||||
*/
|
||||
suspend inline fun retryWithBackoff(noinline onErrorListener: ((Throwable) -> Boolean)? = null, initialDelayMillis: Long = 1000L, maxDelayMillis: Long = MAX_BACKOFF_INTERVAL, block: () -> Unit) {
|
||||
suspend inline fun retryWithBackoff(
|
||||
noinline onErrorListener: ((Throwable) -> Boolean)? = null,
|
||||
initialDelayMillis: Long = 1000L,
|
||||
maxDelayMillis: Long = MAX_BACKOFF_INTERVAL,
|
||||
block: () -> Unit
|
||||
) {
|
||||
var sequence = 0 // count up to the max and then reset to half. So that we don't repeat the max but we also don't repeat too much.
|
||||
while (true) {
|
||||
try {
|
||||
|
|
|
@ -4,19 +4,18 @@ import android.content.Context
|
|||
import androidx.paging.PagedList
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import cash.z.ecc.android.sdk.db.entity.ConfirmedTransaction
|
||||
import cash.z.ecc.android.sdk.exception.RepositoryException
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk
|
||||
import cash.z.ecc.android.sdk.internal.db.AccountDao
|
||||
import cash.z.ecc.android.sdk.internal.db.BlockDao
|
||||
import cash.z.ecc.android.sdk.internal.db.DerivedDataDb
|
||||
import cash.z.ecc.android.sdk.internal.db.TransactionDao
|
||||
import cash.z.ecc.android.sdk.db.entity.ConfirmedTransaction
|
||||
import cash.z.ecc.android.sdk.exception.RepositoryException
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk
|
||||
import cash.z.ecc.android.sdk.internal.ext.android.RefreshableDataSourceFactory
|
||||
import cash.z.ecc.android.sdk.internal.ext.android.toFlowPagedList
|
||||
import cash.z.ecc.android.sdk.internal.ext.android.toRefreshable
|
||||
import cash.z.ecc.android.sdk.internal.ext.tryWarn
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.SdkDispatchers
|
||||
import cash.z.ecc.android.sdk.jni.RustBackend
|
||||
import cash.z.ecc.android.sdk.type.UnifiedAddressAccount
|
||||
import cash.z.ecc.android.sdk.type.UnifiedViewingKey
|
||||
|
|
|
@ -3,15 +3,15 @@ package cash.z.ecc.android.sdk.internal.transaction
|
|||
import android.content.Context
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import cash.z.ecc.android.sdk.internal.db.PendingTransactionDao
|
||||
import cash.z.ecc.android.sdk.internal.db.PendingTransactionDb
|
||||
import cash.z.ecc.android.sdk.db.entity.PendingTransaction
|
||||
import cash.z.ecc.android.sdk.db.entity.PendingTransactionEntity
|
||||
import cash.z.ecc.android.sdk.db.entity.isCancelled
|
||||
import cash.z.ecc.android.sdk.db.entity.isFailedEncoding
|
||||
import cash.z.ecc.android.sdk.db.entity.isSubmitted
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.db.PendingTransactionDao
|
||||
import cash.z.ecc.android.sdk.internal.db.PendingTransactionDb
|
||||
import cash.z.ecc.android.sdk.internal.service.LightWalletService
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Dispatchers.IO
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
|
@ -3,12 +3,12 @@ package cash.z.ecc.android.sdk.internal.transaction
|
|||
import cash.z.ecc.android.sdk.db.entity.EncodedTransaction
|
||||
import cash.z.ecc.android.sdk.exception.TransactionEncoderException
|
||||
import cash.z.ecc.android.sdk.ext.masked
|
||||
import cash.z.ecc.android.sdk.internal.SaplingParamTool
|
||||
import cash.z.ecc.android.sdk.internal.SdkDispatchers
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.twigTask
|
||||
import cash.z.ecc.android.sdk.jni.RustBackend
|
||||
import cash.z.ecc.android.sdk.jni.RustBackendWelding
|
||||
import cash.z.ecc.android.sdk.internal.SaplingParamTool
|
||||
import cash.z.ecc.android.sdk.internal.SdkDispatchers
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
|
|
|
@ -41,4 +41,4 @@ internal class NativeLibraryLoader(private val libraryName: String) {
|
|||
twig("Error while loading native library: ${e.message}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,14 +3,13 @@ package cash.z.ecc.android.sdk.jni
|
|||
import cash.z.ecc.android.sdk.exception.BirthdayException
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk.OUTPUT_PARAM_FILE_NAME
|
||||
import cash.z.ecc.android.sdk.ext.ZcashSdk.SPEND_PARAM_FILE_NAME
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.internal.SdkDispatchers
|
||||
import cash.z.ecc.android.sdk.internal.ext.deleteSuspend
|
||||
import cash.z.ecc.android.sdk.internal.twig
|
||||
import cash.z.ecc.android.sdk.tool.DerivationTool
|
||||
import cash.z.ecc.android.sdk.type.UnifiedViewingKey
|
||||
import cash.z.ecc.android.sdk.type.WalletBalance
|
||||
import cash.z.ecc.android.sdk.type.ZcashNetwork
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
|
||||
|
@ -355,7 +354,6 @@ class RustBackend private constructor() : RustBackendWelding {
|
|||
*/
|
||||
fun enableRustLogs() = initLogs()
|
||||
|
||||
|
||||
//
|
||||
// External Functions
|
||||
//
|
||||
|
@ -528,4 +526,3 @@ class RustBackend private constructor() : RustBackendWelding {
|
|||
): Long
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue