Skip to content

chore(whitelist): allow DEX aggregator routers on 0G, Pharos, Injective and Tempo (EXBE-679) - #2559

Merged
gvladika merged 1 commit into
mainfrom
chore/whitelist-exbe-679-dex-routers
Oct 15, 2026
Merged

gvladika merged 1 commit into
mainfrom
chore/whitelist-exbe-679-dex-routers

Conversation

@melianessa

Copy link
Copy Markdown
Contributor

Which Linear task belongs to this PR?

EXBE-679: [BE] Enable additional DEX aggregators on 0G, Injective, Pharos and Tempo (EXSC-1211 was cancelled in its favour)

Why did I implement it this way?

This PR only changes config/whitelist.json. It adds six already-integrated aggregators on four chains where fly is the only DEX today. All four diamonds already have GenericSwapFacetV3 and WhitelistManagerFacet, so no deployment is needed — only the whitelist and the on-chain sync after merge.

Tool Chain key Address Role Functions
nordstern 0g 0x9e6d21e759a7a288b80eef94e4737d313d31c13f router IceCreamSwap()
nordstern pharos 0x2ca37ff95caf25366ef16fc2e655b78a165d125f router IceCreamSwap()
okx pharos 0x974d1cf6ffa4fce5a4d62955afc02f45aac29f35 DexRouter 7 selectors (same set as the newest OKX routers, incl. dagSwapTo)
okx pharos 0x78466a1488f1883d71cfddd1c621351572de0a1c TokenApprove none (approval only)
dodo pharos 0xa5ca5fbe34e444f366b373170541ec6902b0f75c DODOFeeRouteProxy mixSwap 0xff84aafa, externalSwap 0x2fa11647
dodo pharos 0xbf105f4ffbd3825f5433d074008b9a76237d849c DODOApprove none (approval only)
openocean injective 0x6352a56caadc4f1e25cd6c75970fa768a3304e64 exchange (EIP-1967 proxy) swap 0x90411a32
0x tempo 0x0000000000001ff3684f28c67538d4d072c22734 AllowanceHolder exec 0x2213bc0b
enso tempo 0xcfbaa9cfce952ca4f4069874ff1df8c05e37a3c7 router routeSingle, routeMulti, safeRouteSingle, safeRouteMulti

How the entries were built:

  • Addresses come from the ticket: Nordstern /chains + live tx.to, OKX dex-smart-contract docs, DODO's dodoex_v2_subgraph Pharos config, OpenOcean live /v4/1776/swap tx.to, 0x-settler chain_config.json, and the Enso deployments page. Enso on Tempo uses 0xcfba…a3c7, not the shared 0xf755…22cf, which has no code on Tempo.
  • Functions follow the backend generateDexWhitelistsAndSignatures logic: each selector in DEX_SIGNATURE_ALLOWLIST is kept if it is in the contract's bytecode (after resolving implementation() / EIP-1967 proxies). Every resulting selector set equals an existing entry for the same tool on another chain, and every name was copied from those existing entries — no new or unnamed selectors.
  • Approval-only contracts (OKX TokenApprove, DODOApprove) get an empty functions map, as on the other chains. On Pharos, DODOFeeRouteProxy._DODO_APPROVE_PROXY_() → 0x2afc…eeaa, whose _DODO_APPROVE_() is 0xbf10…849c. OKX TokenApprove.tokenApproveProxy() → 0x7da6…91aa, whose tokenApprove() is 0x7846…0a1c.
  • New chain keys are appended at the end of each tool's contracts block. git diff --stat: config/whitelist.json | 74 +++, insertions only.

No test was added. No existing test covers individual DEX whitelist entries. bunx prettier --check config/whitelist.json passes.

Out of scope: syncing the whitelist on-chain after the merge, and the backend change (allowlists, mocks and the matching whitelisting_config.json entries), which lands in a separate lifi-backend PR under the same ticket. The backend checks isContractAllowed before quoting, so either PR can merge first.

Checklist before requesting a review

Checklist for reviewer (DO NOT DEPLOY and contracts BEFORE CHECKING THIS!!!)

  • I have checked that any arbitrary calls to external contracts are validated and or restricted
  • I have checked that any privileged calls (i.e. storage modifications) are validated and or restricted
  • I have ensured that any new contracts have had AT A MINIMUM 1 preliminary audit conducted on by <company/auditor>

🤖 Generated with Claude Code

…ve and Tempo (EXBE-679)

Nordstern on 0g and pharos, OKX and DODO on pharos, OpenOcean on
injective, 0x and Enso on tempo. Selectors are the backend
DEX_SIGNATURE_ALLOWLIST entries found in each contract's bytecode;
approval-only contracts (OKX TokenApprove, DODOApprove) get an empty
functions map, as on other chains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@melianessa
melianessa requested a review from a team October 15, 2026 12:16
@lifi-action-bot
lifi-action-bot marked this pull request as draft October 15, 2026 12:17
@coderabbitai

coderabbitai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 98ca15ba-bbe8-467b-b47e-f6eea6249673
📥 Commits

Reviewing files that changed from the base of the PR and between 4a2a7a8 and e189433.

📒 Files selected for processing: 1
  • config/whitelist.json

Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 1 remain after this review.

Walkthrough

The contract whitelist adds entries for Pharos, Tempo, Injective, and 0g. The entries include contract addresses and function selectors or signatures.

Changes

Chain contract whitelist additions

Layer / File(s) Summary
Add network contract entries
config/whitelist.json
Adds Pharos entries for DODO and Kyberswap, Tempo entries for Enso and 0x, an Injective entry for OpenOcean, and 0g and Pharos entries for Nordstern Finance.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to e1894

No issue requiring a change before merge is established. The planned on-chain whitelist sync and backend changes remain separate work.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The description includes the required Linear task, implementation rationale, change details, scope, testing status, and review checklists. It clearly documents that no tests were added and identifies …
Title check Passed The title clearly identifies the whitelist change, the affected chains, and the relevant DEX aggregator routers. It accurately summarizes the primary change.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@melianessa
melianessa marked this pull request as ready for review October 15, 2026 12:21
@gvladika
gvladika merged commit 6d0fe60 into main Oct 15, 2026
86 of 89 checks passed
@gvladika
gvladika deleted the chore/whitelist-exbe-679-dex-routers branch October 15, 2026 12:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants