From 99c8d06687eb387000e78ada41ca4aeef01d8a1d Mon Sep 17 00:00:00 2001 From: Eloi Manuel Date: Mon, 11 Dec 2023 17:26:24 +0100 Subject: [PATCH] Refactor deployment scripts --- script/{ => aux}/count-slocs.sh | 0 script/{ => aux}/gasProfile.sh | 0 script/deployManagedAccounts.s.sol | 13 ++++++++----- script/deployMock.s.sol | 8 +++----- script/deployOpenfortPaymasterV2.s.sol | 7 +++---- script/deployUpgradeableAccounts.s.sol | 9 ++++++--- 6 files changed, 20 insertions(+), 17 deletions(-) rename script/{ => aux}/count-slocs.sh (100%) rename script/{ => aux}/gasProfile.sh (100%) diff --git a/script/count-slocs.sh b/script/aux/count-slocs.sh similarity index 100% rename from script/count-slocs.sh rename to script/aux/count-slocs.sh diff --git a/script/gasProfile.sh b/script/aux/gasProfile.sh similarity index 100% rename from script/gasProfile.sh rename to script/aux/gasProfile.sh diff --git a/script/deployManagedAccounts.s.sol b/script/deployManagedAccounts.s.sol index ce585e9..b08832e 100644 --- a/script/deployManagedAccounts.s.sol +++ b/script/deployManagedAccounts.s.sol @@ -17,14 +17,17 @@ contract ManagedOpenfortDeploy is Script { uint256 private constant LOCK_PERIOD = 5 days; address private OPENFORT_GUARDIAN = vm.envAddress("PAYMASTER_OWNER_TESTNET"); - function run() public { + function run() + public + returns (ManagedOpenfortAccount managedOpenfortAccountImpl, ManagedOpenfortFactory openfortFactory) + { bytes32 versionSalt = vm.envBytes32("VERSION_SALT"); vm.startBroadcast(deployPrivKey); // Create an acccount to serve as implementation - ManagedOpenfortAccount managedOpenfortAccountImpl = new ManagedOpenfortAccount{salt: versionSalt}(); + managedOpenfortAccountImpl = new ManagedOpenfortAccount{salt: versionSalt}(); // deploy account factory (beacon) - ManagedOpenfortFactory openfortFactory = new ManagedOpenfortFactory{salt: versionSalt}( + openfortFactory = new ManagedOpenfortFactory{salt: versionSalt}( deployAddress, address(entryPoint), address(managedOpenfortAccountImpl), @@ -34,9 +37,9 @@ contract ManagedOpenfortDeploy is Script { LOCK_PERIOD, OPENFORT_GUARDIAN ); - + vm.stopBroadcast(); - + address accountImpl = openfortFactory.implementation(); console.log("Account implementation: ", accountImpl); diff --git a/script/deployMock.s.sol b/script/deployMock.s.sol index 8e7c638..d6bef29 100644 --- a/script/deployMock.s.sol +++ b/script/deployMock.s.sol @@ -9,14 +9,12 @@ contract DeployMock is Script { uint256 internal deployPrivKey = vm.envUint("PK_PAYMASTER_OWNER_TESTNET"); address internal deployAddress = vm.addr(deployPrivKey); - function run() public { + function run() public returns (MockERC20 mockERC20, MockERC721 mockERC721) { bytes32 versionSalt = bytes32(0x0); vm.startBroadcast(deployPrivKey); - MockERC20 mockERC20 = new MockERC20{salt: versionSalt}(); - (mockERC20); - MockERC721 mockERC721 = new MockERC721{salt: versionSalt}(); - (mockERC721); + mockERC20 = new MockERC20{salt: versionSalt}(); + mockERC721 = new MockERC721{salt: versionSalt}(); vm.stopBroadcast(); } diff --git a/script/deployOpenfortPaymasterV2.s.sol b/script/deployOpenfortPaymasterV2.s.sol index 27e711b..bfcf235 100644 --- a/script/deployOpenfortPaymasterV2.s.sol +++ b/script/deployOpenfortPaymasterV2.s.sol @@ -6,17 +6,16 @@ import {IEntryPoint} from "lib/account-abstraction/contracts/interfaces/IEntryPo import {OpenfortPaymasterV2} from "../contracts/paymaster/OpenfortPaymasterV2.sol"; contract OpenfortPaymasterV2Deploy is Script { - uint256 internal deployPrivKey = vm.envUint("PK_PAYMASTER_OWNER_MAINNET"); + uint256 internal deployPrivKey = vm.envUint("PK_PAYMASTER_OWNER_TESTNET"); address internal deployAddress = vm.addr(deployPrivKey); IEntryPoint internal entryPoint = IEntryPoint((payable(vm.envAddress("ENTRY_POINT_ADDRESS")))); uint32 internal constant UNSTAKEDELAYSEC = 8600; - function run() public { + function run() public returns (OpenfortPaymasterV2 openfortPaymaster) { bytes32 versionSalt = vm.envBytes32("VERSION_SALT"); vm.startBroadcast(deployPrivKey); - OpenfortPaymasterV2 openfortPaymaster = new OpenfortPaymasterV2{salt: versionSalt}(entryPoint, deployAddress); - + openfortPaymaster = new OpenfortPaymasterV2{salt: versionSalt}(entryPoint, deployAddress); entryPoint.depositTo{value: 1.5 ether}(address(openfortPaymaster)); openfortPaymaster.addStake{value: 0.015 ether}(UNSTAKEDELAYSEC); diff --git a/script/deployUpgradeableAccounts.s.sol b/script/deployUpgradeableAccounts.s.sol index 1a50937..bf7496d 100644 --- a/script/deployUpgradeableAccounts.s.sol +++ b/script/deployUpgradeableAccounts.s.sol @@ -17,14 +17,17 @@ contract UpgradeableOpenfortDeploy is Script { uint256 private constant LOCK_PERIOD = 5 days; address private OPENFORT_GUARDIAN = vm.envAddress("PAYMASTER_OWNER_TESTNET"); - function run() public { + function run() + public + returns (UpgradeableOpenfortAccount upgradeableOpenfortAccountImpl, UpgradeableOpenfortFactory openfortFactory) + { bytes32 versionSalt = vm.envBytes32("VERSION_SALT"); vm.startBroadcast(deployPrivKey); // Create an acccount to serve as implementation - UpgradeableOpenfortAccount upgradeableOpenfortAccountImpl = new UpgradeableOpenfortAccount{salt: versionSalt}(); + upgradeableOpenfortAccountImpl = new UpgradeableOpenfortAccount{salt: versionSalt}(); // deploy account factory (beacon) - UpgradeableOpenfortFactory openfortFactory = new UpgradeableOpenfortFactory{salt: versionSalt}( + openfortFactory = new UpgradeableOpenfortFactory{salt: versionSalt}( deployAddress, address(entryPoint), address(upgradeableOpenfortAccountImpl),