Skip to content

chore(deploy): roll out LayerSwapFacet v1.0.0 to production (39 networks)#2061

Merged
gvladika merged 2 commits into
mainfrom
feature/exsc-220-sc-deploy-sc-to-production
Jul 16, 2026
Merged

chore(deploy): roll out LayerSwapFacet v1.0.0 to production (39 networks)#2061
gvladika merged 2 commits into
mainfrom
feature/exsc-220-sc-deploy-sc-to-production

Conversation

@gvladika

@gvladika gvladika commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Which Linear task belongs to this PR?

https://linear.app/lifi-linear/issue/EXSC-220/sc-deploy-sc-to-production (EXSC-220)

Why did I implement it this way?

Production rollout of LayerSwapFacet v1.0.0 (audited 2026-07-15, integrated in #1711).
Each production LiFiDiamond gets the facet via CREATE3 deploy + a timelock-wrapped
diamondCut Safe proposal (one per chain). All 39 proposals have been signed, executed
after the timelock delay, and confirmed on-chain. script/deploy/_targetState.json lists
LayerSwapFacet 1.0.0 for the deployed networks, and each <chain>.diamond.json facet
registry has been regenerated from on-chain state now that the cuts executed.

Production proposals (39 networks)

Chain LayerSwapFacet address Safe nonce
arbitrum 0x7Babf9c78e5c040B1bBd8981189ea4d6E3Fc8344 72
arbitrumnova 0xBdD660fa7e8D31f0199E333B85a46aa43Bb3D69C 8
avalanche 0x04E051D8e3627A79785f8E210B1d61A877AA737A 53
base 0x04E051D8e3627A79785f8E210B1d61A877AA737A 72
berachain 0x3aAE6eb0a3C23406F28FC63541Fd44A57839479D 31
blast 0x04E051D8e3627A79785f8E210B1d61A877AA737A 40
bob 0x2BfD9Ce2fe03cFf9c25d524bdAAd8E16161087Cd 31
bsc 0x04E051D8e3627A79785f8E210B1d61A877AA737A 56
celo 0x04E051D8e3627A79785f8E210B1d61A877AA737A 32
fraxtal 0x04E051D8e3627A79785f8E210B1d61A877AA737A 25
gnosis 0x04E051D8e3627A79785f8E210B1d61A877AA737A 32
gravity 0x04E051D8e3627A79785f8E210B1d61A877AA737A 24
immutablezkevm 0x04E051D8e3627A79785f8E210B1d61A877AA737A 20
ink 0x2BfD9Ce2fe03cFf9c25d524bdAAd8E16161087Cd 43
kaia 0xE2F2a8e1B4F8A5f5686421BbBB90Fd8cB45ef9d9 21
katana 0x828Cc8Dc04e22B63DFB7764cFb58Ddbc4C2A07c7 35
linea 0x0Bb301cc98299d57Ab7d07381fF0C9E48177Fd50 52
lisk 0x04E051D8e3627A79785f8E210B1d61A877AA737A 32
mainnet 0x04E051D8e3627A79785f8E210B1d61A877AA737A 109
mantle 0x04E051D8e3627A79785f8E210B1d61A877AA737A 31
megaeth 0x2BfD9Ce2fe03cFf9c25d524bdAAd8E16161087Cd 38
mode 0x04E051D8e3627A79785f8E210B1d61A877AA737A 36
monad 0x2BfD9Ce2fe03cFf9c25d524bdAAd8E16161087Cd 41
morph 0x455B71D20a8b51E9757FeD649833f71355cFCe44 16
opbnb 0x04E051D8e3627A79785f8E210B1d61A877AA737A 22
optimism 0x04E051D8e3627A79785f8E210B1d61A877AA737A 61
plasma 0x2BfD9Ce2fe03cFf9c25d524bdAAd8E16161087Cd 36
polygon 0x04E051D8e3627A79785f8E210B1d61A877AA737A 62
ronin 0x2BfD9Ce2fe03cFf9c25d524bdAAd8E16161087Cd 33
scroll 0x04E051D8e3627A79785f8E210B1d61A877AA737A 37
sei 0x04E051D8e3627A79785f8E210B1d61A877AA737A 29
soneium 0x2BfD9Ce2fe03cFf9c25d524bdAAd8E16161087Cd 33
sonic 0x04E051D8e3627A79785f8E210B1d61A877AA737A 43
superposition 0x2BfD9Ce2fe03cFf9c25d524bdAAd8E16161087Cd 23
taiko 0x0Bb301cc98299d57Ab7d07381fF0C9E48177Fd50 31
tempo 0xBdD660fa7e8D31f0199E333B85a46aa43Bb3D69C 18
unichain 0x2BfD9Ce2fe03cFf9c25d524bdAAd8E16161087Cd 52
worldchain 0x04E051D8e3627A79785f8E210B1d61A877AA737A 36
xlayer 0x04E051D8e3627A79785f8E210B1d61A877AA737A

xlayer was deployed and proposed after the initial 38-network batch (explorer verification
originally blocked on an OKLink key) and is included here; its cut executed on-chain in tx
0x3a9f1675e0405fa78af8db2f75ce1737bbd72c1837aa7c118af009ea746ba3a1.

Not in this PR (follow-up)

  • zkSync-familyabstract, sophon, zksync: need DeployLayerSwapFacet.zksync.s.sol (+ zksolc build) before deploy.
  • hyperevm — deploy tx exceeds the chain's block gas limit; needs chain-specific gas handling.
  • swellchain — configured RPC returns HTTP 401; needs a valid ETH_NODE_URI_SWELLCHAIN.

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>

…rks) (EXSC-220)

Deploy LayerSwapFacet v1.0.0 to 38 production LiFiDiamonds via CREATE3 and a
timelock-wrapped diamondCut Safe proposal per chain. Update _targetState.json
to list LayerSwapFacet 1.0.0 for the deployed networks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

LayerSwapFacet addresses, diamond facet metadata, and version 1.0.0 mappings were added across supported network deployment configurations. Existing facet addresses remain unchanged except for the specified BSC facet replacements and two DiamondCutFacet version updates.

Changes

LayerSwapFacet registration

Layer / File(s) Summary
Deployment address manifests
deployments/*.json
Adds LayerSwapFacet contract-address entries across supported network deployment files while preserving existing mappings.
Diamond facet configurations
deployments/*.diamond.json
Registers LayerSwapFacet with address, name, and version metadata, reorders periphery keys, and updates the specified BSC, Lisk, and Worldchain facet mappings.
Production target-state version maps
script/deploy/_targetState.json
Adds LayerSwapFacet: "1.0.0" to production LiFiDiamond facet maps across supported networks.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested labels: AuditNotRequired

🚥 Pre-merge checks | ✅ 5
✅ 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.
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.
Title check ✅ Passed The title concisely and accurately summarizes the rollout of LayerSwapFacet v1.0.0 to production across 39 networks.
Description check ✅ Passed The description follows the template, includes the Linear task, rollout rationale, deployment details, and review checklists.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/exsc-220-sc-deploy-sc-to-production

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.

….0.0

Timelock diamondCut ops for LayerSwapFacet v1.0.0 executed on-chain across
39 production networks; regenerate <net>.diamond.json from on-chain state.
Adds xlayer (deployed after the initial 38-network batch) to the deploy log
and target state.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gvladika gvladika changed the title chore(deploy): roll out LayerSwapFacet v1.0.0 to production (38 networks) [EXSC-220] chore(deploy): roll out LayerSwapFacet v1.0.0 to production (39 networks) [EXSC-220] Jul 16, 2026
@gvladika
gvladika marked this pull request as ready for review July 16, 2026 07:18
@lifi-action-bot lifi-action-bot changed the title chore(deploy): roll out LayerSwapFacet v1.0.0 to production (39 networks) [EXSC-220] chore(deploy): roll out LayerSwapFacet v1.0.0 to production (39 networks) Jul 16, 2026
@gvladika
gvladika enabled auto-merge (squash) July 16, 2026 07:20
@gvladika
gvladika merged commit 62d7ddf into main Jul 16, 2026
75 checks passed
@gvladika
gvladika deleted the feature/exsc-220-sc-deploy-sc-to-production branch July 16, 2026 10:06
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