12 Commits

Author SHA1 Message Date
Alan Szepieniec
86698687a8 feat: Add Announcement viewer
Every transaction can have zero or more announcements, which are essentially
messages that must be included across all future mergers and updates.
Announcements are typically used for transmitting information related to
receiving UTXOs, encrypted. However, a new use case is that of *transparent
transaction info*, which is an announcement containing the UTXOs and the
commitment randomnesses needed to reproduce the transaction's inputs and
outputs. With such a transparent transaction info announcement, third parties
can transparently audit transactions.

This commit adds a page for viewing announcements, and if the announcement can
be parsed as a transparent transaction info type announcement then it is
rendered as such, complete with native currency amounts and linkable UTXOs
(where possible).

The path for accessing announcements is any of
 - `/announcement/digest/<hex-string>/<index>`
 - `/announcement/tip/<index>`
 - `/announcement/genesis/<index>`
 - `/announcement/height/<height>/<index>`
 - `/announcement/height_or_digest/<height-or-diges>/index/<index>`.
The last bullet point exists to support the quick lookup functionality, which is
also new. A `AnnouncementSelector` has display and from-string methods relating
these path formats to the relevant object. A suite of (prop)tests verifies
parsing.

Also, this commit enables mocking, which is useful when the neptune-core node
the explorer is connected to is outdated, unsynced, or for whatever reason does
not serve the desired data. The RPC client call is intercepted, and if it fails
and mocking is enabled, an imagined (pseudorandom) resource of the requested
type is returned. To enable mocking, compile with the "mock" feature flag and
set the "MOCK" environment variable.
2025-08-22 16:38:30 +02:00
Alan Szepieniec
e80a89d601 feat: Display block size (in # BFieldElements) 2025-03-24 13:03:21 +01:00
danda
8a79c578c2 refactor: implement rpc authentication
closes #8

neptune-core RPC methods now require an authentication token.

This implements auth support in neptune-explorer.
2025-01-22 21:00:11 -08:00
danda
dd7e80298d feat: display coinbase amount, other misc
Closes #5
Addresses #6

changes:
 * field Mining Reward --> Coinbase. (actual reward)
 * add field Expected Coinbase  (expected/calced reward)
     this field only displays if different from actual coinbase.
 * add field Cumulative Proof-of-Work
 * change tooltip 🛈   -->  ⓘ .  for mobile devices. (hopefully)
 * css: make tooltip text bold, so the ⓘ  is stronger.
2024-12-20 21:58:59 +08:00
danda
f293d4e6bb feat: display links to sibling blocks, if any
closes #2
2024-12-18 14:17:22 +08:00
danda
ebcfdb947c feat: display if block in canonical chain or not
Adds a 'Canonical' field to the /block page.

note: this requires updating neptune-core in order to obtain the field
from neptune-core's /block_info rpc endpoint.

it was also necessary to change 'use neptune_core::<x>" statements to
'use neptune_cash::<x>'
2024-12-18 12:15:38 +08:00
danda
0bc81d2382 chore: update for neptune-core betanet
updates some deps and one minor code change since uncle
blocks no longer occur.
2024-11-23 00:47:36 +00:00
danda
df14092d61 feat: make site name configurable
Changes:
 + add Config::site_name, which defaults to "Neptune Explorer"
 + remove HeaderHtml::site_name
 + use Config::site_name in the html templates
2024-05-22 17:18:51 -07:00
danda
48966fa69d chore: include head html component in all pages
Moves common <head>..</head> tags into componenents/head.html and
includes it from all pages.

Common elements include: css files, favicon, meta tag(s)
2024-05-22 17:18:51 -07:00
danda
faf303bbdd feat: integrate team feedback
Changes:
 + present not-found page for unhandled uri paths, eg /stuff
 + display the tip-height on front page
 + add favicon and neptune logo to front page
 + use ServerDir instead of ServeFile for /image and /css
 + add help tooltips for fields on front page
 + use monospace font for digests
2024-05-22 17:18:51 -07:00
danda
0f9cbdf0b4 feat: pico css styling and not-found page.
Changes:

 1. integrates pico minimal responsive css framework for light/dark
    themes and overall better looks.

 2. adds a not-found page for bad url queries.

 3. catches axum/serde deserialization errors of user input and routes
    them to the not-found page with a helpful hint (parse error msg)
2024-05-22 17:18:50 -07:00
danda
e53d80d9fa chore: move src/web --> templates/web 2024-05-22 17:18:50 -07:00