Add Robinhood Chain swap support - #483
Open
j0ntz wants to merge 1 commit into
Open
Conversation
Contributor
Author
Map the robinhood plugin id to each provider's chain code so quotes can route to and from the chain: SideShift 'robinhood', LI.FI 'out', Rango 'ROBINHOOD' and ChangeNow 'hood'. SideShift, LI.FI and Rango all return live quotes into native ETH on the chain. ChangeNow lists the chain but its native-ETH pair is inactive, so it is mapped for the assets it does fill and will pick up ETH when the pair activates.
j0ntz
force-pushed
the
jon/robinhood-chain
branch
from
August 13, 2026 10:21
37d5a13 to
de63cfe
Compare
j0ntz
marked this pull request as ready for review
August 13, 2026 10:21
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
2 tasks
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
Companion PRs for the same chain (this PR is independent of both and passes CI standalone):
robinhoodcurrency pluginDescription
Maps the
robinhoodplugin id (Robinhood Chain, EVM chain 4663) onto each swap provider's own chain code, so quotes can route to and from the chain. No engine or plugin logic changes:lifi.ts,rango.tsand the central plugins all gate on a non-nullMAINNET_CODE_TRANSCRIPTIONlookup, so a chain the map does not know is invisible to the provider no matter what its API supports.robinhoodis added tosrc/util/edgeCurrencyPluginIds.tsviamapctl add-plugin; the four provider entries are authored inscripts/mappings/*Mappings.tsand thesrc/mappings/*.tsfiles are regenerated withnpm run mapctl update-mappings.robinhood/v2/pair/btc-bitcoin/eth-robinhoodand/v2/pair/eth-arbitrum/eth-robinhoodboth quote, in both directionsout/v1/quoteroutes cross-chain into 4663. The key really is the stringout, which is what/v1/chainsreturns for this chainROBINHOODhoodChangeNow is mapped despite the inactive pair because the map is chain-level while fill availability is per-pair and dynamic.
changenow.tsrebuildschainCodeTickerMaphourly fromexchange/currencies?active=truefiltered to the chain codes the map knows, so an unmapped chain could never appear even once the pair activates. Mapping it now costs a failed quote and needs no follow-up later.Two providers advertise the chain but are deliberately left unmapped: LetsExchange carries only CASHCAT and ARROW there (no native ETH, so it cannot deliver gas), and SwapKit's
HOODcode turns up in the provider sweep with no tradeable asset behind it.Testing
npm run test(56 passing),tsc, andverify-repo.shall pass.Exercised end to end on the iOS simulator with this branch served into the app, which is what the mapping is for. An exchange of 529.16 S from My Sonic to a Robinhood Chain wallet quoted 0.006243 ETH "Powered by LI.FI" and executed to the success scene;
eth_getBalancefor the receiving address then returned 6248511112300593 wei and the wallet rendered0.006248511112300593 ETH.That balance unblocked the send that the chain integration could not previously test: 0.001 ETH sent from the funded wallet is transaction
0x70e4950b5991c9419eff70ea2478c7ae55c5c58adcc3da237d5889394f8fdf62,successin block 35308086.The route was pinned to LI.FI/Rango for the test by disabling competitors locally, because SideShift is geo-blocked from this host's egress; its mapping is verified against its live pair endpoint instead.
One unrelated gap this surfaced: Edge's rates server has no entry for
robinhood, so ETH on the chain prices at$0everywhere, and on the exchange scene that zero destination value trips the "High Price Impact" banner. Cosmetic, fixed where rates are configured rather than here.Design doc:
src/docs/robinhood-chain.md, section 7.Asana: https://app.asana.com/0/1215088146871429/1217382370104887
Note
Low Risk
Mapping-only change with no swap engine logic; mis-mapped codes could cause failed quotes until corrected, but scope is limited to new chain registration.
Overview
Registers the
robinhoodcurrency plugin id and wires Robinhood Chain (EVM 4663) into swap routing via provider chain-code maps only—no changes to quote or execution logic.Enabled providers: SideShift (
robinhood), LI.FI (out), Rango (ROBINHOOD), and ChangeNow (hood). Authoritative entries live inscripts/mappings/*Mappings.ts;src/mappings/*.tsare regenerated withmapctl update-mappings.Other swap plugins gain an explicit
robinhood → nullentry so the chain stays invisible where it is not supported (ChangeHero, Exolix, Godex, LetsExchange, Maya, SwapKit, Swapuz, Thorchain, Xgram, etc.).CHANGELOG notes Robinhood Chain swaps via those four providers.
Reviewed by Cursor Bugbot for commit de63cfe. Bugbot is set up for automated code reviews on this repo. Configure here.