iuna

iuna - experimental devnet protocol
git clone https://iuna.jhx.app/git/iuna.git
Log | Files | Refs | README | LICENSE

commit dc776d0f0e2aea0af56fe70082fa5dfe9580a984
parent 1c6aed68bf8a9c5d634510f40b7874644f0fc133
Author: Joris Hartog <jorishartog@hotmail.com>
Date:   Mon,  3 Aug 2026 08:33:47 +0200

Fix burn leader ranks modal data mapping

Diffstat:
Msrc/adapters/http.rs | 10++++++----
Mwww/assets/iuna-ui.js | 5+++--
2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/adapters/http.rs b/src/adapters/http.rs @@ -2866,7 +2866,7 @@ const INDEX_HTML: &str = r#"<!doctype html> .block-card { flex-basis: 108px; } } </style> - <script defer src="/assets/iuna-ui.js?v=75"></script> + <script defer src="/assets/iuna-ui.js?v=76"></script> <script defer src="/assets/alpine.min.js"></script> </head> <body x-data="iunaApp()" x-init="init()" @keydown.window.escape="closeModals()" x-cloak> @@ -3542,13 +3542,13 @@ const INDEX_HTML: &str = r#"<!doctype html> <button type="button" @click="closeBurnLeaderRanksModal">Close</button> </div> <div class="rank-list"> - <template x-for="rank in burnLeaderRanks(selectedBurnLeaderBlock)" :key="`${selectedBurnLeaderBlock.hash}-${rank.rank}-${rank.ticketId}`"> + <template x-for="rank in burnLeaderRanks(selectedBurnLeaderBlock)" :key="`${selectedBurnLeaderBlock.hash}-${rank.rank}-${rank.ticket_id ?? rank.ticketId}`"> <div class="rank-row"> <div class="rank-number" x-text="burnLeaderRankLabel(rank)"></div> <div class="rank-details"> <div class="tx-field"><span class="tx-label">Owner</span><code class="tx-value hash" x-text="rank.owner"></code></div> <div class="tx-field"><span class="tx-label">Burn</span><span class="tx-value money">IUNA <span x-text="amountLabel(rank.amount)"></span></span></div> - <div class="tx-field"><span class="tx-label">Ticket</span><code class="tx-value hash" x-text="short(rank.ticketId)"></code></div> + <div class="tx-field"><span class="tx-label">Ticket</span><code class="tx-value hash" x-text="short(rank.ticket_id ?? rank.ticketId)"></code></div> <div class="tx-field"><span class="tx-label">Eligible</span><span class="tx-value number" x-text="burnLeaderEligibilityLabel(rank)"></span></div> </div> </div> @@ -4757,7 +4757,7 @@ mod tests { #[test] fn metrics_screen_includes_block_range_filter() { - assert!(super::INDEX_HTML.contains("iuna-ui.js?v=75")); + assert!(super::INDEX_HTML.contains("iuna-ui.js?v=76")); assert!(super::INDEX_HTML.contains("aria-label=\"Metrics block range\"")); assert!(super::INDEX_HTML.contains("setMetricsRange(100)")); assert!(super::INDEX_HTML.contains("setMetricsRange(1000)")); @@ -4819,6 +4819,8 @@ mod tests { assert!(super::INDEX_HTML.contains("burnLeaderRanks(selectedBurnLeaderBlock)")); assert!(app_js.contains("selectedBurnLeaderBlock")); assert!(app_js.contains("burnLeaderRankLabel(rank)")); + assert!(app_js.contains("block?.burn_leader_ranks")); + assert!(super::INDEX_HTML.contains("rank.ticket_id ?? rank.ticketId")); } async fn auth_test_state(config_path: std::path::PathBuf, config: UiConfig) -> HttpState { diff --git a/www/assets/iuna-ui.js b/www/assets/iuna-ui.js @@ -1747,6 +1747,7 @@ window.iunaApp = function iunaApp() { }, burnLeaderRanks(block) { + if (Array.isArray(block?.burn_leader_ranks)) return block.burn_leader_ranks; return Array.isArray(block?.burnLeaderRanks) ? block.burnLeaderRanks : []; }, @@ -1761,8 +1762,8 @@ window.iunaApp = function iunaApp() { }, burnLeaderEligibilityLabel(rank) { - const from = rank?.eligibleFromHeight ?? "-"; - const until = rank?.eligibleUntilHeight ?? "-"; + const from = rank?.eligible_from_height ?? rank?.eligibleFromHeight ?? "-"; + const until = rank?.eligible_until_height ?? rank?.eligibleUntilHeight ?? "-"; return `${from}-${until}`; },