Update the Coinhub buy and sell menus - #6165
Conversation
4d88472 to
8651c18
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
8651c18 to
fd233e1
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a66f964. Configure here.
The legacy buy/sell list could only launch a row into the in-app WebView or a native fiat plugin. Rows that point at a whole partner website rather than an embedded purchase flow belong in the device browser, so add an `externalBrowser` flag to `GuiPlugin` and hand those rows to `openBrowserUri`.
Removes the Bitcoin Teller buy row, adds Coinhub Exchange / OTC bank-wire rows to both menus and a Coinhub Funded row to the buy menu, all of which open in the device browser, and restores the ACH sell row so MoonPay and the other ACH providers can quote a sell.
The iOS `PRODUCT_NAME` and the Android `app_name` resource already read Coinhub Wallet, so the config strings behind every in-app mention were the only place still saying Coinhub Bitcoin Wallet.
Only the long-press path forwarded rejections to the region-aware error handler, so a plain tap that failed (a payment method with no available provider, an unopenable partner URL) left the user on the list with no feedback at all.
A partner-website plugin reached over `edge://plugin/<id>` still pushed the EdgeProvider WebView, which both contradicts the row's stated behavior and hands a full third-party site the wallet bridge.
a66f964 to
9f5201d
Compare
Coinhub's ATM network, exchange/OTC desk and Funded prop-trading site become external ramp plugins so the app can retire the legacy buy/sell list. The external ramp factory gains two things they need: a device-browser launch for partner destinations that are whole websites of their own, and an optional crypto asset list, since a cash ATM takes whatever the customer brings. These carry no credentials, so they load without a RAMP_PLUGIN_INITS entry, and an app config can now name the ramp plugins it sells through.
The buy and sell tabs now open the ramp create scenes like every other build, so the legacy scene shim and its useLegacyBuySell config flag come out. Coinhub sells through its own three destinations plus MoonPay, which is what the info server already allowed the app under the legacy plugin priority.
There was a problem hiding this comment.
Claude Code Review
Claude Code Review is paused for this repository. To reconnect it, an admin of this repository's GitHub organization (or the account owner, for personal repositories) who can also manage your Claude organization's Code Review settings needs to re-link GitHub in Code Review settings. This is a one-time step.
Tip: disable this comment in your organization's Code Review settings.





















Description
Coinhub buy/sell changes requested by the Coinhub team, plus the app-name
question they raised.
Asana: https://app.asana.com/0/1215088146871429/1216998636347236
Coinhub now runs the ramps buy/sell flow like every other build. The
useLegacyBuySellshim that pinned it toGuiPluginListSceneis gone, and thepartner destinations are ramp plugins instead of
buyPluginListOverride.jsonrows.
New ramp plugins (
src/plugins/ramps/coinhub/), all built on the existingcreateExternalRampPluginfactory:coinhubatmcoinhubbitcoinwallet.app/buy-atms,/sell-atms(in-app WebView)coinhubexchangecoinhubexchange.com(device browser)coinhubfundedcoinhubfunded.com(device browser)coinhubfundedis what replaces the originally-requested "Trade" bottom-tabbutton, per the 2026-08-19 note on the task: "we will not add a new 'trade'
button to the menu option but will instead add the CoinHub-funded site into the
buy menu."
MoonPay ACH sell needs no new code and no info-server change on the ramps
side:
moonpayRampPluginalready quotesachin both directions, and rampsreads
rampQuoteFilter, not the legacyfiatPluginPrioritydocument thatEdgeApp/edge-info-server#162
was opened to fix. That PR is no longer a dependency of this one.
Supporting changes
createExternalRampPlugingains two things these plugins need: it hands theURI to the device browser when the backing
GuiPluginsetsexternalBrowser(composed by the existing
makePluginUri, sobaseQuery,deepQuery,lockUriPathandqueryPromoCodebehave as they do for the WebView), andcryptoAssetsis now optional, since an ATM takes whatever the customerbrings.
RAMP_PLUGIN_INITSentry.
AppConfig.rampPluginIdslets a white-label build name the providers it sellsthrough. Coinhub lists its own three plus
moonpay, which is exactly what theinfo server already allowed the app under
fiatPluginPriority.edge://plugin/<id>deep-link path honorsexternalBrowser, so thoselinks no longer hand a full third-party site the EdgeProvider wallet bridge.
handler, which previously ran only on long-press.
The legacy
buyPluginListOverride.json/sellPluginListOverride.jsonrows stayas they are.
pluginListBuyOld/pluginListSellOldare still registered andreachable from
DevTestScene, and Coinhub's own rows are what should renderthere rather than Edge's default list.
App name. iOS
PRODUCT_NAMEand the Androidapp_nameresource already readCoinhub Wallet; onlycoinhubConfig.tsstill saidCoinhub Bitcoin Wallet, sothe in-app copy now matches the home-screen name. The App Store / Play Store
listing titles are console fields, not code, and the bundle id
app.coinhubatm.walletis permanent.Base is
coinhub, which was first rebased ontodevelop(94 commits, base was2026-07-21) at the operator's direction.
CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
The CHANGELOG tracks user-facing edge-app changes; this is white-label Coinhub
configuration on a branch that never merges to
develop.Dependencies
None. The Coinhub build box needs a
RAMP_PLUGIN_INITS.moonpayentry in itsenv.jsonfor the MoonPay quotes (the legacyPLUGIN_API_KEYS.moonpaykey theold flow used is not read by the ramp plugin); the three Coinhub plugins need no
credentials.
Requirements
If you have made any visual changes to the GUI. Make sure you have: