Skip to content

Commit

Permalink
Using new Account object
Browse files Browse the repository at this point in the history
Everywhere except in the XyoAccountTest
  • Loading branch information
arietrouw committed Nov 15, 2024
1 parent bbfc613 commit e5ac5d3
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package network.xyo.client
import android.content.Context
import androidx.test.platform.app.InstrumentationRegistry
import kotlinx.coroutines.runBlocking
import network.xyo.client.address.XyoAccount
import network.xyo.client.account.Account
import network.xyo.client.boundwitness.XyoBoundWitnessBuilder
import network.xyo.client.datastore.AccountPrefsRepository
import network.xyo.client.settings.AccountPreferences
Expand All @@ -13,7 +13,7 @@ import org.junit.Test
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertNotEquals

class XyoAccountPrefsRepositoryTest {
class AccountPrefsRepositoryTest {

private lateinit var appContext: Context

Expand Down Expand Up @@ -105,7 +105,7 @@ class XyoAccountPrefsRepositoryTest {
@Test
fun testAccountDeserialization() {
runBlocking {
val testAccount = XyoAccount()
val testAccount = Account.random()
val instance = AccountPrefsRepository.getInstance(appContext)
// Clear previously saved accounts
instance.clearSavedAccountKey()
Expand All @@ -114,7 +114,7 @@ class XyoAccountPrefsRepositoryTest {

// Deserialize the test account
val firstAccount = instance.getAccount()
assertEquals(firstAccount.privateKey.toHexString(), testAccount.private.hex)
assertEquals(firstAccount.privateKey.toHexString(), testAccount.privateKey.toHexString())

// Sign with the test account
val firstBw = XyoBoundWitnessBuilder().witness(firstAccount, null).payloads(listOf(TestConstants.debugPayload)).build()
Expand Down
4 changes: 2 additions & 2 deletions sdk/src/androidTest/java/network/xyo/client/Constants.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package network.xyo.client

import network.xyo.client.address.XyoAccount
import network.xyo.client.account.Account
import network.xyo.client.payload.XyoPayload

class DebugPayload(val nonce: Int) : XyoPayload() {
Expand All @@ -19,7 +19,7 @@ class BasicPayload(): XyoPayload() {
class TestConstants {
companion object {
const val accountPrivateKey = "69f0b123c094c34191f22c25426036d6e46d5e1fab0a04a164b3c1c2621152ab"
val TestAccount = XyoAccount(XyoSerializable.hexToBytes(accountPrivateKey))
val TestAccount = Account.fromPrivateKey(accountPrivateKey)
val debugPayload = DebugPayload(1)
const val debugPayloadHash = "15b8d0e30ca5aa96ca6cc9e1528c075aec88cd3f2c3eb0394fde647eb4bf4547"
const val nodeUrlLocal = "http://10.0.2.2:8080"
Expand Down
6 changes: 3 additions & 3 deletions sdk/src/androidTest/java/network/xyo/client/NodeClientTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package network.xyo.client

import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.runBlocking
import network.xyo.client.address.XyoAccount
import network.xyo.client.account.Account
import network.xyo.client.archivist.wrapper.ArchivistWrapper
import network.xyo.client.node.client.NodeClient
import network.xyo.client.payload.XyoPayload
Expand All @@ -19,7 +19,7 @@ class NodeClientTest {
@OptIn(ExperimentalCoroutinesApi::class)
@Test
fun discoverTestBeta() {
val account = XyoAccount()
val account = Account.random()
val client = NodeClient(TestConstants.nodeUrlBeta, account)
val query = DiscoverPayload()

Expand All @@ -33,7 +33,7 @@ class NodeClientTest {
@OptIn(ExperimentalCoroutinesApi::class)
@Test
fun discoverTestLocal() {
val account = XyoAccount()
val account = Account.random()
val client = NodeClient(TestConstants.nodeUrlBeta, account)
val query = XyoPayload("network.xyo.query.module.discover")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.runBlocking
import network.xyo.client.address.XyoAccount
import network.xyo.client.account.Account
import network.xyo.client.node.client.NodeClient
import network.xyo.client.payload.XyoPayload
import org.junit.Before
Expand Down Expand Up @@ -34,7 +34,7 @@ class XyoBoundWitnessTest {
}

fun generateQuery(nodeUrl: String): RequestDependencies {
val account = XyoAccount()
val account = Account.random()
val client = NodeClient(nodeUrl, account)
val query = DiscoverPayload()
val payloads = mutableListOf<XyoPayload>()
Expand Down
14 changes: 7 additions & 7 deletions sdk/src/androidTest/java/network/xyo/client/XyoPanelTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.runBlocking
import network.xyo.client.address.XyoAccount
import network.xyo.client.account.Account
import network.xyo.client.boundwitness.XyoBoundWitnessJson
import network.xyo.client.payload.XyoPayload
import network.xyo.client.witness.location.info.LocationActivity
Expand Down Expand Up @@ -45,8 +45,8 @@ class XyoPanelTest {
}

private fun testCreatePanel(nodeUrl: String) {
val witness = XyoWitness<XyoPayload>(XyoAccount())
val panel = XyoPanel(appContext, arrayListOf(Pair(nodeUrl, XyoAccount())), listOf(witness))
val witness = XyoWitness<XyoPayload>(Account.random())
val panel = XyoPanel(appContext, arrayListOf(Pair(nodeUrl, Account.random())), listOf(witness))
assertNotNull(panel)
}

Expand All @@ -63,12 +63,12 @@ class XyoPanelTest {
@OptIn(ExperimentalCoroutinesApi::class)
fun testPanelReport(nodeUrl: String) {
runBlocking {
val witnessAccount = XyoAccount(XyoSerializable.hexToBytes("9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"))
val witness2Account = XyoAccount(XyoSerializable.hexToBytes("5a95531488b4d0d3645aea49678297ae9e2034879ce0389b80eb788e8b533592"))
val witnessAccount = Account.fromPrivateKey("9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08")
val witness2Account = Account.fromPrivateKey("5a95531488b4d0d3645aea49678297ae9e2034879ce0389b80eb788e8b533592")
val witness = XyoWitness(witnessAccount, fun(_: Context, _: String?): XyoPayload {
return BasicPayload()
})
val panel = XyoPanel(appContext, arrayListOf(Pair(nodeUrl, XyoAccount())), listOf(witness, XyoSystemInfoWitness(witness2Account), XyoLocationWitness()))
val panel = XyoPanel(appContext, arrayListOf(Pair(nodeUrl, Account.random())), listOf(witness, XyoSystemInfoWitness(witness2Account), XyoLocationWitness()))
val result = panel.reportAsyncQuery()
if (result.apiResults === null) throw NullPointerException("apiResults should not be null")
result.apiResults?.forEach {
Expand Down Expand Up @@ -106,7 +106,7 @@ class XyoPanelTest {
@Test
fun testReportEvent() {
runBlocking {
val panel = XyoPanel(appContext, arrayListOf(Pair(apiDomainBeta, XyoAccount())), listOf(XyoSystemInfoWitness()))
val panel = XyoPanel(appContext, arrayListOf(Pair(apiDomainBeta, Account.random())), listOf(XyoSystemInfoWitness()))
val result = panel.reportAsyncQuery()
if (result.apiResults === null) throw Error()
result.apiResults?.forEach { assertEquals(it.errors, null) }
Expand Down
6 changes: 3 additions & 3 deletions sdk/src/androidTest/java/network/xyo/client/XyoPayloadTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import androidx.test.rule.GrantPermissionRule
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import network.xyo.client.address.XyoAccount
import network.xyo.client.account.Account
import network.xyo.client.boundwitness.XyoBoundWitnessBuilder
import network.xyo.client.payload.XyoPayload
import org.junit.Before
Expand Down Expand Up @@ -49,7 +49,7 @@ class TestInvalidSchemaPayload: TestSubjectPayload() {
var string_field = "there"
}

val knownAddress = XyoAccount(ByteArray(32) {index -> index.toByte()})
val knownAddress = Account.fromPrivateKey(ByteArray(32) {index -> index.toByte()})
const val knownHash = "6e173bbfc0577ebde66b44b090316eca5ecad8ecdb5c51886211d805c769d2ea"

class XyoPayloadTest {
Expand Down Expand Up @@ -92,7 +92,7 @@ class XyoPayloadTest {

@Test
fun testRoundTripPanel() {
val address = XyoAccount(XyoSerializable.hexToBytes("5a95531488b4d0d3645aea49678297ae9e2034879ce0389b80eb788e8b533592"))
val address = Account.fromPrivateKey("5a95531488b4d0d3645aea49678297ae9e2034879ce0389b80eb788e8b533592")
val witness = XyoWitness(address, fun(_: Context, _: String?): XyoPayload {
return BasicPayload()
})
Expand Down
4 changes: 4 additions & 0 deletions sdk/src/main/java/network/xyo/client/account/Account.kt
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ open class Account private constructor (private val _privateKey: PrivateKey, pri
return Account(key)
}

override fun fromPrivateKey(key: String): AccountInstance {
return fromPrivateKey(hexStringToByteArray(key))
}

override fun random(): AccountInstance {
return fromPrivateKey(generatePrivateKeyBytes())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@ package network.xyo.client.account.model
interface AccountStatic<T: AccountInstance> {
var previousHashStore: PreviousHashStore?
fun fromPrivateKey(key: ByteArray): T
fun fromPrivateKey(key: String): T
fun random(): T
}

0 comments on commit e5ac5d3

Please sign in to comment.