Add Valopers Safrochain explorers#3
Conversation
📝 WalkthroughWalkthroughThis PR adds two new Valopers explorer apps to the SafroDappList registry: one for the Safrochain mainnet and one for the testnet. New app manifests define the apps' metadata and properties, and the central registry is updated to include references to both apps with live status and current timestamps. ChangesAdd Valopers Explorers
🎯 2 (Simple) | ⏱️ ~8 minutes
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/valopersmainnet/json/app.json`:
- Around line 1-18: The manifest declares "url":
"https://safrochain.valopers.com/" and "status": "live" but the URL returns HTTP
520 (unreachable); update the "url" value to a reachable endpoint or change
"status" to a non-live value (e.g., "unreachable" or "inactive") and ensure
links.docs remains correct; also verify the logo at
apps/valopersmainnet/img/logo.png meets required dimensions by running
ImageMagick identify (or provide a valid replacement image that matches logo
requirements) and include the validated logo in the app bundle.
In `@registry.json`:
- Around line 560-585: Regenerate registry.json using the canonical build
script: run npm run build:registry and replace the checked-in registry.json with
the produced output (this will update other apps’ url and links.docs entries as
in the build output), then ensure validation passes by installing or adding the
missing ajv dependency (so npm run validate can import ajv without
ERR_MODULE_NOT_FOUND), rerun npm run validate to confirm the schema passes, and
commit the regenerated registry.json and any package.json/package-lock.json
changes; look for the registry.json object with slug "valoperstestnet" to verify
the entry was updated.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 3927c84c-26ab-49a8-95fa-607478219f8b
⛔ Files ignored due to path filters (2)
apps/valopersmainnet/img/logo.pngis excluded by!**/*.pngapps/valoperstestnet/img/logo.pngis excluded by!**/*.png
📒 Files selected for processing (3)
apps/valopersmainnet/json/app.jsonapps/valoperstestnet/json/app.jsonregistry.json
| { | ||
| "$schema": "../../../schemas/app.manifest.schema.json", | ||
| "schemaVersion": 2, | ||
| "slug": "valopersmainnet", | ||
| "name": "Valopers Mainnet Explorer", | ||
| "shortDescription": "Mainnet block explorer powered by Bitszn for transactions, validators, chain height, and direct links to individual txs.", | ||
| "description": "Valopers Mainnet Explorer, powered by Bitszn, tracks Safrochain mainnet activity in real time, including accounts, delegations, SAF transfers, validators, and Cosmos SDK messages.", | ||
| "url": "https://safrochain.valopers.com/", | ||
| "status": "live", | ||
| "chains": ["safrochain-mainnet"], | ||
| "category": "analytics", | ||
| "tags": ["explorer", "blocks", "validators"], | ||
| "submittedAt": "2026-06-09", | ||
| "updatedAt": "2026-06-09", | ||
| "links": { | ||
| "docs": "https://docs.safrochain.com" | ||
| } | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify logo file exists and check dimensions
if [ -f "apps/valopersmainnet/img/logo.png" ]; then
identify -format "Logo: %wx%h pixels, %m format\n" apps/valopersmainnet/img/logo.png 2>/dev/null || echo "Logo file found but could not read dimensions (imagemagick not available)"
else
echo "ERROR: Logo file apps/valopersmainnet/img/logo.png is missing"
fi
# Check URL availability
curl -s -o /dev/null -w "Main URL (https://safrochain.valopers.com/): HTTP %{http_code}\n" -L --max-time 10 https://safrochain.valopers.com/ || echo "Main URL check failed"
curl -s -o /dev/null -w "Docs URL (https://docs.safrochain.com): HTTP %{http_code}\n" -L --max-time 10 https://docs.safrochain.com || echo "Docs URL check failed"Repository: Safrochain-Org/SafroDappList
Length of output: 249
Fix main explorer URL reachability (HTTP 520) and validate logo requirements
apps/valopersmainnet/img/logo.pngexists, but logo dimensions couldn’t be checked (ImageMagickidentifynot available).https://docs.safrochain.comreturns HTTP 200.https://safrochain.valopers.com/returns HTTP 520, so the manifest’s"status": "live"andurlshould be made reachable/corrected.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/valopersmainnet/json/app.json` around lines 1 - 18, The manifest
declares "url": "https://safrochain.valopers.com/" and "status": "live" but the
URL returns HTTP 520 (unreachable); update the "url" value to a reachable
endpoint or change "status" to a non-live value (e.g., "unreachable" or
"inactive") and ensure links.docs remains correct; also verify the logo at
apps/valopersmainnet/img/logo.png meets required dimensions by running
ImageMagick identify (or provide a valid replacement image that matches logo
requirements) and include the validated logo in the app bundle.
| { | ||
| "$schema": "../../../schemas/app.manifest.schema.json", | ||
| "category": "analytics", | ||
| "chains": [ | ||
| "safrochain-testnet" | ||
| ], | ||
| "description": "Valopers Testnet Explorer, powered by Bitszn, tracks Safrochain testnet activity in real time, including accounts, delegations, SAF transfers, validators, and Cosmos SDK messages.", | ||
| "links": { | ||
| "docs": "https://docs.safrochain.com" | ||
| }, | ||
| "logoPath": "apps/valoperstestnet/img/logo.png", | ||
| "manifestPath": "apps/valoperstestnet/json/app.json", | ||
| "name": "Valopers Testnet Explorer", | ||
| "schemaVersion": 2, | ||
| "shortDescription": "Testnet block explorer powered by Bitszn for transactions, validators, chain height, and direct links to individual txs.", | ||
| "slug": "valoperstestnet", | ||
| "status": "live", | ||
| "submittedAt": "2026-06-09", | ||
| "tags": [ | ||
| "explorer", | ||
| "blocks", | ||
| "validators" | ||
| ], | ||
| "updatedAt": "2026-06-09", | ||
| "url": "https://testnet.safrochain.valopers.com/" | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify npm run build:registry produces identical output
echo "Running npm run build:registry..."
npm run build:registry
# Check if registry.json was modified
if git diff --quiet registry.json; then
echo "✓ registry.json matches build output"
else
echo "✗ registry.json differs from build output:"
git diff registry.json | head -50
fi
# Also run validation
echo ""
echo "Running npm run validate..."
npm run validateRepository: Safrochain-Org/SafroDappList
Length of output: 2492
Update/regen registry.json so it matches npm run build:registry, and rerun validation
npm run build:registryproduces a differentregistry.jsonthan the one currently checked in (the output changes other apps’url/links.docs, not just the valoperstestnet entry).npm run validatefails due to missingajv(ERR_MODULE_NOT_FOUND), so schema validation isn’t completing.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@registry.json` around lines 560 - 585, Regenerate registry.json using the
canonical build script: run npm run build:registry and replace the checked-in
registry.json with the produced output (this will update other apps’ url and
links.docs entries as in the build output), then ensure validation passes by
installing or adding the missing ajv dependency (so npm run validate can import
ajv without ERR_MODULE_NOT_FOUND), rerun npm run validate to confirm the schema
passes, and commit the regenerated registry.json and any
package.json/package-lock.json changes; look for the registry.json object with
slug "valoperstestnet" to verify the entry was updated.
Summary
Checklist (required)
npm ciandnpm run validatelocally — it passed before opening this PR.npm run build:registryand committed the updatedregistry.jsonin this PR.apps/<slug>/withjson/app.jsonandimg/logo.png.<slug>is 2–64 chars, lowercase letters and digits only (no spaces or hyphens), andslugin JSON matches the folder name.Validation output (paste if useful)
Summary by CodeRabbit