From 990cca3d640cbec1580663b271d6fe187b98f169 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 17 Oct 2025 14:29:46 -0400 Subject: [PATCH] Moving the EmptyOTS resolver to Quartz for test cases --- .../ThreadDualAxisChartAssemblerTest.kt | 2 +- .../ui/screen/loggedIn/AccountViewModel.kt | 40 +------------------ .../nip03Timestamp/OtsResolverBuilder.kt | 12 ++++++ .../nip03Timestamp/ots/BitcoinExplorer.kt | 6 +++ .../nip03Timestamp/ots/RemoteCalendar.kt | 12 ++++++ 5 files changed, 32 insertions(+), 40 deletions(-) diff --git a/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/ThreadDualAxisChartAssemblerTest.kt b/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/ThreadDualAxisChartAssemblerTest.kt index b4f956d34..dea5d5d39 100644 --- a/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/ThreadDualAxisChartAssemblerTest.kt +++ b/amethyst/src/androidTest/java/com/vitorpamplona/amethyst/ThreadDualAxisChartAssemblerTest.kt @@ -28,7 +28,6 @@ import com.vitorpamplona.amethyst.model.LocalCache import com.vitorpamplona.amethyst.service.location.LocationState import com.vitorpamplona.amethyst.service.okhttp.OkHttpWebSocket import com.vitorpamplona.amethyst.service.relayClient.reqCommand.nwc.NWCPaymentFilterAssembler -import com.vitorpamplona.amethyst.ui.screen.loggedIn.EmptyOtsResolverBuilder import com.vitorpamplona.amethyst.ui.screen.loggedIn.threadview.dal.ThreadFeedFilter import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair @@ -37,6 +36,7 @@ import com.vitorpamplona.quartz.nip01Core.jackson.JacksonMapper import com.vitorpamplona.quartz.nip01Core.relay.client.NostrClient import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal import com.vitorpamplona.quartz.nip01Core.tags.aTag.ATag +import com.vitorpamplona.quartz.nip03Timestamp.EmptyOtsResolverBuilder import junit.framework.TestCase import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt index 6ebaf6a04..46f93d204 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -104,12 +104,7 @@ import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal import com.vitorpamplona.quartz.nip01Core.signers.SignerExceptions import com.vitorpamplona.quartz.nip01Core.tags.people.PubKeyReferenceTag import com.vitorpamplona.quartz.nip01Core.tags.people.isTaggedUser -import com.vitorpamplona.quartz.nip03Timestamp.OtsResolver -import com.vitorpamplona.quartz.nip03Timestamp.OtsResolverBuilder -import com.vitorpamplona.quartz.nip03Timestamp.ots.BitcoinExplorer -import com.vitorpamplona.quartz.nip03Timestamp.ots.BlockHeader -import com.vitorpamplona.quartz.nip03Timestamp.ots.RemoteCalendar -import com.vitorpamplona.quartz.nip03Timestamp.ots.Timestamp +import com.vitorpamplona.quartz.nip03Timestamp.EmptyOtsResolverBuilder import com.vitorpamplona.quartz.nip17Dm.base.ChatroomKeyable import com.vitorpamplona.quartz.nip18Reposts.GenericRepostEvent import com.vitorpamplona.quartz.nip18Reposts.RepostEvent @@ -1735,36 +1730,3 @@ fun mockVitorAccountViewModel(): AccountViewModel { vitorCache = it } } - -val EmptyOtsResolverBuilder = - object : OtsResolverBuilder { - override fun build(): OtsResolver = - OtsResolver( - explorer = - object : BitcoinExplorer { - override suspend fun block(hash: String): BlockHeader { - TODO("Not yet implemented") - } - - override suspend fun blockHash(height: Int): String { - TODO("Not yet implemented") - } - }, - calendar = - object : RemoteCalendar { - override suspend fun submit( - url: String, - digest: ByteArray, - ): Timestamp { - TODO("Not yet implemented") - } - - override suspend fun getTimestamp( - url: String, - commitment: ByteArray, - ): Timestamp { - TODO("Not yet implemented") - } - }, - ) - } diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/OtsResolverBuilder.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/OtsResolverBuilder.kt index 51c7f616d..8f8cd39e4 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/OtsResolverBuilder.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/OtsResolverBuilder.kt @@ -20,6 +20,18 @@ */ package com.vitorpamplona.quartz.nip03Timestamp +import com.vitorpamplona.quartz.nip03Timestamp.ots.EmptyBitcoinExplorer +import com.vitorpamplona.quartz.nip03Timestamp.ots.EmptyRemoteCalendar + interface OtsResolverBuilder { fun build(): OtsResolver } + +val EmptyOtsResolverBuilder = + object : OtsResolverBuilder { + override fun build(): OtsResolver = + OtsResolver( + explorer = EmptyBitcoinExplorer, + calendar = EmptyRemoteCalendar, + ) + } diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/ots/BitcoinExplorer.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/ots/BitcoinExplorer.kt index 7c6914c08..8306387c2 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/ots/BitcoinExplorer.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/ots/BitcoinExplorer.kt @@ -39,3 +39,9 @@ interface BitcoinExplorer { */ suspend fun blockHash(height: Int): String } + +object EmptyBitcoinExplorer : BitcoinExplorer { + override suspend fun block(hash: String) = TODO("Not yet implemented") + + override suspend fun blockHash(height: Int) = TODO("Not yet implemented") +} diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/ots/RemoteCalendar.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/ots/RemoteCalendar.kt index ee282c2af..4b2ad54c0 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/ots/RemoteCalendar.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip03Timestamp/ots/RemoteCalendar.kt @@ -55,3 +55,15 @@ interface RemoteCalendar { commitment: ByteArray, ): Timestamp } + +object EmptyRemoteCalendar : RemoteCalendar { + override suspend fun submit( + url: String, + digest: ByteArray, + ) = TODO("Not yet implemented") + + override suspend fun getTimestamp( + url: String, + commitment: ByteArray, + ) = TODO("Not yet implemented") +}