diff --git a/config/executor_addresses.json b/config/executor_addresses.json index 522356c..6943a1d 100644 --- a/config/executor_addresses.json +++ b/config/executor_addresses.json @@ -24,5 +24,10 @@ }, "tenderly_base": { "uniswap_v3": "0x7c7E06d7317e620a185078e236879D2a87fC8d22" + }, + "unichain": { + "uniswap_v2": "0x2E80FBD880379744b46C2aB7249D2949E6696353", + "uniswap_v3": "0x7ba9149EaCC5801279FF8B4d7ECa020bbef18F90", + "uniswap_v4": "0x475EB503D630C2919DC8B24cB6603E17e69Bfe35" } } diff --git a/config/router_addresses.json b/config/router_addresses.json index bac76ba..391aa56 100644 --- a/config/router_addresses.json +++ b/config/router_addresses.json @@ -1,4 +1,5 @@ { "ethereum": "0x0178f471f219737c51d6005556d2f44de011a08a", - "base": "0xC2C23b0199525DE070D126860133dc3badaD2EEb" + "base": "0xC2C23b0199525DE070D126860133dc3badaD2EEb", + "unichain": "0x9BDC3bE75440dBE563527CB39BB11cFBD1E21b09" } diff --git a/foundry/hardhat.config.js b/foundry/hardhat.config.js index f1395ae..ad1c611 100644 --- a/foundry/hardhat.config.js +++ b/foundry/hardhat.config.js @@ -35,6 +35,11 @@ module.exports = { url: process.env.RPC_URL, accounts: [process.env.PRIVATE_KEY], chainId: 8453 + }, + unichain: { + url: process.env.RPC_URL, + accounts: [process.env.PRIVATE_KEY], + chainId: 130 } }, @@ -45,6 +50,20 @@ module.exports = { }, etherscan: { - apiKey: process.env.BLOCKCHAIN_EXPLORER_API_KEY, + apiKey: { + unichain: process.env.BLOCKCHAIN_EXPLORER_API_KEY, + base: process.env.BLOCKCHAIN_EXPLORER_API_KEY, + ethereum: process.env.BLOCKCHAIN_EXPLORER_API_KEY, + }, + customChains: [ + { + network: "unichain", + chainId: 130, + urls: { + apiURL: "https://api.uniscan.xyz/api", + browserURL: "https://www.uniscan.xyz/" + } + } + ] } }; diff --git a/foundry/scripts/deploy-executors.js b/foundry/scripts/deploy-executors.js index 6c0f55b..fa32960 100644 --- a/foundry/scripts/deploy-executors.js +++ b/foundry/scripts/deploy-executors.js @@ -36,6 +36,7 @@ const executors_to_deploy = { // Args: Ekubo core contract {exchange: "EkuboExecutor", args: [ "0xe0e0e08A6A4b9Dc7bD67BCB7aadE5cF48157d444" + ]} ], "base":[ // Args: Factory, Pool Init Code Hash @@ -67,6 +68,20 @@ const executors_to_deploy = { {exchange: "UniswapV4Executor", args: ["0x498581ff718922c3f8e6a244956af099b2652b2b"]}, {exchange: "BalancerV2Executor", args: []}, ], + "unichain":[ + // Args: Factory, Pool Init Code Hash + {exchange: "UniswapV2Executor", args: [ + "0x1f98400000000000000000000000000000000002", + "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f" + ]}, + // USV3 - Args: Factory, Pool Init Code Hash + {exchange: "UniswapV3Executor", args: [ + "0x1f98400000000000000000000000000000000003", + "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54" + ]}, + // Args: Pool manager + {exchange: "UniswapV4Executor", args: ["0x1f98400000000000000000000000000000000004"]}, + ], } async function main() { diff --git a/foundry/scripts/deploy-router.js b/foundry/scripts/deploy-router.js index 87e0f15..103fd0d 100644 --- a/foundry/scripts/deploy-router.js +++ b/foundry/scripts/deploy-router.js @@ -13,6 +13,10 @@ async function main() { // permit2 address is the same as on ethereum permit2 = "0x000000000022D473030F116dDEE9F6B43aC78BA3"; weth = "0x4200000000000000000000000000000000000006"; + } else if (network === "unichain") { + // permit2 address is the same as on ethereum + permit2 = "0x000000000022D473030F116dDEE9F6B43aC78BA3"; + weth = "0x4200000000000000000000000000000000000006"; } else { throw new Error(`Unsupported network: ${network}`); } diff --git a/foundry/scripts/roles.json b/foundry/scripts/roles.json index 3a7ad7a..2d477fe 100644 --- a/foundry/scripts/roles.json +++ b/foundry/scripts/roles.json @@ -58,5 +58,20 @@ "FUND_RESCUER_ROLE": [ "0xb0A77f867Fcec1e9b271Ee17354bC6bBC0dD5662" ] + }, + "unichain": { + "EXECUTOR_SETTER_ROLE": [ + "0x810A00Fa9287700871ba0f870Cd89D7Eac08D48C" + ], + "FEE_SETTER_ROLE": [], + "PAUSER_ROLE": [ + "0x810A00Fa9287700871ba0f870Cd89D7Eac08D48C" + ], + "UNPAUSER_ROLE": [ + "0x810A00Fa9287700871ba0f870Cd89D7Eac08D48C" + ], + "FUND_RESCUER_ROLE": [ + "0x810A00Fa9287700871ba0f870Cd89D7Eac08D48C" + ] } } \ No newline at end of file diff --git a/src/bin/tycho-encode.rs b/src/bin/tycho-encode.rs index 8cc3bd6..c0216fa 100644 --- a/src/bin/tycho-encode.rs +++ b/src/bin/tycho-encode.rs @@ -35,7 +35,6 @@ use tycho_execution::encoding::{ /// "token_out": "0x...", /// "split": 0.0 /// }], -/// "router_address": "0x..." /// } /// ``` #[command(author, version, about, long_about = None)]