Finality wording on the live strip and the explorer: not yet active until the weight window fills at DAA 7,200, the live DAA beside it (no clock served)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-08 17:12:40 +00:00
parent ee14e83f43
commit a8db391f8d
2 changed files with 2 additions and 2 deletions

View file

@ -464,7 +464,7 @@ async function loadStats() {
$('st-rate').innerHTML = esc(s.blocks_per_s_10m === null ? 'n/a' : s.blocks_per_s_10m.toFixed(2)) + '<small>blocks/s</small>';
$('st-rate-s').textContent = `${s.chain_blocks_per_s_10m === null ? 'n/a' : s.chain_blocks_per_s_10m.toFixed(2)} chain blocks per second, ${int(s.miners_10m)} miners in 10 min`;
const f = s.finality;
if (f) { $('st-fin').innerHTML = f.latest_locked_index === null ? 'no lock' : `lock ${int(f.latest_locked_index)}`; $('st-fin-s').textContent = `${int(f.voters)} voters, ${int(f.total_weight)} blocks of weight${s.lock ? `, ${(s.lock.fraction_total * 100).toFixed(1)}% signed the newest lock` : ''}${f.active ? '' : (f.latest_locked_index === null ? ', finality not yet active: first lock expected about 23:00 UK' : ', finality paused')}`; }
if (f) { $('st-fin').innerHTML = f.latest_locked_index === null ? 'no lock' : `lock ${int(f.latest_locked_index)}`; $('st-fin-s').textContent = `${int(f.voters)} voters, ${int(f.total_weight)} blocks of weight${s.lock ? `, ${(s.lock.fraction_total * 100).toFixed(1)}% signed the newest lock` : ''}${f.active ? '' : (f.latest_locked_index === null ? `, finality not yet active: the first lock comes when the weight window fills at DAA 7,200${s.daa !== null && s.daa !== undefined ? ` (DAA ${int(s.daa)} now)` : ''}` : ', finality paused')}`; }
$('st-class').textContent = s.class ? s.class.class : 'v4';
const next = s.class && s.class.floors ? s.class.floors.find(x => x.daa > (s.daa || 0)) : null;
$('st-class-s').textContent = next ? `${next.class} from DAA ${int(next.daa)}` : (s.class && s.class.floors && s.class.floors.length ? `since DAA ${int(s.class.floors[s.class.floors.length - 1].daa)}` : 'the hash program family at the tip');

View file

@ -619,7 +619,7 @@ details.tablebar summary{display:flex;align-items:center}
set('s-blue',fmtN(s.blue_score));set('s-hash',fmtHash(s.hashes_per_second_estimate));
set('s-keys',fmtN(s.miners_10m!==null&&s.miners_10m!==undefined?s.miners_10m:(d.miners||[]).length));set('s-peers',fmtN(s.peers));
var lock=null;if(fn&&fn.checkpoints)fn.checkpoints.forEach(function(c){if(c.state==='locked'&&(!lock||c.index>lock.index))lock=c;});
var le=$('s-lock');if(fn&&fn.supported&&!fn.active){var everLocked=!!(fn.latest_locked_index||lock);set('s-lock',everLocked?'#'+fmtN(fn.latest_locked_index||lock.index):'none');le.className='v tick';$('s-lock-d').textContent=everLocked?'finality paused: under two thirds of the weight is signing':'finality not yet active: the 30-day window is filling, first lock expected about 23:00 UK';}
var le=$('s-lock');if(fn&&fn.supported&&!fn.active){var everLocked=!!(fn.latest_locked_index||lock);set('s-lock',everLocked?'#'+fmtN(fn.latest_locked_index||lock.index):'none');le.className='v tick';$('s-lock-d').textContent=everLocked?'finality paused: under two thirds of the weight is signing':(function(){var best=null;(d.blocks||[]).forEach(function(b){if(b&&b.daa>best)best=b.daa;});return 'finality not yet active: the first lock comes when the weight window fills at DAA 7,200'+(best!==null?' (DAA '+fmtN(best)+' now)':'');})();}
else if(lock){set('s-lock','#'+fmtN(lock.index));le.className='v tick';var t=lock.locked_at?new Date(String(lock.locked_at).replace(' ','T')).getTime():NaN;$('s-lock-d').textContent=(isNaN(t)?'locked':'locked '+rel(now-t))+(lock.fraction_total?' with '+Math.round(lock.fraction_total*100)+'% of all 30-day weight':'');}
else{set('s-lock',fn&&fn.supported?'none yet':'no rule');le.className='v tick word';$('s-lock-d').textContent=fn&&fn.supported?'the 30-day weight window is filling':'';}
// the graph's count, the blue range, the chain-only view