fix(data): replace non-ASCII lookalike characters in network listings - #3246
fix(data): replace non-ASCII lookalike characters in network listings#3246CodeRabbit-byte wants to merge 2 commits into
Conversation
Companion to Chain-Love#3245, which covers references/. Same two characters, same substitutions, 15 occurrences across 11 lines in 7 network listing files. U+2011 NON-BREAKING HYPHEN -> ASCII hyphen, and U+00A0 NO-BREAK SPACE -> ASCII space. Trailing no-break spaces on faucet dripLimitAmount values such as '0.5 ETH' and on an arbitrum-sdk price of '$0' are removed, so those values now trim and parse normally. One extra edit, called out rather than buried: the algorand lute wallet listed supportedPlatforms as ["Web","<U+00A0>Chrome"]. Substituting the character alone would have left a leading ASCII space inside the JSON value, so the element is now "Chrome". validate_csv.py: All checks passed.
Summary
Errors per inputErrors in ./listings/specific-networks/arbitrum/services.csv
Errors in ./listings/specific-networks/base/faucets.csv
Errors in ./listings/specific-networks/zcash/faucets.csv
|
USS-Supervisor
left a comment
There was a problem hiding this comment.
Verdict: REQUEST_CHANGES
Risk: MEDIUM
Summary: The CSV normalization itself is mechanically narrow, and the changed files keep stable row counts and column widths. However, the current-cycle link-check report for the touched additions found three URL errors, so this cannot be approved yet.
Findings:
- MEDIUM
listings/specific-networks/arbitrum/services.csvrow 12: the addedarbitrum-sdkrow still containshttps://docs.arbitrum.io/sdk, and the current-cycle link-check reports it as404 Not Found. Please replace it with the current Arbitrum SDK/docs URL or remove the broken link from the touched row. - MEDIUM
listings/specific-networks/base/faucets.csvrow 5: the touchedethereum-ecosystem-faucetrow still links tohttps://www.ethereum-ecosystem.com/faucets/base-sepolia, which the current-cycle link-check reports as402 Payment Required. Please replace it with a publicly reachable source/faucet URL or remove the non-working link. - MEDIUM
listings/specific-networks/zcash/faucets.csvrow 3: the touchedclaimcryptorow still links tohttps://claimcrypto.in/faucet/currency/zec, and the current-cycle link-check reports it as404 Not Found. Please replace it with a working faucet URL or remove the broken link.
Confidence: HIGH
Addresses review on Chain-Love#3246. All three confirmed dead with two independent clients. - arbitrum/services.csv arbitrum-sdk: https://docs.arbitrum.io/sdk is 404. Arbitrum restructured its docs and no replacement SDK page exists - even the OffchainLabs/arbitrum-sdk repository's own homepage field still points at the dead docs.arbitrum.io/sdk/introduction. Repointed at the repository itself, which is the SDK's live canonical home, and relabelled the button from Docs to GitHub to match what it now links to. - base/faucets.csv ethereum-ecosystem-faucet: the whole domain returns 402 with header X-Vercel-Error: DEPLOYMENT_DISABLED, so the site is switched off rather than paywalled. No working URL exists to substitute. - zcash/faucets.csv claimcrypto: the faucet path structure is gone entirely - /faucet/currency/btc 404s too, not just zec - so this is not a moved ZEC page. For the two faucets the dead link is removed, leaving actionButtons empty. That is an established pattern in this data: 29 of 142 faucet rows already carry no actionButtons. validate_csv.py: All checks passed.
|
All three fixed. I reproduced each one with two independent clients before changing anything.
Telling detail: the I repointed the row at the repository itself — live, actively maintained, last pushed 2026-08-11 — and relabelled the button from
For those two I removed the dead link rather than inventing a replacement, leaving Two things I deliberately did not do, since they are listing decisions rather than data fixes and yours to make. Both providers are now unreachable, so those rows may warrant removal outright — I have only removed their links. And I did not touch any dead link on a row this PR does not otherwise modify. Verified after the edit: line counts and column widths unchanged in all three files, only Reward address: |
|
Hi @CodeRabbit-byte - this PR is stale and still has unresolved requested changes. Could you please address the review feedback and update the PR when it is ready? |
|
All three requested link fixes were pushed on 2026-08-27 and this PR has been waiting on a re-review since. Taking the findings in order:
Where I could not verify a working replacement I removed the link rather than guess at one, which I took to be the intent of "replace it or remove the non-working link". The rest of the PR is unchanged: the stated Ready for re-review whenever the cycle allows. |
Summary
|
USS-Supervisor
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Risk: LOW
Summary: The updated network-listing normalization clears the previous link findings while staying mechanically scoped to non-ASCII/lookalike cleanup and corrected action links. All seven touched listing CSVs parse with stable row widths, referenced offers resolve, required validation is passing, and the current-cycle link-check run 33490790172 completed successfully with 10/10 links and 0 errors, timeouts, or unsupported URLs.
Findings: None.
Confidence: HIGH
|
Hi @eugene17kotov - this PR is stale, required CI is passing, and I do not see a current creator-side blocker. I requested your review; could you please take a look when you have a chance? |
Companion to #3245. Same defect, same two substitutions, applied to the network listing files: 15 occurrences across 11 lines in 7 files. Split out so each PR stays inside the 100-line limit.
listings/specific-networks/base/faucets.csvlistings/specific-networks/zcash/faucets.csvlistings/specific-networks/algorand/analytics.csvlistings/specific-networks/algorand/wallets.csvlistings/specific-networks/arbitrum/sdks.csvlistings/specific-networks/arbitrum/services.csvlistings/specific-networks/optimism/bridges.csvU+2011NON-BREAKING HYPHEN becomes an ASCII hyphen;U+00A0NO-BREAK SPACE becomes an ASCII space. The rationale is in #3245 — briefly, these are visually identical to their ASCII counterparts, so they survive review unnoticed and then silently defeat string matching.The whitespace cases here are the interesting ones. Three faucet rows carried
dripLimitAmountvalues ending in a no-break space —0.5 ETH␣,0.001 ETH␣— andarbitrum-sdkhadprice=$0␣. A trailingU+00A0survives.strip()in several languages' default behaviour, so these values would not trim or parse cleanly. They are now0.5 ETH,0.001 ETHand$0.optimism-standartinbridges.csvhad bothassetTypes=["ETH","ERC‑20"]andtechnology=Cross‑chain Messaging— the ERC‑20 matching problem described in #3245, here in a network listing rather than the master.One edit beyond a plain substitution, stated rather than buried. The Algorand
lutewallet listedsupportedPlatformsas["Web","␣Chrome"]with a no-break space at the start of the second element. Substituting the character alone would have left[" Chrome"]— a leading ASCII space inside a JSON value, which is the same defect in a different costume. That element is now"Chrome".Spotted but deliberately not touched.
listings/specific-networks/arbitrum/sdks.csv:58(py-sdk) hasprice=$0␣with an ordinary trailing ASCII space. It is pre-existing, unrelated to these two characters, and on a line this PR does not otherwise modify, so it is out of scope here. Happy to fix it separately if you want trailing whitespace cleaned generally.Safety. Verified after the edit: zero
U+2011orU+00A0remain in these files, no cell has leading or trailing whitespace introduced, no JSON array element has leading or trailing whitespace, no column widths changed, and the line count is unchanged.validate_csv.pyfrom thejson-toolsbranch:All checks passed.Reward address:
0x1589423BeCC3F87EA9406155EaF4D5E04C34Dcf1(USDC/USDT, Ethereum mainnet)