Refactors master serializer name from EventMapper to JsonMapper

This commit is contained in:
Vitor Pamplona
2025-07-11 17:10:51 -04:00
parent bb5ae5d09e
commit f93b08a272
42 changed files with 135 additions and 136 deletions

View File

@@ -25,7 +25,7 @@ import com.vitorpamplona.amethyst.service.ots.OkHttpBitcoinExplorer
import com.vitorpamplona.amethyst.service.ots.OkHttpCalendarBuilder import com.vitorpamplona.amethyst.service.ots.OkHttpCalendarBuilder
import com.vitorpamplona.amethyst.service.ots.OtsBlockHeightCache import com.vitorpamplona.amethyst.service.ots.OtsBlockHeightCache
import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal
import com.vitorpamplona.quartz.nip03Timestamp.OtsEvent import com.vitorpamplona.quartz.nip03Timestamp.OtsEvent
import com.vitorpamplona.quartz.nip03Timestamp.OtsResolver import com.vitorpamplona.quartz.nip03Timestamp.OtsResolver
@@ -58,21 +58,21 @@ class OkHttpOtsTest {
@Test @Test
fun verifyNostrEvent() { fun verifyNostrEvent() {
val ots = EventMapper.fromJson(otsEvent) as OtsEvent val ots = JsonMapper.fromJson(otsEvent) as OtsEvent
println(resolver.info(ots.otsByteArray())) println(resolver.info(ots.otsByteArray()))
assertEquals(1707688818L, ots.verify(resolver)) assertEquals(1707688818L, ots.verify(resolver))
} }
@Test @Test
fun verifyNostrEvent2() { fun verifyNostrEvent2() {
val ots = EventMapper.fromJson(otsEvent2) as OtsEvent val ots = JsonMapper.fromJson(otsEvent2) as OtsEvent
println(resolver.info(ots.otsByteArray())) println(resolver.info(ots.otsByteArray()))
assertEquals(1706322179L, ots.verify(resolver)) assertEquals(1706322179L, ots.verify(resolver))
} }
@Test @Test
fun verifyNostrPendingEvent() { fun verifyNostrPendingEvent() {
val ots = EventMapper.fromJson(otsPendingEvent) as OtsEvent val ots = JsonMapper.fromJson(otsPendingEvent) as OtsEvent
println(resolver.info(ots.otsByteArray())) println(resolver.info(ots.otsByteArray()))
assertEquals(null, ots.verify(resolver)) assertEquals(null, ots.verify(resolver))
} }

View File

@@ -28,7 +28,7 @@ import com.vitorpamplona.amethyst.model.LocalCache
import com.vitorpamplona.amethyst.ui.screen.loggedIn.threadview.dal.ThreadFeedFilter import com.vitorpamplona.amethyst.ui.screen.loggedIn.threadview.dal.ThreadFeedFilter
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.tags.addressables.ATag import com.vitorpamplona.quartz.nip01Core.tags.addressables.ATag
import com.vitorpamplona.quartz.nip01Core.verify import com.vitorpamplona.quartz.nip01Core.verify
import junit.framework.TestCase import junit.framework.TestCase
@@ -121,7 +121,7 @@ class ThreadDualAxisChartAssemblerTest {
fun threadOrderTest() = fun threadOrderTest() =
runBlocking { runBlocking {
val eventArray = val eventArray =
EventMapper.mapper.readValue<ArrayList<Event>>(db) as List<Event> + Event.fromJson(header) JsonMapper.mapper.readValue<ArrayList<Event>>(db) as List<Event> + Event.fromJson(header)
var counter = 0 var counter = 0
eventArray.forEach { eventArray.forEach {

View File

@@ -43,7 +43,7 @@ import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.core.hexToByteArray import com.vitorpamplona.quartz.nip01Core.core.hexToByteArray
import com.vitorpamplona.quartz.nip01Core.core.toHexKey import com.vitorpamplona.quartz.nip01Core.core.toHexKey
import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent
import com.vitorpamplona.quartz.nip17Dm.settings.ChatMessageRelayListEvent import com.vitorpamplona.quartz.nip17Dm.settings.ChatMessageRelayListEvent
@@ -163,7 +163,7 @@ object LocalPreferences {
with(encryptedPreferences()) { with(encryptedPreferences()) {
val newSystemOfAccounts = val newSystemOfAccounts =
getString(PrefKeys.ALL_ACCOUNT_INFO, "[]")?.let { getString(PrefKeys.ALL_ACCOUNT_INFO, "[]")?.let {
EventMapper.mapper.readValue<List<AccountInfo>>(it) JsonMapper.mapper.readValue<List<AccountInfo>>(it)
} }
if (!newSystemOfAccounts.isNullOrEmpty()) { if (!newSystemOfAccounts.isNullOrEmpty()) {
@@ -183,7 +183,7 @@ object LocalPreferences {
savedAccounts.emit(migrated) savedAccounts.emit(migrated)
edit { putString(PrefKeys.ALL_ACCOUNT_INFO, EventMapper.mapper.writeValueAsString(savedAccounts.value)) } edit { putString(PrefKeys.ALL_ACCOUNT_INFO, JsonMapper.mapper.writeValueAsString(savedAccounts.value)) }
} }
} }
} }
@@ -203,7 +203,7 @@ object LocalPreferences {
.edit { .edit {
putString( putString(
PrefKeys.ALL_ACCOUNT_INFO, PrefKeys.ALL_ACCOUNT_INFO,
EventMapper.mapper.writeValueAsString(accounts.filter { !it.isTransient }), JsonMapper.mapper.writeValueAsString(accounts.filter { !it.isTransient }),
) )
} }
} }
@@ -310,7 +310,7 @@ object LocalPreferences {
putString( putString(
PrefKeys.DEFAULT_FILE_SERVER, PrefKeys.DEFAULT_FILE_SERVER,
EventMapper.mapper.writeValueAsString(settings.defaultFileServer), JsonMapper.mapper.writeValueAsString(settings.defaultFileServer),
) )
putString(PrefKeys.DEFAULT_HOME_FOLLOW_LIST, settings.defaultHomeFollowList.value) putString(PrefKeys.DEFAULT_HOME_FOLLOW_LIST, settings.defaultHomeFollowList.value)
putString(PrefKeys.DEFAULT_STORIES_FOLLOW_LIST, settings.defaultStoriesFollowList.value) putString(PrefKeys.DEFAULT_STORIES_FOLLOW_LIST, settings.defaultStoriesFollowList.value)
@@ -324,12 +324,12 @@ object LocalPreferences {
) )
putString( putString(
PrefKeys.ZAP_PAYMENT_REQUEST_SERVER, PrefKeys.ZAP_PAYMENT_REQUEST_SERVER,
EventMapper.mapper.writeValueAsString(settings.zapPaymentRequest?.denormalize()), JsonMapper.mapper.writeValueAsString(settings.zapPaymentRequest?.denormalize()),
) )
if (settings.backupContactList != null) { if (settings.backupContactList != null) {
putString( putString(
PrefKeys.LATEST_CONTACT_LIST, PrefKeys.LATEST_CONTACT_LIST,
EventMapper.mapper.writeValueAsString(settings.backupContactList), JsonMapper.mapper.writeValueAsString(settings.backupContactList),
) )
} else { } else {
remove(PrefKeys.LATEST_CONTACT_LIST) remove(PrefKeys.LATEST_CONTACT_LIST)
@@ -338,7 +338,7 @@ object LocalPreferences {
if (settings.backupUserMetadata != null) { if (settings.backupUserMetadata != null) {
putString( putString(
PrefKeys.LATEST_USER_METADATA, PrefKeys.LATEST_USER_METADATA,
EventMapper.mapper.writeValueAsString(settings.backupUserMetadata), JsonMapper.mapper.writeValueAsString(settings.backupUserMetadata),
) )
} else { } else {
remove(PrefKeys.LATEST_USER_METADATA) remove(PrefKeys.LATEST_USER_METADATA)
@@ -347,7 +347,7 @@ object LocalPreferences {
if (settings.backupDMRelayList != null) { if (settings.backupDMRelayList != null) {
putString( putString(
PrefKeys.LATEST_DM_RELAY_LIST, PrefKeys.LATEST_DM_RELAY_LIST,
EventMapper.mapper.writeValueAsString(settings.backupDMRelayList), JsonMapper.mapper.writeValueAsString(settings.backupDMRelayList),
) )
} else { } else {
remove(PrefKeys.LATEST_DM_RELAY_LIST) remove(PrefKeys.LATEST_DM_RELAY_LIST)
@@ -356,7 +356,7 @@ object LocalPreferences {
if (settings.backupNIP65RelayList != null) { if (settings.backupNIP65RelayList != null) {
putString( putString(
PrefKeys.LATEST_NIP65_RELAY_LIST, PrefKeys.LATEST_NIP65_RELAY_LIST,
EventMapper.mapper.writeValueAsString(settings.backupNIP65RelayList), JsonMapper.mapper.writeValueAsString(settings.backupNIP65RelayList),
) )
} else { } else {
remove(PrefKeys.LATEST_NIP65_RELAY_LIST) remove(PrefKeys.LATEST_NIP65_RELAY_LIST)
@@ -365,7 +365,7 @@ object LocalPreferences {
if (settings.backupSearchRelayList != null) { if (settings.backupSearchRelayList != null) {
putString( putString(
PrefKeys.LATEST_SEARCH_RELAY_LIST, PrefKeys.LATEST_SEARCH_RELAY_LIST,
EventMapper.mapper.writeValueAsString(settings.backupSearchRelayList), JsonMapper.mapper.writeValueAsString(settings.backupSearchRelayList),
) )
} else { } else {
remove(PrefKeys.LATEST_SEARCH_RELAY_LIST) remove(PrefKeys.LATEST_SEARCH_RELAY_LIST)
@@ -374,7 +374,7 @@ object LocalPreferences {
if (settings.backupBlockedRelayList != null) { if (settings.backupBlockedRelayList != null) {
putString( putString(
PrefKeys.LATEST_BLOCKED_RELAY_LIST, PrefKeys.LATEST_BLOCKED_RELAY_LIST,
EventMapper.mapper.writeValueAsString(settings.backupBlockedRelayList), JsonMapper.mapper.writeValueAsString(settings.backupBlockedRelayList),
) )
} else { } else {
remove(PrefKeys.LATEST_BLOCKED_RELAY_LIST) remove(PrefKeys.LATEST_BLOCKED_RELAY_LIST)
@@ -383,7 +383,7 @@ object LocalPreferences {
if (settings.backupTrustedRelayList != null) { if (settings.backupTrustedRelayList != null) {
putString( putString(
PrefKeys.LATEST_TRUSTED_RELAY_LIST, PrefKeys.LATEST_TRUSTED_RELAY_LIST,
EventMapper.mapper.writeValueAsString(settings.backupTrustedRelayList), JsonMapper.mapper.writeValueAsString(settings.backupTrustedRelayList),
) )
} else { } else {
remove(PrefKeys.LATEST_TRUSTED_RELAY_LIST) remove(PrefKeys.LATEST_TRUSTED_RELAY_LIST)
@@ -398,7 +398,7 @@ object LocalPreferences {
if (settings.backupMuteList != null) { if (settings.backupMuteList != null) {
putString( putString(
PrefKeys.LATEST_MUTE_LIST, PrefKeys.LATEST_MUTE_LIST,
EventMapper.mapper.writeValueAsString(settings.backupMuteList), JsonMapper.mapper.writeValueAsString(settings.backupMuteList),
) )
} else { } else {
remove(PrefKeys.LATEST_MUTE_LIST) remove(PrefKeys.LATEST_MUTE_LIST)
@@ -407,7 +407,7 @@ object LocalPreferences {
if (settings.backupPrivateHomeRelayList != null) { if (settings.backupPrivateHomeRelayList != null) {
putString( putString(
PrefKeys.LATEST_PRIVATE_HOME_RELAY_LIST, PrefKeys.LATEST_PRIVATE_HOME_RELAY_LIST,
EventMapper.mapper.writeValueAsString(settings.backupPrivateHomeRelayList), JsonMapper.mapper.writeValueAsString(settings.backupPrivateHomeRelayList),
) )
} else { } else {
remove(PrefKeys.LATEST_PRIVATE_HOME_RELAY_LIST) remove(PrefKeys.LATEST_PRIVATE_HOME_RELAY_LIST)
@@ -416,7 +416,7 @@ object LocalPreferences {
if (settings.backupAppSpecificData != null) { if (settings.backupAppSpecificData != null) {
putString( putString(
PrefKeys.LATEST_APP_SPECIFIC_DATA, PrefKeys.LATEST_APP_SPECIFIC_DATA,
EventMapper.mapper.writeValueAsString(settings.backupAppSpecificData), JsonMapper.mapper.writeValueAsString(settings.backupAppSpecificData),
) )
} else { } else {
remove(PrefKeys.LATEST_APP_SPECIFIC_DATA) remove(PrefKeys.LATEST_APP_SPECIFIC_DATA)
@@ -425,7 +425,7 @@ object LocalPreferences {
if (settings.backupChannelList != null) { if (settings.backupChannelList != null) {
putString( putString(
PrefKeys.LATEST_CHANNEL_LIST, PrefKeys.LATEST_CHANNEL_LIST,
EventMapper.mapper.writeValueAsString(settings.backupChannelList), JsonMapper.mapper.writeValueAsString(settings.backupChannelList),
) )
} else { } else {
remove(PrefKeys.LATEST_CHANNEL_LIST) remove(PrefKeys.LATEST_CHANNEL_LIST)
@@ -434,7 +434,7 @@ object LocalPreferences {
if (settings.backupCommunityList != null) { if (settings.backupCommunityList != null) {
putString( putString(
PrefKeys.LATEST_COMMUNITY_LIST, PrefKeys.LATEST_COMMUNITY_LIST,
EventMapper.mapper.writeValueAsString(settings.backupCommunityList), JsonMapper.mapper.writeValueAsString(settings.backupCommunityList),
) )
} else { } else {
remove(PrefKeys.LATEST_COMMUNITY_LIST) remove(PrefKeys.LATEST_COMMUNITY_LIST)
@@ -443,7 +443,7 @@ object LocalPreferences {
if (settings.backupHashtagList != null) { if (settings.backupHashtagList != null) {
putString( putString(
PrefKeys.LATEST_HASHTAG_LIST, PrefKeys.LATEST_HASHTAG_LIST,
EventMapper.mapper.writeValueAsString(settings.backupHashtagList), JsonMapper.mapper.writeValueAsString(settings.backupHashtagList),
) )
} else { } else {
remove(PrefKeys.LATEST_HASHTAG_LIST) remove(PrefKeys.LATEST_HASHTAG_LIST)
@@ -452,7 +452,7 @@ object LocalPreferences {
if (settings.backupGeohashList != null) { if (settings.backupGeohashList != null) {
putString( putString(
PrefKeys.LATEST_HASHTAG_LIST, PrefKeys.LATEST_HASHTAG_LIST,
EventMapper.mapper.writeValueAsString(settings.backupGeohashList), JsonMapper.mapper.writeValueAsString(settings.backupGeohashList),
) )
} else { } else {
remove(PrefKeys.LATEST_HASHTAG_LIST) remove(PrefKeys.LATEST_HASHTAG_LIST)
@@ -461,7 +461,7 @@ object LocalPreferences {
if (settings.backupEphemeralChatList != null) { if (settings.backupEphemeralChatList != null) {
putString( putString(
PrefKeys.LATEST_EPHEMERAL_LIST, PrefKeys.LATEST_EPHEMERAL_LIST,
EventMapper.mapper.writeValueAsString(settings.backupEphemeralChatList), JsonMapper.mapper.writeValueAsString(settings.backupEphemeralChatList),
) )
} else { } else {
remove(PrefKeys.LATEST_EPHEMERAL_LIST) remove(PrefKeys.LATEST_EPHEMERAL_LIST)
@@ -475,7 +475,7 @@ object LocalPreferences {
remove(PrefKeys.USE_PROXY) remove(PrefKeys.USE_PROXY)
remove(PrefKeys.PROXY_PORT) remove(PrefKeys.PROXY_PORT)
putString(PrefKeys.TOR_SETTINGS, EventMapper.mapper.writeValueAsString(settings.torSettings.toSettings())) putString(PrefKeys.TOR_SETTINGS, JsonMapper.mapper.writeValueAsString(settings.torSettings.toSettings()))
val regularMap = val regularMap =
settings.lastReadPerRoute.value.mapValues { settings.lastReadPerRoute.value.mapValues {
@@ -484,13 +484,13 @@ object LocalPreferences {
putString( putString(
PrefKeys.LAST_READ_PER_ROUTE, PrefKeys.LAST_READ_PER_ROUTE,
EventMapper.mapper.writeValueAsString(regularMap), JsonMapper.mapper.writeValueAsString(regularMap),
) )
putStringSet(PrefKeys.HAS_DONATED_IN_VERSION, settings.hasDonatedInVersion.value) putStringSet(PrefKeys.HAS_DONATED_IN_VERSION, settings.hasDonatedInVersion.value)
putString( putString(
PrefKeys.PENDING_ATTESTATIONS, PrefKeys.PENDING_ATTESTATIONS,
EventMapper.mapper.writeValueAsString(settings.pendingAttestations.value), JsonMapper.mapper.writeValueAsString(settings.pendingAttestations.value),
) )
} }
} }
@@ -506,7 +506,7 @@ object LocalPreferences {
) { ) {
Log.d("LocalPreferences", "Saving to shared settings") Log.d("LocalPreferences", "Saving to shared settings")
prefs.edit { prefs.edit {
putString(PrefKeys.SHARED_SETTINGS, EventMapper.mapper.writeValueAsString(sharedSettings)) putString(PrefKeys.SHARED_SETTINGS, JsonMapper.mapper.writeValueAsString(sharedSettings))
} }
} }
@@ -514,7 +514,7 @@ object LocalPreferences {
Log.d("LocalPreferences", "Load shared settings") Log.d("LocalPreferences", "Load shared settings")
with(prefs) { with(prefs) {
return try { return try {
getString(PrefKeys.SHARED_SETTINGS, "{}")?.let { EventMapper.mapper.readValue<Settings>(it) } getString(PrefKeys.SHARED_SETTINGS, "{}")?.let { JsonMapper.mapper.readValue<Settings>(it) }
} catch (e: Throwable) { } catch (e: Throwable) {
if (e is CancellationException) throw e if (e is CancellationException) throw e
Log.w( Log.w(
@@ -658,7 +658,7 @@ object LocalPreferences {
if (T::class.java.isInstance(Event::class.java)) { if (T::class.java.isInstance(Event::class.java)) {
Event.fromJson(value) as T? Event.fromJson(value) as T?
} else { } else {
EventMapper.mapper.readValue<T?>(value) JsonMapper.mapper.readValue<T?>(value)
} }
} catch (e: Throwable) { } catch (e: Throwable) {
if (e is CancellationException) throw e if (e is CancellationException) throw e

View File

@@ -26,7 +26,7 @@ import com.vitorpamplona.amethyst.model.AccountSettings
import com.vitorpamplona.amethyst.model.AccountSyncedSettingsInternal import com.vitorpamplona.amethyst.model.AccountSyncedSettingsInternal
import com.vitorpamplona.amethyst.model.LocalCache import com.vitorpamplona.amethyst.model.LocalCache
import com.vitorpamplona.amethyst.model.NoteState import com.vitorpamplona.amethyst.model.NoteState
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
import com.vitorpamplona.quartz.nip78AppData.AppSpecificDataEvent import com.vitorpamplona.quartz.nip78AppData.AppSpecificDataEvent
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
@@ -55,7 +55,7 @@ class AppSpecificState(
fun saveNewAppSpecificData(onDone: (AppSpecificDataEvent) -> Unit) { fun saveNewAppSpecificData(onDone: (AppSpecificDataEvent) -> Unit) {
val toInternal = settings.syncedSettings.toInternal() val toInternal = settings.syncedSettings.toInternal()
signer.nip44Encrypt(EventMapper.mapper.writeValueAsString(toInternal), signer.pubKey) { encrypted -> signer.nip44Encrypt(JsonMapper.mapper.writeValueAsString(toInternal), signer.pubKey) { encrypted ->
AppSpecificDataEvent.create( AppSpecificDataEvent.create(
dTag = APP_SPECIFIC_DATA_D_TAG, dTag = APP_SPECIFIC_DATA_D_TAG,
description = encrypted, description = encrypted,
@@ -74,7 +74,7 @@ class AppSpecificState(
LocalCache.justConsumeMyOwnEvent(event) LocalCache.justConsumeMyOwnEvent(event)
signer.decrypt(event.content, event.pubKey) { decrypted -> signer.decrypt(event.content, event.pubKey) { decrypted ->
try { try {
val syncedSettings = EventMapper.mapper.readValue<AccountSyncedSettingsInternal>(decrypted) val syncedSettings = JsonMapper.mapper.readValue<AccountSyncedSettingsInternal>(decrypted)
settings.syncedSettings.updateFrom(syncedSettings) settings.syncedSettings.updateFrom(syncedSettings)
} catch (e: Throwable) { } catch (e: Throwable) {
if (e is CancellationException) throw e if (e is CancellationException) throw e
@@ -94,7 +94,7 @@ class AppSpecificState(
signer.decrypt(it.content, it.pubKey) { decrypted -> signer.decrypt(it.content, it.pubKey) { decrypted ->
val syncedSettings = val syncedSettings =
try { try {
EventMapper.mapper.readValue<AccountSyncedSettingsInternal>(decrypted) JsonMapper.mapper.readValue<AccountSyncedSettingsInternal>(decrypted)
} catch (e: Throwable) { } catch (e: Throwable) {
if (e is CancellationException) throw e if (e is CancellationException) throw e
Log.w("LocalPreferences", "Error Decoding latestAppSpecificData from Preferences with value $decrypted", e) Log.w("LocalPreferences", "Error Decoding latestAppSpecificData from Preferences with value $decrypted", e)

View File

@@ -27,7 +27,7 @@ import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.utils.LargeCache import com.vitorpamplona.quartz.utils.LargeCache
import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue
import org.junit.Rule import org.junit.Rule
@@ -44,7 +44,7 @@ open class BaseCacheBenchmark {
// This file includes duplicates // This file includes duplicates
val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_startup_data.json") val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_startup_data.json")
return EventMapper.mapper.readValue<ArrayList<Event>>( return JsonMapper.mapper.readValue<ArrayList<Event>>(
GZIPInputStream(fullDBInputStream), GZIPInputStream(fullDBInputStream),
) )
} }

View File

@@ -24,7 +24,7 @@ import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.EventFactory import com.vitorpamplona.quartz.EventFactory
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.verify import com.vitorpamplona.quartz.nip01Core.verify
import com.vitorpamplona.quartz.nip01Core.verifyId import com.vitorpamplona.quartz.nip01Core.verifyId
import com.vitorpamplona.quartz.nip01Core.verifySignature import com.vitorpamplona.quartz.nip01Core.verifySignature
@@ -47,28 +47,28 @@ class EventBenchmark {
@Test @Test
fun parseComplete() { fun parseComplete() {
benchmarkRule.measureRepeated { benchmarkRule.measureRepeated {
val tree = EventMapper.mapper.readTree(reqResponseEvent) val tree = JsonMapper.mapper.readTree(reqResponseEvent)
val event = EventMapper.fromJson(tree[2]) val event = JsonMapper.fromJson(tree[2])
assertTrue(event.verify()) assertTrue(event.verify())
} }
} }
@Test @Test
fun parseREQString() { fun parseREQString() {
benchmarkRule.measureRepeated { EventMapper.mapper.readTree(reqResponseEvent) } benchmarkRule.measureRepeated { JsonMapper.mapper.readTree(reqResponseEvent) }
} }
@Test @Test
fun parseEvent() { fun parseEvent() {
val msg = EventMapper.mapper.readTree(reqResponseEvent) val msg = JsonMapper.mapper.readTree(reqResponseEvent)
benchmarkRule.measureRepeated { EventMapper.fromJson(msg[2]) } benchmarkRule.measureRepeated { JsonMapper.fromJson(msg[2]) }
} }
@Test @Test
fun checkId() { fun checkId() {
val msg = EventMapper.mapper.readTree(reqResponseEvent) val msg = JsonMapper.mapper.readTree(reqResponseEvent)
val event = EventMapper.fromJson(msg[2]) val event = JsonMapper.fromJson(msg[2])
benchmarkRule.measureRepeated { benchmarkRule.measureRepeated {
// Should pass // Should pass
assertTrue(event.verifyId()) assertTrue(event.verifyId())
@@ -77,8 +77,8 @@ class EventBenchmark {
@Test @Test
fun checkSignature() { fun checkSignature() {
val msg = EventMapper.mapper.readTree(reqResponseEvent) val msg = JsonMapper.mapper.readTree(reqResponseEvent)
val event = EventMapper.fromJson(msg[2]) val event = JsonMapper.fromJson(msg[2])
benchmarkRule.measureRepeated { benchmarkRule.measureRepeated {
// Should pass // Should pass
assertTrue(event.verifySignature()) assertTrue(event.verifySignature())

View File

@@ -25,7 +25,7 @@ import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.generateId import com.vitorpamplona.quartz.nip01Core.generateId
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.verifyId import com.vitorpamplona.quartz.nip01Core.verifyId
import junit.framework.TestCase.assertNotNull import junit.framework.TestCase.assertNotNull
import junit.framework.TestCase.assertTrue import junit.framework.TestCase.assertTrue
@@ -45,7 +45,7 @@ class EventCmdHasherBenchmark {
@Test @Test
fun checkIDHashKind1WihtoutTags() { fun checkIDHashKind1WihtoutTags() {
val event = EventMapper.fromJson(EventMapper.mapper.readTree(reqResponseEvent)) val event = JsonMapper.fromJson(JsonMapper.mapper.readTree(reqResponseEvent))
benchmarkRule.measureRepeated { benchmarkRule.measureRepeated {
// Should pass // Should pass

View File

@@ -27,7 +27,7 @@ import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.utils.LargeCache import com.vitorpamplona.quartz.utils.LargeCache
import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue
import org.junit.Rule import org.junit.Rule
@@ -42,7 +42,7 @@ open class BaseLargeCacheBenchmark {
// This file includes duplicates // This file includes duplicates
val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_startup_data.json") val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_startup_data.json")
return EventMapper.mapper.readValue<ArrayList<Event>>( return JsonMapper.mapper.readValue<ArrayList<Event>>(
GZIPInputStream(fullDBInputStream), GZIPInputStream(fullDBInputStream),
) )
} }

View File

@@ -24,7 +24,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.verify import com.vitorpamplona.quartz.nip01Core.verify
import junit.framework.TestCase.assertEquals import junit.framework.TestCase.assertEquals
import junit.framework.TestCase.assertTrue import junit.framework.TestCase.assertTrue
@@ -42,7 +42,7 @@ class LargeDBSignatureCheck {
val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_short.json") val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_short.json")
val eventArray = val eventArray =
EventMapper.mapper.readValue<ArrayList<Event>>( JsonMapper.mapper.readValue<ArrayList<Event>>(
InputStreamReader(fullDBInputStream), InputStreamReader(fullDBInputStream),
) as List<Event> ) as List<Event>
@@ -62,7 +62,7 @@ class LargeDBSignatureCheck {
val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_startup_data.json") val fullDBInputStream = getInstrumentation().context.assets.open("nostr_vitor_startup_data.json")
val eventArray = val eventArray =
EventMapper.mapper.readValue<ArrayList<Event>>( JsonMapper.mapper.readValue<ArrayList<Event>>(
GZIPInputStream(fullDBInputStream), GZIPInputStream(fullDBInputStream),
) as List<Event> ) as List<Event>

View File

@@ -21,7 +21,7 @@
package com.vitorpamplona.quartz.nip01Core package com.vitorpamplona.quartz.nip01Core
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
@@ -52,8 +52,8 @@ class EventSigCheck {
@Test @Test
fun testUnicode2028and2029ShouldNotBeEscaped() { fun testUnicode2028and2029ShouldNotBeEscaped() {
val msg = EventMapper.mapper.readTree(payload1) val msg = JsonMapper.mapper.readTree(payload1)
val event = EventMapper.fromJson(msg[2]) val event = JsonMapper.fromJson(msg[2])
// Should pass // Should pass
event.checkSignature() event.checkSignature()

View File

@@ -24,7 +24,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.toHexKey import com.vitorpamplona.quartz.nip01Core.core.toHexKey
import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal
import com.vitorpamplona.quartz.nip57Zaps.PrivateZapEncryption.Companion.createEncryptionPrivateKey import com.vitorpamplona.quartz.nip57Zaps.PrivateZapEncryption.Companion.createEncryptionPrivateKey
import com.vitorpamplona.quartz.nip59GiftWraps.wait1SecondForResult import com.vitorpamplona.quartz.nip59GiftWraps.wait1SecondForResult
@@ -39,7 +39,7 @@ class PrivateZapTests {
@Test @Test
fun testPollZap() { fun testPollZap() {
val poll = val poll =
EventMapper.fromJson( JsonMapper.fromJson(
"""{ """{
"content": "New poll \n\n #zappoll", "content": "New poll \n\n #zappoll",
"created_at": 1682440713, "created_at": 1682440713,

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.experimental.audio.header.tags
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.quartz.nip01Core.core.has import com.vitorpamplona.quartz.nip01Core.core.has
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.utils.ensure import com.vitorpamplona.quartz.utils.ensure
class WaveformTag( class WaveformTag(
@@ -38,12 +38,12 @@ class WaveformTag(
ensure(tag.has(1)) { return null } ensure(tag.has(1)) { return null }
ensure(tag[0] == TAG_NAME) { return null } ensure(tag[0] == TAG_NAME) { return null }
ensure(tag[1].isNotEmpty()) { return null } ensure(tag[1].isNotEmpty()) { return null }
val wave = runCatching { EventMapper.mapper.readValue<List<Int>>(tag[1]) }.getOrNull() val wave = runCatching { JsonMapper.mapper.readValue<List<Int>>(tag[1]) }.getOrNull()
if (wave.isNullOrEmpty()) return null if (wave.isNullOrEmpty()) return null
return WaveformTag(wave) return WaveformTag(wave)
} }
@JvmStatic @JvmStatic
fun assemble(wave: List<Int>) = arrayOf(TAG_NAME, EventMapper.mapper.writeValueAsString(wave)) fun assemble(wave: List<Int>) = arrayOf(TAG_NAME, JsonMapper.mapper.writeValueAsString(wave))
} }
} }

View File

@@ -27,7 +27,7 @@ import com.vitorpamplona.quartz.experimental.edits.tags.RelayTag
import com.vitorpamplona.quartz.nip01Core.core.BaseReplaceableEvent import com.vitorpamplona.quartz.nip01Core.core.BaseReplaceableEvent
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.core.TagArray import com.vitorpamplona.quartz.nip01Core.core.TagArray
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
import com.vitorpamplona.quartz.nip01Core.tags.addressables.ATag import com.vitorpamplona.quartz.nip01Core.tags.addressables.ATag
@@ -81,7 +81,7 @@ class PrivateOutboxRelayListEvent(
try { try {
signer.nip44Decrypt(content, pubKey) { signer.nip44Decrypt(content, pubKey) {
try { try {
privateTagsCache = EventMapper.mapper.readValue<TagArray>(it) privateTagsCache = JsonMapper.mapper.readValue<TagArray>(it)
privateTagsCache?.let { onReady(it) } privateTagsCache?.let { onReady(it) }
} catch (e: Throwable) { } catch (e: Throwable) {
Log.w("PrivateOutboxRelayListEvent", "Error parsing the JSON: ${e.message}. Json `$it` from event `${toNostrUri()}`") Log.w("PrivateOutboxRelayListEvent", "Error parsing the JSON: ${e.message}. Json `$it` from event `${toNostrUri()}`")
@@ -107,7 +107,7 @@ class PrivateOutboxRelayListEvent(
signer: NostrSigner, signer: NostrSigner,
onReady: (String) -> Unit, onReady: (String) -> Unit,
) { ) {
val msg = EventMapper.mapper.writeValueAsString(privateTags) val msg = JsonMapper.mapper.writeValueAsString(privateTags)
signer.nip44Encrypt( signer.nip44Encrypt(
msg, msg,

View File

@@ -21,9 +21,8 @@
package com.vitorpamplona.quartz.nip01Core.core package com.vitorpamplona.quartz.nip01Core.core
import androidx.compose.runtime.Immutable import androidx.compose.runtime.Immutable
import com.fasterxml.jackson.annotation.JsonProperty
import com.vitorpamplona.quartz.nip01Core.jackson.EventManualSerializer import com.vitorpamplona.quartz.nip01Core.jackson.EventManualSerializer
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.eventTemplate import com.vitorpamplona.quartz.nip01Core.signers.eventTemplate
import com.vitorpamplona.quartz.utils.TimeUtils import com.vitorpamplona.quartz.utils.TimeUtils
import com.vitorpamplona.quartz.utils.bytesUsedInMemory import com.vitorpamplona.quartz.utils.bytesUsedInMemory
@@ -32,8 +31,8 @@ import com.vitorpamplona.quartz.utils.pointerSizeInBytes
@Immutable @Immutable
open class Event( open class Event(
val id: HexKey, val id: HexKey,
@JsonProperty("pubkey") val pubKey: HexKey, val pubKey: HexKey,
@JsonProperty("created_at") val createdAt: Long, val createdAt: Long,
val kind: Int, val kind: Int,
val tags: TagArray, val tags: TagArray,
val content: String, val content: String,
@@ -57,7 +56,7 @@ open class Event(
fun toJson(): String = EventManualSerializer.toJson(id, pubKey, createdAt, kind, tags, content, sig) fun toJson(): String = EventManualSerializer.toJson(id, pubKey, createdAt, kind, tags, content, sig)
companion object { companion object {
fun fromJson(json: String): Event = EventMapper.fromJson(json) fun fromJson(json: String): Event = JsonMapper.fromJson(json)
fun build( fun build(
kind: Int, kind: Int,

View File

@@ -24,7 +24,7 @@ import com.fasterxml.jackson.databind.node.ArrayNode
import com.fasterxml.jackson.databind.node.JsonNodeFactory import com.fasterxml.jackson.databind.node.JsonNodeFactory
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.core.toHexKey import com.vitorpamplona.quartz.nip01Core.core.toHexKey
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.utils.sha256.sha256 import com.vitorpamplona.quartz.utils.sha256.sha256
class EventHasher { class EventHasher {
@@ -61,7 +61,7 @@ class EventHasher {
kind: Int, kind: Int,
tags: Array<Array<String>>, tags: Array<Array<String>>,
content: String, content: String,
): String = EventMapper.toJson(makeJsonObjectForId(pubKey, createdAt, kind, tags, content)) ): String = JsonMapper.toJson(makeJsonObjectForId(pubKey, createdAt, kind, tags, content))
fun hashIdBytes( fun hashIdBytes(
pubKey: HexKey, pubKey: HexKey,

View File

@@ -67,7 +67,7 @@ class EventManualSerializer {
sig: String, sig: String,
): String { ): String {
val obj = assemble(id, pubKey, createdAt, kind, tags, content, sig) val obj = assemble(id, pubKey, createdAt, kind, tags, content, sig)
return EventMapper.mapper.writeValueAsString(obj) return JsonMapper.mapper.writeValueAsString(obj)
} }
} }
} }

View File

@@ -39,8 +39,8 @@ import com.vitorpamplona.quartz.nip59Giftwrap.rumors.Rumor
import com.vitorpamplona.quartz.nip59Giftwrap.rumors.RumorDeserializer import com.vitorpamplona.quartz.nip59Giftwrap.rumors.RumorDeserializer
import com.vitorpamplona.quartz.nip59Giftwrap.rumors.RumorSerializer import com.vitorpamplona.quartz.nip59Giftwrap.rumors.RumorSerializer
class EventMapper { class JsonMapper {
companion object { companion object Companion {
val defaultPrettyPrinter = InliningTagArrayPrettyPrinter() val defaultPrettyPrinter = InliningTagArrayPrettyPrinter()
val mapper = val mapper =

View File

@@ -28,7 +28,7 @@ import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
import com.vitorpamplona.quartz.nip01Core.core.builder import com.vitorpamplona.quartz.nip01Core.core.builder
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.metadata.tags.AboutTag import com.vitorpamplona.quartz.nip01Core.metadata.tags.AboutTag
import com.vitorpamplona.quartz.nip01Core.metadata.tags.BannerTag import com.vitorpamplona.quartz.nip01Core.metadata.tags.BannerTag
import com.vitorpamplona.quartz.nip01Core.metadata.tags.DisplayNameTag import com.vitorpamplona.quartz.nip01Core.metadata.tags.DisplayNameTag
@@ -63,7 +63,7 @@ class MetadataEvent(
fun contactMetaData() = fun contactMetaData() =
try { try {
EventMapper.mapper.readValue(content, UserMetadata::class.java) JsonMapper.mapper.readValue(content, UserMetadata::class.java)
} catch (e: Exception) { } catch (e: Exception) {
Log.w("MetadataEvent", "Content Parse Error: ${toNostrUri()} ${e.localizedMessage}") Log.w("MetadataEvent", "Content Parse Error: ${toNostrUri()} ${e.localizedMessage}")
null null

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip01Core.relay.commands.toClient
import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.JsonNode
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
class EventMessage( class EventMessage(
val subId: String, val subId: String,
@@ -35,7 +35,7 @@ class EventMessage(
fun parse(msgArray: JsonNode): EventMessage = fun parse(msgArray: JsonNode): EventMessage =
EventMessage( EventMessage(
msgArray.get(1).asText(), msgArray.get(1).asText(),
EventMapper.fromJson(msgArray.get(2)), JsonMapper.fromJson(msgArray.get(2)),
) )
} }
} }

View File

@@ -20,11 +20,11 @@
*/ */
package com.vitorpamplona.quartz.nip01Core.relay.commands.toClient package com.vitorpamplona.quartz.nip01Core.relay.commands.toClient
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
class ToClientParser { class ToClientParser {
fun parse(newMessage: String): Message? { fun parse(newMessage: String): Message? {
val msgArray = EventMapper.mapper.readTree(newMessage) val msgArray = JsonMapper.mapper.readTree(newMessage)
val type = msgArray.get(0).asText() val type = msgArray.get(0).asText()
return when (type) { return when (type) {
EventMessage.LABEL -> EventMessage.parse(msgArray) EventMessage.LABEL -> EventMessage.parse(msgArray)

View File

@@ -21,7 +21,7 @@
package com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay package com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay
import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.JsonNode
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip42RelayAuth.RelayAuthEvent import com.vitorpamplona.quartz.nip42RelayAuth.RelayAuthEvent
class AuthCmd( class AuthCmd(
@@ -36,7 +36,7 @@ class AuthCmd(
@JvmStatic @JvmStatic
fun parse(msgArray: JsonNode): AuthCmd = fun parse(msgArray: JsonNode): AuthCmd =
AuthCmd( AuthCmd(
EventMapper.fromJson(msgArray.get(1)) as RelayAuthEvent, JsonMapper.fromJson(msgArray.get(1)) as RelayAuthEvent,
) )
} }
} }

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay
import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.node.ObjectNode import com.fasterxml.jackson.databind.node.ObjectNode
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
import com.vitorpamplona.quartz.nip01Core.relay.filters.FilterDeserializer import com.vitorpamplona.quartz.nip01Core.relay.filters.FilterDeserializer
import com.vitorpamplona.quartz.utils.joinToStringLimited import com.vitorpamplona.quartz.utils.joinToStringLimited
@@ -54,7 +54,7 @@ class CountCmd(
val filters = mutableListOf<Filter>() val filters = mutableListOf<Filter>()
for (i in 2 until msgArray.size()) { for (i in 2 until msgArray.size()) {
val json = EventMapper.mapper.readTree(msgArray.get(i).asText()) val json = JsonMapper.mapper.readTree(msgArray.get(i).asText())
if (json is ObjectNode) { if (json is ObjectNode) {
filters.add(FilterDeserializer.fromJson(json)) filters.add(FilterDeserializer.fromJson(json))
} }

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay
import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.JsonNode
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
class EventCmd( class EventCmd(
val event: Event, val event: Event,
@@ -36,7 +36,7 @@ class EventCmd(
@JvmStatic @JvmStatic
fun parse(msgArray: JsonNode): EventCmd = fun parse(msgArray: JsonNode): EventCmd =
EventCmd( EventCmd(
EventMapper.fromJson(msgArray.get(1)), JsonMapper.fromJson(msgArray.get(1)),
) )
} }
} }

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay
import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.node.ObjectNode import com.fasterxml.jackson.databind.node.ObjectNode
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
import com.vitorpamplona.quartz.nip01Core.relay.filters.FilterDeserializer import com.vitorpamplona.quartz.nip01Core.relay.filters.FilterDeserializer
import com.vitorpamplona.quartz.utils.joinToStringLimited import com.vitorpamplona.quartz.utils.joinToStringLimited
@@ -54,7 +54,7 @@ class ReqCmd(
val filters = mutableListOf<Filter>() val filters = mutableListOf<Filter>()
for (i in 2 until msgArray.size()) { for (i in 2 until msgArray.size()) {
val json = EventMapper.mapper.readTree(msgArray.get(i).asText()) val json = JsonMapper.mapper.readTree(msgArray.get(i).asText())
if (json is ObjectNode) { if (json is ObjectNode) {
filters.add(FilterDeserializer.fromJson(json)) filters.add(FilterDeserializer.fromJson(json))
} }

View File

@@ -20,11 +20,11 @@
*/ */
package com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay package com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
class ToRelayParser { class ToRelayParser {
fun parse(newMessage: String): Command? { fun parse(newMessage: String): Command? {
val msgArray = EventMapper.mapper.readTree(newMessage) val msgArray = JsonMapper.mapper.readTree(newMessage)
val type = msgArray.get(0).asText() val type = msgArray.get(0).asText()
return when (type) { return when (type) {
AuthCmd.LABEL -> AuthCmd.parse(msgArray) AuthCmd.LABEL -> AuthCmd.parse(msgArray)

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip01Core.relay.filters
import com.fasterxml.jackson.databind.node.JsonNodeFactory import com.fasterxml.jackson.databind.node.JsonNodeFactory
import com.fasterxml.jackson.databind.node.ObjectNode import com.fasterxml.jackson.databind.node.ObjectNode
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
object FilterSerializer { object FilterSerializer {
fun toJsonObject( fun toJsonObject(
@@ -80,7 +80,7 @@ object FilterSerializer {
limit: Int? = null, limit: Int? = null,
search: String? = null, search: String? = null,
): String = ): String =
EventMapper.mapper.writeValueAsString( JsonMapper.mapper.writeValueAsString(
toJsonObject( toJsonObject(
ids, ids,
authors, authors,

View File

@@ -26,7 +26,7 @@ import com.vitorpamplona.quartz.nip01Core.core.TagArray
import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder import com.vitorpamplona.quartz.nip01Core.core.TagArrayBuilder
import com.vitorpamplona.quartz.nip01Core.core.builder import com.vitorpamplona.quartz.nip01Core.core.builder
import com.vitorpamplona.quartz.nip01Core.core.tagArray import com.vitorpamplona.quartz.nip01Core.core.tagArray
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.utils.TimeUtils import com.vitorpamplona.quartz.utils.TimeUtils
class EventTemplate<T : Event>( class EventTemplate<T : Event>(
@@ -36,10 +36,10 @@ class EventTemplate<T : Event>(
val tags: TagArray, val tags: TagArray,
val content: String, val content: String,
) { ) {
fun toJson(): String = EventMapper.mapper.writeValueAsString(this) fun toJson(): String = JsonMapper.mapper.writeValueAsString(this)
companion object { companion object {
fun fromJson(json: String): EventTemplate<Event> = EventTemplateManualDeserializer.fromJson(EventMapper.mapper.readTree(json)) fun fromJson(json: String): EventTemplate<Event> = EventTemplateManualDeserializer.fromJson(JsonMapper.mapper.readTree(json))
} }
} }

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip02FollowList
import android.util.Log import android.util.Log
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
data class ReadWrite( data class ReadWrite(
val read: Boolean, val read: Boolean,
@@ -31,12 +31,12 @@ data class ReadWrite(
class RelaySet { class RelaySet {
companion object { companion object {
fun assemble(relayUse: Map<String, ReadWrite>): String = EventMapper.mapper.writeValueAsString(relayUse) fun assemble(relayUse: Map<String, ReadWrite>): String = JsonMapper.mapper.writeValueAsString(relayUse)
fun parse(content: String): Map<String, ReadWrite>? = fun parse(content: String): Map<String, ReadWrite>? =
try { try {
if (content.isNotEmpty()) { if (content.isNotEmpty()) {
EventMapper.mapper.readValue<Map<String, ReadWrite>>(content) JsonMapper.mapper.readValue<Map<String, ReadWrite>>(content)
} else { } else {
null null
} }

View File

@@ -20,7 +20,7 @@
*/ */
package com.vitorpamplona.quartz.nip05DnsIdentifiers package com.vitorpamplona.quartz.nip05DnsIdentifiers
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CancellationException
class Nip05 { class Nip05 {
@@ -46,7 +46,7 @@ class Nip05 {
// lowercase version of the username. // lowercase version of the username.
val nip05url = val nip05url =
try { try {
EventMapper.mapper.readTree(returnBody.lowercase()) JsonMapper.mapper.readTree(returnBody.lowercase())
} catch (e: Throwable) { } catch (e: Throwable) {
if (e is CancellationException) throw e if (e is CancellationException) throw e
return Result.failure(e) return Result.failure(e)

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip28PublicChat.base
import androidx.compose.runtime.Immutable import androidx.compose.runtime.Immutable
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
@@ -38,9 +38,9 @@ data class ChannelData(
fun normalize() = ChannelDataNorm(name, about, picture, relays?.mapNotNull { RelayUrlNormalizer.normalizeOrNull(it) }) fun normalize() = ChannelDataNorm(name, about, picture, relays?.mapNotNull { RelayUrlNormalizer.normalizeOrNull(it) })
companion object { companion object {
fun parse(content: String): ChannelData? = EventMapper.mapper.readValue(content) fun parse(content: String): ChannelData? = JsonMapper.mapper.readValue(content)
fun assemble(data: ChannelData) = EventMapper.mapper.writeValueAsString(data) fun assemble(data: ChannelData) = JsonMapper.mapper.writeValueAsString(data)
} }
} }

View File

@@ -21,7 +21,7 @@
package com.vitorpamplona.quartz.nip44Encryption package com.vitorpamplona.quartz.nip44Encryption
import android.util.Log import android.util.Log
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip04Dm.crypto.EncryptedInfo import com.vitorpamplona.quartz.nip04Dm.crypto.EncryptedInfo
import com.vitorpamplona.quartz.nip04Dm.crypto.Nip04 import com.vitorpamplona.quartz.nip04Dm.crypto.Nip04
import java.util.Base64 import java.util.Base64
@@ -66,7 +66,7 @@ object Nip44 {
// Ignores if it is not a valid json // Ignores if it is not a valid json
val info = val info =
try { try {
EventMapper.mapper.readValue(json, EncryptedInfoString::class.java) JsonMapper.mapper.readValue(json, EncryptedInfoString::class.java)
} catch (e: Exception) { } catch (e: Exception) {
Log.e("NIP44", "Unable to parse json $json") Log.e("NIP44", "Unable to parse json $json")
return null return null

View File

@@ -21,19 +21,19 @@
package com.vitorpamplona.quartz.nip46RemoteSigner package com.vitorpamplona.quartz.nip46RemoteSigner
import com.fasterxml.jackson.core.type.TypeReference import com.fasterxml.jackson.core.type.TypeReference
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip02FollowList.ReadWrite import com.vitorpamplona.quartz.nip02FollowList.ReadWrite
import java.util.UUID import java.util.UUID
class BunkerResponseGetRelays( class BunkerResponseGetRelays(
id: String = UUID.randomUUID().toString(), id: String = UUID.randomUUID().toString(),
val relays: Map<String, ReadWrite>, val relays: Map<String, ReadWrite>,
) : BunkerResponse(id, EventMapper.mapper.writeValueAsString(relays), null) { ) : BunkerResponse(id, JsonMapper.mapper.writeValueAsString(relays), null) {
companion object { companion object {
fun parse( fun parse(
id: String, id: String,
result: String, result: String,
error: String? = null, error: String? = null,
) = BunkerResponseGetRelays(id, EventMapper.mapper.readValue(result, object : TypeReference<Map<String, ReadWrite>>() {})) ) = BunkerResponseGetRelays(id, JsonMapper.mapper.readValue(result, object : TypeReference<Map<String, ReadWrite>>() {}))
} }
} }

View File

@@ -23,7 +23,7 @@ package com.vitorpamplona.quartz.nip46RemoteSigner
import androidx.compose.runtime.Immutable import androidx.compose.runtime.Immutable
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
import com.vitorpamplona.quartz.nip31Alts.AltTag import com.vitorpamplona.quartz.nip31Alts.AltTag
import com.vitorpamplona.quartz.utils.Hex import com.vitorpamplona.quartz.utils.Hex
@@ -73,7 +73,7 @@ class NostrConnectEvent(
// decrypts using NIP-04 or NIP-44 // decrypts using NIP-04 or NIP-44
signer.decrypt(content, talkingWith(signer.pubKey)) { retVal -> signer.decrypt(content, talkingWith(signer.pubKey)) { retVal ->
val content = EventMapper.mapper.readValue(retVal, BunkerMessage::class.java) val content = JsonMapper.mapper.readValue(retVal, BunkerMessage::class.java)
decryptedContent = decryptedContent + Pair(signer.pubKey, content) decryptedContent = decryptedContent + Pair(signer.pubKey, content)
@@ -98,7 +98,7 @@ class NostrConnectEvent(
arrayOf("p", remoteKey), arrayOf("p", remoteKey),
) )
val encrypted = EventMapper.mapper.writeValueAsString(message) val encrypted = JsonMapper.mapper.writeValueAsString(message)
signer.nip44Encrypt(encrypted, remoteKey) { content -> signer.nip44Encrypt(encrypted, remoteKey) { content ->
signer.sign(createdAt, KIND, tags, content, onReady) signer.sign(createdAt, KIND, tags, content, onReady)

View File

@@ -24,7 +24,7 @@ import android.util.Log
import androidx.compose.runtime.Immutable import androidx.compose.runtime.Immutable
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
import com.vitorpamplona.quartz.nip31Alts.AltTag import com.vitorpamplona.quartz.nip31Alts.AltTag
import com.vitorpamplona.quartz.utils.TimeUtils import com.vitorpamplona.quartz.utils.TimeUtils
@@ -62,7 +62,7 @@ class LnZapPaymentRequestEvent(
try { try {
signer.decrypt(content, talkingWith(signer.pubKey)) { jsonText -> signer.decrypt(content, talkingWith(signer.pubKey)) { jsonText ->
val payInvoiceMethod = EventMapper.mapper.readValue(jsonText, Request::class.java) val payInvoiceMethod = JsonMapper.mapper.readValue(jsonText, Request::class.java)
lnInvoice = (payInvoiceMethod as? PayInvoiceMethod)?.params?.invoice lnInvoice = (payInvoiceMethod as? PayInvoiceMethod)?.params?.invoice
@@ -84,7 +84,7 @@ class LnZapPaymentRequestEvent(
createdAt: Long = TimeUtils.now(), createdAt: Long = TimeUtils.now(),
onReady: (LnZapPaymentRequestEvent) -> Unit, onReady: (LnZapPaymentRequestEvent) -> Unit,
) { ) {
val serializedRequest = EventMapper.mapper.writeValueAsString(PayInvoiceMethod.create(lnInvoice)) val serializedRequest = JsonMapper.mapper.writeValueAsString(PayInvoiceMethod.create(lnInvoice))
val tags = arrayOf(arrayOf("p", walletServicePubkey), AltTag.assemble(ALT)) val tags = arrayOf(arrayOf("p", walletServicePubkey), AltTag.assemble(ALT))

View File

@@ -24,7 +24,7 @@ import android.util.Log
import androidx.compose.runtime.Immutable import androidx.compose.runtime.Immutable
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
import com.vitorpamplona.quartz.utils.pointerSizeInBytes import com.vitorpamplona.quartz.utils.pointerSizeInBytes
@@ -71,7 +71,7 @@ class LnZapPaymentResponseEvent(
try { try {
if (content.isNotEmpty()) { if (content.isNotEmpty()) {
plainContent(signer) { plainContent(signer) {
EventMapper.mapper.readValue(it, Response::class.java)?.let { JsonMapper.mapper.readValue(it, Response::class.java)?.let {
response = it response = it
onReady(it) onReady(it)
} }

View File

@@ -26,7 +26,7 @@ import com.vitorpamplona.quartz.nip01Core.core.isTagged
import com.vitorpamplona.quartz.nip01Core.hints.AddressHintProvider import com.vitorpamplona.quartz.nip01Core.hints.AddressHintProvider
import com.vitorpamplona.quartz.nip01Core.hints.EventHintProvider import com.vitorpamplona.quartz.nip01Core.hints.EventHintProvider
import com.vitorpamplona.quartz.nip01Core.hints.PubKeyHintProvider import com.vitorpamplona.quartz.nip01Core.hints.PubKeyHintProvider
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
import com.vitorpamplona.quartz.nip01Core.tags.addressables.ATag import com.vitorpamplona.quartz.nip01Core.tags.addressables.ATag
import com.vitorpamplona.quartz.nip01Core.tags.addressables.Address import com.vitorpamplona.quartz.nip01Core.tags.addressables.Address
@@ -176,7 +176,7 @@ abstract class GeneralListEvent(
signer: NostrSigner, signer: NostrSigner,
onReady: (String) -> Unit, onReady: (String) -> Unit,
) { ) {
val msg = EventMapper.mapper.writeValueAsString(privateTags) val msg = JsonMapper.mapper.writeValueAsString(privateTags)
signer.nip04Encrypt( signer.nip04Encrypt(
msg, msg,

View File

@@ -21,14 +21,14 @@
package com.vitorpamplona.quartz.nip51Lists.encryption package com.vitorpamplona.quartz.nip51Lists.encryption
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
class PrivateTagsInContent { class PrivateTagsInContent {
companion object { companion object {
fun decode(content: String) = EventMapper.mapper.readValue<Array<Array<String>>>(content) fun decode(content: String) = JsonMapper.mapper.readValue<Array<Array<String>>>(content)
fun encode(privateTags: Array<Array<String>>) = EventMapper.mapper.writeValueAsString(privateTags) fun encode(privateTags: Array<Array<String>>) = JsonMapper.mapper.writeValueAsString(privateTags)
fun decrypt( fun decrypt(
content: String, content: String,

View File

@@ -25,7 +25,7 @@ import com.vitorpamplona.quartz.EventFactory
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.crypto.EventHasher import com.vitorpamplona.quartz.nip01Core.crypto.EventHasher
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
class Rumor( class Rumor(
@@ -49,9 +49,9 @@ class Rumor(
} }
companion object { companion object {
fun fromJson(json: String): Rumor = EventMapper.mapper.readValue(json, Rumor::class.java) fun fromJson(json: String): Rumor = JsonMapper.mapper.readValue(json, Rumor::class.java)
fun toJson(event: Rumor): String = EventMapper.mapper.writeValueAsString(event) fun toJson(event: Rumor): String = JsonMapper.mapper.writeValueAsString(event)
fun create(event: Event): Rumor = Rumor(event.id, event.pubKey, event.createdAt, event.kind, event.tags, event.content) fun create(event: Event): Rumor = Rumor(event.id, event.pubKey, event.createdAt, event.kind, event.tags, event.content)
} }

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip89AppHandlers.definition
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.annotation.JsonProperty
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.utils.bytesUsedInMemory import com.vitorpamplona.quartz.utils.bytesUsedInMemory
import com.vitorpamplona.quartz.utils.pointerSizeInBytes import com.vitorpamplona.quartz.utils.pointerSizeInBytes
@@ -113,8 +113,8 @@ class AppMetadata {
fun toJson() = assemble(this) fun toJson() = assemble(this)
companion object { companion object {
fun assemble(data: AppMetadata) = EventMapper.mapper.writeValueAsString(data) fun assemble(data: AppMetadata) = JsonMapper.mapper.writeValueAsString(data)
fun parse(content: String) = EventMapper.mapper.readValue(content, AppMetadata::class.java) fun parse(content: String) = JsonMapper.mapper.readValue(content, AppMetadata::class.java)
} }
} }

View File

@@ -25,7 +25,7 @@ import androidx.compose.runtime.Immutable
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner import com.vitorpamplona.quartz.nip01Core.signers.NostrSigner
import com.vitorpamplona.quartz.nip31Alts.AltTag import com.vitorpamplona.quartz.nip31Alts.AltTag
import com.vitorpamplona.quartz.nip89AppHandlers.recommendation.AppRecommendationEvent import com.vitorpamplona.quartz.nip89AppHandlers.recommendation.AppRecommendationEvent
@@ -59,7 +59,7 @@ class NIP90ContentDiscoveryResponseEvent(
try { try {
events = events =
EventMapper.mapper.readValue<Array<Array<String>>>(content).mapNotNull { JsonMapper.mapper.readValue<Array<Array<String>>>(content).mapNotNull {
if (it.size > 1 && it[0] == "e") { if (it.size > 1 && it[0] == "e") {
it[1] it[1]
} else { } else {

View File

@@ -22,7 +22,7 @@ package com.vitorpamplona.quartz.nip01Core.metadata
import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.jackson.EventManualSerializer import com.vitorpamplona.quartz.nip01Core.jackson.EventManualSerializer
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import com.vitorpamplona.quartz.utils.nsecToSigner import com.vitorpamplona.quartz.utils.nsecToSigner
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test
@@ -35,7 +35,7 @@ class UpdateMetadataTest {
*/ */
fun Event.toPrettyJson(): String { fun Event.toPrettyJson(): String {
val obj = EventManualSerializer.assemble(id, pubKey, createdAt, kind, tags, content, sig) val obj = EventManualSerializer.assemble(id, pubKey, createdAt, kind, tags, content, sig)
return EventMapper.mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj) return JsonMapper.mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj)
} }
@Test @Test

View File

@@ -20,14 +20,14 @@
*/ */
package com.vitorpamplona.quartz.nip46RemoteSigner package com.vitorpamplona.quartz.nip46RemoteSigner
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper import com.vitorpamplona.quartz.nip01Core.jackson.JsonMapper
import org.junit.Test import org.junit.Test
class BunkerRequestTest { class BunkerRequestTest {
@Test @Test
fun testBunkerRequestDeSerialization() { fun testBunkerRequestDeSerialization() {
val requestJson = """{"id":"123","method":"sign_event","params":["{\"created_at\":1234,\"kind\":1,\"tags\":[],\"content\":\"This is an unsigned event.\"}"]}""" val requestJson = """{"id":"123","method":"sign_event","params":["{\"created_at\":1234,\"kind\":1,\"tags\":[],\"content\":\"This is an unsigned event.\"}"]}"""
val bunkerRequest = EventMapper.mapper.readValue(requestJson, BunkerRequest::class.java) val bunkerRequest = JsonMapper.mapper.readValue(requestJson, BunkerRequest::class.java)
assert(bunkerRequest is BunkerRequestSign) assert(bunkerRequest is BunkerRequestSign)
assert((bunkerRequest as BunkerRequestSign).event.kind == 1) assert((bunkerRequest as BunkerRequestSign).event.kind == 1)