From 68b6ee58da18f78c3750ba4854f32787175f20eb Mon Sep 17 00:00:00 2001 From: Akash Date: Thu, 20 Feb 2025 21:29:35 +0400 Subject: [PATCH 1/2] fix: deployment scripts --- deployments/dev_addresses.json | 24 +-- deployments/dev_addresses_composer.json | 32 ++++ deployments/dev_addresses_geth.json | 38 ---- hardhat-scripts/deploy/1.deploy.ts | 229 ++++++++++++------------ hardhat-scripts/deploy/2.roles.ts | 19 +- hardhat-scripts/deploy/4.connect.ts | 9 +- hardhat-scripts/deploy/6.setupEnv.ts | 12 +- hardhat-scripts/utils/deployUtils.ts | 2 +- package.json | 2 +- 9 files changed, 184 insertions(+), 183 deletions(-) create mode 100644 deployments/dev_addresses_composer.json delete mode 100644 deployments/dev_addresses_geth.json diff --git a/deployments/dev_addresses.json b/deployments/dev_addresses.json index 8e2f78f9..ae35be28 100644 --- a/deployments/dev_addresses.json +++ b/deployments/dev_addresses.json @@ -8,18 +8,18 @@ "startBlock": 125604419 }, "7625382": { - "AddressResolver": "0x5d16F235471531521ec23e1c75F26F55b15f51F1", - "AddressResolverImpl": "0x3d981a431c38B9b781178279AecFb91509BDa645", - "AuctionManager": "0x7DC27a33f99252FaF2388416620E3178597cfBdC", - "AuctionManagerImpl": "0x48228f8ebdCA92B7F7fdC9C545372123f5Bcc4C4", - "DeliveryHelper": "0xC415FA4baE9183a2439FA0a06dd558bb4FCc0051", - "DeliveryHelperImpl": "0xc67BEa5A43cb0D908866F3577D1f967f901Dbc75", - "ERC1967Factory": "0xC36e58c0c505435179417a318333e4a7C1867247", - "FeesManager": "0x7B03A532aCea55bc06aB39b844797dD5d82Af012", - "FeesManagerImpl": "0xaF369f1fc1523dc8086c2ACDD7e7A73aA8732FE6", - "startBlock": 5534, - "WatcherPrecompile": "0x71B25Fc5f47E786574aFca919Ca61611168d94D0", - "WatcherPrecompileImpl": "0xCF9728Dc37da5c5B08780F818B6fB65c64d6a402" + "AddressResolver": "0xE0692012B818cdc72972CbF3A2dCbf5299FFa2bA", + "AddressResolverImpl": "0x764F5812F89584c053652B6Bcec62050F649ABf3", + "AuctionManager": "0x977036A2B56cE7Bc87161614802fE381629A5298", + "AuctionManagerImpl": "0x484fDd713323bD8cfb944620c20986A7AEBa4880", + "DeliveryHelper": "0x0e89e59C9FB5e440F07a8A67D8bBC53Ec07e92C0", + "DeliveryHelperImpl": "0x635E9fEac9fe3Ff19c41974B3a457D52F9521b9B", + "ERC1967Factory": "0x794b92C2Ade7D33Fb34d138B13014C63aB27CBC0", + "FeesManager": "0xBC83ad0Df55a3B52B93D3f16d466283902b31BEB", + "FeesManagerImpl": "0xD83B7753212efe1c81CE42F642661701eAeDA80A", + "startBlock": 138, + "WatcherPrecompile": "0x0245a1Aece4bfd16bc85d08B4aFfa5e63CDE8908", + "WatcherPrecompileImpl": "0xaf76e485B26C5c5964b403CA2C5c1a9D6Cd8022F" }, "11155420": { "ContractFactoryPlug": "0x43942f05D5b44DC6Ca19b316dF54BE87FcF9D583", diff --git a/deployments/dev_addresses_composer.json b/deployments/dev_addresses_composer.json new file mode 100644 index 00000000..8e2f78f9 --- /dev/null +++ b/deployments/dev_addresses_composer.json @@ -0,0 +1,32 @@ +{ + "421614": { + "ContractFactoryPlug": "0x38cAf1D477F806Fae8aed84ecD68E00eF6c2cB0c", + "FastSwitchboard": "0xB16475054Dc6D8bfbd80daE964bbE416a4B7a791", + "FeesPlug": "0x228AA70a66498FC75524371cDAfB31958Ca5F12D", + "Socket": "0x963eC83119862cD518826DA9177B348cFdfebaA4", + "SocketBatcher": "0x2db8cb4f841aa944869ECD5002e8153642A30971", + "startBlock": 125604419 + }, + "7625382": { + "AddressResolver": "0x5d16F235471531521ec23e1c75F26F55b15f51F1", + "AddressResolverImpl": "0x3d981a431c38B9b781178279AecFb91509BDa645", + "AuctionManager": "0x7DC27a33f99252FaF2388416620E3178597cfBdC", + "AuctionManagerImpl": "0x48228f8ebdCA92B7F7fdC9C545372123f5Bcc4C4", + "DeliveryHelper": "0xC415FA4baE9183a2439FA0a06dd558bb4FCc0051", + "DeliveryHelperImpl": "0xc67BEa5A43cb0D908866F3577D1f967f901Dbc75", + "ERC1967Factory": "0xC36e58c0c505435179417a318333e4a7C1867247", + "FeesManager": "0x7B03A532aCea55bc06aB39b844797dD5d82Af012", + "FeesManagerImpl": "0xaF369f1fc1523dc8086c2ACDD7e7A73aA8732FE6", + "startBlock": 5534, + "WatcherPrecompile": "0x71B25Fc5f47E786574aFca919Ca61611168d94D0", + "WatcherPrecompileImpl": "0xCF9728Dc37da5c5B08780F818B6fB65c64d6a402" + }, + "11155420": { + "ContractFactoryPlug": "0x43942f05D5b44DC6Ca19b316dF54BE87FcF9D583", + "FastSwitchboard": "0xA448B8CD7325AA38d4E533cE209471B7ce01901F", + "FeesPlug": "0x17b3c7c5552fA4e730888558A8912cFD7A8b042e", + "Socket": "0xaF57894A5244711a7bEBE582E9e121980f1aa95e", + "SocketBatcher": "0x977e2f721f8958b2F776d2dc693D04A1256ed426", + "startBlock": 24127420 + } +} diff --git a/deployments/dev_addresses_geth.json b/deployments/dev_addresses_geth.json deleted file mode 100644 index 9498b9b1..00000000 --- a/deployments/dev_addresses_geth.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "421614": { - "ContractFactoryPlug": "0x1dc20d27F06876cA74ee4e2E9a4724f06a4a5E54", - "FastSwitchboard": "0xaFFfaD81e6DDE509Bd83Ab2024225b2FF537BeA7", - "FeesPlug": "0xb2B779ab8FC851bCE986d25B2824933B0Cd101d9", - "Hasher": "0x49f24A72e738Fe86263Aa26696370972e049498B", - "SignatureVerifier": "0xb6d39d1dB2cB14043182a008EfFC079A9C578208", - "Socket": "0x9B06e2Dae351ed8B1112C036e5c306E8fBe4C9c5", - "SocketBatcher": "0xd627BFe7d2fCAC1147c996a6F2CAaB2E1e1bD344", - "startBlock": 124035386 - }, - "7625382": { - "AddressResolver": "0x1287D33646d763Ff8237Aa7BE7d92Fc918c66589", - "AddressResolverImpl": "0x8662FC08dEC7c61Dd3432fAF45a5bC024BB60B00", - "AuctionManager": "0xE3806Bc41FEAFCAA2480E702fF02dA14F767bF0F", - "AuctionManagerImpl": "0x4C68058509d754Cc0dE474eBC20aE94e4787E704", - "DeliveryHelper": "0x4D8Fb6e8a5294ed0644f462b5723ee228ecf9958", - "DeliveryHelperImpl": "0x3c9f5172feb0dDfC06176cE67B566EFbb01CCe98", - "ERC1967Factory": "0xbBfb525ADc6eC38Ef0D4b807d327c2Dd1C286de1", - "FeesManager": "0x886682a69D6c0240EB850cc2e42c5B4B74449e82", - "FeesManagerImpl": "0xF4D3BDe438416938217d4624c82AEbEb46CeD371", - "SignatureVerifier": "0x366Dea9AC69fb9D45b6756587D2fE9B4c14197F6", - "SignatureVerifierImpl": "0x3cf47Ad0F040dFF1208E649C8f8e23e6B5A08916", - "startBlock": 18, - "WatcherPrecompile": "0xaCf94Cd4A7e70304F5CA6294CDAe3CBe78Ea6A86", - "WatcherPrecompileImpl": "0x8F18fC10a8b40b548C6F04Fb252481c783A9ace0" - }, - "11155420": { - "ContractFactoryPlug": "0x0EE19F0D0e34Cdd2eb4F61E24DC837b0b7c34e69", - "FastSwitchboard": "0x70bfB36F8b8de7763F1D52d954225ae88F6Ed595", - "FeesPlug": "0x7F5D263572469Fdf1875Cd858D557B45e9FC7f23", - "Hasher": "0xe37D675646A6FEEC3E41A0FF9535E0E716f5cD89", - "SignatureVerifier": "0x0452225B52Ef6134499232CbBEDF05fD8cc38530", - "Socket": "0x0BAAD473580c9F7Ca8b2758759aF3ce5E3154bC6", - "SocketBatcher": "0xCf731f35EFd775F692fe24e650e75Fd64bBaD810", - "startBlock": 23911773 - } -} diff --git a/hardhat-scripts/deploy/1.deploy.ts b/hardhat-scripts/deploy/1.deploy.ts index a3c1cdcf..c7978337 100644 --- a/hardhat-scripts/deploy/1.deploy.ts +++ b/hardhat-scripts/deploy/1.deploy.ts @@ -9,7 +9,7 @@ import { Contract, Signer, Wallet, providers } from "ethers"; import { ethers } from "hardhat"; import dev_addresses from "../../deployments/dev_addresses.json"; import { BID_TIMEOUT, EVMX_CHAIN_ID, EXPIRY_TIME, MAX_LIMIT } from "../config"; -import { auctionEndDelaySeconds, chains, logConfig } from "../config/config"; +import { auctionEndDelaySeconds, chains, mode, logConfig } from "../config/config"; import { CORE_CONTRACTS, EVMxCoreContracts } from "../constants"; import { getImplementationAddress } from "../migration/migrate-proxies"; import { @@ -21,123 +21,19 @@ import { config(); let offChainVMOwner: string; + const main = async () => { - try { logConfig(); - let addresses: DeploymentAddresses; - let deployUtils: DeployParams = { - addresses: {} as ChainSocketAddresses, - mode: DeploymentMode.DEV, - signer: new ethers.Wallet(process.env.SOCKET_SIGNER_KEY as string), - currentChainSlug: EVMX_CHAIN_ID as ChainSlug, - }; - try { - await deployWatcherVMContracts(); - - console.log("Deploying Socket contracts"); - addresses = dev_addresses as unknown as DeploymentAddresses; - for (const chain of chains) { - try { - let chainAddresses: ChainSocketAddresses = addresses[chain] - ? (addresses[chain] as ChainSocketAddresses) - : ({} as ChainSocketAddresses); - - const providerInstance = getProviderFromChainSlug(chain); - const signer: Wallet = new ethers.Wallet( - process.env.SOCKET_SIGNER_KEY as string, - providerInstance - ); - const socketOwner = signer.address; - - deployUtils = { - addresses: chainAddresses, - mode: DeploymentMode.DEV, - signer: signer, - currentChainSlug: chain as ChainSlug, - }; - - let contractName = CORE_CONTRACTS.Socket; - const socket: Contract = await getOrDeploy( - contractName, - contractName, - `contracts/protocol/socket/${contractName}.sol`, - [chain as ChainSlug, socketOwner, "EVMX"], - deployUtils - ); - deployUtils.addresses[contractName] = socket.address; - - contractName = CORE_CONTRACTS.SocketBatcher; - const batcher: Contract = await getOrDeploy( - contractName, - contractName, - `contracts/protocol/socket/${contractName}.sol`, - [socketOwner, socket.address], - deployUtils - ); - deployUtils.addresses[contractName] = batcher.address; - - contractName = CORE_CONTRACTS.FastSwitchboard; - const sb: Contract = await getOrDeploy( - contractName, - contractName, - `contracts/protocol/socket/switchboard/${contractName}.sol`, - [chain as ChainSlug, socket.address, socketOwner], - deployUtils - ); - deployUtils.addresses[contractName] = sb.address; - - contractName = CORE_CONTRACTS.FeesPlug; - const feesPlug: Contract = await getOrDeploy( - contractName, - contractName, - `contracts/protocol/payload-delivery/${contractName}.sol`, - [socket.address, socketOwner], - deployUtils - ); - deployUtils.addresses[contractName] = feesPlug.address; - - contractName = CORE_CONTRACTS.ContractFactoryPlug; - const contractFactoryPlug: Contract = await getOrDeploy( - contractName, - contractName, - `contracts/protocol/payload-delivery/${contractName}.sol`, - [socket.address, socketOwner], - deployUtils - ); - deployUtils.addresses[contractName] = contractFactoryPlug.address; - - deployUtils.addresses.startBlock = deployUtils.addresses.startBlock - ? deployUtils.addresses.startBlock - : await deployUtils.signer.provider?.getBlockNumber(); - - await storeAddresses( - deployUtils.addresses, - chain, - DeploymentMode.DEV - ); - } catch (error) { - await storeAddresses( - deployUtils.addresses, - chain, - DeploymentMode.DEV - ); - console.log("Error:", error); - } - } - } catch (error) { - console.error("Error in main deployment:", error); - } - } catch (error) { - console.error("Error in overall deployment process:", error); - } + await deployEVMxContracts(); + await deploySocketContracts(); }; -const deployWatcherVMContracts = async () => { +const deployEVMxContracts = async () => { try { let addresses: DeploymentAddresses; let deployUtils: DeployParams = { addresses: {} as ChainSocketAddresses, - mode: DeploymentMode.DEV, + mode, signer: new ethers.Wallet(process.env.WATCHER_PRIVATE_KEY as string), currentChainSlug: EVMX_CHAIN_ID as ChainSlug, }; @@ -160,7 +56,7 @@ const deployWatcherVMContracts = async () => { deployUtils = { addresses: chainAddresses, - mode: DeploymentMode.DEV, + mode, signer: signer, currentChainSlug: chain as ChainSlug, }; @@ -267,13 +163,13 @@ const deployWatcherVMContracts = async () => { await storeAddresses( deployUtils.addresses, chain as ChainSlug, - DeploymentMode.DEV + mode ); } catch (error) { await storeAddresses( deployUtils.addresses, chain as ChainSlug, - DeploymentMode.DEV + mode ); console.log("Error:", error); } @@ -282,6 +178,113 @@ const deployWatcherVMContracts = async () => { } }; + +const deploySocketContracts = async () => { + try { + let addresses: DeploymentAddresses; + let deployUtils: DeployParams = { + addresses: {} as ChainSocketAddresses, + mode, + signer: new ethers.Wallet(process.env.SOCKET_SIGNER_KEY as string), + currentChainSlug: EVMX_CHAIN_ID as ChainSlug, + }; + console.log("Deploying Socket contracts"); + addresses = dev_addresses as unknown as DeploymentAddresses; + + for (const chain of chains) { + try { + let chainAddresses: ChainSocketAddresses = addresses[chain] + ? (addresses[chain] as ChainSocketAddresses) + : ({} as ChainSocketAddresses); + + const providerInstance = getProviderFromChainSlug(chain); + const signer: Wallet = new ethers.Wallet( + process.env.SOCKET_SIGNER_KEY as string, + providerInstance + ); + const socketOwner = signer.address; + + deployUtils = { + addresses: chainAddresses, + mode, + signer: signer, + currentChainSlug: chain as ChainSlug, + }; + + let contractName = CORE_CONTRACTS.Socket; + const socket: Contract = await getOrDeploy( + contractName, + contractName, + `contracts/protocol/socket/${contractName}.sol`, + [chain as ChainSlug, socketOwner, "EVMX"], + deployUtils + ); + deployUtils.addresses[contractName] = socket.address; + + contractName = CORE_CONTRACTS.SocketBatcher; + const batcher: Contract = await getOrDeploy( + contractName, + contractName, + `contracts/protocol/socket/${contractName}.sol`, + [socketOwner, socket.address], + deployUtils + ); + deployUtils.addresses[contractName] = batcher.address; + + contractName = CORE_CONTRACTS.FastSwitchboard; + const sb: Contract = await getOrDeploy( + contractName, + contractName, + `contracts/protocol/socket/switchboard/${contractName}.sol`, + [chain as ChainSlug, socket.address, socketOwner], + deployUtils + ); + deployUtils.addresses[contractName] = sb.address; + + contractName = CORE_CONTRACTS.FeesPlug; + const feesPlug: Contract = await getOrDeploy( + contractName, + contractName, + `contracts/protocol/payload-delivery/${contractName}.sol`, + [socket.address, socketOwner], + deployUtils + ); + deployUtils.addresses[contractName] = feesPlug.address; + + contractName = CORE_CONTRACTS.ContractFactoryPlug; + const contractFactoryPlug: Contract = await getOrDeploy( + contractName, + contractName, + `contracts/protocol/payload-delivery/${contractName}.sol`, + [socket.address, socketOwner], + deployUtils + ); + deployUtils.addresses[contractName] = contractFactoryPlug.address; + + deployUtils.addresses.startBlock = deployUtils.addresses.startBlock + ? deployUtils.addresses.startBlock + : await deployUtils.signer.provider?.getBlockNumber(); + + await storeAddresses( + deployUtils.addresses, + chain, + mode + ); + } catch (error) { + await storeAddresses( + deployUtils.addresses, + chain, + mode + ); + console.log("Error while deploying socket contracts on chain", chain, error); + } + } + } catch (error) { + console.error("Error in socket deployment:", error); + } +} + + async function initializeSigVerifier( contract: Contract, getterMethod: string, diff --git a/hardhat-scripts/deploy/2.roles.ts b/hardhat-scripts/deploy/2.roles.ts index 4bd15a2a..e3410da0 100644 --- a/hardhat-scripts/deploy/2.roles.ts +++ b/hardhat-scripts/deploy/2.roles.ts @@ -47,12 +47,16 @@ export const main = async () => { ); contract = contract.connect(signer); - const targetAddress = - contractName === CORE_CONTRACTS.FastSwitchboard - ? watcher - : signer.address; for (const roleName of roles) { + console.log(`checking ${roleName} role for ${contractName} on ${chain}`) + const targetAddress = + contractName === CORE_CONTRACTS.FastSwitchboard && + roleName === ROLES.WATCHER_ROLE + ? watcher + : signer.address; + + const roleHash = getRoleHash(roleName); const hasRole = await contract.callStatic["hasRole(bytes32,address)"]( roleHash, @@ -63,12 +67,7 @@ export const main = async () => { ); if (!hasRole) { - let tx; - if (contractName === CORE_CONTRACTS.FastSwitchboard) { - tx = await contract.grantWatcherRole(targetAddress); - } else { - tx = await contract.grantRole(roleHash, targetAddress); - } + let tx = await contract.grantRole(roleHash, targetAddress); console.log( `granting ${roleName} role to ${targetAddress} for ${contractName}`, chain, diff --git a/hardhat-scripts/deploy/4.connect.ts b/hardhat-scripts/deploy/4.connect.ts index 5a3c53e2..c13002e8 100644 --- a/hardhat-scripts/deploy/4.connect.ts +++ b/hardhat-scripts/deploy/4.connect.ts @@ -17,11 +17,16 @@ export type AppGatewayConfig = { }; // Maps plug contracts to their corresponding app gateways export const getAppGateway = (plug: string, addresses: DeploymentAddresses) => { + let address: string = ''; switch (plug) { case CORE_CONTRACTS.ContractFactoryPlug: - return addresses?.[EVMX_CHAIN_ID]?.[EVMxCoreContracts.DeliveryHelper]; + address = addresses?.[EVMX_CHAIN_ID]?.[EVMxCoreContracts.DeliveryHelper]; + if (!address) throw new Error(`DeliveryHelper not found on EVMX`); + return address; case CORE_CONTRACTS.FeesPlug: - return addresses?.[EVMX_CHAIN_ID]?.[EVMxCoreContracts.FeesManager]; + address = addresses?.[EVMX_CHAIN_ID]?.[EVMxCoreContracts.FeesManager]; + if (!address) throw new Error(`FeesManager not found on EVMX`); + return address; default: throw new Error(`Unknown plug: ${plug}`); } diff --git a/hardhat-scripts/deploy/6.setupEnv.ts b/hardhat-scripts/deploy/6.setupEnv.ts index 641fa4ce..7d6a9aef 100644 --- a/hardhat-scripts/deploy/6.setupEnv.ts +++ b/hardhat-scripts/deploy/6.setupEnv.ts @@ -24,12 +24,12 @@ const updatedLines = lines.map((line) => { return `WATCHER_PRECOMPILE=${latestAddresses["WatcherPrecompile"]}`; } else if (line.startsWith("AUCTION_MANAGER=")) { return `AUCTION_MANAGER=${latestAddresses["AuctionManager"]}`; - } else if (line.startsWith("ARBITRUM_FEES_PLUG=")) { - return `ARBITRUM_FEES_PLUG=${latestAddresses["FeesManager"]}`; - } else if (line.startsWith("SOCKET=")) { - return `SOCKET=${dev_addresses[ChainSlug.ARBITRUM_SEPOLIA]["Socket"]}`; - } else if (line.startsWith("SWITCHBOARD=")) { - return `SWITCHBOARD=${ + } else if (line.startsWith("FEES_MANAGER=")) { + return `FEES_MANAGER=${latestAddresses["FeesManager"]}`; + } else if (line.startsWith("ARBITRUM_SOCKET=")) { + return `ARBITRUM_SOCKET=${dev_addresses[ChainSlug.ARBITRUM_SEPOLIA]["Socket"]}`; + } else if (line.startsWith("ARBITRUM_SWITCHBOARD=")) { + return `ARBITRUM_SWITCHBOARD=${ dev_addresses[ChainSlug.ARBITRUM_SEPOLIA]["FastSwitchboard"] }`; } else if (line.startsWith("ARBITRUM_FEES_PLUG=")) { diff --git a/hardhat-scripts/utils/deployUtils.ts b/hardhat-scripts/utils/deployUtils.ts index e847edc6..e0404c46 100644 --- a/hardhat-scripts/utils/deployUtils.ts +++ b/hardhat-scripts/utils/deployUtils.ts @@ -15,7 +15,7 @@ import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers"; import { overrides } from "../utils"; import { VerifyArgs } from "../verify"; -export const deploymentsPath = path.join(__dirname, `/../../../deployments/`); +export const deploymentsPath = path.join(__dirname, `/../../deployments/`); export const deployedAddressPath = (mode: DeploymentMode) => deploymentsPath + `${mode}_addresses.json`; diff --git a/package.json b/package.json index c7668da8..d4f8fa9b 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "publishConfig": { "access": "public" }, - "version": "1.0.9", + "version": "1.0.10", "description": "socket protocol", "scripts": { "build": "hardhat export-abi && tsc --project lib.tsconfig.json", From 5610135b76ddc739229d03e698366cf87d1f18a8 Mon Sep 17 00:00:00 2001 From: Akash Date: Fri, 21 Feb 2025 15:26:36 +0400 Subject: [PATCH 2/2] feat: first version deployed --- deployments/dev_addresses.json | 32 ++++---- deployments/dev_verification.json | 112 +++++++-------------------- foundry.toml | 2 +- hardhat-scripts/deploy/1.deploy.ts | 43 ++++------ hardhat-scripts/deploy/2.roles.ts | 6 +- hardhat-scripts/deploy/4.connect.ts | 4 +- hardhat-scripts/deploy/6.setupEnv.ts | 4 +- hardhat-scripts/utils/overrides.ts | 6 +- package.json | 2 +- setupInfraContracts.sh | 14 ++-- testScript.sh | 7 +- 11 files changed, 86 insertions(+), 146 deletions(-) diff --git a/deployments/dev_addresses.json b/deployments/dev_addresses.json index ae35be28..fb1d2e3b 100644 --- a/deployments/dev_addresses.json +++ b/deployments/dev_addresses.json @@ -1,30 +1,30 @@ { "421614": { - "ContractFactoryPlug": "0x38cAf1D477F806Fae8aed84ecD68E00eF6c2cB0c", + "ContractFactoryPlug": "0x146dd9Fc049501675533a455835989684a2f79C1", "FastSwitchboard": "0xB16475054Dc6D8bfbd80daE964bbE416a4B7a791", - "FeesPlug": "0x228AA70a66498FC75524371cDAfB31958Ca5F12D", + "FeesPlug": "0xa08Dac27E27c49A2535b36064c370e6e8B3A0B9a", "Socket": "0x963eC83119862cD518826DA9177B348cFdfebaA4", "SocketBatcher": "0x2db8cb4f841aa944869ECD5002e8153642A30971", "startBlock": 125604419 }, "7625382": { - "AddressResolver": "0xE0692012B818cdc72972CbF3A2dCbf5299FFa2bA", - "AddressResolverImpl": "0x764F5812F89584c053652B6Bcec62050F649ABf3", - "AuctionManager": "0x977036A2B56cE7Bc87161614802fE381629A5298", - "AuctionManagerImpl": "0x484fDd713323bD8cfb944620c20986A7AEBa4880", - "DeliveryHelper": "0x0e89e59C9FB5e440F07a8A67D8bBC53Ec07e92C0", - "DeliveryHelperImpl": "0x635E9fEac9fe3Ff19c41974B3a457D52F9521b9B", - "ERC1967Factory": "0x794b92C2Ade7D33Fb34d138B13014C63aB27CBC0", - "FeesManager": "0xBC83ad0Df55a3B52B93D3f16d466283902b31BEB", - "FeesManagerImpl": "0xD83B7753212efe1c81CE42F642661701eAeDA80A", - "startBlock": 138, - "WatcherPrecompile": "0x0245a1Aece4bfd16bc85d08B4aFfa5e63CDE8908", - "WatcherPrecompileImpl": "0xaf76e485B26C5c5964b403CA2C5c1a9D6Cd8022F" + "AddressResolver": "0x7480D8D4B1929e751984b01eE877A9D65e1F3737", + "AddressResolverImpl": "0xcc9486bce931041d1393921b32f7b4C60F6eAA99", + "AuctionManager": "0x50E5140d3601812Dc11f49a39CF9520567731c82", + "AuctionManagerImpl": "0xd6F9087DaBe64649c33B20B444eCcE19cca97436", + "DeliveryHelper": "0x862f14446ce869218C04c29507131B68119B4CEd", + "DeliveryHelperImpl": "0xD4f1AE0d51F61dda1476BD43953EF1878556B74c", + "ERC1967Factory": "0x157FEE5a69B538AD189AbB863eeAfD24552DED23", + "FeesManager": "0x80bEc58A00993dc874Ab2fAe56621af24eF06bA5", + "FeesManagerImpl": "0x187058842C78675eA08572E0edc9598271dEF278", + "startBlock": 168, + "WatcherPrecompile": "0x102A1F3546754B21D6a6BA90B54b59Da30bcb3B4", + "WatcherPrecompileImpl": "0x0429DB4f0a97F8c6E3D84399bBdA3e03B62b03A3" }, "11155420": { - "ContractFactoryPlug": "0x43942f05D5b44DC6Ca19b316dF54BE87FcF9D583", + "ContractFactoryPlug": "0xDF769F323560b54F1370a407d3aE6fC99AaAeF75", "FastSwitchboard": "0xA448B8CD7325AA38d4E533cE209471B7ce01901F", - "FeesPlug": "0x17b3c7c5552fA4e730888558A8912cFD7A8b042e", + "FeesPlug": "0x5e5CF700c97BC8B3F6215D98E65f85D4A44d7D06", "Socket": "0xaF57894A5244711a7bEBE582E9e121980f1aa95e", "SocketBatcher": "0x977e2f721f8958b2F776d2dc693D04A1256ed426", "startBlock": 24127420 diff --git a/deployments/dev_verification.json b/deployments/dev_verification.json index 5106392d..6bb8f277 100644 --- a/deployments/dev_verification.json +++ b/deployments/dev_verification.json @@ -1,50 +1,42 @@ { - "421614": [ + "421614": [], + "7625382": [ [ - "0x38cAf1D477F806Fae8aed84ecD68E00eF6c2cB0c", - "ContractFactoryPlug", - "contracts/protocol/payload-delivery/ContractFactoryPlug.sol", - [ - "0x963eC83119862cD518826DA9177B348cFdfebaA4", - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18" - ] + "0xd6F9087DaBe64649c33B20B444eCcE19cca97436", + "AuctionManager", + "contracts/protocol/payload-delivery/app-gateway/AuctionManager.sol", + [] ], [ - "0x228AA70a66498FC75524371cDAfB31958Ca5F12D", - "FeesPlug", - "contracts/protocol/payload-delivery/FeesPlug.sol", - [ - "0x963eC83119862cD518826DA9177B348cFdfebaA4", - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18" - ] + "0xD4f1AE0d51F61dda1476BD43953EF1878556B74c", + "DeliveryHelper", + "contracts/protocol/payload-delivery/app-gateway/DeliveryHelper.sol", + [] ], [ - "0xB16475054Dc6D8bfbd80daE964bbE416a4B7a791", - "FastSwitchboard", - "contracts/protocol/socket/switchboard/FastSwitchboard.sol", - [ - 421614, - "0x963eC83119862cD518826DA9177B348cFdfebaA4", - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18" - ] + "0x187058842C78675eA08572E0edc9598271dEF278", + "FeesManager", + "contracts/protocol/payload-delivery/app-gateway/FeesManager.sol", + [] ], [ - "0x2db8cb4f841aa944869ECD5002e8153642A30971", - "SocketBatcher", - "contracts/protocol/socket/SocketBatcher.sol", - [ - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", - "0x963eC83119862cD518826DA9177B348cFdfebaA4" - ] + "0x0429DB4f0a97F8c6E3D84399bBdA3e03B62b03A3", + "WatcherPrecompile", + "contracts/protocol/watcherPrecompile/WatcherPrecompile.sol", + [] ], [ - "0x963eC83119862cD518826DA9177B348cFdfebaA4", - "Socket", - "contracts/protocol/socket/Socket.sol", - [421614, "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", "EVMX"] - ] - ], - "7625382": [ + "0xcc9486bce931041d1393921b32f7b4C60F6eAA99", + "AddressResolver", + "contracts/protocol/AddressResolver.sol", + [] + ], + [ + "0x157FEE5a69B538AD189AbB863eeAfD24552DED23", + "ERC1967Factory", + "lib/solady/src/utils/ERC1967Factory.sol", + [] + ], [ "0x48228f8ebdCA92B7F7fdC9C545372123f5Bcc4C4", "AuctionManager", @@ -82,49 +74,5 @@ [] ] ], - "11155420": [ - [ - "0x43942f05D5b44DC6Ca19b316dF54BE87FcF9D583", - "ContractFactoryPlug", - "contracts/protocol/payload-delivery/ContractFactoryPlug.sol", - [ - "0xaF57894A5244711a7bEBE582E9e121980f1aa95e", - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18" - ] - ], - [ - "0x17b3c7c5552fA4e730888558A8912cFD7A8b042e", - "FeesPlug", - "contracts/protocol/payload-delivery/FeesPlug.sol", - [ - "0xaF57894A5244711a7bEBE582E9e121980f1aa95e", - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18" - ] - ], - [ - "0xA448B8CD7325AA38d4E533cE209471B7ce01901F", - "FastSwitchboard", - "contracts/protocol/socket/switchboard/FastSwitchboard.sol", - [ - 11155420, - "0xaF57894A5244711a7bEBE582E9e121980f1aa95e", - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18" - ] - ], - [ - "0x977e2f721f8958b2F776d2dc693D04A1256ed426", - "SocketBatcher", - "contracts/protocol/socket/SocketBatcher.sol", - [ - "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", - "0xaF57894A5244711a7bEBE582E9e121980f1aa95e" - ] - ], - [ - "0xaF57894A5244711a7bEBE582E9e121980f1aa95e", - "Socket", - "contracts/protocol/socket/Socket.sol", - [11155420, "0x3339Cf48f1F9cf31b6F8c2664d144c7444eBBB18", "EVMX"] - ] - ] + "11155420": [] } diff --git a/foundry.toml b/foundry.toml index 3c9d312f..06143bda 100644 --- a/foundry.toml +++ b/foundry.toml @@ -6,7 +6,7 @@ libs = ["node_modules", "lib"] ffi = true optimizer = true optimizer_runs = 200 -evm_version = 'shanghai' +evm_version = 'paris' # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options [etherscan] diff --git a/hardhat-scripts/deploy/1.deploy.ts b/hardhat-scripts/deploy/1.deploy.ts index c7978337..92c9c5f0 100644 --- a/hardhat-scripts/deploy/1.deploy.ts +++ b/hardhat-scripts/deploy/1.deploy.ts @@ -9,7 +9,12 @@ import { Contract, Signer, Wallet, providers } from "ethers"; import { ethers } from "hardhat"; import dev_addresses from "../../deployments/dev_addresses.json"; import { BID_TIMEOUT, EVMX_CHAIN_ID, EXPIRY_TIME, MAX_LIMIT } from "../config"; -import { auctionEndDelaySeconds, chains, mode, logConfig } from "../config/config"; +import { + auctionEndDelaySeconds, + chains, + mode, + logConfig, +} from "../config/config"; import { CORE_CONTRACTS, EVMxCoreContracts } from "../constants"; import { getImplementationAddress } from "../migration/migrate-proxies"; import { @@ -23,9 +28,9 @@ config(); let offChainVMOwner: string; const main = async () => { - logConfig(); - await deployEVMxContracts(); - await deploySocketContracts(); + logConfig(); + await deployEVMxContracts(); + await deploySocketContracts(); }; const deployEVMxContracts = async () => { @@ -160,17 +165,9 @@ const deployEVMxContracts = async () => { ? deployUtils.addresses.startBlock : await deployUtils.signer.provider?.getBlockNumber(); - await storeAddresses( - deployUtils.addresses, - chain as ChainSlug, - mode - ); + await storeAddresses(deployUtils.addresses, chain as ChainSlug, mode); } catch (error) { - await storeAddresses( - deployUtils.addresses, - chain as ChainSlug, - mode - ); + await storeAddresses(deployUtils.addresses, chain as ChainSlug, mode); console.log("Error:", error); } } catch (error) { @@ -178,7 +175,6 @@ const deployEVMxContracts = async () => { } }; - const deploySocketContracts = async () => { try { let addresses: DeploymentAddresses; @@ -265,25 +261,20 @@ const deploySocketContracts = async () => { ? deployUtils.addresses.startBlock : await deployUtils.signer.provider?.getBlockNumber(); - await storeAddresses( - deployUtils.addresses, - chain, - mode - ); + await storeAddresses(deployUtils.addresses, chain, mode); } catch (error) { - await storeAddresses( - deployUtils.addresses, + await storeAddresses(deployUtils.addresses, chain, mode); + console.log( + "Error while deploying socket contracts on chain", chain, - mode + error ); - console.log("Error while deploying socket contracts on chain", chain, error); } } } catch (error) { console.error("Error in socket deployment:", error); } -} - +}; async function initializeSigVerifier( contract: Contract, diff --git a/hardhat-scripts/deploy/2.roles.ts b/hardhat-scripts/deploy/2.roles.ts index e3410da0..ba3dd802 100644 --- a/hardhat-scripts/deploy/2.roles.ts +++ b/hardhat-scripts/deploy/2.roles.ts @@ -47,16 +47,16 @@ export const main = async () => { ); contract = contract.connect(signer); - for (const roleName of roles) { - console.log(`checking ${roleName} role for ${contractName} on ${chain}`) + console.log( + `checking ${roleName} role for ${contractName} on ${chain}` + ); const targetAddress = contractName === CORE_CONTRACTS.FastSwitchboard && roleName === ROLES.WATCHER_ROLE ? watcher : signer.address; - const roleHash = getRoleHash(roleName); const hasRole = await contract.callStatic["hasRole(bytes32,address)"]( roleHash, diff --git a/hardhat-scripts/deploy/4.connect.ts b/hardhat-scripts/deploy/4.connect.ts index c13002e8..203badb3 100644 --- a/hardhat-scripts/deploy/4.connect.ts +++ b/hardhat-scripts/deploy/4.connect.ts @@ -17,7 +17,7 @@ export type AppGatewayConfig = { }; // Maps plug contracts to their corresponding app gateways export const getAppGateway = (plug: string, addresses: DeploymentAddresses) => { - let address: string = ''; + let address: string = ""; switch (plug) { case CORE_CONTRACTS.ContractFactoryPlug: address = addresses?.[EVMX_CHAIN_ID]?.[EVMxCoreContracts.DeliveryHelper]; @@ -89,7 +89,7 @@ async function connectPlug( } // Connect the plug - const tx = await plug.functions["initSocket"]( + const tx = await plug.functions["connectSocket"]( appGateway, socket.address, switchboard diff --git a/hardhat-scripts/deploy/6.setupEnv.ts b/hardhat-scripts/deploy/6.setupEnv.ts index 7d6a9aef..edbbfd29 100644 --- a/hardhat-scripts/deploy/6.setupEnv.ts +++ b/hardhat-scripts/deploy/6.setupEnv.ts @@ -27,7 +27,9 @@ const updatedLines = lines.map((line) => { } else if (line.startsWith("FEES_MANAGER=")) { return `FEES_MANAGER=${latestAddresses["FeesManager"]}`; } else if (line.startsWith("ARBITRUM_SOCKET=")) { - return `ARBITRUM_SOCKET=${dev_addresses[ChainSlug.ARBITRUM_SEPOLIA]["Socket"]}`; + return `ARBITRUM_SOCKET=${ + dev_addresses[ChainSlug.ARBITRUM_SEPOLIA]["Socket"] + }`; } else if (line.startsWith("ARBITRUM_SWITCHBOARD=")) { return `ARBITRUM_SWITCHBOARD=${ dev_addresses[ChainSlug.ARBITRUM_SEPOLIA]["FastSwitchboard"] diff --git a/hardhat-scripts/utils/overrides.ts b/hardhat-scripts/utils/overrides.ts index 685ed393..d3966954 100644 --- a/hardhat-scripts/utils/overrides.ts +++ b/hardhat-scripts/utils/overrides.ts @@ -28,9 +28,9 @@ export const chainOverrides: { // gasPrice: 212_000_000_000, }, [EVMX_CHAIN_ID as ChainSlug]: { - // type: 0, - gasLimit: 1_000_000_000, - // gasPrice: 0, + type: 0, + // gasLimit: 1_000_000_000, + gasPrice: 0, }, }; diff --git a/package.json b/package.json index d4f8fa9b..7e70a99c 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "publishConfig": { "access": "public" }, - "version": "1.0.10", + "version": "1.0.11", "description": "socket protocol", "scripts": { "build": "hardhat export-abi && tsc --project lib.tsconfig.json", diff --git a/setupInfraContracts.sh b/setupInfraContracts.sh index c487ae32..71c874b0 100644 --- a/setupInfraContracts.sh +++ b/setupInfraContracts.sh @@ -1,7 +1,7 @@ -npx hardhat run hardhat-scripts/deploy/1.deploy.ts --no-compile -npx hardhat run hardhat-scripts/deploy/2.roles.ts --no-compile -npx hardhat run hardhat-scripts/deploy/3.upgradeManagers.ts --no-compile -npx hardhat run hardhat-scripts/deploy/4.connect.ts --no-compile -export AWS_PROFILE=lldev && npx ts-node hardhat-scripts/deploy/5.upload.ts --resolveJsonModule -npx hardhat run hardhat-scripts/deploy/6.setupEnv.ts --no-compile -npx hardhat run hardhat-scripts/verify/verify.ts --no-compile +time npx hardhat run hardhat-scripts/deploy/1.deploy.ts +time npx hardhat run hardhat-scripts/deploy/2.roles.ts --no-compile +time npx hardhat run hardhat-scripts/deploy/3.upgradeManagers.ts --no-compile +time npx hardhat run hardhat-scripts/deploy/4.connect.ts --no-compile +time export AWS_PROFILE=lldev && npx ts-node hardhat-scripts/deploy/5.upload.ts --resolveJsonModule +time npx hardhat run hardhat-scripts/deploy/6.setupEnv.ts --no-compile +time npx hardhat run hardhat-scripts/verify/verify.ts --no-compile diff --git a/testScript.sh b/testScript.sh index 1157c8a0..eeb2c589 100644 --- a/testScript.sh +++ b/testScript.sh @@ -8,15 +8,14 @@ source .env && forge script script/parallel-counter/checkCounters.s.sol --broadc ## Counter -source .env && forge script script/counter/deployEVMxCounterApp.s.sol --broadcast --skip-simulation +source .env && forge script script/counter/deployEVMxCounterApp.s.sol --broadcast --skip-simulation --legacy --gas-price 0 source .env && forge script script/counter/DeployCounterOnchain.s.sol --broadcast --skip-simulation ## set limits for the app gateway using API -source .env && cast send $DEPLOYER "deployContracts(uint32)" 421614 --private-key $PRIVATE_KEY -source .env && cast send $APP_GATEWAY "incrementCounters(address[])" '[0x4507f726d8ca980e3a1800a8d972792d7ff46f65]' --private-key $PRIVATE_KEY +source .env && cast send $DEPLOYER "deployContracts(uint32)" 421614 --private-key $PRIVATE_KEY --legacy --gas-price 0 +source .env && cast send $APP_GATEWAY "incrementCounters(address[])" '[0x9Bd3efbd1dA4f58Bd4A11421102FE4B08fAb0121]' --private-key $PRIVATE_KEY --legacy --gas-price 0 forge script script/counter/incrementCounters.s.sol --broadcast --skip-simulation forge script script/counter/checkCounters.s.sol --broadcast --skip-simulation - ## Cron source .env && forge script script/cron/DeployGateway.s.sol:DeployGateway --broadcast --skip-simulation source .env && forge script script/cron/SetTimeout.s.sol:SetTimeoutScript --broadcast --skip-simulation