Register the Swapter swap provider - #6164
Open
j0ntz wants to merge 1 commit into
Open
Conversation
Adds the SWAPTER_INIT env cleaner and the corePlugins entry, which is all the app needs to load the plugin that edge-exchange-plugins now ships. These are the same two edits used locally to exercise Swapter on the simulator, with nothing else from that scratch state. The provider stays dark until the info server serves SWAPTER_INIT: asCorePluginInit resolves to false when the key is absent, so the plugin is registered but never constructed.
j0ntz
force-pushed
the
jon/swapter-gui-registration
branch
from
August 18, 2026 21:09
b999857 to
73373cc
Compare
j0ntz
marked this pull request as ready for review
August 18, 2026 21:09
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.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
paullinator
approved these changes
Aug 19, 2026
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.
CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
Dependencies
Requires
edge-exchange-plugins@2.53.0, which is published. The dep bump ontodeveloplands separately as part of that package's release.Requirements
If you have made any visual changes to the GUI. Make sure you have:
No visual changes. The only user-visible surface is the provider icon on a
Swapter transaction row, which is a data entry pointing at an existing content
server asset, not a layout or component change.
Description
Asana task
Asana: https://app.asana.com/1/9976422036640/project/1213880789473005/task/1216571782597915
Registers Swapter in the app so the plugin that
EdgeApp/edge-exchange-plugins#475
added actually loads. The changes are data entries, with no logic:
src/envConfig.tsgainsSWAPTER_INIT, matching theSWAPUZ_INIT/XGRAM_INITshape (
apiKey, optional,.withRest).src/util/corePlugins.tsgainsswapter: ENV.SWAPTER_INITin the CEX swap block.src/actions/CategoriesActions.tsgains thepluginIdIconsentry so a Swaptertransaction row renders the provider icon.
The first two are exactly the edits used locally to exercise Swapter on the
simulator during the plugin's review rounds, carried over unchanged.
The provider stays dark until the info server serves it
asCorePluginInitresolves tofalsewhen its key is absent fromenv.json, soregistering the plugin does not enable it. Swapter cannot appear in the app until
the info server serves
SWAPTER_INIT, which is a separate operational step.Landing this PR is therefore not the moment Swapter goes live for users.
Icon path
The icon uses
exchangeIcons/swapter/icon.pngrather than the flatswapter.pngthat most entries in that map use. That is not a style choice: the flat path
answers 403 on the content server and the
exchangeIconsone answers 200, whichis the same convention
nexchangeandnymswapalready use.Deliberately not included
MERCHANT_CONTACTSentry. That map keys off display name and expects aflat
swapter.png, which does not exist on the content server.pluginIdIconsalready covers the icon by plugin ID, and
nymswapandnexchangeship with nomerchant-contact entry either.
SwapVerifyTermsModalentry. Adding one introduces a mandatoryterms-acceptance modal before a user's first Swapter swap, which is a product
decision rather than part of registering the plugin. Roughly half the CEX
providers have an entry and half do not. Swapter's pages are live
(
https://swapter.io/terms-of-use,https://swapter.io/privacy-policy) if thisis wanted.
Testing
verify-repo.sh --base origin/developpasses: CHANGELOG,npm run prepare,eslint over the 3 changed files, and the full jest suite, which ran 553 tests
across 81 suites and matched all 103 snapshots.
No simulator run for this branch, by design. These are the same edits already
exercised on the simulator during the plugin's own review rounds, where a max
DOGE to LTC swap ran through Swapter to the success scene with this exact
registration in place. That evidence and its screenshots live on
edge-exchange-plugins#475.
Note
Low Risk
Data-only registration mirroring existing CEX providers; the plugin remains disabled until the info server serves SWAPTER_INIT.
Overview
Registers Swapter in the app so the
edge-exchange-pluginsSwapter plugin can load when the info server provides init options. The diff is configuration only—no swap or UI logic changes.SWAPTER_INITis added inenvConfig.tswith the same shape asSWAPUZ_INIT/XGRAM_INIT(optionalapiKey,.withRest).corePlugins.tsmapsswapter: ENV.SWAPTER_INITin the centralized swap block.pluginIdIconsinCategoriesActions.tspoints atexchangeIcons/swapter/icon.pngso Swapter rows in transaction history show the provider icon.Swapter does not turn on from this PR alone:
asCorePluginInitresolves tofalsewhenSWAPTER_INITis absent fromenv.json, so users only see Swapter after the info server serves that key.Reviewed by Cursor Bugbot for commit 73373cc. Bugbot is set up for automated code reviews on this repo. Configure here.