mirror of
https://github.com/mollyim/monero-wallet-sdk.git
synced 2025-05-12 13:20:34 +01:00
lib: deprecate parseHex and use hexToByteArray instead
This commit is contained in:
parent
d05a056698
commit
16ff7b06db
3 changed files with 6 additions and 18 deletions
|
@ -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.DefaultMoneroNetwork
|
||||||
import im.molly.monero.demo.data.model.RemoteNode
|
import im.molly.monero.demo.data.model.RemoteNode
|
||||||
import im.molly.monero.mnemonics.MoneroMnemonic
|
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.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.*
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.time.LocalDate
|
import java.time.LocalDate
|
||||||
|
|
||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class, ExperimentalStdlibApi::class)
|
||||||
class AddWalletViewModel(
|
class AddWalletViewModel(
|
||||||
private val remoteNodeRepository: RemoteNodeRepository = AppModule.remoteNodeRepository,
|
private val remoteNodeRepository: RemoteNodeRepository = AppModule.remoteNodeRepository,
|
||||||
private val walletRepository: WalletRepository = AppModule.walletRepository,
|
private val walletRepository: WalletRepository = AppModule.walletRepository,
|
||||||
|
@ -66,7 +64,7 @@ class AddWalletViewModel(
|
||||||
MoneroMnemonic.recoverEntropy(words)?.use { mnemonicCode ->
|
MoneroMnemonic.recoverEntropy(words)?.use { mnemonicCode ->
|
||||||
val secretKey = SecretKey(mnemonicCode.entropy)
|
val secretKey = SecretKey(mnemonicCode.entropy)
|
||||||
viewModelState.update {
|
viewModelState.update {
|
||||||
it.copy(secretSpendKeyHex = secretKey.bytes.toHex())
|
it.copy(secretSpendKeyHex = secretKey.bytes.toHexString())
|
||||||
}
|
}
|
||||||
secretKey.destroy()
|
secretKey.destroy()
|
||||||
return true
|
return true
|
||||||
|
@ -85,7 +83,7 @@ class AddWalletViewModel(
|
||||||
fun validateSecretSpendKeyHex(): Boolean =
|
fun validateSecretSpendKeyHex(): Boolean =
|
||||||
with(viewModelState.value) {
|
with(viewModelState.value) {
|
||||||
return secretSpendKeyHex.length == 64 && runCatching {
|
return secretSpendKeyHex.length == 64 && runCatching {
|
||||||
secretSpendKeyHex.parseHex()
|
secretSpendKeyHex.hexToByteArray()
|
||||||
}.isSuccess
|
}.isSuccess
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,7 +123,7 @@ class AddWalletViewModel(
|
||||||
|
|
||||||
else -> RestorePoint.Genesis
|
else -> RestorePoint.Genesis
|
||||||
}
|
}
|
||||||
SecretKey(state.secretSpendKeyHex.parseHex()).use { secretSpendKey ->
|
SecretKey(state.secretSpendKeyHex.hexToByteArray()).use { secretSpendKey ->
|
||||||
walletRepository.restoreWallet(
|
walletRepository.restoreWallet(
|
||||||
state.network,
|
state.network,
|
||||||
state.walletName,
|
state.walletName,
|
||||||
|
|
|
@ -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) }
|
|
|
@ -4,6 +4,7 @@ import com.google.common.truth.Truth.assertThat
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
class Base58Test {
|
class Base58Test {
|
||||||
|
|
||||||
// Test cases from monero unit_tests/base58.cpp
|
// Test cases from monero unit_tests/base58.cpp
|
||||||
|
@ -134,7 +135,7 @@ class Base58Test {
|
||||||
@Test
|
@Test
|
||||||
fun `decode valid base58 strings`() {
|
fun `decode valid base58 strings`() {
|
||||||
base58ToHex.forEach { (input, expected) ->
|
base58ToHex.forEach { (input, expected) ->
|
||||||
assertThat(input.decodeBase58()).isEqualTo(expected.parseHex())
|
assertThat(input.decodeBase58()).isEqualTo(expected.hexToByteArray())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue