Offer Ethereum as a USDC network, per the schema - #792
Merged
Conversation
PaymentEthereumWalletInfo.yaml declares enum [USDC, USDT], but crypto.ts listed ETHEREUM_WALLET only under USDT. USDC-on-Ethereum is supported by the API and could not be selected or code-generated in the visualizer. Base and Polygon are USDC-only and Ethereum is the one chain carrying both assets, so this is the only entry that was missing. Note public/networks/ has no ethereum.svg, so the new dropdown row renders without an icon. That gap is pre-existing rather than introduced here - tron.svg and plasma.svg are missing too, so USDT's dropdown already has three iconless rows - but this does add a fourth, on a dropdown that was previously clean. Needs a brand asset, not a fabricated one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMnjJ8yWJsui7jLqqrDrL4
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
Contributor
Greptile SummaryThis PR exposes Ethereum as a supported USDC wallet network in the flow-builder visualizer, aligning its static options with the existing API schema and account-type metadata.
Confidence Score: 5/5The PR appears safe to merge, with the known missing Ethereum icon already acknowledged for follow-up. The new USDC network option matches the Ethereum wallet schema and existing account-type metadata, and the visualizer handles it through established generic selection and code-generation paths.
|
| Filename | Overview |
|---|---|
| components/grid-visualizer/src/data/crypto.ts | Adds the schema-supported Ethereum wallet option to USDC; existing metadata and generic generation logic already support this pairing. |
Reviews (1): Last reviewed commit: "Offer Ethereum as a USDC network, per th..." | Re-trigger Greptile
AaryamanBhute
approved these changes
Aug 4, 2026
shreyav
added a commit
that referenced
this pull request
Aug 4, 2026
## Summary
`RailDropdown` renders `/networks/${network.toLowerCase()}.svg` for
every entry with no error handling, and **three of the eight networks in
`crypto.ts` have no asset**: `ethereum`, `plasma`, `tron`. Those rows
show a broken image next to the network name.
Three lines: an `onError` that hides the image.
```
networks referenced: base ethereum lightning plasma polygon solana spark tron
icons present: base bitcoin lightning polygon solana spark
missing: ethereum plasma tron
```
USDT has carried three broken rows for a while. #792 added Ethereum to
USDC, which put the first one on a dropdown that had been clean — that's
what surfaced it.
**Why hide rather than supply the artwork.** An Ethereum or Tron mark is
brand material, and inventing one that doesn't match the existing set is
worse than a gap. The three assets are still worth adding; this just
stops the UI looking broken until they are.
**Why `visibility` rather than `display`.** `.networkMenuIcon` is a
fixed 20×20 flex item, so hiding it preserves the slot and the network
names stay left-aligned down the list. `display: none` would make rows
ragged depending on which icons happen to exist.
## What I did not include, and why
This branch was going to carry the **duplicate `code: 'USD'`** fix as
well — `currencies.ts` has two entries with that code (United States
Dollar, and US Dollar (El Salvador)), so `currencies.find(c => c.code
=== 'USD')` never reaches the El Salvador entry and the picker builds
two items with the same `id`, making it effectively unselectable.
Mapping it out, that is **not a small fix**. It needs selections
re-keyed from `code` to `accountType` across roughly ten lookup sites in
five files — `CurrencyPicker.lookupSelection`, `getRailsText`, three
lookups in `InputCard`, three in `useFlowBuilder` including
`getDefaultRail`'s signature, `code-generator`, `flow-path` — plus
`POPULAR_CODES`, which matches item ids. `isSameCurrency` also needs a
decision, since two USD entries are the same currency on different
rails.
All of that lands in `.tsx` files I **cannot typecheck in this
environment** — `npm ci` fails in `components/grid-visualizer` because
`@central-icons-react` requires `CENTRAL_LICENSE_KEY`, so React types
are unavailable. Shipping a ten-site refactor unverified seemed like the
wrong trade, so it wants its own PR from someone with a working build.
## Verification
- Missing-icon list derived mechanically by diffing `public/networks/`
against the `network` values in `crypto.ts`
- `.networkMenuIcon` confirmed to have fixed dimensions, so `visibility:
hidden` is layout-stable
- **Not verified:** no build or render check, for the reason above. The
Vercel preview is the real check — worth opening the USDC and USDT rail
dropdowns to confirm the rows align with the icons absent.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01MMnjJ8yWJsui7jLqqrDrL4)_
Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PaymentEthereumWalletInfo.yamldeclaresenum: [USDC, USDT], butcrypto.tslistedETHEREUM_WALLETonly under USDT. USDC-on-Ethereum is supported by the API and simply could not be selected in the visualizer, so that flow could not be built or code-generated.One line. Ethereum is the only chain carrying both assets — Base and Polygon are USDC-only per their own
Payment<Chain>WalletInfo.yamlenums — so this is the single missing entry, not the first of a batch.crypto.tsbeforeUSDC,USDTUSDCUSDCNetworkDropdownrenders/networks/${network.toLowerCase()}.svgwith no error handling, andpublic/networks/ethereum.svgdoes not exist. The new row will render without an icon.This gap is pre-existing, not introduced here —
tron.svgandplasma.svgare missing too, so USDT's dropdown already shows three iconless rows. But USDC's dropdown currently has all three of its icons (solana,polygon,base), so this change does put the first broken one there.I did not add the asset: an Ethereum mark is brand artwork, and inventing one that doesn't match the existing set is worse than leaving the gap visible. Someone should drop in
ethereum.svg— andtron.svg/plasma.svgwhile they're at it, since those are already broken today.If the missing icon is a blocker, holding this until the asset lands is reasonable. The data being wrong is the more serious problem, so I'd merge and follow up.
Verification
crypto.ts— cleanPayment<Chain>WalletInfo.yamlenums, not just Ethereumnpm cifails here because@central-icons-reactrequiresCENTRAL_LICENSE_KEY. The Vercel preview is the real check; worth confirming the USDC dropdown now offers Ethereum and seeing how the iconless row actually looks.Context
Found while triaging the stale docs-sync PRs. This is the one genuinely-unlanded, non-documentation item from #288, whose other changes are already on
main(ETHEREUM_WALLETinaccount-types.ts, thebusinessType: FINTECH→FINANCE_AND_INSURANCEfix) or superseded (currency entries via #791, the supported-chain table via #777).Generated by Claude Code