56db37a463
web/handlers/bloom.go: GET /bloom/{stashID} renders BloomRecord
(AccruedGrain, RateBasisPoints as %, LastAccrualBlock) + the 4.5%
target rate read from x/bloom/types.TargetBloomRateBasisPoints (D-073
code-constant source-of-truth, NOT hardcoded) + the 4.0%-5.0% band
(Min/MaxBloomRateBasisPoints) + Mission Lock note. Store extensions:
GetBloomRecord/ListBloomRecords. Seed: holder-alia at target rate (450
bps), holder-bryn at 420 bps (within band). bloom_test.go: D-073
target-rate source-of-truth regression guard (asserts TargetBloomRate-
BasisPoints=450, Min=400, Max=500 from code constants; would fail if
hardcoded), G-026 error lexicon check, highest-risk screen for banned-
term drift (uses "Bloom"/"real production"/"accrual" labels only).
Coverage: store 98.1%, handlers 89.2%.
---ci---
project: oy
phase: 5
milestone: v0.6
status: execute
---/ci---
33 lines
1.2 KiB
HTML
33 lines
1.2 KiB
HTML
{{define "title"}}Bloom — OpenYield{{end}}
|
|
|
|
{{define "content"}}
|
|
<section class="panel">
|
|
<h1>Bloom</h1>
|
|
<p>Bloom is the real-production reward that accrues to every Grain in every
|
|
Stash. It originates only from real production — no synthetic Bloom, no
|
|
protocol-printed Bloom. This is a Mission Lock: no council can change it.</p>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<h2>Bloom record for {{.StashID}}</h2>
|
|
<table class="kv">
|
|
<tr><th>Stash ID</th><td>{{.StashID}}</td></tr>
|
|
<tr><th>Accrued Grain</th><td>{{.Record.AccruedGrain}}</td></tr>
|
|
<tr><th>Rate</th><td>{{printf "%.1f" .RatePct}}%</td></tr>
|
|
<tr><th>Last accrual block</th><td>{{.Record.LastAccrualBlock}}</td></tr>
|
|
</table>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<h2>Target rate band</h2>
|
|
<table class="kv">
|
|
<tr><th>Target rate</th><td>{{printf "%.1f" .TargetRatePct}}%</td></tr>
|
|
<tr><th>Min rate</th><td>{{printf "%.1f" .MinRatePct}}%</td></tr>
|
|
<tr><th>Max rate</th><td>{{printf "%.1f" .MaxRatePct}}%</td></tr>
|
|
<tr><th>Accrual period</th><td>{{.AccrualPeriod}} blocks (daily, ~10min blocks)</td></tr>
|
|
</table>
|
|
<p><em>{{.MissionLockNote}}</em></p>
|
|
</section>
|
|
|
|
<p><a href="/stash/{{slice .StashID 6}}">Back to Stash</a></p>
|
|
{{end}} |