From c4a9a2d557035e3630951b04f5f95107d0b9c054 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 31 Jul 2023 16:46:58 -0400 Subject: [PATCH] Fixes the createAt issue on NIP24b --- .../amethyst/GiftWrapEventTest.kt | 35 ++++++++++++++++++- .../service/model/SealedGossipEvent.kt | 3 ++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/app/src/androidTest/java/com/vitorpamplona/amethyst/GiftWrapEventTest.kt b/app/src/androidTest/java/com/vitorpamplona/amethyst/GiftWrapEventTest.kt index fbda04af05..e349e0339c 100644 --- a/app/src/androidTest/java/com/vitorpamplona/amethyst/GiftWrapEventTest.kt +++ b/app/src/androidTest/java/com/vitorpamplona/amethyst/GiftWrapEventTest.kt @@ -499,13 +499,46 @@ class GiftWrapEventTest { val gossip = unwrapUnsealGossip(json, privateKey) assertEquals("asdfasdfasdf", gossip?.content) - assertEquals(0L, gossip?.createdAt) + assertEquals(1690659269L, gossip?.createdAt) assertEquals("827ba09d32ab81d62c60f657b350198c8aaba84372dab9ad3f4f6b8b7274b707", gossip?.id) assertEquals(14, gossip?.kind) assertEquals("subject", gossip?.tags?.firstOrNull()?.get(0)) assertEquals("test", gossip?.tags?.firstOrNull()?.get(1)) } + @Test + fun testFromCoracle3() { + val json = """ +{ + "content": "{\"ciphertext\":\"PGCodiacmCB/sClw0C6DQRpP/XIfNAKCVZdKLQpOqytgbFryhs9Z+cPldq2FajXzxs3jQsF7/EVQyWpuV8pXetvFT9tvzjg4Xcm7ZcooLUnAeAo2xZNcJontN4cGubuDqKuXy5n59yXP1fIxfnJxRTRRdCZ2edhsKeNR5NSByUi+StjV10rnfHt8AhZCpiXiZ/giTOsC4wdaeONPgMzMeljaJWLvl6n11VjmXhkx1mXIQt43CNB1hIqO3p89Mbd9p+nlLrOsR+Xs0TB4DCh4XTPbvgf7B7Z+PgOfl3GZfJy9x6TciLcF4E3Ba1zrPe4f79czCIEiJ1yrIKrzzYvv+it35DZQ8fgveFXpyHnNL29hml8PNjyOsFbCHVYLMGw88evI5PijOcpe1TtdoioX8kX5kVEQSKJXuoSjTorvbRPCgGzaa1m0J0uTpzri5VD22a/Jh2CcAnubg6w4JDdUWCogdSV3NqiJllo7ZF7WnZ3apPdRD23MEfphVBJrcLBUNlmwajnY5IvVTKTkZOP50r9dBapvMWXIo6M6zhy/5vVWJz57863pelYCRG4upaXZuNK9sMBtbiphxmFR83i8RML8KN8Q391Cd/xBN7TxJNo5p2YU25VeGZUAmHY8DYlMQDm8Br0nStAXp3T+DzTRL8FTECa8DJV+KTAPoCxqhv3B28Ehr0XAP75CsHoLU00G48cR7h3vQ0CnfKh6KXU6nnDA5OWfpMYpirACCpsnpSD0OaCQ3gkQp3zZNMS3HcOpnPK/IY7R0esbzgAkvNhkyxaIfPDdf+eRUSOA9+2Ji28MwjjY8Dw3SLdUqCOzIDjQeR/T5oNmaQJm3lZ8G0FxxC6ejD4VJX/NI/x+STeB9jWHWmHZvqKzV6JHNh6qmZb6TKSIPOHpafWFoeJFOmiiigf46sju9vRXmVEAx59HXWnvnvCBNJg877yCMulB6xyQuSdVDuotQU4tQZwCKedTHJ6GqjesM98UlJrDtdWQURwwW1qc7N8tS6PukmUVEf0jmbIWVIBmUlkcVuiSs1g1h1kjt8c4MnGTz3CSgpOd1MqxLrl9WwrTqM+YnE+yeZYUjFoewyKZIQ==\",\"nonce\":\"OdCZczJiUGR4bOGIElQ4UUH4dQmG5U/3\",\"v\":1}", + "kind": 1059, + "created_at": 1690772945, + "pubkey": "e01475e87896800b7285eb0daf263c59f811c8fc5bc8daa105d2c98b6d7c4952", + "tags": [ + [ + "p", + "b08d8857a92b4d6aa580ff55cc3c18c4edf313c83388c34abc118621f74f1a78" + ] + ], + "id": "d9fc85ece892ce45ffa737b3ddc0f8b752623181d75363b966191f8c03d2debe", + "sig": "1b20416b83f4b5b8eead11e29c185f46b5e76d1960e4505210ddd00f7a6973cc11268f52a8989e3799b774d5f3a55db95bed4d66a1b6e88ab54becec5c771c17" +} + """.trimIndent() + + val privateKey = "7dd22cafc512c0bc363a259f6dcda515b13ae3351066d7976fd0bb79cbd0d700" + + val gossip = unwrapUnsealGossip(json, privateKey) + + assertEquals("8d1a56008d4e31dae2fb8bef36b3efea519eff75f57033107e2aa16702466ef2", gossip?.id) + assertEquals("Howdy", gossip?.content) + assertEquals(1690833960L, gossip?.createdAt) + assertEquals(14, gossip?.kind) + assertEquals("p", gossip?.tags?.firstOrNull()?.get(0)) + assertEquals("b08d8857a92b4d6aa580ff55cc3c18c4edf313c83388c34abc118621f74f1a78", gossip?.tags?.firstOrNull()?.get(1)) + assertEquals("subject", gossip?.tags?.getOrNull(1)?.get(0)) + assertEquals("Stuff", gossip?.tags?.getOrNull(1)?.get(1)) + } + fun unwrapUnsealGossip(json: String, privateKey: HexKey): Gossip? { val pkBytes = privateKey.hexToByteArray() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/SealedGossipEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/SealedGossipEvent.kt index 311b95065f..0e51426c7a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/SealedGossipEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/SealedGossipEvent.kt @@ -2,6 +2,7 @@ package com.vitorpamplona.amethyst.service.model import android.util.Log import androidx.compose.runtime.Immutable +import com.google.gson.annotations.SerializedName import com.vitorpamplona.amethyst.model.HexKey import com.vitorpamplona.amethyst.model.TimeUtils import com.vitorpamplona.amethyst.model.hexToByteArray @@ -93,7 +94,9 @@ class SealedGossipEvent( class Gossip( val id: HexKey?, + @SerializedName("pubkey") val pubKey: HexKey?, + @SerializedName("created_at") val createdAt: Long?, val kind: Int?, val tags: List>?,