Skip to content

feat: validators page, cache busting, and tx detail fixes#38

Closed
Cordtus wants to merge 137 commits into
mainfrom
feat/validators-page
Closed

feat: validators page, cache busting, and tx detail fixes#38
Cordtus wants to merge 137 commits into
mainfrom
feat/validators-page

Conversation

@Cordtus

@Cordtus Cordtus commented Jan 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add validators list page with commission rates, voting power, status, and IPFS peer ID columns
  • Add validator detail page with delegation stats, commission info, and uptime data
  • Fix commission rate normalization (Cosmos SDK 18-decimal format to human-readable percentages)
  • Fix transaction detail showing fee amount instead of actual send amount (prefer msg_index-specific events over system events)
  • Add content-hash cache busting for JS/CSS assets to prevent stale deployments
  • Format token amounts with proper denomination display
  • Remove standalone Network tab, merge IPFS data into Validators table
  • Fix address linking, EVM field mismatch, stat card padding
  • Label wallet transaction role as Sender/Related instead of OUT/IN

Test plan

  • Validators list page shows commission rates as percentages (e.g. "10.00%")
  • IPFS peer ID column appears in validators table
  • Validator detail page shows formatted commission and token amounts
  • Transaction detail pages show correct send amounts (not fee)
  • Build produces content-hashed filenames (main-.js, styles-.css)
  • Deployments serve fresh content without requiring hard refresh

Cordtus and others added 30 commits November 25, 2025 08:22
Handles HTTP 300 (function overload during schema cache reload),
502, 503, 504 with exponential backoff (3 retries, 500ms base delay).
fix: add retry logic for transient PostgREST errors
fix: Select empty value error on governance page
feat: add governance proposal details to transaction view
- Fix Collapsible/Dialog onOpenChange type mismatch with Ark UI
- Fix Checkbox id prop and onCheckedChange callback types
- Fix Button cloneElement type issue for asChild prop
- Add styled-system path alias to vite.config.ts
- Remove unused tailwind.config.ts and react-router.config.ts
- Migrate remaining Tailwind classes in EVMTransactionCard, EVMLogsCard,
  MessageDetails, JsonViewer, and AddressChip to Panda CSS
- Ignore styled-system folder in ESLint config
- Remove plan file
- Fix gas_usage_distribution field name (gas_range not range)
- Remove non-existent get_active_addresses_daily RPC
- Remove non-existent compute_proposal_tally RPC
- Add getDenomMetadata endpoint for denomination resolution
- Add requestEvmDecode RPC for EVM transaction decoding
- Update ActiveAddressesChart to use chain_stats instead of non-existent RPC
- Add API methods for evm_contracts, evm_tokens, evm_token_transfers,
  validators, and ibc_channels endpoints
- Create EVM Contracts page with empty state handling
- Create EVM Tokens page with token type formatting
- Add EVM sub-navigation component for switching between pages
- Add EVM routes to main.tsx
- Add EVM link to header navigation
- Replace Vite with Bun HTML bundler for dev/build
- Replace ESLint with Biome for linting
- Add runtime config system (src/lib/env.ts) replacing env vars
- Fix Panda CSS generation with cssgen for utility classes
- Update package.json scripts for Bun
- Remove yarn.lock, add bun.lock
- Fix PostCSS config to use Panda CSS plugin
- Fix Select component state management for dropdown
- Fix grid template columns in analytics and home pages
- Fix route links to match router paths
- Update CSS import path in main.tsx
- Add build.ts for production builds with Bun.build()
- Add dev.ts for dev server with file watching
- Use programmatic PostCSS for CSS processing
- Remove Vite and related dependencies
- Simplify package.json scripts
Cordtus and others added 28 commits December 8, 2025 15:58
refactor: use Panda CSS pattern utilities for cleaner styling
Remove automatic database reset functionality that could wipe production
data when chain restart is detected. This feature posed a security risk
by allowing unauthenticated database truncation.

Removed:
- scripts/chain-reset-guard.sh - auto-truncate script
- scripts/full-reset.sh - reset wrapper script
- src/components/common/reset-notice.tsx - UI banner component
- Docker chain-reset-guard service
- resetNotice config and RESET_GUARD_* env vars
- Related documentation
… support

- Add SDK_FRAMEWORK_EVENTS set to distinguish framework dispatch events
  (message, tx, coin_spent, etc.) from application events using italic
  styling and (sdk) suffix label
- Register Republic custom modules (computevalidation, reputation,
  slashingplus) in chain configs for all three Republic chain IDs
- Add Republic module detection to isChainSpecificMessage()
- Add API types and client methods for compute validation, reputation,
  and slashing modules (PostgREST RPC endpoints)
- Add MessageDetails rendering for 10 Republic message types with
  themed icons and color-coded borders
- Add Compute page with stats, jobs/benchmarks tabs, filters, pagination
- Add Compute job detail page with address chips and tx links
- Add Network page with validator IPFS addresses and slashing records
- Add Compute and Network nav items to header
- Add SDK framework event visual distinction on transaction detail
- Register Republic custom modules in chain configs
- Footer links now match republic-points-webapp (Getting Started,
  Validator Quickstart, Client Quickstart, Block Explorer, etc.)
- Update tagline to "Layer 1 blockchain backed by compute."
- Update X link to @republicfdn
- Remove icons from nav items to prevent overflow into search bar
- Reduce nav gap spacing
feat: SDK event type visual distinction + Republic module config
feat: Republic protocol custom module support (UI)
- Add Validator, DelegationEvent, ValidatorStats types and API methods
- Add validators list page with stats, search, filters, sortable table
- Add validator detail page with info, commission, delegation events
- Add Validators nav item to header, register routes in main.tsx
feat: add validators list and detail pages
- Remove Network page and route
- Move Validator IPFS Addresses section to validators list page
- Remove slashing records (unused evidence module)
- Remove SlashingRecord type and getSlashingRecords from API client
- Use dynamic bech32 prefix from chain config instead of hardcoded
  'republic' (now 'rai' for Republic chains)
- Add bech32Prefix field to ChainConfig and ChainInfo
- Pass both cosmos and EVM address forms to backend for tx lookups
- Fix evm_contracts verified field: is_verified matches DB column
- Balance stat card padding (pt -> py) on compute and validators pages
feat: validators pages, address linking, and UI fixes
…sums

- Eagerly initialize chain info in DenomProvider for bech32 prefix
- Add getChainDecimals/getChainBaseDenom/getChainDisplayDenom accessors
- Format validator token amounts with proper 18-decimal conversion
- Add fixBech32Address to re-encode addresses with valid checksums
- Apply denom formatting to delegation event amounts
Convert Cosmos SDK Dec format (10^18) commission values to 0-1 decimal
range. Remove standalone IPFS panel, add IPFS peer ID column to the
main validators table. Show IPFS info on validator detail page sidebar.
Entry JS and CSS filenames now include content hashes (e.g.
main-abc123.js, styles-def456.css). index.html is generated
dynamically referencing the hashed filenames. nginx explicitly
sets no-cache on index.html and config.json so browsers always
revalidate and pick up new hashed assets on deploy.
getEventAttribute() now filters by msg_index to avoid returning fee
transfer amounts instead of actual message transfer amounts.
@Cordtus Cordtus closed this Jan 28, 2026
Cordtus added a commit that referenced this pull request Feb 5, 2026
- Add wallet connection support for Keplr (Cosmos) and EVM wallets
- Create unified useStaking hook that routes transactions based on wallet type
- Add EVM staking precompile interface for delegate/undelegate/redelegate
- Add Cosmos SDK staking transaction builders for Keplr
- Create DelegationsPage to view and manage user delegations
- Add staking modals: Delegate, Undelegate, Redelegate, ClaimRewards, SetWithdrawAddress
- Add staking actions to validator detail page
- Update navigation with "My Staking" link
- Add delegator API methods for fetching user staking data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants