diff --git a/governance/.openzeppelin/avalanche.json b/governance/.openzeppelin/avalanche.json index 6c28dfb84fc..7c0e5fe5afd 100644 --- a/governance/.openzeppelin/avalanche.json +++ b/governance/.openzeppelin/avalanche.json @@ -895,6 +895,274 @@ } } } + }, + "c6d805c82f3f300da2425695b00fbf12dfe20f45dc8ffdf35ed30d444ccd6d60": { + "address": "0x7E33dD3955b7B4a699CE75D507bfB2f044D5Df87", + "txHash": "0x9e5b5e021dfacc38d8f8297b2c88a6d52bcdcd845351d3f86ab6e10670aa3c52", + "layout": { + "solcVersion": "0.8.21", + "storage": [ + { + "label": "initialized", + "offset": 0, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1327" + }, + { + "label": "initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1332" + }, + { + "label": "______gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockContextUpgradeable", + "src": "contracts/past-versions/UnlockV13.sol:1406" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1435" + }, + { + "label": "______gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1501" + }, + { + "label": "grossNetworkProduct", + "offset": 0, + "slot": "102", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2786" + }, + { + "label": "totalDiscountGranted", + "offset": 0, + "slot": "103", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2788" + }, + { + "label": "locks", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_address,t_struct(LockBalances)3109_storage)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2791" + }, + { + "label": "globalBaseTokenURI", + "offset": 0, + "slot": "105", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2795" + }, + { + "label": "globalTokenSymbol", + "offset": 0, + "slot": "106", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2799" + }, + { + "label": "publicLockAddress", + "offset": 0, + "slot": "107", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2802" + }, + { + "label": "uniswapOracles", + "offset": 0, + "slot": "108", + "type": "t_mapping(t_address,t_contract(IUniswapOracleV3)757)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2806" + }, + { + "label": "weth", + "offset": 0, + "slot": "109", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2809" + }, + { + "label": "udt", + "offset": 0, + "slot": "110", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2812" + }, + { + "label": "estimatedGasForPurchase", + "offset": 0, + "slot": "111", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2815" + }, + { + "label": "chainId", + "offset": 0, + "slot": "112", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2818" + }, + { + "label": "proxyAdminAddress", + "offset": 0, + "slot": "113", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2821" + }, + { + "label": "proxyAdmin", + "offset": 0, + "slot": "114", + "type": "t_contract(ProxyAdmin)3095", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2822" + }, + { + "label": "_publicLockVersions", + "offset": 0, + "slot": "115", + "type": "t_mapping(t_address,t_uint16)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2825" + }, + { + "label": "_publicLockImpls", + "offset": 0, + "slot": "116", + "type": "t_mapping(t_uint16,t_address)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2826" + }, + { + "label": "publicLockLatestVersion", + "offset": 0, + "slot": "117", + "type": "t_uint16", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2827" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "118", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2830" + }, + { + "label": "swapBurnerAddress", + "offset": 0, + "slot": "119", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2833" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IUniswapOracleV3)757": { + "label": "contract IUniswapOracleV3", + "numberOfBytes": "20" + }, + "t_contract(ProxyAdmin)3095": { + "label": "contract ProxyAdmin", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_contract(IUniswapOracleV3)757)": { + "label": "mapping(address => contract IUniswapOracleV3)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(LockBalances)3109_storage)": { + "label": "mapping(address => struct Unlock.LockBalances)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint16)": { + "label": "mapping(address => uint16)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint16,t_address)": { + "label": "mapping(uint16 => address)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(LockBalances)3109_storage": { + "label": "struct Unlock.LockBalances", + "members": [ + { + "label": "deployed", + "type": "t_bool", + "offset": 0, + "slot": "0" + }, + { + "label": "totalSales", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "yieldedDiscountTokens", + "type": "t_uint256", + "offset": 0, + "slot": "2" + } + ], + "numberOfBytes": "96" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + }, + "namespaces": {} + } } } } diff --git a/governance/.openzeppelin/celo.json b/governance/.openzeppelin/celo.json index 7a0d19215a8..81c378015ba 100644 --- a/governance/.openzeppelin/celo.json +++ b/governance/.openzeppelin/celo.json @@ -640,6 +640,274 @@ } } } + }, + "c6d805c82f3f300da2425695b00fbf12dfe20f45dc8ffdf35ed30d444ccd6d60": { + "address": "0xA8BB5AF09B599794136B14B112e137FAf83Acf1f", + "txHash": "0xe02872a084151090a4ab74877c30661673167a311963a2f955fe482956a4080a", + "layout": { + "solcVersion": "0.8.21", + "storage": [ + { + "label": "initialized", + "offset": 0, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1327" + }, + { + "label": "initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1332" + }, + { + "label": "______gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockContextUpgradeable", + "src": "contracts/past-versions/UnlockV13.sol:1406" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1435" + }, + { + "label": "______gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1501" + }, + { + "label": "grossNetworkProduct", + "offset": 0, + "slot": "102", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2786" + }, + { + "label": "totalDiscountGranted", + "offset": 0, + "slot": "103", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2788" + }, + { + "label": "locks", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_address,t_struct(LockBalances)3109_storage)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2791" + }, + { + "label": "globalBaseTokenURI", + "offset": 0, + "slot": "105", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2795" + }, + { + "label": "globalTokenSymbol", + "offset": 0, + "slot": "106", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2799" + }, + { + "label": "publicLockAddress", + "offset": 0, + "slot": "107", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2802" + }, + { + "label": "uniswapOracles", + "offset": 0, + "slot": "108", + "type": "t_mapping(t_address,t_contract(IUniswapOracleV3)757)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2806" + }, + { + "label": "weth", + "offset": 0, + "slot": "109", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2809" + }, + { + "label": "udt", + "offset": 0, + "slot": "110", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2812" + }, + { + "label": "estimatedGasForPurchase", + "offset": 0, + "slot": "111", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2815" + }, + { + "label": "chainId", + "offset": 0, + "slot": "112", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2818" + }, + { + "label": "proxyAdminAddress", + "offset": 0, + "slot": "113", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2821" + }, + { + "label": "proxyAdmin", + "offset": 0, + "slot": "114", + "type": "t_contract(ProxyAdmin)3095", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2822" + }, + { + "label": "_publicLockVersions", + "offset": 0, + "slot": "115", + "type": "t_mapping(t_address,t_uint16)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2825" + }, + { + "label": "_publicLockImpls", + "offset": 0, + "slot": "116", + "type": "t_mapping(t_uint16,t_address)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2826" + }, + { + "label": "publicLockLatestVersion", + "offset": 0, + "slot": "117", + "type": "t_uint16", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2827" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "118", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2830" + }, + { + "label": "swapBurnerAddress", + "offset": 0, + "slot": "119", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2833" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IUniswapOracleV3)757": { + "label": "contract IUniswapOracleV3", + "numberOfBytes": "20" + }, + "t_contract(ProxyAdmin)3095": { + "label": "contract ProxyAdmin", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_contract(IUniswapOracleV3)757)": { + "label": "mapping(address => contract IUniswapOracleV3)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(LockBalances)3109_storage)": { + "label": "mapping(address => struct Unlock.LockBalances)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint16)": { + "label": "mapping(address => uint16)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint16,t_address)": { + "label": "mapping(uint16 => address)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(LockBalances)3109_storage": { + "label": "struct Unlock.LockBalances", + "members": [ + { + "label": "deployed", + "type": "t_bool", + "offset": 0, + "slot": "0" + }, + { + "label": "totalSales", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "yieldedDiscountTokens", + "type": "t_uint256", + "offset": 0, + "slot": "2" + } + ], + "numberOfBytes": "96" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + }, + "namespaces": {} + } } } } diff --git a/governance/.openzeppelin/goerli.json b/governance/.openzeppelin/goerli.json index ebeec7c699d..83a71186e02 100644 --- a/governance/.openzeppelin/goerli.json +++ b/governance/.openzeppelin/goerli.json @@ -800,6 +800,274 @@ } } } + }, + "c6d805c82f3f300da2425695b00fbf12dfe20f45dc8ffdf35ed30d444ccd6d60": { + "address": "0x6CbD17331Aef9073502Fdb55eEbd8e90f39497bd", + "txHash": "0x34af082b4fb8d89bc1c561050053903f6547a0e6dd8f7db8a45d18f6b85b78ac", + "layout": { + "solcVersion": "0.8.21", + "storage": [ + { + "label": "initialized", + "offset": 0, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1327" + }, + { + "label": "initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1332" + }, + { + "label": "______gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockContextUpgradeable", + "src": "contracts/past-versions/UnlockV13.sol:1406" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1435" + }, + { + "label": "______gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1501" + }, + { + "label": "grossNetworkProduct", + "offset": 0, + "slot": "102", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2786" + }, + { + "label": "totalDiscountGranted", + "offset": 0, + "slot": "103", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2788" + }, + { + "label": "locks", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_address,t_struct(LockBalances)3109_storage)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2791" + }, + { + "label": "globalBaseTokenURI", + "offset": 0, + "slot": "105", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2795" + }, + { + "label": "globalTokenSymbol", + "offset": 0, + "slot": "106", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2799" + }, + { + "label": "publicLockAddress", + "offset": 0, + "slot": "107", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2802" + }, + { + "label": "uniswapOracles", + "offset": 0, + "slot": "108", + "type": "t_mapping(t_address,t_contract(IUniswapOracleV3)757)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2806" + }, + { + "label": "weth", + "offset": 0, + "slot": "109", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2809" + }, + { + "label": "udt", + "offset": 0, + "slot": "110", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2812" + }, + { + "label": "estimatedGasForPurchase", + "offset": 0, + "slot": "111", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2815" + }, + { + "label": "chainId", + "offset": 0, + "slot": "112", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2818" + }, + { + "label": "proxyAdminAddress", + "offset": 0, + "slot": "113", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2821" + }, + { + "label": "proxyAdmin", + "offset": 0, + "slot": "114", + "type": "t_contract(ProxyAdmin)3095", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2822" + }, + { + "label": "_publicLockVersions", + "offset": 0, + "slot": "115", + "type": "t_mapping(t_address,t_uint16)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2825" + }, + { + "label": "_publicLockImpls", + "offset": 0, + "slot": "116", + "type": "t_mapping(t_uint16,t_address)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2826" + }, + { + "label": "publicLockLatestVersion", + "offset": 0, + "slot": "117", + "type": "t_uint16", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2827" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "118", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2830" + }, + { + "label": "swapBurnerAddress", + "offset": 0, + "slot": "119", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2833" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IUniswapOracleV3)757": { + "label": "contract IUniswapOracleV3", + "numberOfBytes": "20" + }, + "t_contract(ProxyAdmin)3095": { + "label": "contract ProxyAdmin", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_contract(IUniswapOracleV3)757)": { + "label": "mapping(address => contract IUniswapOracleV3)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(LockBalances)3109_storage)": { + "label": "mapping(address => struct Unlock.LockBalances)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint16)": { + "label": "mapping(address => uint16)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint16,t_address)": { + "label": "mapping(uint16 => address)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(LockBalances)3109_storage": { + "label": "struct Unlock.LockBalances", + "members": [ + { + "label": "deployed", + "type": "t_bool", + "offset": 0, + "slot": "0" + }, + { + "label": "totalSales", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "yieldedDiscountTokens", + "type": "t_uint256", + "offset": 0, + "slot": "2" + } + ], + "numberOfBytes": "96" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + }, + "namespaces": {} + } } } } diff --git a/governance/.openzeppelin/polygon-mumbai.json b/governance/.openzeppelin/polygon-mumbai.json index 1cdf14fb119..cf2eb3e0e1c 100644 --- a/governance/.openzeppelin/polygon-mumbai.json +++ b/governance/.openzeppelin/polygon-mumbai.json @@ -640,6 +640,274 @@ } } } + }, + "c6d805c82f3f300da2425695b00fbf12dfe20f45dc8ffdf35ed30d444ccd6d60": { + "address": "0x32Eb84EbDFB89A7957c86ec4396bae489Cfe4549", + "txHash": "0x445bda052c97a121011e5cad5e015591d05e46e1f3f9fcf567fe196471524d08", + "layout": { + "solcVersion": "0.8.21", + "storage": [ + { + "label": "initialized", + "offset": 0, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1327" + }, + { + "label": "initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1332" + }, + { + "label": "______gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockContextUpgradeable", + "src": "contracts/past-versions/UnlockV13.sol:1406" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1435" + }, + { + "label": "______gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1501" + }, + { + "label": "grossNetworkProduct", + "offset": 0, + "slot": "102", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2786" + }, + { + "label": "totalDiscountGranted", + "offset": 0, + "slot": "103", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2788" + }, + { + "label": "locks", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_address,t_struct(LockBalances)3109_storage)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2791" + }, + { + "label": "globalBaseTokenURI", + "offset": 0, + "slot": "105", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2795" + }, + { + "label": "globalTokenSymbol", + "offset": 0, + "slot": "106", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2799" + }, + { + "label": "publicLockAddress", + "offset": 0, + "slot": "107", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2802" + }, + { + "label": "uniswapOracles", + "offset": 0, + "slot": "108", + "type": "t_mapping(t_address,t_contract(IUniswapOracleV3)757)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2806" + }, + { + "label": "weth", + "offset": 0, + "slot": "109", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2809" + }, + { + "label": "udt", + "offset": 0, + "slot": "110", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2812" + }, + { + "label": "estimatedGasForPurchase", + "offset": 0, + "slot": "111", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2815" + }, + { + "label": "chainId", + "offset": 0, + "slot": "112", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2818" + }, + { + "label": "proxyAdminAddress", + "offset": 0, + "slot": "113", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2821" + }, + { + "label": "proxyAdmin", + "offset": 0, + "slot": "114", + "type": "t_contract(ProxyAdmin)3095", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2822" + }, + { + "label": "_publicLockVersions", + "offset": 0, + "slot": "115", + "type": "t_mapping(t_address,t_uint16)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2825" + }, + { + "label": "_publicLockImpls", + "offset": 0, + "slot": "116", + "type": "t_mapping(t_uint16,t_address)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2826" + }, + { + "label": "publicLockLatestVersion", + "offset": 0, + "slot": "117", + "type": "t_uint16", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2827" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "118", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2830" + }, + { + "label": "swapBurnerAddress", + "offset": 0, + "slot": "119", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2833" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IUniswapOracleV3)757": { + "label": "contract IUniswapOracleV3", + "numberOfBytes": "20" + }, + "t_contract(ProxyAdmin)3095": { + "label": "contract ProxyAdmin", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_contract(IUniswapOracleV3)757)": { + "label": "mapping(address => contract IUniswapOracleV3)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(LockBalances)3109_storage)": { + "label": "mapping(address => struct Unlock.LockBalances)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint16)": { + "label": "mapping(address => uint16)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint16,t_address)": { + "label": "mapping(uint16 => address)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(LockBalances)3109_storage": { + "label": "struct Unlock.LockBalances", + "members": [ + { + "label": "deployed", + "type": "t_bool", + "offset": 0, + "slot": "0" + }, + { + "label": "totalSales", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "yieldedDiscountTokens", + "type": "t_uint256", + "offset": 0, + "slot": "2" + } + ], + "numberOfBytes": "96" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + }, + "namespaces": {} + } } } } diff --git a/governance/.openzeppelin/unknown-59144.json b/governance/.openzeppelin/unknown-59144.json index 25470b41cd0..294063a019a 100644 --- a/governance/.openzeppelin/unknown-59144.json +++ b/governance/.openzeppelin/unknown-59144.json @@ -417,6 +417,274 @@ } } } + }, + "c6d805c82f3f300da2425695b00fbf12dfe20f45dc8ffdf35ed30d444ccd6d60": { + "address": "0x36b34e10295cCE69B652eEB5a8046041074515Da", + "txHash": "0x9954c6bd09e3166a4a92e1a8998383dead5f380ede093d095ad9797fc56ce9cc", + "layout": { + "solcVersion": "0.8.21", + "storage": [ + { + "label": "initialized", + "offset": 0, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1327" + }, + { + "label": "initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1332" + }, + { + "label": "______gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockContextUpgradeable", + "src": "contracts/past-versions/UnlockV13.sol:1406" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1435" + }, + { + "label": "______gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1501" + }, + { + "label": "grossNetworkProduct", + "offset": 0, + "slot": "102", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2786" + }, + { + "label": "totalDiscountGranted", + "offset": 0, + "slot": "103", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2788" + }, + { + "label": "locks", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_address,t_struct(LockBalances)3109_storage)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2791" + }, + { + "label": "globalBaseTokenURI", + "offset": 0, + "slot": "105", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2795" + }, + { + "label": "globalTokenSymbol", + "offset": 0, + "slot": "106", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2799" + }, + { + "label": "publicLockAddress", + "offset": 0, + "slot": "107", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2802" + }, + { + "label": "uniswapOracles", + "offset": 0, + "slot": "108", + "type": "t_mapping(t_address,t_contract(IUniswapOracleV3)757)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2806" + }, + { + "label": "weth", + "offset": 0, + "slot": "109", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2809" + }, + { + "label": "udt", + "offset": 0, + "slot": "110", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2812" + }, + { + "label": "estimatedGasForPurchase", + "offset": 0, + "slot": "111", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2815" + }, + { + "label": "chainId", + "offset": 0, + "slot": "112", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2818" + }, + { + "label": "proxyAdminAddress", + "offset": 0, + "slot": "113", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2821" + }, + { + "label": "proxyAdmin", + "offset": 0, + "slot": "114", + "type": "t_contract(ProxyAdmin)3095", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2822" + }, + { + "label": "_publicLockVersions", + "offset": 0, + "slot": "115", + "type": "t_mapping(t_address,t_uint16)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2825" + }, + { + "label": "_publicLockImpls", + "offset": 0, + "slot": "116", + "type": "t_mapping(t_uint16,t_address)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2826" + }, + { + "label": "publicLockLatestVersion", + "offset": 0, + "slot": "117", + "type": "t_uint16", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2827" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "118", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2830" + }, + { + "label": "swapBurnerAddress", + "offset": 0, + "slot": "119", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2833" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IUniswapOracleV3)757": { + "label": "contract IUniswapOracleV3", + "numberOfBytes": "20" + }, + "t_contract(ProxyAdmin)3095": { + "label": "contract ProxyAdmin", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_contract(IUniswapOracleV3)757)": { + "label": "mapping(address => contract IUniswapOracleV3)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(LockBalances)3109_storage)": { + "label": "mapping(address => struct Unlock.LockBalances)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint16)": { + "label": "mapping(address => uint16)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint16,t_address)": { + "label": "mapping(uint16 => address)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(LockBalances)3109_storage": { + "label": "struct Unlock.LockBalances", + "members": [ + { + "label": "deployed", + "type": "t_bool", + "offset": 0, + "slot": "0" + }, + { + "label": "totalSales", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "yieldedDiscountTokens", + "type": "t_uint256", + "offset": 0, + "slot": "2" + } + ], + "numberOfBytes": "96" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + }, + "namespaces": {} + } } } } diff --git a/governance/.openzeppelin/unknown-8453.json b/governance/.openzeppelin/unknown-8453.json index 55f7c30bb96..23f94ca4563 100644 --- a/governance/.openzeppelin/unknown-8453.json +++ b/governance/.openzeppelin/unknown-8453.json @@ -417,6 +417,274 @@ } } } + }, + "c6d805c82f3f300da2425695b00fbf12dfe20f45dc8ffdf35ed30d444ccd6d60": { + "address": "0x70cBE5F72dD85aA634d07d2227a421144Af734b3", + "txHash": "0xd9e4f2a487f3259ef7f599fd92f7b7bcc06e80cde97108287f12eea949b11081", + "layout": { + "solcVersion": "0.8.21", + "storage": [ + { + "label": "initialized", + "offset": 0, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1327" + }, + { + "label": "initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "UnlockInitializable", + "src": "contracts/past-versions/UnlockV13.sol:1332" + }, + { + "label": "______gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockContextUpgradeable", + "src": "contracts/past-versions/UnlockV13.sol:1406" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1435" + }, + { + "label": "______gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)50_storage", + "contract": "UnlockOwnable", + "src": "contracts/past-versions/UnlockV13.sol:1501" + }, + { + "label": "grossNetworkProduct", + "offset": 0, + "slot": "102", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2786" + }, + { + "label": "totalDiscountGranted", + "offset": 0, + "slot": "103", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2788" + }, + { + "label": "locks", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_address,t_struct(LockBalances)3109_storage)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2791" + }, + { + "label": "globalBaseTokenURI", + "offset": 0, + "slot": "105", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2795" + }, + { + "label": "globalTokenSymbol", + "offset": 0, + "slot": "106", + "type": "t_string_storage", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2799" + }, + { + "label": "publicLockAddress", + "offset": 0, + "slot": "107", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2802" + }, + { + "label": "uniswapOracles", + "offset": 0, + "slot": "108", + "type": "t_mapping(t_address,t_contract(IUniswapOracleV3)757)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2806" + }, + { + "label": "weth", + "offset": 0, + "slot": "109", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2809" + }, + { + "label": "udt", + "offset": 0, + "slot": "110", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2812" + }, + { + "label": "estimatedGasForPurchase", + "offset": 0, + "slot": "111", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2815" + }, + { + "label": "chainId", + "offset": 0, + "slot": "112", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2818" + }, + { + "label": "proxyAdminAddress", + "offset": 0, + "slot": "113", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2821" + }, + { + "label": "proxyAdmin", + "offset": 0, + "slot": "114", + "type": "t_contract(ProxyAdmin)3095", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2822" + }, + { + "label": "_publicLockVersions", + "offset": 0, + "slot": "115", + "type": "t_mapping(t_address,t_uint16)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2825" + }, + { + "label": "_publicLockImpls", + "offset": 0, + "slot": "116", + "type": "t_mapping(t_uint16,t_address)", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2826" + }, + { + "label": "publicLockLatestVersion", + "offset": 0, + "slot": "117", + "type": "t_uint16", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2827" + }, + { + "label": "protocolFee", + "offset": 0, + "slot": "118", + "type": "t_uint256", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2830" + }, + { + "label": "swapBurnerAddress", + "offset": 0, + "slot": "119", + "type": "t_address", + "contract": "Unlock", + "src": "contracts/past-versions/UnlockV13.sol:2833" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IUniswapOracleV3)757": { + "label": "contract IUniswapOracleV3", + "numberOfBytes": "20" + }, + "t_contract(ProxyAdmin)3095": { + "label": "contract ProxyAdmin", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_contract(IUniswapOracleV3)757)": { + "label": "mapping(address => contract IUniswapOracleV3)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(LockBalances)3109_storage)": { + "label": "mapping(address => struct Unlock.LockBalances)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint16)": { + "label": "mapping(address => uint16)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint16,t_address)": { + "label": "mapping(uint16 => address)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(LockBalances)3109_storage": { + "label": "struct Unlock.LockBalances", + "members": [ + { + "label": "deployed", + "type": "t_bool", + "offset": 0, + "slot": "0" + }, + { + "label": "totalSales", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "yieldedDiscountTokens", + "type": "t_uint256", + "offset": 0, + "slot": "2" + } + ], + "numberOfBytes": "96" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + }, + "namespaces": {} + } } } } diff --git a/governance/scripts/multisig/submitTx.js b/governance/scripts/multisig/submitTx.js index 8d4a609bd2d..5c17be3c01d 100644 --- a/governance/scripts/multisig/submitTx.js +++ b/governance/scripts/multisig/submitTx.js @@ -13,7 +13,6 @@ const SafeApiKit = require('@safe-global/api-kit').default // custom services URL for network not supported by Safe const safeServiceURLs = { - 42220: 'http://mainnet-tx-svc.celo-safe-prod.celo-networks-dev.org/', // mumbai isnt supported by Safe Global, you need to run Safe infrastructure locally 80001: 'http://localhost:8000/cgw/', } @@ -60,9 +59,10 @@ async function main({ safeAddress, tx, signer }) { const txs = !Array.isArray(tx) ? [tx] : tx const explainer = txs - .map( - ({ functionName, functionArgs }) => - `'${functionName}(${Object.values(functionArgs).toString()})'` + .map(({ functionName, functionArgs, explainer }) => + explainer + ? explainer + : `'${functionName}(${Object.values(functionArgs).toString()})'` ) .join(', ') console.log(`Submitting txs: ${explainer}`) diff --git a/governance/scripts/upgrade/protocol-upgrade.js b/governance/scripts/upgrade/protocol-upgrade.js new file mode 100644 index 00000000000..acb622b26d6 --- /dev/null +++ b/governance/scripts/upgrade/protocol-upgrade.js @@ -0,0 +1,181 @@ +/** + * This is a script to upgrade the protocol by sending to multisig + * the instructions to upgrade Unlock proxy and set a new PublickLock template + * + * TODO: + * - make addresses list programmatic (using deployment tasks directly) + */ + +const { ethers } = require('hardhat') +const { + getNetwork, + getProxyAdminAddress, +} = require('@unlock-protocol/hardhat-helpers') +const { submitTx } = require('../multisig') + +const { UnlockV13, PublicLockV14 } = require('@unlock-protocol/contracts') +const { + abi: proxyAdminABI, +} = require('@unlock-protocol/hardhat-helpers/dist/ABIs/ProxyAdmin.json') + +// addresses +const deployedContracts = { + 1: { + unlockSwapBurner: '0x316A4650e70594FA3D947a43A237bEF427Bd80d6', + unlockImplAddress: '0xd8250925527e769d90C6F2Fc55384B9110f26b62', + publicLockAddress: '0xc9577b38ADA2B1b251EE99e54cC399027d547B68', + }, + 10: { + publicLockAddress: '0x530Ff2dAED410cA7D70C25f18dc770f106201151', + unlockImplAddress: '0x508619074f542b6544c5835f260CC704E988cf65', + }, + 56: { + publicLockAddress: '0xA8BB5AF09B599794136B14B112e137FAf83Acf1f', + unlockImplAddress: '0xfe9fD6af67E48D9f05Aa88679Ac294E3f28532eE', + }, + 100: { + // verif files (Error Details: Missing or invalid ApiKey) + publicLockAddress: '0xeAd6d1877452383ab5F74c689b6C3d0538Fd3008', // not verified + unlockImplAddress: '0x24BF5517Ecc83caB64478Ab3D69950aA1567eB89', // not verified + }, + 137: { + publicLockAddress: '0x8231d6fD0221C01FCAc5827EdD20D1aeC28EeBe3', + unlockImplAddress: '0x4132f269168375DBf7DcDb2cfEA348F453FD4B40', + unlockSwapBurner: '0x9B538FE47e7BE0F5D10F9dD277F63B27b5a9c69f', + }, + 42161: { + // arbitrum + publicLockAddress: '0x04664b4290fa1F4001ED25d9576f7C2d980aC64d', + unlockImplAddress: '0xe49f5FD63cD7ec130B07dad30f068CC08F201e1e', + }, + 43114: { + // avalanche + unlockImplAddress: '0x7E33dD3955b7B4a699CE75D507bfB2f044D5Df87', + publicLockAddress: '0x440d9D4E66d39bb28FB58729Cb4D3ead2A595591', + }, + 8453: { + // base + unlockImplAddress: '0x70cBE5F72dD85aA634d07d2227a421144Af734b3', + publicLockAddress: '0x64A3328Cf61025720c26dE2a87B6d913fA6e376a', + }, + 42220: { + unlockImplAddress: '0xA8BB5AF09B599794136B14B112e137FAf83Acf1f', + publicLockAddress: '0xF241F12506fb6Bf1909c6bC176A199166414007a', + }, + 59144: { + unlockImplAddress: '0x36b34e10295cCE69B652eEB5a8046041074515Da', + publicLockAddress: '0xA5978Df9a664C56d62313EE9EAaC7930977164E4', + }, + 5: { + unlockImplAddress: '0x6CbD17331Aef9073502Fdb55eEbd8e90f39497bd', + publicLockAddress: '0x58aAe2B6B31D3Ce1597c419c5917EE224974Da5B', + }, + 80001: { + unlockImplAddress: '0x32Eb84EbDFB89A7957c86ec4396bae489Cfe4549', + publicLockAddress: '0x316A4650e70594FA3D947a43A237bEF427Bd80d6', + }, +} + +function assert(condition, message) { + if (!condition) { + throw new Error(message || 'Assertion failed') + } +} + +async function main() { + const { id, multisig, unlockAddress } = await getNetwork() + const { unlockImplAddress, publicLockAddress } = deployedContracts[id] + + let [signer] = await ethers.getSigners() + + // submit template to Unlock + const unlock = await ethers.getContractAt(UnlockV13.abi, unlockAddress) + const { interface: unlockInterface } = unlock + const template = await ethers.getContractAt( + PublicLockV14.abi, + publicLockAddress + ) + + const unlockVersion = await unlock.unlockVersion() + const publicLockVersion = await template.publicLockVersion() + + // submit Unlock upgrade + const proxyAdminAddress = await getProxyAdminAddress({ chainId: id }) + const { interface: proxyAdminInterface } = await ethers.getContractAt( + proxyAdminABI, + proxyAdminAddress + ) + + console.log(`Submitting contract upgrade on chain ${id}: + - unlock proxy: ${unlockAddress} + - proxyAdmin: ${proxyAdminAddress} + - unlock impl: ${unlockImplAddress} + - publicLock: ${publicLockAddress} + - multisig: ${multisig} + - signer: ${signer.address} + `) + + // check versions are correct in all contracts + assert(unlockVersion === 12n, 'Wrong actual unlockVersion') + assert( + (await unlock.publicLockLatestVersion()) === 13n, + 'Wrong actual publicLockVersion' + ) + assert( + (await ( + await ethers.getContractAt(UnlockV13.abi, unlockImplAddress) + ).unlockVersion()) === 13n, + 'Wrong new unlockVersion' + ) + assert(publicLockVersion === 14n, 'Wrong new publicLockVersion') + const unlockOwmer = await unlock.owner() + assert(unlockOwmer === multisig, `Owner ${unlockOwmer} is not a multisig`) + + // upgrade first so we dont have a revert when + // template is initialized + const calls = [ + { + contractAddress: proxyAdminAddress, + explainer: `upgrade(${unlockAddress},${unlockImplAddress})`, + calldata: proxyAdminInterface.encodeFunctionData('upgrade', [ + unlockAddress, + unlockImplAddress, + ]), + }, + { + contractAddress: unlockAddress, + explainer: `addLockTemplate(${publicLockAddress},${publicLockVersion})`, + calldata: unlockInterface.encodeFunctionData('addLockTemplate', [ + publicLockAddress, + publicLockVersion, + ]), + }, + { + contractAddress: unlockAddress, + explainer: `setLockTemplate(${publicLockAddress})`, + calldata: unlockInterface.encodeFunctionData('setLockTemplate', [ + publicLockAddress, + ]), + }, + ] + + // submit the calls to the multisig + const txArgs = { + safeAddress: multisig, + tx: calls, + } + console.log(txArgs) + await submitTx(txArgs) +} + +// execute as standalone +if (require.main === module) { + main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) +} + +module.exports = main diff --git a/packages/hardhat-helpers/src/deploy.js b/packages/hardhat-helpers/src/deploy.js index 8fe5acd29e4..b16178b63b0 100644 --- a/packages/hardhat-helpers/src/deploy.js +++ b/packages/hardhat-helpers/src/deploy.js @@ -19,18 +19,22 @@ export const deployContract = async ( await contract.waitForDeployment(deployOptions.wait) const { hash } = await contract.deploymentTransaction() const address = await contract.getAddress() + console.log(address) console.log(` > contract deployed at : ${address} (tx: ${hash})`) if (!(await isLocalhost())) { - await verify({ + const args = { address, deployArgs, - // pass fully qualified path for verification - contract: Factory - ? null - : contractNameOrFullyQualifiedNameOrEthersFactory, - }) + } + + // pass fully qualified path for verification + if (typeof contractNameOrFullyQualifiedNameOrEthersFactory === 'string') { + args.contract = contractNameOrFullyQualifiedNameOrEthersFactory + } + + await verify(args) } return {