lib: deprecate parseHex and use hexToByteArray instead

This commit is contained in:
Oscar Mira 2025-01-30 14:21:57 +01:00
parent d05a056698
commit 16ff7b06db
No known key found for this signature in database
GPG Key ID: B371B98C5DC32237
3 changed files with 6 additions and 18 deletions

View File

@ -12,14 +12,12 @@ import im.molly.monero.demo.data.WalletRepository
import im.molly.monero.demo.data.model.DefaultMoneroNetwork
import im.molly.monero.demo.data.model.RemoteNode
import im.molly.monero.mnemonics.MoneroMnemonic
import im.molly.monero.util.parseHex
import im.molly.monero.util.toHex
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.launch
import java.time.LocalDate
@OptIn(ExperimentalCoroutinesApi::class)
@OptIn(ExperimentalCoroutinesApi::class, ExperimentalStdlibApi::class)
class AddWalletViewModel(
private val remoteNodeRepository: RemoteNodeRepository = AppModule.remoteNodeRepository,
private val walletRepository: WalletRepository = AppModule.walletRepository,
@ -66,7 +64,7 @@ class AddWalletViewModel(
MoneroMnemonic.recoverEntropy(words)?.use { mnemonicCode ->
val secretKey = SecretKey(mnemonicCode.entropy)
viewModelState.update {
it.copy(secretSpendKeyHex = secretKey.bytes.toHex())
it.copy(secretSpendKeyHex = secretKey.bytes.toHexString())
}
secretKey.destroy()
return true
@ -85,7 +83,7 @@ class AddWalletViewModel(
fun validateSecretSpendKeyHex(): Boolean =
with(viewModelState.value) {
return secretSpendKeyHex.length == 64 && runCatching {
secretSpendKeyHex.parseHex()
secretSpendKeyHex.hexToByteArray()
}.isSuccess
}
@ -125,7 +123,7 @@ class AddWalletViewModel(
else -> RestorePoint.Genesis
}
SecretKey(state.secretSpendKeyHex.parseHex()).use { secretSpendKey ->
SecretKey(state.secretSpendKeyHex.hexToByteArray()).use { secretSpendKey ->
walletRepository.restoreWallet(
state.network,
state.walletName,

View File

@ -1,11 +0,0 @@
package im.molly.monero.util
fun CharSequence.parseHex(): ByteArray {
check(length % 2 == 0) { "Must have an even length" }
return ByteArray(length / 2) {
Integer.parseInt(substring(it * 2, (it + 1) * 2), 16).toByte()
}
}
fun ByteArray.toHex(): String = joinToString(separator = "") { "%02x".format(it) }

View File

@ -4,6 +4,7 @@ import com.google.common.truth.Truth.assertThat
import org.junit.Assert
import org.junit.Test
@OptIn(ExperimentalStdlibApi::class)
class Base58Test {
// Test cases from monero unit_tests/base58.cpp
@ -134,7 +135,7 @@ class Base58Test {
@Test
fun `decode valid base58 strings`() {
base58ToHex.forEach { (input, expected) ->
assertThat(input.decodeBase58()).isEqualTo(expected.parseHex())
assertThat(input.decodeBase58()).isEqualTo(expected.hexToByteArray())
}
}