iuna

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

commit 7b70793052e54e4b0c8a611236ba2e491b5f1649
parent afa0a773558f0ce4821c46f7371e56326527f24e
Author: Joris Hartog <jorishartog@hotmail.com>
Date:   Wed, 22 Jul 2026 14:29:06 +0200

Keep burn rate edits stable during polling


Diffstat:
Massets/mivora-ui.js | 13+++++++++++--
Msrc/adapters/http.rs | 4++--
2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/assets/mivora-ui.js b/assets/mivora-ui.js @@ -19,6 +19,8 @@ window.mivoraApp = function mivoraApp() { walletVerified: false, setupFeedback: null, burnAmount: 0, + burnAmountDraft: 0, + burnAmountDirty: false, transferTo: "", transferAmount: 25, peerAddress: "", @@ -260,6 +262,9 @@ window.mivoraApp = function mivoraApp() { this.mempool = mempool; this.peers = peers; this.burnAmount = status.mining?.burn_per_block ?? this.burnAmount; + if (!this.burnAmountDirty) { + this.burnAmountDraft = this.burnAmount; + } this.lastUpdated = new Date(); } catch (error) { this.showFlash(error.message, "error"); @@ -398,11 +403,15 @@ window.mivoraApp = function mivoraApp() { async saveBurn() { try { + const amount = Math.max(0, Math.trunc(Number(this.burnAmountDraft) || 0)); + this.burnAmountDraft = amount; await this.postForm( "/api/settings/burn-per-block", - { amount: this.burnAmount || 0 }, - `Burn rate set to ${this.burnAmount || 0} coin(s) per block` + { amount }, + `Burn rate set to ${amount} coin(s) per block` ); + this.burnAmountDirty = false; + this.burnAmount = amount; } catch (error) { this.showFlash(error.message, "error"); } diff --git a/src/adapters/http.rs b/src/adapters/http.rs @@ -536,7 +536,7 @@ const INDEX_HTML: &str = r#"<!doctype html> .block-card { flex-basis: 108px; } } </style> - <script defer src="/assets/mivora-ui.js?v=22"></script> + <script defer src="/assets/mivora-ui.js?v=23"></script> <script defer src="/assets/alpine.min.js"></script> </head> <body x-data="mivoraApp()" x-init="init()" x-cloak> @@ -672,7 +672,7 @@ const INDEX_HTML: &str = r#"<!doctype html> <div class="panel"> <h3>Mining</h3> <form @submit.prevent="saveBurn"> - <label>Coins per block<input x-model.number="burnAmount" type="number" min="0"></label> + <label>Coins per block<input x-model.number="burnAmountDraft" @input="burnAmountDirty = true" type="number" min="0"></label> <button class="primary" type="submit">Save</button> </form> </div>