From 32a6ce7f2e58124252545a2bfc098271c2410ba9 Mon Sep 17 00:00:00 2001 From: huyhuynh3103 Date: Fri, 1 Mar 2024 14:57:47 +0700 Subject: [PATCH] feat: support param at logic constructor --- script/BaseMigration.s.sol | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/script/BaseMigration.s.sol b/script/BaseMigration.s.sol index 9afc54d..77085b9 100644 --- a/script/BaseMigration.s.sol +++ b/script/BaseMigration.s.sol @@ -93,15 +93,24 @@ abstract contract BaseMigration is ScriptExtended { virtual logFn(string.concat("_deployLogic ", TContract.unwrap(contractType).unpackOne())) returns (address payable logic) + { + logic = _deployLogic(contractType, EMPTY_ARGS); + } + + function _deployLogic(TContract contractType, bytes memory args) + internal + virtual + logFn(string.concat("_deployLogic ", TContract.unwrap(contractType).unpackOne())) + returns (address payable logic) { string memory contractName = CONFIG.getContractName(contractType); string memory contractAbsolutePath = CONFIG.getContractAbsolutePath(contractType); uint256 logicNonce; - (logic, logicNonce) = _deployRaw(contractAbsolutePath, EMPTY_ARGS); + (logic, logicNonce) = _deployRaw(contractAbsolutePath, args); CONFIG.label(block.chainid, logic, string.concat(contractName, "::Logic")); ARTIFACT_FACTORY.generateArtifact( - sender(), logic, contractAbsolutePath, string.concat(contractName, "Logic"), EMPTY_ARGS, logicNonce + sender(), logic, contractAbsolutePath, string.concat(contractName, "Logic"), args, logicNonce ); } @@ -109,7 +118,11 @@ abstract contract BaseMigration is ScriptExtended { deployed = _deployProxy(contractType, arguments()); } - function _deployProxy(TContract contractType, bytes memory args) + function _deployProxy(TContract contractType, bytes memory args) internal virtual returns (address payable deployed) { + deployed = _deployProxy(contractType, args, EMPTY_ARGS); + } + + function _deployProxy(TContract contractType, bytes memory args, bytes memory argsLogicConstructor) internal virtual logFn(string.concat("_deployProxy ", TContract.unwrap(contractType).unpackOne())) @@ -117,7 +130,7 @@ abstract contract BaseMigration is ScriptExtended { { string memory contractName = CONFIG.getContractName(contractType); - address logic = _deployLogic(contractType); + address logic = _deployLogic(contractType, argsLogicConstructor); string memory proxyAbsolutePath = "TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy"; uint256 proxyNonce; address proxyAdmin = _getProxyAdmin();