Skip to content

chore(GenericSwapFacetV3, WhitelistManagerFacet): roll out v2.0.0 / v1.1.0 (EXSC-1173, EXSC-1177) - #2565

Merged
gvladika merged 2 commits into
mainfrom
feature/exsc-1173-roll-out-genericswapfacetv3-200-fleet-wide-after-per-diamond
Oct 20, 2026
Merged

gvladika merged 2 commits into
mainfrom
feature/exsc-1173-roll-out-genericswapfacetv3-200-fleet-wide-after-per-diamond

Conversation

@gvladika

@gvladika gvladika commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Which Linear task belongs to this PR?

  • EXSC-1173: roll out GenericSwapFacetV3 v2.0.0
  • EXSC-1177: roll out WhitelistManagerFacet v1.1.0

Why did I implement it this way?

Deployment logs for the production rollout of GenericSwapFacetV3 v2.0.0 (audit20260519) and WhitelistManagerFacet v1.1.0 (audit20251229). Both are already in main; this PR only records the new addresses.

Every production diamond's on-chain contract-selector whitelist was checked against config/whitelist.json before the rollout, and all match. Rollout runs in waves, low-volume chains first.

Wave 1: GenericSwapFacetV3 v2.0.0

Chain Contract address Safe nonce
arbitrumsepolia 0x9Cd41674566354E1Cd7e6C7E91bC6ec4Fd8e4eEa direct cut (testnet)
basesepolia 0x9Cd41674566354E1Cd7e6C7E91bC6ec4Fd8e4eEa direct cut (testnet)
optimismsepolia 0xA15a3ed3F94f397012Ed5a0AE307539B3b821f2e direct cut (testnet)
arbitrumnova 0xEf4D1C860DF16697FC15f930ED4caDE935826e01 13
0g 0x65bE4db5A9d3AaF3B08291df31110A89defC795b 17
morph 0x65bE4db5A9d3AaF3B08291df31110A89defC795b 24
pharos 0xEf4D1C860DF16697FC15f930ED4caDE935826e01 32
somnia 0xCff4b967cB7f5BE23fD6F76b545c4f1f92808b4d 17
telos 0xFEEBa9524B1ac4974542212C1854a4fbE199104b 16
tempo 0xEf4D1C860DF16697FC15f930ED4caDE935826e01 29

Wave 2: GenericSwapFacetV3 v2.0.0 + WhitelistManagerFacet v1.1.0

Chain GenericSwapFacetV3 Safe nonce WhitelistManagerFacet Safe nonce
flow 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 29 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 30
hemi 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 27 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 28
hyperevm 0x7C2A0d960dEb04b60E2F3259e3B5086Fc10F818B 64 0xFf98B75B6EC83DD2a3243B4FAdcEE10c85A49F11 65
jovay 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 19 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 20
katana 0xa47F4Da9F4dfa21d3454Ec48949632f2Ca8c47b1 47 0xD90688C64102ef47c1D7FFdBD84a28e4a2a14EA4 48
megaeth 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 47 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 48
monad 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 57 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 58
plasma 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 46 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 47
plume 0x69b1C6C339bDA7D3BA7Ddc1c02Df4D30eAfa2F77 42 0x834795B85b8F594A8aBa9d0cF2488646347bF697 43
ronin 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 37 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 38
soneium 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 41 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 42
stable 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 36 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 37
unichain 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 72 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 73
vana 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 28 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 29
zksync 0xCFA468C89c138264509702215Db9d98DC93595cd 46 0x1C267DbFe85Fc317569C9c0dCD5c9c62E52A6438 47
fraxtal 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 34 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 35
fuse 0x403aeC0bceBf3fBaEE36d01A06286137061f90Bd 22 0x9ffA6A3FB32F92f5529d781fe43223FC5c4C3936 23
gnosis 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 44 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 45
linea 0x6FC60C42ba4B11f93034d5FEc025Ef1d0c200491 68 0x8AE8416Ac8126a2A6b56eAdbae6373D0597aC8d0 69
mantle 0x403aeC0bceBf3fBaEE36d01A06286137061f90Bd 43 0x9ffA6A3FB32F92f5529d781fe43223FC5c4C3936 44
mode 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 43 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 44
rootstock 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 32 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 33
scroll 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 44 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 45
sei 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 39 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 40
abstract 0xCFA468C89c138264509702215Db9d98DC93595cd 37 0x1C267DbFe85Fc317569C9c0dCD5c9c62E52A6438 38
apechain 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 29 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 30
berachain 0xbE8CC8D0b35Db2a56Cb2a96498Ba83690Aae4f61 38 0x52777D1B049442F3133E4E2aCc1255e7e351a950 39
celo 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 42 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 43
cronos 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 36 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 37
etherlink 0xad5D9D7d7e1ba7269ef18c9a031238dd51936F94 30 0x4367B630149843aC144A2B0139bbB339609680E5 31
flare 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 28 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 29
gravity 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 29 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 30
immutablezkevm 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 25 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 26
ink 0x83E8F744b5034D75b1C1D70C393db6220Da3a2BB 57 0xa44919b475455DC88fAC8ab7Cf5f1C9018651294 58
kaia 0x8c1C546188DF377782F763bbEA579C8da99324f4 25 0x3458347021f7fF7734D6708332Cf09c8E3F4fd2c 26
lisk 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 37 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 38
metis 0x85dDF3655BaF8c2C747aBA179BE3C16D8300b4aD 34 0x492D9A4A4cC7f79900FfDC81a464A7dB4b6c5219 35
nibiru 0x8C3a475f88f047984De3f982792118d1Da497313 24 0xe787807431A82d3e9460B4F7F5004e65c15fA0FD 25
sonic 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 57 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 58
viction 0x4ee5Cef91c774F10BC760393EAC52b7ac5b2D3B0 27 0x4f86347504C9Fb5F37B14E3C862992f0A6642753 28
worldchain 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 53 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 54
xdc 0x0Cb9C78004Ff3a2245630D615360693e7EEE4283 26 0x3044D5FE49f1c02834166bCA7d8D0074425764f0 27
xlayer 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 37 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 38

Wave 3: GenericSwapFacetV3 v2.0.0 + WhitelistManagerFacet v1.1.0

Chain GenericSwapFacetV3 Safe nonce WhitelistManagerFacet Safe nonce
mainnet 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 136 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 137
arbitrum 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 101 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 102
base 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 99 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 100
optimism 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 85 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 86
polygon 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 85 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 86
bsc 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 77 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 78
avalanche 0x02Db8a1c2170AEE6cd17715EcD1c567C9B296E2c 74 0x1841044080E6872c90Ac5048F0D1954CC546e9B7 75

The *.diamond.json files of Safe-governed chains are updated once their timelock operations execute.

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

Testnets (arbitrumsepolia, basesepolia, optimismsepolia) cut directly.
0g, morph, pharos, somnia, telos, tempo proposed to Safe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 48 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 18995d06-f08a-475a-93e7-caf6af7ce1c4
📥 Commits

Reviewing files that changed from the base of the PR and between c9878df and a223bef.

📒 Files selected for processing: 18
  • deployments/0g.diamond.json
  • deployments/0g.json
  • deployments/arbitrumsepolia.diamond.json
  • deployments/arbitrumsepolia.json
  • deployments/basesepolia.diamond.json
  • deployments/basesepolia.json
  • deployments/morph.diamond.json
  • deployments/morph.json
  • deployments/optimismsepolia.diamond.json
  • deployments/optimismsepolia.json
  • deployments/pharos.diamond.json
  • deployments/pharos.json
  • deployments/somnia.diamond.json
  • deployments/somnia.json
  • deployments/telos.diamond.json
  • deployments/telos.json
  • deployments/tempo.diamond.json
  • deployments/tempo.json
  • 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.

gvladika added a commit that referenced this pull request Oct 20, 2026
Regenerated from the on-chain loupe on the 55 networks whose cut executed.
The same cuts drained the parked SymbiosisFacet v1.0.0 removals on 11
networks, and the loupe now routes GenericSwapFacetV3 v2.0.0 on morph
and telos (#2565). DiamondCutFacet and DiamondLoupeFacet versions were
kept at 1.0.0 where the master-log lookup returned none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gvladika added a commit that referenced this pull request Oct 20, 2026
The loupe sync picked up GenericSwapFacetV3 v2.0.0 on morph, somnia and
telos, which #2565 rolls out and records in the flat logs. Restore the
previous entries so this PR stays scoped to CalldataVerificationFacet and
address-consistency passes; #2565 syncs them when it finishes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tworks (EXSC-1173)

Timelock cuts executed on 0g, morph, pharos, somnia, telos and tempo.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gvladika
gvladika marked this pull request as ready for review October 20, 2026 06:49
@gvladika
gvladika requested a review from a team October 20, 2026 06:49
@gvladika
gvladika enabled auto-merge (squash) October 20, 2026 06:51
gvladika added a commit that referenced this pull request Oct 20, 2026
…ks (EXSC-1174) (#2558)

* chore(deploy): deploy CalldataVerificationFacet v2.0.0 to 56 networks

Safe proposals for the diamondCut are pending signatures (EXSC-1174).

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

* chore(deploy): sync diamond logs for CalldataVerificationFacet v2.0.0 on 0g, injective, pharos, tempo

* chore(deploy): deploy CalldataVerificationFacet v2.0.0 to arbitrumnova, telos and vana

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

* chore(deploy): sync diamond logs for CalldataVerificationFacet v2.0.0

Regenerated from the on-chain loupe on the 55 networks whose cut executed.
The same cuts drained the parked SymbiosisFacet v1.0.0 removals on 11
networks, and the loupe now routes GenericSwapFacetV3 v2.0.0 on morph
and telos (#2565). DiamondCutFacet and DiamondLoupeFacet versions were
kept at 1.0.0 where the master-log lookup returned none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(deploy): keep GenericSwapFacetV3 diamond logs for #2565

The loupe sync picked up GenericSwapFacetV3 v2.0.0 on morph, somnia and
telos, which #2565 rolls out and records in the flat logs. Restore the
previous entries so this PR stays scoped to CalldataVerificationFacet and
address-consistency passes; #2565 syncs them when it finishes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Daniela Chybisova <iron.melmel@gmail.com>
@gvladika
gvladika merged commit e3b95df into main Oct 20, 2026
64 of 85 checks passed
@gvladika
gvladika deleted the feature/exsc-1173-roll-out-genericswapfacetv3-200-fleet-wide-after-per-diamond branch October 20, 2026 07:38
gvladika added a commit that referenced this pull request Oct 21, 2026
WhitelistManagerFacet 1.1.0 and GenericSwapFacetV3 2.0.0 were deployed
and cut on xlayer after #2565 merged, so the flat log kept the old
addresses. Match it to the loupe-synced diamond log.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gvladika added a commit that referenced this pull request Oct 21, 2026
)

* chore(deploy): deploy SymbiosisFacet v2.0.0 to X Layer (EXSC-903)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(deploy): sync xlayer diamond log after SymbiosisFacet cut (EXSC-903)

Regenerated from the on-chain loupe after timelock op 0xce391f44 executed
(tx 0x6cc8d19c). Also picks up WhitelistManagerFacet 1.1.0 and
GenericSwapFacetV3 2.0.0, already routed on-chain but not yet logged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(deploy): point xlayer flat log at routed facet versions (EXSC-903)

WhitelistManagerFacet 1.1.0 and GenericSwapFacetV3 2.0.0 were deployed
and cut on xlayer after #2565 merged, so the flat log kept the old
addresses. Match it to the loupe-synced diamond log.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
gvladika added a commit that referenced this pull request Oct 21, 2026
#2565 listed the wave-2 addresses but did not write them to the flat
deployment logs; record them for the 42 networks still on the old facets.

EXSC-1173, EXSC-1177

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gvladika added a commit that referenced this pull request Oct 21, 2026
…nt logs (EXSC-1173) (#2574)

* chore(deploy): sync diamond logs for GenericSwapFacetV3/WhitelistManagerFacet

Timelock ops from the wave-2 rollout (#2565) executed on all 43 networks;
regenerate the production diamond logs from on-chain state.

EXSC-1173, EXSC-1177

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(deploy): record GenericSwapFacetV3/WhitelistManagerFacet addresses

#2565 listed the wave-2 addresses but did not write them to the flat
deployment logs; record them for the 42 networks still on the old facets.

EXSC-1173, EXSC-1177

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(deploy): sync wave-3 GenericSwapFacetV3/WhitelistManagerFacet logs

Timelock ops for wave 3 (mainnet, arbitrum, base, optimism, polygon, bsc,
avalanche) and the arbitrumnova GenericSwapFacetV3 cut executed; regenerate
the diamond logs and record the new addresses in the flat logs.

EXSC-1173, EXSC-1177

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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