What is Nostr?
Kind 1337
Author Public Key
npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z
Published at
2025-03-24 15:19:03
Kind type
1337
Event JSON
{ "id": "ace5c1ffb0dd5fd9a9c0193820afeae9cce656aabfee1be44f6bff20c55673aa", "pubkey": "460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", "created_at": 1742829543, "kind": 1337, "tags": [ [ "l", "kotlin" ], [ "f", "MurMur3.kt" ], [ "description", "Algorithm to generate a 32-bit MurMur hash" ], [ "x", "kt" ] ], "content": "class MurmurHash3 {\n companion object {\n const val ROUND_DOWN = 0xFFFFFFFC.toInt()\n const val C1 = -0x3361d2af // 0xcc9e2d51\n const val C2 = 0x1b873593\n }\n\n /**\n * Generates 32 bit hash .\n * @param data the byte array to hash\n * @param seed the seed for the hash (int)\n * @return 32 bit hash of the given array\n */\n fun hash(\n data: ByteArray,\n seed: Int,\n ): Int {\n var h1 = seed\n val roundedEnd = data.size and ROUND_DOWN // Round down to 4-byte blocks\n\n var i = 0\n var k1 = 0\n while (i \u003c roundedEnd) {\n k1 =\n (\n data[i++].toInt() and 0xFF or\n (data[i++].toInt() and 0xFF shl 8) or\n (data[i++].toInt() and 0xFF shl 16) or\n (data[i++].toInt() and 0xFF shl 24)\n ) * C1\n\n h1 = h1 xor (((k1 shl 15) or (k1 ushr -15)) * C2)\n h1 = ((h1 shl 13) or (h1 ushr -13)) * 5 + -0x19ab949c // 0xe6546b64\n }\n\n // processing tail (remaining bytes)\n k1 = 0\n when (data.size and 3) {\n 3 -\u003e {\n k1 = k1 or ((data[i + 2].toInt() and 0xFF) shl 16)\n k1 = k1 or ((data[i + 1].toInt() and 0xFF) shl 8)\n k1 = k1 or (data[i].toInt() and 0xFF)\n\n k1 *= C1\n k1 = (k1 shl 15) or (k1 ushr -15)\n k1 *= C2\n\n h1 = h1 xor k1\n }\n\n 2 -\u003e {\n k1 = k1 or (data[i + 1].toInt() and 0xFF shl 8)\n k1 = k1 or (data[i].toInt() and 0xFF)\n\n k1 *= C1\n k1 = (k1 shl 15) or (k1 ushr -15)\n k1 *= C2\n\n h1 = h1 xor k1\n }\n\n 1 -\u003e {\n k1 = k1 or (data[i].toInt() and 0xFF)\n\n k1 *= C1\n k1 = (k1 shl 15) or (k1 ushr -15)\n k1 *= C2\n\n h1 = h1 xor k1\n }\n }\n\n // final mix\n h1 = h1 xor data.size\n\n // fmix32\n h1 = (h1 xor (h1 ushr 16)) * -0x7a143595 // 0x85ebca6b\n h1 = (h1 xor (h1 ushr 13)) * -0x3d4d51cb // 0xc2b2ae35\n h1 = h1 xor (h1 ushr 16)\n\n return h1\n }\n}", "sig": "7bff121a6b96cd0ddcc921c92f5a0233c6889afb358a0fb055cf4db6c655c930c90936b1e6e4af4a8b55ed860284147f85c5d513f54f8f40702eca8955e29d21" }