feat: update SwapVM contract addresses after 2026-07-26 redeploy - #86
Merged
Merged
Conversation
Co-authored-by: Kirill <krboktv@gmail.com>
… -> 130) Co-authored-by: Kirill <krboktv@gmail.com>
|
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.



Update SwapVM router address (2026-07-26 redeploy)
On 2026-07-26 the SwapVM router (
AquaSwapVMRouter) was redeployed on all chains to a new vanity address (Ethereum deployment: block 25618917, 2026-07-26 18:59:23 UTC). The Aqua registry address is unchanged in this redeploy —typescript/aqua/**is intentionally untouched.New address
AquaSwapVMRouter)0x111111338c5091e8440b67b168bae16a668ac0deReplaces the superseded SwapVM router
0x1111113db0e0ef9d0e3a50d5f094a3a57a26c0de(all 13 chains). Aqua stays at0x1111113ccf1426a8e30e2bff5e005d929bf6a90a.Changes
typescript/swap-vm/src/swap-vm-contract/constants.ts— new SwapVM router address for all 13 networks, and the doc comment aboveAQUA_SWAP_VM_CONTRACT_ADDRESSESupdated to match the on-chain reality (see below)typescript/swap-vm/README.md— Supported Networks table updated with the new address and explorer links (explorer domains unchanged)typescript/swap-vm/README.md— drive-by documentation correction (pre-existing, not introduced by this PR): the Unichain row listed chain ID1301(Unichain Sepolia); corrected to130(Unichain mainnet).NetworkEnum.UNICHAIN = 130intypescript/sdk-core/src/types/chain.ts, and the router bytecode is present on chain 130 but absent on chain 1301 (verified viaeth_getCodeon both). The explorer link already pointed at the mainnet explorer (uniscan.xyz; Sepolia lives on a separate subdomain), so it is unchanged.The root
README.mdandtypescript/README.mdcontain no address mentions. A repo-wide search found no other occurrences of the old address; the only remaining hits are vendored Foundry broadcast records inside the@1inch/swap-vmnpm dependency (undercontracts/lib/), which are not part of this repo.Doc comment correction
The JSDoc previously claimed the deployment params were
name = AquaSwapVMRouter,version = 1.0.1and described v1.0.1's opcode compatibility. Readingeip712Domain()on-chain shows those claims were already stale: the previous router (0x…26c0de) reportsname = "1inch SwapVM v1.0",version = "1.0.2", and the new router reports the same (verified on Ethereum and Base; the1.0.1domain belonged to the older0x3c4758…deployment replaced in #84). The comment now records the verified EIP-712name/versionand the superseded router address. The v1.0.1-specific opcode-compatibility paragraph was removed rather than restated: the deployed contract is not source-verified on explorers, so opcode-level changes in this deployment could not be independently confirmed (note the new bytecode is 20,541 bytes vs 20,379 for the previous router, so the code did change). The@seelink is pinned to1inch/swap-vm@fcca73f(main as of 2026-07-25, immediately before the redeploy) — best-effort, since the exact deployed commit cannot be confirmed without source verification.Verification
eth_getCodeon all 13 supported networks (Ethereum, BNB, Polygon, Arbitrum, Avalanche, Gnosis, Base, Optimism, zkSync Era, Linea, Unichain, Sonic, Robinhood): bytecode present with identical size (20,541 bytes) on every chain.eip712Domain()on the new address returnsname = "1inch SwapVM v1.0",version = "1.0.2"(checked on Ethereum and Base).0xc7eccb690b89094ab5ef0510164f2dd05a601f61449de45466fc855ccbb7d4cc, block 25618917 (2026-07-26 18:59:23 UTC), via the deployer0x0bd61d605c64a857c3d94779aef7ca295702b3a2.eth_getCodereturns the 20,541-byte router bytecode on chain 130 (Unichain mainnet) and empty code on chain 1301 (Unichain Sepolia).pnpm build:contracts,pnpm build,pnpm lint,pnpm lint:types— all pass (re-run after the chain-ID docs fix)swap-vm600/600 passed,aqua31/31 passed,sdk-core57/57 passedFORK_URL=https://ethereum-rpc.publicnode.com):aquae2e: 3/3 passedswap-vme2e: 10/13 passed; the 3 failures are the known-flaky exact floating-point price assertions (the 2000–3000 concentrated-range tests and the 30bps-fee test), differing at the ~13th significant digit (e.g.2462.295934276742vs expected2462.2959342765034) depending on fork block/RPC provider — pre-existing and unrelated to this change (the e2e suites deploy contracts locally and do not use the address constants; same 3 tests were flaky in feat: update Aqua and SwapVM contract addresses after 2026-07-19 universal redeploy #84).Release after merge
After this PR is merged, a new version of
@1inch/swap-vm-sdkshould be released via the "Release typescript" GitHub Actions workflow (dispatch for theswap-vmproject). Not dispatched from this PR; do it only after merge.