Skip to content

feat: update SwapVM contract addresses after 2026-07-26 redeploy - #86

Merged
krboktv merged 2 commits into
masterfrom
cursor/sdks-update-swapvm-router-address-cfe9
Jul 27, 2026
Merged

feat: update SwapVM contract addresses after 2026-07-26 redeploy#86
krboktv merged 2 commits into
masterfrom
cursor/sdks-update-swapvm-router-address-cfe9

Conversation

@krboktv

@krboktv krboktv commented Jul 27, 2026

Copy link
Copy Markdown
Member

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

Contract Address
SwapVM router (AquaSwapVMRouter) 0x111111338c5091e8440b67b168bae16a668ac0de

Replaces the superseded SwapVM router 0x1111113db0e0ef9d0e3a50d5f094a3a57a26c0de (all 13 chains). Aqua stays at 0x1111113ccf1426a8e30e2bff5e005d929bf6a90a.

Changes

  • typescript/swap-vm/src/swap-vm-contract/constants.ts — new SwapVM router address for all 13 networks, and the doc comment above AQUA_SWAP_VM_CONTRACT_ADDRESSES updated 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.mddrive-by documentation correction (pre-existing, not introduced by this PR): the Unichain row listed chain ID 1301 (Unichain Sepolia); corrected to 130 (Unichain mainnet). NetworkEnum.UNICHAIN = 130 in typescript/sdk-core/src/types/chain.ts, and the router bytecode is present on chain 130 but absent on chain 1301 (verified via eth_getCode on both). The explorer link already pointed at the mainnet explorer (uniscan.xyz; Sepolia lives on a separate subdomain), so it is unchanged.

Note: typescript/aqua/README.md carries the same pre-existing Unichain | 1301 row in its Supported Networks table. It is NOT changed here because typescript/aqua/** is out of scope for this PR — it should be fixed separately.

The root README.md and typescript/README.md contain 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-vm npm dependency (under contracts/lib/), which are not part of this repo.

Doc comment correction

The JSDoc previously claimed the deployment params were name = AquaSwapVMRouter, version = 1.0.1 and described v1.0.1's opcode compatibility. Reading eip712Domain() on-chain shows those claims were already stale: the previous router (0x…26c0de) reports name = "1inch SwapVM v1.0", version = "1.0.2", and the new router reports the same (verified on Ethereum and Base; the 1.0.1 domain belonged to the older 0x3c4758… deployment replaced in #84). The comment now records the verified EIP-712 name/version and 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 @see link is pinned to 1inch/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

  • New address verified on-chain via eth_getCode on 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 returns name = "1inch SwapVM v1.0", version = "1.0.2" (checked on Ethereum and Base).
  • Ethereum deployment tx 0xc7eccb690b89094ab5ef0510164f2dd05a601f61449de45466fc855ccbb7d4cc, block 25618917 (2026-07-26 18:59:23 UTC), via the deployer 0x0bd61d605c64a857c3d94779aef7ca295702b3a2.
  • Unichain chain ID check: eth_getCode returns 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)
  • Unit tests: swap-vm 600/600 passed, aqua 31/31 passed, sdk-core 57/57 passed
  • e2e (Anvil mainnet fork via Docker, FORK_URL=https://ethereum-rpc.publicnode.com):
    • aqua e2e: 3/3 passed
    • swap-vm e2e: 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.295934276742 vs expected 2462.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-sdk should be released via the "Release typescript" GitHub Actions workflow (dispatch for the swap-vm project). Not dispatched from this PR; do it only after merge.

Open in Web Open in Cursor 

cursoragent and others added 2 commits July 27, 2026 09:16
Co-authored-by: Kirill <krboktv@gmail.com>
… -> 130)

Co-authored-by: Kirill <krboktv@gmail.com>
@sonarqubecloud

Copy link
Copy Markdown

@krboktv
krboktv marked this pull request as ready for review July 27, 2026 09:55
@krboktv
krboktv merged commit fb7fbb0 into master Jul 27, 2026
2 checks passed
@krboktv
krboktv deleted the cursor/sdks-update-swapvm-router-address-cfe9 branch July 27, 2026 09:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants