From 2f4ac4c7319533771de03cfca53678c4fd686eb7 Mon Sep 17 00:00:00 2001 From: Honza Date: Wed, 4 Dec 2024 14:33:43 +0100 Subject: [PATCH] Final 1640 changes stirp out The rest of the changes (tests changes) will be used by 1640 though --- .../sdk/internal/model/JniUnifiedSpendingKey.kt | 6 ------ .../ecc/android/sdk/darkside/test/TestWallet.kt | 2 +- .../wallet/sdk/sample/demoapp/SampleCodeTest.kt | 2 +- .../demos/getbalance/GetBalanceFragment.kt | 3 ++- .../getprivatekey/GetPrivateKeyFragment.kt | 3 ++- .../z/ecc/android/sdk/fixture/WalletFixture.kt | 5 ++--- .../z/ecc/android/sdk/fixture/WalletFixture.kt | 2 +- .../z/ecc/android/sdk/fixture/AccountFixture.kt | 6 ++++-- .../cash/z/ecc/android/sdk/model/Account.kt | 17 ----------------- 9 files changed, 13 insertions(+), 33 deletions(-) diff --git a/backend-lib/src/main/java/cash/z/ecc/android/sdk/internal/model/JniUnifiedSpendingKey.kt b/backend-lib/src/main/java/cash/z/ecc/android/sdk/internal/model/JniUnifiedSpendingKey.kt index 766c87736..5eaa1ffe0 100644 --- a/backend-lib/src/main/java/cash/z/ecc/android/sdk/internal/model/JniUnifiedSpendingKey.kt +++ b/backend-lib/src/main/java/cash/z/ecc/android/sdk/internal/model/JniUnifiedSpendingKey.kt @@ -27,12 +27,6 @@ class JniUnifiedSpendingKey( */ val bytes: ByteArray ) { - init { - require(accountUuid.size == 16) { - "Account UUID must be 16 bytes" - } - } - // Override to prevent leaking key to logs override fun toString() = "JniUnifiedSpendingKey(account=$account, bytes=***)" diff --git a/darkside-test-lib/src/androidTest/java/cash/z/ecc/android/sdk/darkside/test/TestWallet.kt b/darkside-test-lib/src/androidTest/java/cash/z/ecc/android/sdk/darkside/test/TestWallet.kt index c1019408b..98a7355e6 100644 --- a/darkside-test-lib/src/androidTest/java/cash/z/ecc/android/sdk/darkside/test/TestWallet.kt +++ b/darkside-test-lib/src/androidTest/java/cash/z/ecc/android/sdk/darkside/test/TestWallet.kt @@ -63,7 +63,7 @@ class TestWallet( DerivationTool.getInstance().deriveUnifiedSpendingKey( seed = seed, network = network, - accountIndex = AccountFixture.ZIP_32_ACCOUNT_INDEX + account = AccountFixture.new() ) } val synchronizer: SdkSynchronizer = diff --git a/demo-app/src/androidTest/java/cash/z/wallet/sdk/sample/demoapp/SampleCodeTest.kt b/demo-app/src/androidTest/java/cash/z/wallet/sdk/sample/demoapp/SampleCodeTest.kt index 97451fa59..c8b433670 100644 --- a/demo-app/src/androidTest/java/cash/z/wallet/sdk/sample/demoapp/SampleCodeTest.kt +++ b/demo-app/src/androidTest/java/cash/z/wallet/sdk/sample/demoapp/SampleCodeTest.kt @@ -179,7 +179,7 @@ class SampleCodeTest { DerivationTool.getInstance().deriveUnifiedSpendingKey( seed, ZcashNetwork.Mainnet, - AccountFixture.ZIP_32_ACCOUNT_INDEX + AccountFixture.new() ) synchronizer.createProposedTransactions( synchronizer.proposeTransfer( diff --git a/demo-app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getbalance/GetBalanceFragment.kt b/demo-app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getbalance/GetBalanceFragment.kt index 5f97ab4c3..9f76c2eb2 100644 --- a/demo-app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getbalance/GetBalanceFragment.kt +++ b/demo-app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getbalance/GetBalanceFragment.kt @@ -19,6 +19,7 @@ import cash.z.ecc.android.sdk.ext.convertZatoshiToZec import cash.z.ecc.android.sdk.ext.convertZatoshiToZecString import cash.z.ecc.android.sdk.ext.toUsdString import cash.z.ecc.android.sdk.internal.Twig +import cash.z.ecc.android.sdk.model.Account import cash.z.ecc.android.sdk.model.PercentDecimal import cash.z.ecc.android.sdk.model.WalletBalance import cash.z.ecc.android.sdk.model.Zatoshi @@ -78,7 +79,7 @@ class GetBalanceFragment : BaseDemoFragment() { DerivationTool.getInstance().deriveUnifiedSpendingKey( seed, network, - CURRENT_ZIP_32_ACCOUNT_INDEX + Account(CURRENT_ZIP_32_ACCOUNT_INDEX) ) sharedViewModel.synchronizerFlow.value?.let { synchronizer -> synchronizer.proposeShielding(usk.account, Zatoshi(100000))?.let { it1 -> diff --git a/demo-app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getprivatekey/GetPrivateKeyFragment.kt b/demo-app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getprivatekey/GetPrivateKeyFragment.kt index 66ae8fde3..20ba6d7e3 100644 --- a/demo-app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getprivatekey/GetPrivateKeyFragment.kt +++ b/demo-app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getprivatekey/GetPrivateKeyFragment.kt @@ -13,6 +13,7 @@ import cash.z.ecc.android.sdk.demoapp.BaseDemoFragment import cash.z.ecc.android.sdk.demoapp.databinding.FragmentGetPrivateKeyBinding import cash.z.ecc.android.sdk.demoapp.ext.requireApplicationContext import cash.z.ecc.android.sdk.demoapp.util.fromResources +import cash.z.ecc.android.sdk.model.Account import cash.z.ecc.android.sdk.model.ZcashNetwork import cash.z.ecc.android.sdk.tool.DerivationTool import kotlinx.coroutines.launch @@ -49,7 +50,7 @@ class GetPrivateKeyFragment : BaseDemoFragment() { DerivationTool.getInstance().deriveUnifiedSpendingKey( seed, ZcashNetwork.fromResources(requireApplicationContext()), - 5 + Account(5) ) // derive the key that allows you to view but not spend transactions diff --git a/sdk-incubator-lib/src/main/java/cash/z/ecc/android/sdk/fixture/WalletFixture.kt b/sdk-incubator-lib/src/main/java/cash/z/ecc/android/sdk/fixture/WalletFixture.kt index 9eae42922..c5f645265 100644 --- a/sdk-incubator-lib/src/main/java/cash/z/ecc/android/sdk/fixture/WalletFixture.kt +++ b/sdk-incubator-lib/src/main/java/cash/z/ecc/android/sdk/fixture/WalletFixture.kt @@ -3,7 +3,6 @@ package cash.z.ecc.android.sdk.fixture import cash.z.ecc.android.sdk.model.Account import cash.z.ecc.android.sdk.model.BlockHeight import cash.z.ecc.android.sdk.model.ZcashNetwork -import java.util.UUID /** * Provides two default wallets, making it easy to test sending funds back and forth between them. @@ -20,7 +19,7 @@ sealed class WalletFixture { @Suppress("MaxLineLength") data object Ben : WalletFixture() { override val accounts: List - get() = listOf(AccountFixture.new(UUID.fromString("52175368-821a-4664-8a7c-6a75d850f71c"))) + get() = listOf(AccountFixture.new(0)) override val seedPhrase: String get() = @@ -57,7 +56,7 @@ sealed class WalletFixture { @Suppress("MaxLineLength") data object Alice : WalletFixture() { override val accounts: List - get() = listOf(AccountFixture.new(UUID.fromString("8a204240-73a5-4e7a-93c2-a6e05711a000"))) + get() = listOf(AccountFixture.new(1)) override val seedPhrase: String get() = diff --git a/sdk-lib/src/androidTest/java/cash/z/ecc/android/sdk/fixture/WalletFixture.kt b/sdk-lib/src/androidTest/java/cash/z/ecc/android/sdk/fixture/WalletFixture.kt index 59e6df48c..6bfb39772 100644 --- a/sdk-lib/src/androidTest/java/cash/z/ecc/android/sdk/fixture/WalletFixture.kt +++ b/sdk-lib/src/androidTest/java/cash/z/ecc/android/sdk/fixture/WalletFixture.kt @@ -28,7 +28,7 @@ object WalletFixture { accountIndex: Int = ACCOUNT_INDEX ) = RustDerivationTool.new().deriveUnifiedSpendingKey( Mnemonics.MnemonicCode(seed).toEntropy(), - network, + network.id, accountIndex ) } diff --git a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/fixture/AccountFixture.kt b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/fixture/AccountFixture.kt index 8f0f8e199..6f3799ba0 100644 --- a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/fixture/AccountFixture.kt +++ b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/fixture/AccountFixture.kt @@ -11,18 +11,20 @@ import java.util.UUID * Note that these values are used in the automated tests only and are not passed across the JNI. */ object AccountFixture { + @Suppress("UnusedPrivateMember") val ACCOUNT_UUID = UUID.fromString("01234567-89ab-cdef-0123-456789abcdef") const val ZIP_32_ACCOUNT_INDEX = 0 - fun new(accountUuid: UUID = ACCOUNT_UUID) = + fun new(accountId: Int = ZIP_32_ACCOUNT_INDEX) = Account( - accountUuid = accountUuid.toByteArray() + value = accountId ) } private const val UUID_V4_BYTE_SIZE = 16 // This provides us with a way to convert [UUID] to [ByteArray] +@Suppress("UnusedPrivateMember") private fun UUID.toByteArray(): ByteArray = ByteBuffer .allocate(UUID_V4_BYTE_SIZE) diff --git a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/model/Account.kt b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/model/Account.kt index 860629017..571aa73bb 100644 --- a/sdk-lib/src/main/java/cash/z/ecc/android/sdk/model/Account.kt +++ b/sdk-lib/src/main/java/cash/z/ecc/android/sdk/model/Account.kt @@ -9,21 +9,4 @@ data class Account(val value: Int) { init { require(value >= 0) { "Account index must be >= 0 but actually is $value" } } - - companion object { - val DEFAULT = Account(0) - } - - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (javaClass != other?.javaClass) return false - - other as Account - - return accountUuid.contentEquals(other.accountUuid) - } - - override fun hashCode(): Int { - return accountUuid.contentHashCode() - } }