156 lines
6.4 KiB
HTML
Raw Normal View History

<html>
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-12 18:21:27 +02:00
<head>
<title>{{self.state.config.site_name}}: (network: {{self.state.network}})</title>
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-12 18:21:27 +02:00
{{ html_escaper::Trusted(include_str!( concat!(env!("CARGO_MANIFEST_DIR"),
"/templates/web/html/components/head.html"))) }}
</head>
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-12 18:21:27 +02:00
<body>
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-12 18:21:27 +02:00
<header class="container">
<h1>
2025-12-01 15:20:52 +07:00
<img src="/image/neptune-logo-blue.svg" width="80" height="80" align="right" />
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-12 18:21:27 +02:00
{{self.state.config.site_name}} (network: {{self.state.network}})
</h1>
The blockchain tip is at height: {{self.tip_height}}
</header>
<main class="container">
<article>
<details open>
<summary>
Block Lookup
</summary>
<form action="/rqs" method="get">
<input type="hidden" name="block" value="" />
<input type="hidden" name="_ig" value="l" />
<span class="tooltip">
<span class="tooltiptext">
Provide a numeric block height or hexadecimal digest identifier to lookup any block in the
Neptune blockchain.
</span>
</span>
Block height or digest:
<input type="text" size="80" name="height_or_digest" class="mono" />
<input type="submit" name="l" value="Lookup Block" />
</form>
Quick Lookup:
<a href="/block/genesis">Genesis Block</a> |
<a href="/block/tip">Tip</a><br />
</details>
</article>
<article>
<details open>
<summary>UTXO Lookup</summary>
<form action="/rqs" method="get">
<input type="hidden" name="_ig" value="l" />
<span class="tooltip">
<span class="tooltiptext">
An Unspent Transaction Output (UTXO) index can be found in the output of <i>neptune-cli
wallet-status</i>. Look for the field: <b>aocl_leaf_index</b>
</span>
</span>
UTXO index:
<input type="text" size="10" name="utxo" />
<input type="submit" name="l" value="Lookup Utxo" />
</form>
</details>
</article>
<article>
<details open>
<summary>Announcement Lookup</summary>
<form action="/rqs" method="get">
<input type="hidden" name="announcement" value="" />
<input type="hidden" name="_ig" value="l" />
<span class="tooltip">
<span class="tooltiptext">
A numeric block height or hexadecimal digest to identify the block in which the announcement
lives.
</span>
</span>
Block height or digest:
<input type="text" size="80" name="height_or_digest" class="mono" />
<span class="tooltip">
<span class="tooltiptext">
The index of the announcement within the block (as a block can have many announcements).
</span>
</span>
Announcement index:
<input type="text" size="10" name="index" />
<input type="submit" name="l" value="Lookup Announcement" />
</form>
</details>
</article>
<article>
<details>
<summary>REST RPCs</summary>
<section>
RPC endpoints are available for automating block explorer queries:
</section>
<details>
<summary>/block_info</summary>
<div class="indent">
<h4>Examples</h4>
<ul>
<li><a href="/rpc/block_info/genesis">/rpc/block_info/genesis</a></li>
<li><a href="/rpc/block_info/tip">/rpc/block_info/tip</a></li>
<li><a href="/rpc/block_info/height/2">/rpc/block_info/height/2</a></li>
<li><a
href="/rpc/block_info/digest/{{self.state.genesis_digest.to_hex()}}">/rpc/block_info/digest/{{self.state.genesis_digest.to_hex()}}</a>
</li>
<li><a href="/rpc/block_info/height_or_digest/1">/rpc/block_info/height_or_digest/1</a></li>
</ul>
</div>
</details>
<details>
<summary>/block_digest</summary>
<div class="indent">
<h4>Examples</h4>
<ul>
<li><a href="/rpc/block_digest/genesis">/rpc/block_digest/genesis</a></li>
<li><a href="/rpc/block_digest/tip">/rpc/block_digest/tip</a></li>
<li><a href="/rpc/block_digest/height/2">/rpc/block_digest/height/2</a></li>
<li><a
href="/rpc/block_digest/digest/{{self.state.genesis_digest.to_hex()}}">/rpc/block_digest/digest/{{self.state.genesis_digest.to_hex()}}</a>
</li>
<li><a
href="/rpc/block_digest/height_or_digest/{{self.state.genesis_digest.to_hex()}}">/rpc/block_digest/height_or_digest/{{self.state.genesis_digest.to_hex()}}</a>
</li>
</ul>
</div>
</details>
<details>
<summary>/utxo_digest</summary>
<div class="indent">
<h4>Examples</h4>
<ul>
<li><a href="/rpc/utxo_digest/2">/rpc/utxo_digest/2</a><br /></li>
</ul>
</div>
</details>
</details>
</article>
</main>
<footer class="container" style="margin-top: 2em; font-size: 0.9em; text-align: center;">
2025-11-27 13:59:19 +07:00
<a href="https://github.com/neptuneprivacy/neptune-explorer" target="_blank">Source code</a>
</footer>
</body>
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-12 18:21:27 +02:00
</html>