|
31 | 31 | * [Supporting Documents](#supporting-documents) |
32 | 32 | <!-- TOC --> |
33 | 33 |
|
34 | | - |
35 | | -## External Audit |
36 | | -The contracts in this repository were independently audited by Nethermind Security in February 2026. The full audit report is available [here](./audit/20260209-nethermind-audit.pdf). |
37 | | - |
38 | 34 | ## Overview |
39 | 35 | The Immutable X chain will be sunset in early 2026. Most users will withdraw their assets before the sunset date. However, for some users, the cost and friction of standard withdrawals may exceed the value of their remaining on-chain assets. |
40 | 36 |
|
@@ -125,103 +121,39 @@ The overall automated migration system consists of both off-chain and on-chain c |
125 | 121 |
|
126 | 122 | --- |
127 | 123 |
|
| 124 | +## Deployed Contracts |
| 125 | +The final deployed contract addresses are listed below. |
| 126 | +A high-level description of each component is provided in the [Core Contracts](#core-contracts) section above. |
| 127 | + |
| 128 | +### Mainnet |
| 129 | +- **Ethereum** |
| 130 | + - [StarkExchangeMigration](https://etherscan.io/address/0x58b5484F489f7858DC83a5a677338074b57de806) |
| 131 | + - [VaultRootSenderAdapter](https://etherscan.io/address/0x9Fabd9Cc71f15b9Cfd717E117FBb9cfD9fC7cd32) |
| 132 | +- **Immutable zkEVM** |
| 133 | + - [VaultWithdrawalProcessor](https://explorer.immutable.com/address/0xCeA34C706C4A18E103575832Dd21fD3656026D1E) |
| 134 | + - [VaultEscapeProofVerifier](https://explorer.immutable.com/address/0x9Fabd9Cc71f15b9Cfd717E117FBb9cfD9fC7cd32) |
| 135 | + - [VaultRootReceiverAdapter](https://explorer.immutable.com/address/0x58b5484F489f7858DC83a5a677338074b57de806) |
| 136 | + |
| 137 | +### Testnet |
| 138 | +- **Sepolia** |
| 139 | + - [StarkExchangeMigration](https://sepolia.etherscan.io/address/0x9F9b4A495A62191A4225759Ae7C00906Cc6417B8) |
| 140 | + - [VaultRootSenderAdapter](https://sepolia.etherscan.io/address/0xCeA34C706C4A18E103575832Dd21fD3656026D1E) |
| 141 | +- **Immutable zkEVM Testnet** |
| 142 | + - [VaultWithdrawalProcessor](https://explorer.testnet.immutable.com/address/0xCeA34C706C4A18E103575832Dd21fD3656026D1E) |
| 143 | + - [VaultEscapeProofVerifier](https://explorer.testnet.immutable.com/address/0x9Fabd9Cc71f15b9Cfd717E117FBb9cfD9fC7cd32) |
| 144 | + - [VaultRootReceiverAdapter](https://explorer.testnet.immutable.com/address/0x58b5484F489f7858DC83a5a677338074b57de806) |
| 145 | + |
| 146 | +---- |
128 | 147 |
|
129 | | -## Project Structure |
130 | | - |
131 | | -``` |
132 | | -src/ |
133 | | -├── bridge/ # Bridge and messaging contracts |
134 | | -│ ├── starkex/ # Immutable X bridge contracts |
135 | | -│ ├── zkEVM/ # zkEVM bridge interfaces |
136 | | -│ └── messaging/ # Cross-chain messaging adapters |
137 | | -├── verifiers/ # Proof verification contracts |
138 | | -│ ├── vaults/ # Vault proof verification |
139 | | -│ └── accounts/ # Account proof verification |
140 | | -├── withdrawals/ # Withdrawal processing contracts |
141 | | -└── assets/ # Asset mapping and management |
142 | | -``` |
143 | | - |
144 | | -## Prerequisites |
145 | | - |
146 | | -- [Foundry](https://getfoundry.sh/) 1.0+ |
147 | | -- Solidity 0.8.27+ |
148 | | -- Node.js 18+ (for deployment scripts) |
149 | | - |
150 | | -## Installation |
151 | | - |
152 | | -1. Clone the repository: |
153 | | -```bash |
154 | | -git clone https://github.com/immutable/imx-migration-contracts.git |
155 | | -cd imx-migration-contracts |
156 | | -``` |
157 | | - |
158 | | -2. Install Foundry dependencies: |
159 | | -```bash |
160 | | -forge install |
161 | | -``` |
162 | | - |
163 | | -## Build and Test |
164 | | -Build the contracts: |
165 | | -```bash |
166 | | -forge build |
167 | | -``` |
168 | | - |
169 | | -Run the test suite: |
170 | | -```bash |
171 | | -# Run all tests |
172 | | -forge test |
173 | | - |
174 | | -# Run specific test file |
175 | | -forge test --match-path test/unit/StarkExchangeMigration.t.sol |
176 | | -``` |
177 | | - |
178 | | -## Deployment |
179 | | -### Configuration |
180 | | -The system uses configuration files for deployment. Create a deployment configuration file with the following structure: |
181 | | - |
182 | | -```json |
183 | | -{ |
184 | | - "allow_root_override": false, |
185 | | - "vault_verifier": "0x...", |
186 | | - "operators": { |
187 | | - "disburser": "0x...", |
188 | | - "pauser": "0x...", |
189 | | - "unpauser": "0x..." |
190 | | - }, |
191 | | - "lookup_tables": ["0x...", "0x...", ...], |
192 | | - "asset_mappings": [ |
193 | | - { |
194 | | - "tokenOnIMX": { |
195 | | - "id": 123, |
196 | | - "quantum": 1000000000000000000 |
197 | | - }, |
198 | | - "tokenOnZKEVM": "0x..." |
199 | | - } |
200 | | - ] |
201 | | -} |
202 | | -``` |
203 | | - |
204 | | -### Deploy L2 Contracts |
205 | | - |
206 | | -1. Set environment variables: |
207 | | -```bash |
208 | | -export DEPLOYMENT_CONFIG_FILE="path/to/config.json" |
209 | | -export PRIVATE_KEY="your-private-key" |
210 | | -export RPC_URL="your-rpc-url" |
211 | | -``` |
212 | | - |
213 | | -2. Run deployment script: |
214 | | -```bash |
215 | | -forge script script/DeployL2Contracts.s.sol:DeployL2Contracts \ |
216 | | - --rpc-url $RPC_URL \ |
217 | | - --private-key $PRIVATE_KEY \ |
218 | | - --broadcast \ |
219 | | - --verify |
220 | | -``` |
221 | | - |
222 | | -**Note**: Use `--slow` or `-batch-size 1` when deploying to Tenderly to avoid out-of-order deployments. |
| 148 | +## External Audit |
| 149 | +The contracts in this repository were independently audited by Nethermind Security in February 2026. The full audit report is available [here](./audit/20260209-nethermind-audit.pdf). |
223 | 150 |
|
| 151 | +---- |
224 | 152 |
|
| 153 | +## Build, Test and Deploy |
| 154 | +Instruction for building, testing and deploying these contracts can be found [here](./docs/build-test-deploy.md). |
| 155 | + |
| 156 | +--- |
225 | 157 |
|
226 | 158 | ## Supporting Documents |
227 | 159 | - [Key Decisions and Technical Considerations](https://immutable.atlassian.net/wiki/spaces/~712020640315cc7a594fb28a6b452c5a8ef6a3/pages/3186852061/Key+Technical+Decisions) |
|
0 commit comments