You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enhance the existingconsole-ui/ with features needed for Authorization Slots (#509), grace periods (#516), feeless auto-renew (#504), and better chain health visibility. Not a new app — additions to what's already built.
Current: Shows a single AuthorizationExtent per account. Needed: With Authorization Slots (#509), an account can have up to 8 concurrent TimedAuthorization entries.
Display multiple slots as cards (sorted by expiration, soonest first)
Reverse-chronological feed with filter chips (stores / renewals / errors)
Failure events highlighted as warnings
5. Stored Content — chain-queried
Current: history.state.ts tracks uploads in browser localStorage only. Lost on clear/different browser. Needed: Query chain for account's stored content.
Query TransactionByContentHash + Transactions to show on-chain content for connected account
Merge with local history (local history has labels, CIDs — chain has authoritative block/index)
Expiration countdown per entry (stored block + RetentionPeriod)
"Expiring soon" highlight for content within 1-2 days of retention end
Quick "Renew" / "Enable auto-renew" action buttons per entry
6. Quota Planner (nice-to-have)
Input: data size to store, data size to keep permanently
Output: slots needed, whether current allowance covers it
Warning: "Chain-wide cap at X% — renewals may be rejected"
Implementation notes
All chain queries use existing polkadot-api (PAPI) infrastructure in storage.state.ts
Event subscriptions can use PAPI's chainHead event watching
Authorization Slots (Authorization slots #509) changes the Authorizations storage shape from single Authorization to BoundedVec<TimedAuthorization, 8> — storage.state.ts query needs updating
Overview
Enhance the existing
console-ui/with features needed for Authorization Slots (#509), grace periods (#516), feeless auto-renew (#504), and better chain health visibility. Not a new app — additions to what's already built.Informed by: #504, #505, #509, #515, #516, and
docs/001_authorizations.md.What already exists
The console UI (
console-ui/) already covers:store/store_with_cid_configwith file upload, CID config, preimage supportchain.state.ts,wallet.state.ts,storage.state.ts,history.state.ts)Enhancements needed
1. Authorizations page — Slot support
Current: Shows a single
AuthorizationExtentper account.Needed: With Authorization Slots (#509), an account can have up to 8 concurrent
TimedAuthorizationentries.bytes / bytes_allowance,bytes_permanent / bytes_allowance,transactions / transactions_allowanceexpiration <= now < grace_until2. Dashboard — Chain health widgets
Current: Shows chain info (network, block number, runtime version) and basic storage stats (total transactions, bytes, authorizations count).
Needed: Renewed storage capacity visibility.
PermanentStorageUsed / MaxPermanentStorageSizegauge (circular or bar)PermanentStorageNearCapevent)PermanentStorageUsedUpdatedevents over time (net growth/shrink)MaxBlockTransactions3. Auto-Renewal Manager (new section)
Current: Not present. Console has no auto-renewal UI.
Needed: Manage
enable_auto_renew/disable_auto_renewand monitor status.AutoRenewalsmap)DataAutoRenewedevents for this accountAutoRenewalFailedevents with reason hint4. Activity Feed (new section or Dashboard widget)
Current: Not present. Events are only visible in the Explorer's per-block view.
Needed: Account-scoped event stream.
Stored,Renewed,DataAutoRenewed,AutoRenewalFailed,AccountAuthorized,ExpiredAccountAuthorizationRemoved5. Stored Content — chain-queried
Current:
history.state.tstracks uploads in browser localStorage only. Lost on clear/different browser.Needed: Query chain for account's stored content.
TransactionByContentHash+Transactionsto show on-chain content for connected accountRetentionPeriod)6. Quota Planner (nice-to-have)
Implementation notes
polkadot-api(PAPI) infrastructure instorage.state.tschainHeadevent watchingAuthorizationsstorage shape from singleAuthorizationtoBoundedVec<TimedAuthorization, 8>—storage.state.tsquery needs updatinggrace_untilfield — displayed as badge/countdownAutoRenewalsmap already present in the palletTODO
storage.state.tsfor Slots storage shape (Authorization slots #509)