From: Ardis Lu Date: Sun, 13 Apr 2025 07:06:21 +0000 (-0700) Subject: Fix issue where comments for event parameters removed all parameters from the definition X-Git-Url: https://git.ardis.lu/?a=commitdiff_plain;h=f1c0c580f27d9bfa5619b3d7e97a5e0136d6f80b;p=event-hashes Fix issue where comments for event parameters removed all parameters from the definition --- diff --git a/README.md b/README.md index 18e0bba..3be1afa 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ There is a button to delete all lines in the input code block that do *not* cont ## Testing -Use [this permalink](https://event-hashes.ardis.lu#H4sIAAAAAAAACq1SwW7bMAy96yt4jAMHRly0F5+6docAbQ9NgR2KohAkNiVqUYZEZ82G/fsgxYmdLcAu80Xme+Tjo6iqgi86koFOh0i8UbhFFliT61qcaWsDxlgezp5Y6surolGqquBp1yGwD0639EMLeT6tTtnPLyWxlMi9e34Z6r69k2DstEHQbAE/JWhG30f4wN13HyxIIOeSG4BBMWVHOBgCYoufaAF02CxLSN+BgpFMbF1C8gEneGYuCgBocpRt3fet0KIlRmi9/1jod9R2mChzd8T4l4O9ATX2nxB1JnL7CXoBqmj+1F1rhw/a4WxUKsfffxSkDimbWNRwx7e4sH3Xkpnu5XZAcHbU+z9Q6viIzm9xus0886v4jszrXK1S9JSC2ZRYHi/uLXhXnhTVR078fo315RVsddvj0HS1YR8QjHcOWWKC9vZWHMni9c2eWCaT1fwsV8+KBuZVlrvxIaCRdgeUhIk3wJ4XuSzNA1ECGQHnLSrjWYI2AusM3nuL8HN8sUfw6zY7GEYpGgXw1rNJe4EHL9d8JmHE6xP8rHad3sD4VgCKRv36DeEY2G/ZAwAA) for testing. The output should be: +Use [this permalink](https://event-hashes.ardis.lu#H4sIAAAAAAAACq2TP2/bMBDFd36KN1qCDMEyksVTmnQw0ARFHaBDEASseHGIiEeBpNy4Rb97QVqW5NZAlmix+H735x1PLkt8kl7XaKXzmreCdsQBG23ahmZSKUfeF8ffTnOoLi6zlRBlift9S2DrjGz0Lxm05dPsGP3wWGgOBXFnHh77vO8vOpBvZU2QrEBvwUkm23m80v6ndQrBaWOiG6CvGKM9joagWdEbKUC67aJAfI4II4y0KhB94ERPZJkBWKVTsnXbNUHPG82ExtrXuXwhqfqJEvuimf5zcDAgxv4TUCWQ2k/UJUS2+rfuRhq6k4ZmY6VifH0nIXaI0ZqD6O/4huaqaxtdT/dy0ys0G+p9jBQ7fiNjdzTdZpr5KdhW10+5WMfTfTzMpmAxXNyzs6Y4SaoGFuxhjdXFJXay6ahvut6ydYTaGkMcfJQO9tbstaKr6wNYRJNlfpZVs2yFvBRlngucD1nG9BhzgF+lk6ZHfrIwyAJliZ5gcdz9D5T5oFaxTpbMX1vnqA7NHjqOoXkLtjxPTeLtwQen6wBjFYnacnCyDtgk8dYqwu/x/zGIn3dp3t5S9I3njuv4FeDOhis+EzDq1Yl+tnYVJx6/TCBbiT9/AeN0Ju9HBAAA) for testing. The output should be: > 14 events found (10 unique) > @@ -79,6 +79,7 @@ Use [this permalink](https://event-hashes.ardis.lu#H4sIAAAAAAAACq1SwW7bMAy96yt4j > MultiLineSameName(uint256,int256) | 0x06b14b8df51d75cfe7ac7998ad1c26ef4c27486f5002d2467e2153e5223afb65 > Duplicate() | 0x1b29ea747187d15c571dad327d15bf6195ee4e3da8d688889df1aa967bc932a6 > IndexTopic(address,address,uint256) | 0xb1228749f1442a6eabefa98b8b54b638ca37671df1d1c10b5e9a8f00e23a7e52 +> ParamComments(address,uint256) | 0x79888db8d8719f02a058ed6978e0cbc1f9b8c97c6edb8464310c7b52c90d01aa > StrictModeEvent1(address) | 0xdc3a255e62df1a4618b1826381a9d4994f73fcfe53923f5adedc7a6c4a2b6852 > StrictModeEvent2(address) | 0x41a478e2922fd0901233d21296641db526d0774459d7adb8290da705389eb5af diff --git a/index.html b/index.html index 5d145f6..ad315ed 100644 --- a/index.html +++ b/index.html @@ -313,11 +313,22 @@ return text; } - function normalizeEvent(event, strict = false) { - // Clean all characters that definitely do not affect the signature - const commentIndex = event.indexOf('//'); - event = commentIndex === -1 ? event : event.substring(0, commentIndex); + function trimComments(event) { + const i1 = event.indexOf('//'); + event = i1 === -1 ? event : event.substring(0, i1); + const i2 = event.indexOf('/*'); + event = i2 === -1 ? event : event.substring(0, i2); event = event.trim(); + return event; + } + + function normalizeEvent(event, strict = false) { + if (event.indexOf('\n') !== -1) { // Multi-line definition + event = event.split('\n').map(trimComments).join(''); + } + else { + event = trimComments(event); + } // Split the event name and the event topics const eventRegex = strict ? @@ -376,7 +387,7 @@ if (end === -1) { // No closing parenthesis found continue; } - const lookaheadLine = code.substring(start, end + 1).replaceAll('\n', ''); + const lookaheadLine = code.substring(start, end + 1); try { const normalizedEvent = normalizeEvent(lookaheadLine, strict); originalEvents.push(lookaheadLine);