[DBIP] Add chain-logo coverage validation for specific-network listings
Summary
listings/specific-networks/README.md says every network folder must include one PNG per unique chain column value used by that network's CSV files.
Current main has a concrete gap:
listings/specific-networks/world-chain/apis.csv uses chain=testnet
listings/specific-networks/world-chain/explorers.csv uses chain=testnet
listings/specific-networks/world-chain/oracles.csv uses chain=testnet
listings/specific-networks/world-chain/ includes mainnet.png
listings/specific-networks/world-chain/ does not include testnet.png
This makes the folder internally inconsistent with the documented data rule.
Reproduction
From the repository root, this check shows the missing logo:
Get-ChildItem listings\specific-networks -Directory | ForEach-Object {
$dir = $_.FullName
$network = $_.Name
$chains = New-Object System.Collections.Generic.HashSet[string]
Get-ChildItem $dir -Filter *.csv | ForEach-Object {
Import-Csv $_.FullName | ForEach-Object {
if ($_.chain -and $_.chain.Trim()) {
[void]$chains.Add($_.chain.Trim())
}
}
}
foreach ($chain in $chains) {
if (-not (Test-Path -LiteralPath (Join-Path $dir "$chain.png"))) {
"$network/$chain.png is missing"
}
}
}
Current result:
world-chain/testnet.png is missing
Rows currently using chain=testnet:
listings/specific-networks/world-chain/apis.csv alchemy-testnet-free-recent-state
listings/specific-networks/world-chain/apis.csv quicknode-testnet-build-recent-state
listings/specific-networks/world-chain/apis.csv tenderly-testnet-free-recent-state
listings/specific-networks/world-chain/explorers.csv worldscan-testnet
listings/specific-networks/world-chain/oracles.csv pyth-testnet
listings/specific-networks/world-chain/oracles.csv witnet-testnet
Proposal
Add a repository validation guardrail for listings/specific-networks/<network>/ folders:
- collect every non-empty
chain value from the folder's CSV files;
- require a sibling
<chain>.png file for each unique value;
- report the exact folder and missing filename.
The immediate data fix is to add listings/specific-networks/world-chain/testnet.png using an official World Chain / World Chain Sepolia logo asset that satisfies the existing PNG rules.
Why this matters
The generated network pages rely on chain values and chain-logo files staying aligned. A missing chain logo can cause inconsistent UI output or silent fallback behavior, and the issue is easy to miss during manual CSV edits unless the invariant is checked automatically.
Rewards address
USDC/USDT on Ethereum / ERC-20:
0xb43d90BB4E22A43D77e9bfbc2f1CA826ec1CaBF1
[DBIP] Add chain-logo coverage validation for specific-network listings
Summary
listings/specific-networks/README.mdsays every network folder must include one PNG per uniquechaincolumn value used by that network's CSV files.Current
mainhas a concrete gap:listings/specific-networks/world-chain/apis.csvuseschain=testnetlistings/specific-networks/world-chain/explorers.csvuseschain=testnetlistings/specific-networks/world-chain/oracles.csvuseschain=testnetlistings/specific-networks/world-chain/includesmainnet.pnglistings/specific-networks/world-chain/does not includetestnet.pngThis makes the folder internally inconsistent with the documented data rule.
Reproduction
From the repository root, this check shows the missing logo:
Current result:
Rows currently using
chain=testnet:Proposal
Add a repository validation guardrail for
listings/specific-networks/<network>/folders:chainvalue from the folder's CSV files;<chain>.pngfile for each unique value;The immediate data fix is to add
listings/specific-networks/world-chain/testnet.pngusing an official World Chain / World Chain Sepolia logo asset that satisfies the existing PNG rules.Why this matters
The generated network pages rely on chain values and chain-logo files staying aligned. A missing chain logo can cause inconsistent UI output or silent fallback behavior, and the issue is easy to miss during manual CSV edits unless the invariant is checked automatically.
Rewards address
USDC/USDT on Ethereum / ERC-20:
0xb43d90BB4E22A43D77e9bfbc2f1CA826ec1CaBF1