From 42a39f6f58952efa5a87e619307ab56b3b027210 Mon Sep 17 00:00:00 2001 From: Nick Shatilo Date: Mon, 1 Apr 2024 11:23:37 +0100 Subject: [PATCH 1/8] added ENS sepolia contracts, preparing to deploy ENSCustody --- .gitignore | 2 ++ ens-config.json | 59 +++++++++++++++++++++++++++++++++++ hardhat.config.ts | 43 ++++++++++++++++++------- scripts/deploy_ENSCustody.ts | 2 +- scripts/propose_ENSCustody.ts | 2 +- 5 files changed, 94 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index c61db0eb..980a6f45 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,5 @@ slither.sarif !.yarn/releases !.yarn/sdks !.yarn/versions + +.env diff --git a/ens-config.json b/ens-config.json index 4d7c9f0a..acd0f415 100644 --- a/ens-config.json +++ b/ens-config.json @@ -218,6 +218,65 @@ "deploymentBlock": "0x4f" } } + }, + "11155111": { + "contracts": { + "ENSRegistry": { + "address": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", + "deploymentBlock": "0x387fc8" + }, + "BaseRegistrarImplementation": { + "address": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85", + "deploymentBlock": "0x387fcb" + }, + "ReverseRegistrar": { + "address": "0xA0a1AbcDAe1a2a4A2EF8e9113Ff0e02DD81DC0C6", + "deploymentBlock": "0x39d263" + }, + "NameWrapper": { + "address": "0x0635513f179D50A207757E05759CbD106d7dFcE8", + "deploymentBlock": "0x39d549" + }, + "DummyOracle": { + "address": "0x10E7e7D64d7dA687f7DcF8443Df58A0415329b15", + "deploymentBlock": "0x39d560" + }, + "StablePriceOracle": { + "address": "0x0000000000000000000000000000000000000000", + "deploymentBlock": "0x0" + }, + "ETHRegistrarController": { + "address": "0xFED6a969AaA60E4961FCD3EBF1A2e8913ac65B72", + "deploymentBlock": "0x39d5a4" + }, + "PublicResolver": { + "address": "0x8FADE66B79cC9f707aB26799354482EB93a5B7dD", + "legacyAddresses": [ + "0x0CeEC524b2807841739D3B5E161F5bf1430FFA48" + ], + "deploymentBlock": "0x39d5ab" + }, + "LegacyENSRegistry": { + "address": "0x94f523b8261B815b87EFfCf4d18E6aBeF18d6e4b", + "deploymentBlock": "0x387fc1" + }, + "LegacyETHRegistrarController": { + "address": "0x7e02892cfc2Bfd53a75275451d73cF620e793fc0", + "deploymentBlock": "0x39d575" + }, + "DNSRegistrar": { + "address": "0x5a07C75Ae469Bf3ee2657B588e8E6ABAC6741b4f", + "deploymentBlock": "0x4c7608" + }, + "DNSSECImpl": { + "address": "0xe62E4b6cE018Ad6e916fcC24545e20a33b9d8653", + "deploymentBlock": "0x3f3236" + }, + "Root": { + "address": "0xDaaF96c344f63131acadD0Ea35170E7892d3dfBA", + "deploymentBlock": "0x387fc9" + } + } } } } diff --git a/hardhat.config.ts b/hardhat.config.ts index 6ef9cd7e..fbfa1574 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -141,6 +141,16 @@ const config: HardhatUserConfig = { chainId: 5, accounts: process.env.GOERLI_UNS_PRIVATE_KEY ? [process.env.GOERLI_UNS_PRIVATE_KEY] : undefined, }, + sepolia: { + url: `https://sepolia.infura.io/v3/${process.env.SEPOLIA_INFURA_KEY}`, + chainId: 11155111, + accounts: process.env.SEPOLIA_UNS_PRIVATE_KEY ? [process.env.SEPOLIA_UNS_PRIVATE_KEY] : undefined, + }, + amoy: { + url: `https://amoy.infura.io/v3/${process.env.AMOY_INFURA_KEY}`, + chainId: 80002, + accounts: process.env.AMOY_UNS_PRIVATE_KEY ? [process.env.AMOY_UNS_PRIVATE_KEY] : undefined, + }, mainnet: { url: `https://mainnet.infura.io/v3/${process.env.MAINNET_INFURA_KEY}`, chainId: 1, @@ -183,6 +193,10 @@ const config: HardhatUserConfig = { apiKey: pickBy({ mainnet: process.env.ETHERSCAN_API_KEY, goerli: process.env.ETHERSCAN_API_KEY, + sepolia: process.env.ETHERSCAN_API_KEY, + + //what to do with amoy??? + polygon: process.env.POLYGONSCAN_API_KEY, polygonMumbai: process.env.POLYGONSCAN_API_KEY, }) as Record, @@ -200,20 +214,25 @@ const config: HardhatUserConfig = { localhost: ['0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'], sandbox: ['0x9DC64b2558b458A15C7f01c192D874Ef460f0A29'], goerli: [ - '0xb3B86785A51B950fd54ABdF420ff3B60E091870c', - '0x7EF88A779651f26a4967026a32Cae4F01fF8D151', - '0x0c71a3494484459bbF9777Dd3109515B2E653CCb', - '0x288DA3443BBEBcc7a339182323aa3F23126DFe7a', - '0xe45541799119C1D63b60e0F834F3A381D4BEDbea', - '0xdb36B5c4cF1D96f020D7629a09cB54ab787414d6', - '0x3b9FB7983d897B7fe2fD7563e07e24CbA830b03B', - '0x903aA579B9eF13862Fda73275B349017d8fD09eB', - '0x7Ac8596cfbb0504DFDEC08d5088B67E7fbfae47f', - '0xB83180632b72f988585AF02FC27229bF2Eabd139', - '0x1daf08a27304a78434e22ab79bea508e341f910d', + // What are this accounts? + // '0xb3B86785A51B950fd54ABdF420ff3B60E091870c', + // '0x7EF88A779651f26a4967026a32Cae4F01fF8D151', + // '0x0c71a3494484459bbF9777Dd3109515B2E653CCb', + // '0x288DA3443BBEBcc7a339182323aa3F23126DFe7a', + // '0xe45541799119C1D63b60e0F834F3A381D4BEDbea', + // '0xdb36B5c4cF1D96f020D7629a09cB54ab787414d6', + // '0x3b9FB7983d897B7fe2fD7563e07e24CbA830b03B', + // '0x903aA579B9eF13862Fda73275B349017d8fD09eB', + // '0x7Ac8596cfbb0504DFDEC08d5088B67E7fbfae47f', + // '0xB83180632b72f988585AF02FC27229bF2Eabd139', + '0x1daf08a27304a78434e22ab79bea508e341f910d', // whitelister signer L1 ], - mainnet: ['0x5465c72ce00196550d6f89c40830f6bc81599f4f'], mumbai: ['0x31df70766e92c0a69ada7ecb6dc1634d64748be2'], + + sepolia: ['0x1daf08a27304a78434e22ab79bea508e341f910d'], + amoy: ['0x31df70766e92c0a69ada7ecb6dc1634d64748be2'], + + mainnet: ['0x5465c72ce00196550d6f89c40830f6bc81599f4f'], polygon: ['0x58cb2542a5b3b0999d41de59ad03331bbfb4dda3'], }, multisig: { diff --git a/scripts/deploy_ENSCustody.ts b/scripts/deploy_ENSCustody.ts index 31f09067..50337598 100644 --- a/scripts/deploy_ENSCustody.ts +++ b/scripts/deploy_ENSCustody.ts @@ -7,7 +7,7 @@ async function main () { console.log('Network:', network.name); const chainId: number = unwrap(network.config, 'chainId'); - if (![1, 5, 1337].includes(chainId)) { + if (![1, 5, 1337, 11155111].includes(chainId)) { throw new Error(`Unsupported network ${chainId}`); } diff --git a/scripts/propose_ENSCustody.ts b/scripts/propose_ENSCustody.ts index 2e97470d..658d7fe8 100644 --- a/scripts/propose_ENSCustody.ts +++ b/scripts/propose_ENSCustody.ts @@ -7,7 +7,7 @@ async function main () { console.log('Network:', network.name); const chainId: number = unwrap(network.config, 'chainId'); - if (![1, 5, 1337].includes(chainId)) { + if (![1, 5, 1337, 11155111].includes(chainId)) { throw new Error(`Unsupported network ${chainId}`); } From 66e1f4b951ff2086b3d1874d18e3b4312beb39ce Mon Sep 17 00:00:00 2001 From: Nick Shatilo Date: Mon, 1 Apr 2024 11:58:06 +0100 Subject: [PATCH 2/8] deployed ENSCustody --- ens-config.json | 11 +++++++++++ hardhat.config.ts | 4 ++++ scripts/deploy_ENSCustody.ts | 1 + uns-config.json | 9 +++++++++ 4 files changed, 25 insertions(+) diff --git a/ens-config.json b/ens-config.json index acd0f415..c9670962 100644 --- a/ens-config.json +++ b/ens-config.json @@ -275,6 +275,17 @@ "Root": { "address": "0xDaaF96c344f63131acadD0Ea35170E7892d3dfBA", "deploymentBlock": "0x387fc9" + }, + "ProxyAdmin": { + "address": "0xCbF16B0E2A06916F0Ca4892F704349d13E11cF66", + "legacyAddresses": [], + "deploymentBlock": "0x5588B8" + }, + "ENSCustody": { + "address": "0xd2Bf816C7b23fF6e7d141ECC4c1e41DcC857aD45", + "deploymentBlock": "0x5588b9", + "implementation": "0x49Ac063337cF2fB26dD421Ab650b893CD54b900F", + "forwarder": "0xd2Bf816C7b23fF6e7d141ECC4c1e41DcC857aD45" } } } diff --git a/hardhat.config.ts b/hardhat.config.ts index fbfa1574..eabe5a94 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -240,6 +240,10 @@ const config: HardhatUserConfig = { polygon: '0xC8E1B5c41c42ad1cE8336714cA2b2f2588F0a337', goerli: '0x6DB268C88b8659141936F70e5e8acAa3f10597e8', mumbai: '0xFce156303580bA8cC44D07aDcc7723A12E596244', + + // Multisigs will be created later + sepolia: '', + amoy: '', }, }, defender: { diff --git a/scripts/deploy_ENSCustody.ts b/scripts/deploy_ENSCustody.ts index 50337598..2a1958fb 100644 --- a/scripts/deploy_ENSCustody.ts +++ b/scripts/deploy_ENSCustody.ts @@ -12,6 +12,7 @@ async function main () { } const config = getNetworkConfig(chainId, NameService.ENS); + if (!config) { throw new Error(`Config not found for network ${chainId}`); } diff --git a/uns-config.json b/uns-config.json index 13d8a0c5..8a27aadc 100644 --- a/uns-config.json +++ b/uns-config.json @@ -569,6 +569,15 @@ "forwarder": "0xED5ab744F862A1A2294366B63f9040cd690D2AC5" } } + }, + "11155111": { + "contracts": { + "ProxyAdmin": { + "address": "0xCbF16B0E2A06916F0Ca4892F704349d13E11cF66", + "legacyAddresses": [], + "deploymentBlock": "0x5588B8" + } + } } } } From de861c24bc7671023efa3a498946530a88bdae09 Mon Sep 17 00:00:00 2001 From: Nick Shatilo Date: Mon, 1 Apr 2024 14:26:12 +0100 Subject: [PATCH 3/8] Deployed CNS, ensured that multisig is only required in tasks that needed it --- src/deployer.ts | 6 +----- src/tasks.ts | 20 ++++++++++++++++- uns-config.json | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 6 deletions(-) diff --git a/src/deployer.ts b/src/deployer.ts index 92e1a62e..a1c2401c 100644 --- a/src/deployer.ts +++ b/src/deployer.ts @@ -93,7 +93,7 @@ export class Deployer { public log: debug.Debugger; public minters: string[]; - public multisig: string; + public multisig: string | null; public network: NetworkConfig; static async create (options?: DeployerOptions): Promise { @@ -117,10 +117,6 @@ export class Deployer { minters: string[], multisig: string, ) { - if (!multisig && network.name !== 'sandbox') { - throw new Error('Multisig address is not set'); - } - this.options = { ...DEFAULT_OPTIONS, ...options, diff --git a/src/tasks.ts b/src/tasks.ts index 8fe6f0ea..120d1950 100644 --- a/src/tasks.ts +++ b/src/tasks.ts @@ -410,10 +410,12 @@ const deployZilliqaRecoverTask: Task = { MintingManager?.address, ]); await zilliqaRecover.deployTransaction.wait(); + if (isSandbox) { - const mintingManager = await ctx.artifacts.MintingManager.attach(MintingManager.address).connect(owner); + const mintingManager = ctx.artifacts.MintingManager.attach(MintingManager.address).connect(owner); await mintingManager.functions.addMinter(zilliqaRecover.address); } + const proxyAdmin = await upgrades.admin.getInstance(); const zilliqaRecoverImpl = await proxyAdmin.callStatic.getProxyImplementation(zilliqaRecover.address); await ctx.saveContractConfig(UnsContractName.ZilliqaRecover, zilliqaRecover, zilliqaRecoverImpl, zilliqaRecover); @@ -540,6 +542,10 @@ const proposeUNSRegistryTask: Task = { throw new Error('Version parameter is not provided'); } + if(!ctx.multisig) { + throw new Error('Multisig address is not provided'); + } + ctx.log('Preparing proposal...'); const proposal = await defender.proposeUpgrade(UNSRegistry.address, ctx.artifacts.UNSRegistry, { title: `Propose UNSRegistry to v${version}`, @@ -575,6 +581,10 @@ const proposeMintingManagerTask: Task = { throw new Error('Version parameter is not provided'); } + if(!ctx.multisig) { + throw new Error('Multisig address is not provided'); + } + ctx.log('Preparing proposal...'); const proposal = await defender.proposeUpgrade(MintingManager.address, ctx.artifacts.MintingManager, { title: `Propose MintingManager to v${version}`, @@ -609,6 +619,10 @@ const proposeProxyReaderTask: Task = { throw new Error('Version parameter is not provided'); } + if(!ctx.multisig) { + throw new Error('Multisig address is not provided'); + } + ctx.log('Preparing proposal...'); const proposal = await defender.proposeUpgrade(ProxyReader.address, ctx.artifacts.ProxyReader, { title: `Propose ProxyReader to v${version}`, @@ -928,6 +942,10 @@ const proposeENSCustodyTask: Task = { throw new Error('Version parameter is not provided'); } + if(!ctx.multisig) { + throw new Error('Multisig address is not provided'); + } + ctx.log('Preparing proposal...'); const proposal = await defender.proposeUpgrade(ENSCustody.address, ctx.artifacts.ENSCustody, { title: `Propose ENSCustody to v${version}`, diff --git a/uns-config.json b/uns-config.json index 8a27aadc..b2610c26 100644 --- a/uns-config.json +++ b/uns-config.json @@ -576,6 +576,63 @@ "address": "0xCbF16B0E2A06916F0Ca4892F704349d13E11cF66", "legacyAddresses": [], "deploymentBlock": "0x5588B8" + }, + "ENSCustody": { + "address": "0xd2Bf816C7b23fF6e7d141ECC4c1e41DcC857aD45", + "deploymentBlock": "0x5588b9", + "implementation": "0x49Ac063337cF2fB26dD421Ab650b893CD54b900F", + "forwarder": "0xd2Bf816C7b23fF6e7d141ECC4c1e41DcC857aD45" + }, + "CNSRegistry": { + "address": "0xAb005176D74900A9c25fDA144e2f9f329A409166", + "deploymentBlock": "0x558be7", + "forwarder": "0xD3146C740c0Fa128ab1aEA90e4E75194AC0Bbc9B" + }, + "SignatureController": { + "address": "0x5e6f02BA94648Fb25Ca98C6a577c04A0Db34c724", + "legacyAddresses": [], + "deploymentBlock": "0x558bee" + }, + "MintingController": { + "address": "0xabec3fF0F0b6375F65CB9aEB01e8347bf697082F", + "legacyAddresses": [], + "deploymentBlock": "0x558bef", + "deprecated": true + }, + "URIPrefixController": { + "address": "0x89D35aABc8427a32ee7032e73975271e1480fd4E", + "legacyAddresses": [], + "deploymentBlock": "0x558bf6", + "deprecated": true + }, + "Resolver": { + "address": "0xf8F0622A88eC688140890153191Db1713442618D", + "legacyAddresses": [], + "deploymentBlock": "0x558bfc", + "forwarder": "0xA35F199591bD4F0Cb301ff85b6109Bda146dfb09" + }, + "WhitelistedMinter": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "deprecated": true + }, + "DomainZoneController": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "deprecated": true + }, + "TwitterValidationOperator": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0" + }, + "FreeMinter": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "deprecated": true } } } From bfbdd1649445fe1ee92dfa419f42151f3bb329d9 Mon Sep 17 00:00:00 2001 From: Nick Shatilo Date: Tue, 2 Apr 2024 14:27:06 +0100 Subject: [PATCH 4/8] basic uns deployment to sepolia --- .gitignore | 2 + .openzeppelin/unknown-11155111.json | 990 ++++++++++++++++++++++++++++ uns-config.json | 37 ++ 3 files changed, 1029 insertions(+) create mode 100644 .openzeppelin/unknown-11155111.json diff --git a/.gitignore b/.gitignore index 980a6f45..757cba8f 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,8 @@ cache !.openzeppelin/unknown-137.json # mumbai network !.openzeppelin/unknown-80001.json +# sepolia network +!.openzeppelin/unknown-11155111.json .sandbox .deployer diff --git a/.openzeppelin/unknown-11155111.json b/.openzeppelin/unknown-11155111.json new file mode 100644 index 00000000..e88db7fc --- /dev/null +++ b/.openzeppelin/unknown-11155111.json @@ -0,0 +1,990 @@ +{ + "manifestVersion": "3.2", + "admin": { + "address": "0xCbF16B0E2A06916F0Ca4892F704349d13E11cF66", + "txHash": "0x1184e39a666b1aa29cafc1af364580db7e975dfa35f3e73f425645cb9554f6eb" + }, + "proxies": [ + { + "address": "0xd2Bf816C7b23fF6e7d141ECC4c1e41DcC857aD45", + "txHash": "0x7886c709df54e385e9e61b3bc16e5e252cbdb956d90c50f5230fa4c519f8555d", + "kind": "transparent" + }, + { + "address": "0xDD907B4d80B4a979fd77eE502580c55F2700292c", + "txHash": "0x6bfed088e5bdd55ec149613e4b4af71d573cbc991b1c03c786a46bdb75d73b5c", + "kind": "transparent" + }, + { + "address": "0x1620637C0cE88cccfA919ef562b4398E3187189d", + "txHash": "0x6d8f4e7bae013926a56f1cd473f67d7457e785a355294c7aa25965e4fd6e9053", + "kind": "transparent" + }, + { + "address": "0x41fD65E5a1cbdcCdD69F8C11DA4c829F7d3565A6", + "txHash": "0xdb49e1d540015a8b30c82ae9462e143a67ed110c76cb8c0ef8bf1aab779d78e5", + "kind": "transparent" + }, + { + "address": "0x880F7D37E9E4EB6868F92F4bB9C8C0995178fdA9", + "txHash": "0xb0b572cb5550908681a4937f3032d74e807e4749e076e7a2369a9f6a6287fb89", + "kind": "transparent" + } + ], + "impls": { + "d842d3284c7907c5f19a147c0cbd2122929069235475138a66cc4494a859f625": { + "address": "0x49Ac063337cF2fB26dD421Ab650b893CD54b900F", + "txHash": "0xeb6df28ea4994b34a72767f0402cf160925324ca7d49dbf68926b5579b50efcb", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_status", + "offset": 0, + "slot": "51", + "type": "t_uint256", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:38" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "ReentrancyGuardUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:74" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC2771RegistryContext", + "src": "contracts/metatx/ERC2771RegistryContext.sol:89" + }, + { + "label": "_owner", + "offset": 0, + "slot": "151", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "__gap", + "offset": 0, + "slot": "201", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_roles", + "offset": 0, + "slot": "251", + "type": "t_mapping(t_bytes32,t_struct(RoleData)12510_storage)", + "contract": "AccessControlUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:61" + }, + { + "label": "__gap", + "offset": 0, + "slot": "252", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:259" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)12510_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_struct(RoleData)12510_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + }, + "253a62aa57cd0fb636f3d61680877bc5c868441ef2cd1e4b8c7708b08cb86953": { + "address": "0x7f21bA760352326c55FD6A83D218c2FCd294Dd1c", + "txHash": "0xebea783411087b71c566c3fa1479c649f519d5cba00023d78d2e2b0762facafb", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_name", + "offset": 0, + "slot": "101", + "type": "t_string_storage", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:25" + }, + { + "label": "_symbol", + "offset": 0, + "slot": "102", + "type": "t_string_storage", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:28" + }, + { + "label": "_owners", + "offset": 0, + "slot": "103", + "type": "t_mapping(t_uint256,t_address)", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:31" + }, + { + "label": "_balances", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_address,t_uint256)", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:34" + }, + { + "label": "_tokenApprovals", + "offset": 0, + "slot": "105", + "type": "t_mapping(t_uint256,t_address)", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:37" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "106", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:40" + }, + { + "label": "__gap", + "offset": 0, + "slot": "107", + "type": "t_array(t_uint256)44_storage", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:465" + }, + { + "label": "__gap", + "offset": 0, + "slot": "151", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC2771RegistryContext", + "src": "contracts/metatx/ERC2771RegistryContext.sol:81" + }, + { + "label": "_keys", + "offset": 0, + "slot": "201", + "type": "t_mapping(t_uint256,t_string_storage)", + "contract": "KeyStorage", + "src": "contracts/KeyStorage.sol:7" + }, + { + "label": "_records", + "offset": 0, + "slot": "202", + "type": "t_mapping(t_uint256,t_mapping(t_uint256,t_string_storage))", + "contract": "RecordStorage", + "src": "contracts/RecordStorage.sol:11" + }, + { + "label": "_tokenPresets", + "offset": 0, + "slot": "203", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "RecordStorage", + "src": "contracts/RecordStorage.sol:14" + }, + { + "label": "_HASHED_NAME", + "offset": 0, + "slot": "204", + "type": "t_bytes32", + "contract": "EIP712UpgradeableGap", + "src": "contracts/metatx/UNSRegistryForwarder.sol:12" + }, + { + "label": "_HASHED_VERSION", + "offset": 0, + "slot": "205", + "type": "t_bytes32", + "contract": "EIP712UpgradeableGap", + "src": "contracts/metatx/UNSRegistryForwarder.sol:13" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)50_storage", + "contract": "EIP712UpgradeableGap", + "src": "contracts/metatx/UNSRegistryForwarder.sol:14" + }, + { + "label": "_nonces", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "UNSRegistryForwarder", + "src": "contracts/metatx/UNSRegistryForwarder.sol:24" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "UNSRegistryForwarder", + "src": "contracts/metatx/UNSRegistryForwarder.sol:52" + }, + { + "label": "_prefix", + "offset": 0, + "slot": "307", + "type": "t_string_storage", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:34" + }, + { + "label": "_mintingManager", + "offset": 0, + "slot": "308", + "type": "t_address", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:36" + }, + { + "label": "_reverses", + "offset": 0, + "slot": "309", + "type": "t_mapping(t_address,t_uint256)", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:38" + }, + { + "label": "_proxyReaders", + "offset": 0, + "slot": "310", + "type": "t_mapping(t_address,t_bool)", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:40" + }, + { + "label": "_upgradedTokens", + "offset": 0, + "slot": "311", + "type": "t_mapping(t_uint256,t_bool)", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:42" + }, + { + "label": "_tokenNames", + "offset": 0, + "slot": "312", + "type": "t_mapping(t_uint256,t_string_storage)", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:44" + }, + { + "label": "__gap", + "offset": 0, + "slot": "313", + "type": "t_array(t_uint256)46_storage", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:472" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)44_storage": { + "label": "uint256[44]", + "numberOfBytes": "1408" + }, + "t_array(t_uint256)46_storage": { + "label": "uint256[46]", + "numberOfBytes": "1472" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_address)": { + "label": "mapping(uint256 => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_bool)": { + "label": "mapping(uint256 => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_uint256,t_string_storage))": { + "label": "mapping(uint256 => mapping(uint256 => string))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_string_storage)": { + "label": "mapping(uint256 => string)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + }, + "8ceb115d5750b751f5afe1df94dc1411cbacda45291a37329faab4b4c1e37bc5": { + "address": "0x63B6F3F80d12A70eA26a57cdFDc16F33e6fD319A", + "txHash": "0x1c6f713492c24c1e9fdcb9ed2ab98af6161afdc1446f5a95beb654102c9bf996", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_roles", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(RoleData)12510_storage)", + "contract": "AccessControlUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:61" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:259" + }, + { + "label": "unsRegistry", + "offset": 0, + "slot": "201", + "type": "t_contract(IUNSRegistry)28949", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:27" + }, + { + "label": "cnsMintingController", + "offset": 0, + "slot": "202", + "type": "t_contract(IMintingController)33640", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:28" + }, + { + "label": "cnsURIPrefixController", + "offset": 0, + "slot": "203", + "type": "t_contract(IURIPrefixController)33716", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:29" + }, + { + "label": "cnsResolver", + "offset": 0, + "slot": "204", + "type": "t_contract(IResolver)33708", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:30" + }, + { + "label": "_tlds", + "offset": 0, + "slot": "205", + "type": "t_mapping(t_uint256,t_string_storage)", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:37" + }, + { + "label": "unsOperator", + "offset": 0, + "slot": "206", + "type": "t_address", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:39" + }, + { + "label": "__gap", + "offset": 0, + "slot": "207", + "type": "t_array(t_uint256)49_storage", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:360" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IMintingController)33640": { + "label": "contract IMintingController", + "numberOfBytes": "20" + }, + "t_contract(IResolver)33708": { + "label": "contract IResolver", + "numberOfBytes": "20" + }, + "t_contract(IUNSRegistry)28949": { + "label": "contract IUNSRegistry", + "numberOfBytes": "20" + }, + "t_contract(IURIPrefixController)33716": { + "label": "contract IURIPrefixController", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)12510_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_string_storage)": { + "label": "mapping(uint256 => string)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(RoleData)12510_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + }, + "f73abcd951362b7a2714540440995727ccb8faff62284bb0458a90d02dcc5d48": { + "address": "0xf9A7A6516Ee73E4Bd3FA9fbABdA3C8DeA40c89FA", + "txHash": "0x8768f14c566b1973935e79fb16c956a07d39a178a251263c205ace2ab6ac648d", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + }, + "252b8b38ac5b0ff85aa5fa64e05526c81cc16338db6051825f77bdab0f4b3ea3": { + "address": "0x20aEe87df4895ef84F77588137B87a2057D6E106", + "txHash": "0xe477f4a80538ecdc0bddaa8c3b11a85b6ce7977da28db15a1c47d2fda4d699eb", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "MulticallUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol:50" + }, + { + "label": "_unsRegistry", + "offset": 0, + "slot": "101", + "type": "t_contract(IUNSRegistry)1323", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:22" + }, + { + "label": "_cnsRegistry", + "offset": 0, + "slot": "102", + "type": "t_contract(ICNSRegistry)2658", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:23" + }, + { + "label": "__gap", + "offset": 0, + "slot": "103", + "type": "t_array(t_uint256)50_storage", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:339" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(ICNSRegistry)2658": { + "label": "contract ICNSRegistry", + "numberOfBytes": "20" + }, + "t_contract(IUNSRegistry)1323": { + "label": "contract IUNSRegistry", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + }, + "70cd0583616facd4b0530a1367f3edc90f33e7b10f43676f7ab257b7e4da7867": { + "address": "0xdA0E8ec8f801593161e689275Ab1394e7791ee18", + "txHash": "0x8d587902f0039b11d2ac4b96882ef11812f4fb8c9c5e606bfb4f15a9c5e209fe", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "MulticallUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol:50" + }, + { + "label": "_unsRegistry", + "offset": 0, + "slot": "101", + "type": "t_contract(IUNSRegistry)5315", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:26" + }, + { + "label": "_cnsRegistry", + "offset": 0, + "slot": "102", + "type": "t_contract(ICNSRegistry)11196", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:27" + }, + { + "label": "_families", + "offset": 0, + "slot": "103", + "type": "t_mapping(t_string_memory_ptr,t_string_storage)", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:30" + }, + { + "label": "_legacyKeys", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_string_memory_ptr,t_array(t_string_storage)dyn_storage)", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:32" + }, + { + "label": "__gap", + "offset": 0, + "slot": "105", + "type": "t_array(t_uint256)48_storage", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:460" + } + ], + "types": { + "t_array(t_string_storage)dyn_storage": { + "label": "string[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)48_storage": { + "label": "uint256[48]", + "numberOfBytes": "1536" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(ICNSRegistry)11196": { + "label": "contract ICNSRegistry", + "numberOfBytes": "20" + }, + "t_contract(IUNSRegistry)5315": { + "label": "contract IUNSRegistry", + "numberOfBytes": "20" + }, + "t_mapping(t_string_memory_ptr,t_array(t_string_storage)dyn_storage)": { + "label": "mapping(string => string[])", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_string_storage)": { + "label": "mapping(string => string)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + } + } +} diff --git a/uns-config.json b/uns-config.json index b2610c26..412ebd69 100644 --- a/uns-config.json +++ b/uns-config.json @@ -633,6 +633,43 @@ "legacyAddresses": [], "deploymentBlock": "0x0", "deprecated": true + }, + "RootChainManager": { + "address": "0x34F5A25B627f50Bb3f5cAb72807c4D4F405a9232", + "legacyAddresses": [], + "deploymentBlock": "0x486867" + }, + "UNSRegistry": { + "address": "0xDD907B4d80B4a979fd77eE502580c55F2700292c", + "deploymentBlock": "0x55a711", + "implementation": "0x7f21bA760352326c55FD6A83D218c2FCd294Dd1c", + "forwarder": "0xDD907B4d80B4a979fd77eE502580c55F2700292c" + }, + "MintingManager": { + "address": "0x1620637c0ce88cccfa919ef562b4398e3187189d", + "deploymentBlock": "0x55a715", + "implementation": "0x63B6F3F80d12A70eA26a57cdFDc16F33e6fD319A", + "forwarder": "0x38F532B32E0b42E747483A37Dfaf05460b1F4Fa3" + }, + "UNSOperator": { + "address": "0x41fD65E5a1cbdcCdD69F8C11DA4c829F7d3565A6", + "deploymentBlock": "0x55A717", + "implementation": "0xf9A7A6516Ee73E4Bd3FA9fbABdA3C8DeA40c89FA" + }, + "ProxyReader": { + "address": "0x880F7D37E9E4EB6868F92F4bB9C8C0995178fdA9", + "deploymentBlock": "0x55a857", + "implementation": "0xdA0E8ec8f801593161e689275Ab1394e7791ee18" + }, + "DotCoinBurner": { + "address": "0x64E3ecF931610d2503247b7c7A885688de54241A", + "legacyAddresses": [], + "deploymentBlock": "0x55f932" + }, + "ZilliqaRecover": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0" } } } From 2bbe76b03d47669224f25618fe83d3efd1cc80a4 Mon Sep 17 00:00:00 2001 From: Nick Shatilo Date: Fri, 5 Apr 2024 18:39:27 +0100 Subject: [PATCH 5/8] completed L2 deployment --- hardhat.config.ts | 34 +++++++------- src/tasks.ts | 1 + uns-config.json | 115 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 18 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index eabe5a94..096124de 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -147,7 +147,7 @@ const config: HardhatUserConfig = { accounts: process.env.SEPOLIA_UNS_PRIVATE_KEY ? [process.env.SEPOLIA_UNS_PRIVATE_KEY] : undefined, }, amoy: { - url: `https://amoy.infura.io/v3/${process.env.AMOY_INFURA_KEY}`, + url: `https://polygon-amoy.infura.io/v3/${process.env.AMOY_INFURA_KEY}`, chainId: 80002, accounts: process.env.AMOY_UNS_PRIVATE_KEY ? [process.env.AMOY_UNS_PRIVATE_KEY] : undefined, }, @@ -195,11 +195,21 @@ const config: HardhatUserConfig = { goerli: process.env.ETHERSCAN_API_KEY, sepolia: process.env.ETHERSCAN_API_KEY, - //what to do with amoy??? - polygon: process.env.POLYGONSCAN_API_KEY, polygonMumbai: process.env.POLYGONSCAN_API_KEY, + + polygonAmoy: process.env.OKLINK_API_KEY, }) as Record, + customChains: [ + { + network: 'polygonAmoy', + chainId: 80002, + urls: { + apiURL: 'https://www.oklink.com/api/explorer/v1/contract/verify/async/api/polygonAmoy', + browserURL: 'https://www.oklink.com/polygonAmoy', + }, + }, + ], }, abiExporter: { path: './artifacts/abi', @@ -213,23 +223,11 @@ const config: HardhatUserConfig = { hardhat: ['0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'], localhost: ['0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'], sandbox: ['0x9DC64b2558b458A15C7f01c192D874Ef460f0A29'], - goerli: [ - // What are this accounts? - // '0xb3B86785A51B950fd54ABdF420ff3B60E091870c', - // '0x7EF88A779651f26a4967026a32Cae4F01fF8D151', - // '0x0c71a3494484459bbF9777Dd3109515B2E653CCb', - // '0x288DA3443BBEBcc7a339182323aa3F23126DFe7a', - // '0xe45541799119C1D63b60e0F834F3A381D4BEDbea', - // '0xdb36B5c4cF1D96f020D7629a09cB54ab787414d6', - // '0x3b9FB7983d897B7fe2fD7563e07e24CbA830b03B', - // '0x903aA579B9eF13862Fda73275B349017d8fD09eB', - // '0x7Ac8596cfbb0504DFDEC08d5088B67E7fbfae47f', - // '0xB83180632b72f988585AF02FC27229bF2Eabd139', - '0x1daf08a27304a78434e22ab79bea508e341f910d', // whitelister signer L1 - ], - mumbai: ['0x31df70766e92c0a69ada7ecb6dc1634d64748be2'], + goerli: ['0x1daf08a27304a78434e22ab79bea508e341f910d'], sepolia: ['0x1daf08a27304a78434e22ab79bea508e341f910d'], + + mumbai: ['0x31df70766e92c0a69ada7ecb6dc1634d64748be2'], amoy: ['0x31df70766e92c0a69ada7ecb6dc1634d64748be2'], mainnet: ['0x5465c72ce00196550d6f89c40830f6bc81599f4f'], diff --git a/src/tasks.ts b/src/tasks.ts index 120d1950..43a23983 100644 --- a/src/tasks.ts +++ b/src/tasks.ts @@ -379,6 +379,7 @@ const deployUNSOperatorTask: Task = { await unsOperator.deployTransaction.wait(); const proxyAdmin = await upgrades.admin.getInstance(); + await ctx.saveContractConfig(UnsContractName.ProxyAdmin, proxyAdmin); const unsOperatorImpl = await proxyAdmin.callStatic.getProxyImplementation(unsOperator.address); await ctx.saveContractConfig(UnsContractName.UNSOperator, unsOperator, unsOperatorImpl); diff --git a/uns-config.json b/uns-config.json index 412ebd69..0541d198 100644 --- a/uns-config.json +++ b/uns-config.json @@ -570,6 +570,115 @@ } } }, + "80002": { + "contracts": { + "CNSRegistry": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "forwarder": "0x0000000000000000000000000000000000000000" + }, + "SignatureController": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0" + }, + "MintingController": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "deprecated": true + }, + "WhitelistedMinter": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "deprecated": true + }, + "URIPrefixController": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "deprecated": true + }, + "DomainZoneController": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "deprecated": true + }, + "Resolver": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "forwarder": "0x0000000000000000000000000000000000000000" + }, + "TwitterValidationOperator": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0" + }, + "FreeMinter": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0", + "deprecated": true + }, + "MintableERC721Predicate": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0" + }, + "RootChainManager": { + "address": "0x0000000000000000000000000000000000000000", + "legacyAddresses": [], + "deploymentBlock": "0x0" + }, + "ProxyAdmin": { + "address": "0xCbF16B0E2A06916F0Ca4892F704349d13E11cF66", + "legacyAddresses": [], + "deploymentBlock": "0x53f24d" + }, + "UNSOperator": { + "address": "0x89D35aABc8427a32ee7032e73975271e1480fd4E", + "legacyAddresses": [], + "deploymentBlock": "0x53f775", + "implementation": "0x49Ac063337cF2fB26dD421Ab650b893CD54b900F" + }, + "UNSRegistry": { + "address": "0xAb005176D74900A9c25fDA144e2f9f329A409166", + "legacyAddresses": [], + "deploymentBlock": "0x53f76a", + "implementation": "0x223350B4892300EA6E8adEF48C955dcf1C544D02", + "forwarder": "0xAb005176D74900A9c25fDA144e2f9f329A409166" + }, + "MintingManager": { + "address": "0xabec3fF0F0b6375F65CB9aEB01e8347bf697082F", + "legacyAddresses": [], + "deploymentBlock": "0x53f770", + "implementation": "0x5e6f02BA94648Fb25Ca98C6a577c04A0Db34c724", + "forwarder": "0xC738bD0E31CF0f7a777D815F8cA965f3c064C012" + }, + "ProxyReader": { + "address": "0x109e7315189E476AB21166955a0fB9BE9b531BEc", + "legacyAddresses": [], + "deploymentBlock": "0x53fff5", + "implementation": "0xA35F199591bD4F0Cb301ff85b6109Bda146dfb09" + }, + "DotCoinBurner": { + "address": "0xFc86844dE82FA7906C9789ca3161004F18Ca8ff4", + "legacyAddresses": [], + "deploymentBlock": "0x540d0d" + }, + "ZilliqaRecover": { + "address": "0x002380ccAFf852dEF50a176873d50f8019e36FBc", + "legacyAddresses": [], + "deploymentBlock": "0x540d6a", + "implementation": "0xBf101Ad6226024D1d26180136311d77387353c71", + "forwarder": "0x002380ccAFf852dEF50a176873d50f8019e36FBc" + } + } + }, "11155111": { "contracts": { "ProxyAdmin": { @@ -579,12 +688,14 @@ }, "ENSCustody": { "address": "0xd2Bf816C7b23fF6e7d141ECC4c1e41DcC857aD45", + "legacyAddresses": [], "deploymentBlock": "0x5588b9", "implementation": "0x49Ac063337cF2fB26dD421Ab650b893CD54b900F", "forwarder": "0xd2Bf816C7b23fF6e7d141ECC4c1e41DcC857aD45" }, "CNSRegistry": { "address": "0xAb005176D74900A9c25fDA144e2f9f329A409166", + "legacyAddresses": [], "deploymentBlock": "0x558be7", "forwarder": "0xD3146C740c0Fa128ab1aEA90e4E75194AC0Bbc9B" }, @@ -642,23 +753,27 @@ "UNSRegistry": { "address": "0xDD907B4d80B4a979fd77eE502580c55F2700292c", "deploymentBlock": "0x55a711", + "legacyAddresses": [], "implementation": "0x7f21bA760352326c55FD6A83D218c2FCd294Dd1c", "forwarder": "0xDD907B4d80B4a979fd77eE502580c55F2700292c" }, "MintingManager": { "address": "0x1620637c0ce88cccfa919ef562b4398e3187189d", "deploymentBlock": "0x55a715", + "legacyAddresses": [], "implementation": "0x63B6F3F80d12A70eA26a57cdFDc16F33e6fD319A", "forwarder": "0x38F532B32E0b42E747483A37Dfaf05460b1F4Fa3" }, "UNSOperator": { "address": "0x41fD65E5a1cbdcCdD69F8C11DA4c829F7d3565A6", "deploymentBlock": "0x55A717", + "legacyAddresses": [], "implementation": "0xf9A7A6516Ee73E4Bd3FA9fbABdA3C8DeA40c89FA" }, "ProxyReader": { "address": "0x880F7D37E9E4EB6868F92F4bB9C8C0995178fdA9", "deploymentBlock": "0x55a857", + "legacyAddresses": [], "implementation": "0xdA0E8ec8f801593161e689275Ab1394e7791ee18" }, "DotCoinBurner": { From 182db528b9896a3ec8b4d17fed81473122c1ea9e Mon Sep 17 00:00:00 2001 From: Nick Shatilo Date: Mon, 8 Apr 2024 10:45:19 +0100 Subject: [PATCH 6/8] removed goerli/mumbai, updated contracts.md, some minor fixes --- .gitignore | 4 +- .openzeppelin/unknown-80002.json | 882 +++++++++++++++++++++++++++++++ Contracts.md | 82 +-- README.md | 16 +- ens-config.json | 71 +-- hardhat.config.ts | 31 +- package.json | 6 +- scripts/blockexplorer_links.ts | 8 +- uns-config.json | 233 +------- 9 files changed, 960 insertions(+), 373 deletions(-) create mode 100644 .openzeppelin/unknown-80002.json diff --git a/.gitignore b/.gitignore index 757cba8f..f1a86b22 100644 --- a/.gitignore +++ b/.gitignore @@ -34,10 +34,10 @@ cache .openzeppelin/unknown-*.json # polygon network !.openzeppelin/unknown-137.json -# mumbai network -!.openzeppelin/unknown-80001.json # sepolia network !.openzeppelin/unknown-11155111.json +# amoy network +!.openzeppelin/unknown-80002.json .sandbox .deployer diff --git a/.openzeppelin/unknown-80002.json b/.openzeppelin/unknown-80002.json new file mode 100644 index 00000000..b18ee26b --- /dev/null +++ b/.openzeppelin/unknown-80002.json @@ -0,0 +1,882 @@ +{ + "manifestVersion": "3.2", + "admin": { + "address": "0xCbF16B0E2A06916F0Ca4892F704349d13E11cF66", + "txHash": "0xf9a84729d241d2b759a122ec06adf7669fac4d385de38e5d87bc162d1f3f8ec3" + }, + "proxies": [ + { + "address": "0xd2Bf816C7b23fF6e7d141ECC4c1e41DcC857aD45", + "txHash": "0xa6fd8ed57d1f3e91e8b41d382d86d81bf3b24af0fa23af2d39334618bb06f47f", + "kind": "transparent" + }, + { + "address": "0xAb005176D74900A9c25fDA144e2f9f329A409166", + "txHash": "0x4f511c8282c0f1afcd794a31e38aad15055d1694cc06249012a7af00638dda34", + "kind": "transparent" + }, + { + "address": "0xabec3fF0F0b6375F65CB9aEB01e8347bf697082F", + "txHash": "0x41a5ff04d54b1e25ececfba4861fe14e85f6b8e1452f1111d2468501e63317bb", + "kind": "transparent" + }, + { + "address": "0x89D35aABc8427a32ee7032e73975271e1480fd4E", + "txHash": "0x0e91d6048c9087b4d90f3089a1c3a9e980cdd440a7afbc4086a50b0dcda49346", + "kind": "transparent" + }, + { + "address": "0x109e7315189E476AB21166955a0fB9BE9b531BEc", + "txHash": "0x964813666cd2bae5bd530fef066b1adc063dea302ed7001bf1c414a8877bcb36", + "kind": "transparent" + }, + { + "address": "0x002380ccAFf852dEF50a176873d50f8019e36FBc", + "txHash": "0xc530695371ce1f4985c031395866be67a62d77a8323eec2060747237457dac1b", + "kind": "transparent" + } + ], + "impls": { + "f73abcd951362b7a2714540440995727ccb8faff62284bb0458a90d02dcc5d48": { + "address": "0x49Ac063337cF2fB26dD421Ab650b893CD54b900F", + "txHash": "0x2cf07a2206052c1b59df7cdd6dd9e0812dda8ba1ad79fcde5f5305409969d73c", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + }, + "01196f4a16460214f4f46380db9c408f5e626ada19466b1c234db291ef7d52b4": { + "address": "0x223350B4892300EA6E8adEF48C955dcf1C544D02", + "txHash": "0x8eaed279b9dea050a03e5c7b0295239f3e0988a33b6273b04e5c1b29c17c76ba", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_name", + "offset": 0, + "slot": "101", + "type": "t_string_storage", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:25" + }, + { + "label": "_symbol", + "offset": 0, + "slot": "102", + "type": "t_string_storage", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:28" + }, + { + "label": "_owners", + "offset": 0, + "slot": "103", + "type": "t_mapping(t_uint256,t_address)", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:31" + }, + { + "label": "_balances", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_address,t_uint256)", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:34" + }, + { + "label": "_tokenApprovals", + "offset": 0, + "slot": "105", + "type": "t_mapping(t_uint256,t_address)", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:37" + }, + { + "label": "_operatorApprovals", + "offset": 0, + "slot": "106", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:40" + }, + { + "label": "__gap", + "offset": 0, + "slot": "107", + "type": "t_array(t_uint256)44_storage", + "contract": "ERC721Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:465" + }, + { + "label": "__gap", + "offset": 0, + "slot": "151", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC2771RegistryContext", + "src": "contracts/metatx/ERC2771RegistryContext.sol:89" + }, + { + "label": "_keys", + "offset": 0, + "slot": "201", + "type": "t_mapping(t_uint256,t_string_storage)", + "contract": "KeyStorage", + "src": "contracts/KeyStorage.sol:7" + }, + { + "label": "_records", + "offset": 0, + "slot": "202", + "type": "t_mapping(t_uint256,t_mapping(t_uint256,t_string_storage))", + "contract": "RecordStorage", + "src": "contracts/RecordStorage.sol:11" + }, + { + "label": "_tokenPresets", + "offset": 0, + "slot": "203", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "RecordStorage", + "src": "contracts/RecordStorage.sol:14" + }, + { + "label": "_HASHED_NAME", + "offset": 0, + "slot": "204", + "type": "t_bytes32", + "contract": "EIP712UpgradeableGap", + "src": "contracts/metatx/UNSRegistryForwarder.sol:12" + }, + { + "label": "_HASHED_VERSION", + "offset": 0, + "slot": "205", + "type": "t_bytes32", + "contract": "EIP712UpgradeableGap", + "src": "contracts/metatx/UNSRegistryForwarder.sol:13" + }, + { + "label": "__gap", + "offset": 0, + "slot": "206", + "type": "t_array(t_uint256)50_storage", + "contract": "EIP712UpgradeableGap", + "src": "contracts/metatx/UNSRegistryForwarder.sol:14" + }, + { + "label": "_nonces", + "offset": 0, + "slot": "256", + "type": "t_mapping(t_uint256,t_uint256)", + "contract": "UNSRegistryForwarder", + "src": "contracts/metatx/UNSRegistryForwarder.sol:24" + }, + { + "label": "__gap", + "offset": 0, + "slot": "257", + "type": "t_array(t_uint256)50_storage", + "contract": "UNSRegistryForwarder", + "src": "contracts/metatx/UNSRegistryForwarder.sol:52" + }, + { + "label": "_prefix", + "offset": 0, + "slot": "307", + "type": "t_string_storage", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:36" + }, + { + "label": "_mintingManager", + "offset": 0, + "slot": "308", + "type": "t_address", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:38" + }, + { + "label": "_reverses", + "offset": 0, + "slot": "309", + "type": "t_mapping(t_address,t_uint256)", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:40" + }, + { + "label": "_proxyReaders", + "offset": 0, + "slot": "310", + "type": "t_mapping(t_address,t_bool)", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:42" + }, + { + "label": "_upgradedTokens", + "offset": 0, + "slot": "311", + "type": "t_mapping(t_uint256,t_bool)", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:44" + }, + { + "label": "_tokenNames", + "offset": 0, + "slot": "312", + "type": "t_mapping(t_uint256,t_string_storage)", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:46" + }, + { + "label": "_expiries", + "offset": 0, + "slot": "313", + "type": "t_mapping(t_uint256,t_uint64)", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:49" + }, + { + "label": "__gap", + "offset": 0, + "slot": "314", + "type": "t_array(t_uint256)45_storage", + "contract": "UNSRegistry", + "src": "contracts/UNSRegistry.sol:517" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)44_storage": { + "label": "uint256[44]", + "numberOfBytes": "1408" + }, + "t_array(t_uint256)45_storage": { + "label": "uint256[45]", + "numberOfBytes": "1440" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_address)": { + "label": "mapping(uint256 => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_bool)": { + "label": "mapping(uint256 => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_uint256,t_string_storage))": { + "label": "mapping(uint256 => mapping(uint256 => string))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_string_storage)": { + "label": "mapping(uint256 => string)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint256)": { + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_uint64)": { + "label": "mapping(uint256 => uint64)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + }, + "bfd3eb80c1da8a47581f1be22fed19c2845651adf167e37c5c70f49176f9b7b9": { + "address": "0x5e6f02BA94648Fb25Ca98C6a577c04A0Db34c724", + "txHash": "0x4eb76ef08e125f0817a119880ee599e21cf90f53840a3f07f404096da30a645c", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "_roles", + "offset": 0, + "slot": "151", + "type": "t_mapping(t_bytes32,t_struct(RoleData)12510_storage)", + "contract": "AccessControlUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:61" + }, + { + "label": "__gap", + "offset": 0, + "slot": "152", + "type": "t_array(t_uint256)49_storage", + "contract": "AccessControlUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:259" + }, + { + "label": "unsRegistry", + "offset": 0, + "slot": "201", + "type": "t_contract(IUNSRegistry)29170", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:30" + }, + { + "label": "cnsMintingController", + "offset": 0, + "slot": "202", + "type": "t_contract(IMintingController)35127", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:31" + }, + { + "label": "cnsURIPrefixController", + "offset": 0, + "slot": "203", + "type": "t_contract(IURIPrefixController)35203", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:32" + }, + { + "label": "cnsResolver", + "offset": 0, + "slot": "204", + "type": "t_contract(IResolver)35195", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:33" + }, + { + "label": "_tlds", + "offset": 0, + "slot": "205", + "type": "t_mapping(t_uint256,t_string_storage)", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:40" + }, + { + "label": "unsOperator", + "offset": 0, + "slot": "206", + "type": "t_address", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:42" + }, + { + "label": "_expirableTlds", + "offset": 0, + "slot": "207", + "type": "t_mapping(t_uint256,t_bool)", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:47" + }, + { + "label": "__gap", + "offset": 0, + "slot": "208", + "type": "t_array(t_uint256)48_storage", + "contract": "MintingManager", + "src": "contracts/MintingManager.sol:519" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)48_storage": { + "label": "uint256[48]", + "numberOfBytes": "1536" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IMintingController)35127": { + "label": "contract IMintingController", + "numberOfBytes": "20" + }, + "t_contract(IResolver)35195": { + "label": "contract IResolver", + "numberOfBytes": "20" + }, + "t_contract(IUNSRegistry)29170": { + "label": "contract IUNSRegistry", + "numberOfBytes": "20" + }, + "t_contract(IURIPrefixController)35203": { + "label": "contract IURIPrefixController", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)12510_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_bool)": { + "label": "mapping(uint256 => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_string_storage)": { + "label": "mapping(uint256 => string)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(RoleData)12510_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "members", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + }, + "70cd0583616facd4b0530a1367f3edc90f33e7b10f43676f7ab257b7e4da7867": { + "address": "0xA35F199591bD4F0Cb301ff85b6109Bda146dfb09", + "txHash": "0xc4ed0830d8b10a2cff6abafe8feef5d8d31372b17c00a05e6e2929b3e3bfbf71", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC165Upgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "MulticallUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol:50" + }, + { + "label": "_unsRegistry", + "offset": 0, + "slot": "101", + "type": "t_contract(IUNSRegistry)29170", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:26" + }, + { + "label": "_cnsRegistry", + "offset": 0, + "slot": "102", + "type": "t_contract(ICNSRegistry)35072", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:27" + }, + { + "label": "_families", + "offset": 0, + "slot": "103", + "type": "t_mapping(t_string_memory_ptr,t_string_storage)", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:30" + }, + { + "label": "_legacyKeys", + "offset": 0, + "slot": "104", + "type": "t_mapping(t_string_memory_ptr,t_array(t_string_storage)dyn_storage)", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:32" + }, + { + "label": "__gap", + "offset": 0, + "slot": "105", + "type": "t_array(t_uint256)48_storage", + "contract": "ProxyReader", + "src": "contracts/ProxyReader.sol:460" + } + ], + "types": { + "t_array(t_string_storage)dyn_storage": { + "label": "string[]", + "numberOfBytes": "32" + }, + "t_array(t_uint256)48_storage": { + "label": "uint256[48]", + "numberOfBytes": "1536" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(ICNSRegistry)35072": { + "label": "contract ICNSRegistry", + "numberOfBytes": "20" + }, + "t_contract(IUNSRegistry)29170": { + "label": "contract IUNSRegistry", + "numberOfBytes": "20" + }, + "t_mapping(t_string_memory_ptr,t_array(t_string_storage)dyn_storage)": { + "label": "mapping(string => string[])", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_string_storage)": { + "label": "mapping(string => string)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + }, + "fc15bd51ed198f3201c5db069c8ea15f691b7db6d09f0ed659fbfd44800fe66e": { + "address": "0xBf101Ad6226024D1d26180136311d77387353c71", + "txHash": "0x60dc1a7a9a0d767748a37f8298f8a5cf4759cd3cd8e21916675125451d7f33ce", + "layout": { + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + }, + { + "label": "__gap", + "offset": 0, + "slot": "51", + "type": "t_array(t_uint256)50_storage", + "contract": "ERC2771RegistryContext", + "src": "contracts/metatx/ERC2771RegistryContext.sol:89" + }, + { + "label": "_znsOwners", + "offset": 0, + "slot": "101", + "type": "t_mapping(t_uint256,t_address)", + "contract": "ZilliqaRecover", + "src": "contracts/custody/ZilliqaRecover.sol:39" + }, + { + "label": "registry", + "offset": 0, + "slot": "102", + "type": "t_contract(IUNSRegistry)29170", + "contract": "ZilliqaRecover", + "src": "contracts/custody/ZilliqaRecover.sol:40" + }, + { + "label": "mintingManager", + "offset": 0, + "slot": "103", + "type": "t_contract(IMintingManager)28686", + "contract": "ZilliqaRecover", + "src": "contracts/custody/ZilliqaRecover.sol:41" + } + ], + "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(IMintingManager)28686": { + "label": "contract IMintingManager", + "numberOfBytes": "20" + }, + "t_contract(IUNSRegistry)29170": { + "label": "contract IUNSRegistry", + "numberOfBytes": "20" + }, + "t_mapping(t_uint256,t_address)": { + "label": "mapping(uint256 => address)", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + } + } + } + } +} diff --git a/Contracts.md b/Contracts.md index 9af047de..88672840 100644 --- a/Contracts.md +++ b/Contracts.md @@ -4,93 +4,111 @@ - - - + - + - + - + - + + + + + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + +

UNSRegistry

networkaddressforwarder
10x049aba7510f45BA5b64ea9E658E342F904DB358D0x049aba7510f45BA5b64ea9E658E342F904DB358D
50x070e83FCed225184E67c86302493ffFCDB953f710x070e83FCed225184E67c86302493ffFCDB953f71
1370xa9a6A3626993D487d2Dbda3173cf58cA1a9D9e9f0xa9a6A3626993D487d2Dbda3173cf58cA1a9D9e9f
800010x2a93C52E7B6E7054870758e15A1446E769EdfB930x2a93C52E7B6E7054870758e15A1446E769EdfB93

CNSRegistry

networkaddressforwarder
10xD1E5b0FF1287aA9f9A268759062E4Ab08b9Dacbe0x97B0E89fC1B7eD4A8B237D9d8Fcce9b234f25A37
800020xAb005176D74900A9c25fDA144e2f9f329A4091660xAb005176D74900A9c25fDA144e2f9f329A409166
50x801452cFAC27e79a11c6b185986fdE09e86375890x00443017FFaa4C840Caf5Dc7d3CB59147f363080
111551110xDD907B4d80B4a979fd77eE502580c55F2700292c0xDD907B4d80B4a979fd77eE502580c55F2700292c

CNSRegistry

networkaddressforwarder
10xD1E5b0FF1287aA9f9A268759062E4Ab08b9Dacbe0x97B0E89fC1B7eD4A8B237D9d8Fcce9b234f25A37
137
80001

MintingManager

networkaddressforwarder
10x2a7084870bB724175a3C96Da8FaA55128fa3E19D0xb970fbCF52cd8111c76c379D4f2FE12E7f8AE7fb
80002
50x9ee42D3EB042e06F8Cd241890C4fA0d51e4DA3450x7F9F48cF94C69ce91D4b442DA186F31118ac0185
111551110xAb005176D74900A9c25fDA144e2f9f329A4091660xD3146C740c0Fa128ab1aEA90e4E75194AC0Bbc9B

MintingManager

networkaddressforwarder
10x2a7084870bB724175a3C96Da8FaA55128fa3E19D0xb970fbCF52cd8111c76c379D4f2FE12E7f8AE7fb
1370x7be83293BeeDc9Eba1bd76c66A65F10F3efaeC260xC37d3c4326ab0E1D2b9D8b916bBdf5715f780fcF
800010x428189346bb3CC52f031A1092fd47C919AC30A9f0xEf3a491A8750BEC2Dff5339CF6Df94436d432C4d

ProxyAdmin

networkaddressforwarder
10xAA16DA78110D9A9742c760a1a064F28654Ab93de
800020xabec3fF0F0b6375F65CB9aEB01e8347bf697082F0xC738bD0E31CF0f7a777D815F8cA965f3c064C012
111551110x1620637c0ce88cccfa919ef562b4398e3187189d0x38F532B32E0b42E747483A37Dfaf05460b1F4Fa3

UNSOperator

networkaddressforwarder
10x28400c6e89f11a99fD7145a24d39c19f949Ab86e
1370x8f0c61C9BD21d3a5c078FB03eCA01AE2Ff5380dB
50xf4906E210523F9dA79E33811A44EE000441F4E04
800020x89D35aABc8427a32ee7032e73975271e1480fd4E
111551110x41fD65E5a1cbdcCdD69F8C11DA4c829F7d3565A6

ProxyAdmin

networkaddressforwarder
10xAA16DA78110D9A9742c760a1a064F28654Ab93de
1370xe1D668052D52388F52b90f4d1798DB2b04bC3b88
800010x460d63117c7Ab1624b7474C45BF46eC6702f57ce

SignatureController

networkaddressforwarder
10x82EF94294C95aD0930055f31e53A34509227c5f7
800020xCbF16B0E2A06916F0Ca4892F704349d13E11cF66
50x5199dAE4B24B987ba18FcE1b64664D1B798d372B
111551110xCbF16B0E2A06916F0Ca4892F704349d13E11cF66

SignatureController

networkaddressforwarder
10x82EF94294C95aD0930055f31e53A34509227c5f7
137
80001

MintingController

networkaddressforwarder
10xb0EE56339C3253361730F50c08d3d7817ecD60Ca
80002
50xCEC41677be322049cC885c0DAe2fE0D52CA195ca
111551110x5e6f02BA94648Fb25Ca98C6a577c04A0Db34c724

MintingController

networkaddressforwarder
10xb0EE56339C3253361730F50c08d3d7817ecD60Ca
137
80001

WhitelistedMinter

networkaddressforwarder
10xd3fF3377b0ceade1303dAF9Db04068ef8a650757
80002
5
111551110xabec3fF0F0b6375F65CB9aEB01e8347bf697082F

WhitelistedMinter

networkaddressforwarder
10xd3fF3377b0ceade1303dAF9Db04068ef8a650757
137
80001

URIPrefixController

networkaddressforwarder
10x09B091492759737C03da9dB7eDF1CD6BCC3A9d91
80002
50x29465e3d2daA588E62375977bCe9b3f51406a794
11155111

URIPrefixController

networkaddressforwarder
10x09B091492759737C03da9dB7eDF1CD6BCC3A9d91
137
80001

DomainZoneController

networkaddressforwarder
10xeA70777e28E00E81f58b8921fC47F78B8a72eFE7
80002
5
111551110x89D35aABc8427a32ee7032e73975271e1480fd4E

DomainZoneController

networkaddressforwarder
10xeA70777e28E00E81f58b8921fC47F78B8a72eFE7
137
80001

Resolver

networkaddressforwarder
10xb66DcE2DA6afAAa98F2013446dBCB0f4B0ab28420xc33aBEe943be2A2DA50708bAb61F47d581ee450d
80002
50x0555344A5F440Bd1d8cb6B42db46c5e5D40704370xFCc1A95B7287Ae7a8B7cA813F12991dF5714d4C7
11155111

Resolver

networkaddressforwarder
10xb66DcE2DA6afAAa98F2013446dBCB0f4B0ab28420x486eb10E4F48C038513ECAf11585Ca2779768CF2
137
80001

ProxyReader

networkaddressforwarder
10x58034A288D2E56B661c9056A0C27273E5460B63c
80002
50xE3b961856C417d081a02cBa0161a051268F52677
111551110xf8F0622A88eC688140890153191Db1713442618D0xA35F199591bD4F0Cb301ff85b6109Bda146dfb09

ProxyReader

networkaddressforwarder
10x578853aa776Eef10CeE6c4dd2B5862bdcE767A8B
1370x423F2531bd5d3C3D4EF7C318c2D1d9BEDE67c680
1370x91EDd8708062bd4233f4Dd0FCE15A7cb4d500091
800010x6fe7c857C1B0E54492C8762f27e0a45CA7ff264B

TwitterValidationOperator

networkaddressforwarder
10x2F659766E3D08561CA3408FbAba7C0749ab2c402
800020x109e7315189E476AB21166955a0fB9BE9b531BEc
5
111551110x880F7D37E9E4EB6868F92F4bB9C8C0995178fdA9

TwitterValidationOperator

networkaddressforwarder
10x2F659766E3D08561CA3408FbAba7C0749ab2c402
137
80001

FreeMinter

networkaddressforwarder
10x1fC985cAc641ED5846b631f96F35d9b48Bc3b834
80002
5
11155111

FreeMinter

networkaddressforwarder
10x1fC985cAc641ED5846b631f96F35d9b48Bc3b834
137
80001

MintableERC721Predicate

networkaddressforwarder
10x932532aA4c0174b8453839A6E44eE09Cc615F2b7
80002
50x56E14C4C1748a818a5564D33cF774c59EB3eDF59
11155111

MintableERC721Predicate

networkaddressforwarder
10x932532aA4c0174b8453839A6E44eE09Cc615F2b7
137
80001

RootChainManager

networkaddressforwarder
10xA0c68C638235ee32657e8f720a23ceC1bFc77C77
80002
50xBbD7cBFA79faee899Eaf900F13C9065bF03B1A74
111551110xf8D2ecCA43F50F04922A13c417aEd05C34F1EF52

RootChainManager

networkaddressforwarder
10xA0c68C638235ee32657e8f720a23ceC1bFc77C77
137
80001
80002
111551110x34F5A25B627f50Bb3f5cAb72807c4D4F405a9232

DotCoinBurner

networkaddressforwarder
10x65c6abdf52aD08A53A77488D1Acc5c666ada840F
1370x65c6abdf52aD08A53A77488D1Acc5c666ada840F
800020xFc86844dE82FA7906C9789ca3161004F18Ca8ff4
111551110x64E3ecF931610d2503247b7c7A885688de54241A

ZilliqaRecover

networkaddressforwarder
1
1370x07B58C81f160257BCb3a2d549ea02D36E3e704610x07B58C81f160257BCb3a2d549ea02D36E3e70461
800020x002380ccAFf852dEF50a176873d50f8019e36FBc0x002380ccAFf852dEF50a176873d50f8019e36FBc
11155111
diff --git a/README.md b/README.md index 686571f9..8d1f3b6a 100644 --- a/README.md +++ b/README.md @@ -169,9 +169,9 @@ NOTE: All private keys should be in HEX format with `0x` prefix Network | Variables --- | --- Mainnet | MAINNET_INFURA_KEY
MAINNET_UNS_PRIVATE_KEY
ETHERSCAN_API_KEY -Goerli | GOERLI_INFURA_KEY
GOERLI_UNS_PRIVATE_KEY
ETHERSCAN_API_KEY +Sepolia | SEPOLIA_INFURA_KEY
SEPOLIA_UNS_PRIVATE_KEY
ETHERSCAN_API_KEY Polygon | POLYGON_INFURA_KEY
POLYGON_UNS_PRIVATE_KEY
POLYGONSCAN_API_KEY -Mumbai | MUMBAI_INFURA_KEY
MUMBAI_UNS_PRIVATE_KEY
POLYGONSCAN_API_KEY +Amoy | AMOY_INFURA_KEY
AMOY_UNS_PRIVATE_KEY
OKLINK_API_KEY
@@ -220,11 +220,11 @@ yarn hardhat run --network scripts/filename.ts As scripts make JSON-RPC calls to Infura and sign transactions, you'll need to specify 2 environment variables. Those variables' names depend on the network you want deploy the contracts to. Assuming you want to deploy new contracts -to Goerli, you'll need the following variables: +to Sepolia, you'll need the following variables: ``` -export GOERLI_UNS_PRIVATE_KEY= -export GOERLI_INFURA_KEY= +export SEPOLIA_UNS_PRIVATE_KEY= +export SEPOLIA_INFURA_KEY= ``` The scripts located in `./scripts` directory are wrappers around Deployer tasks. You can see their definitions inside @@ -247,10 +247,10 @@ yarn hardhat run --network scripts/deploy.ts Warning: In case of contracts' redeployment, make sure there is no deployment output file `.deployer/{chain_id}.json` -### Deploying UNS on L2(Polygon/Mumbai) +### Deploying UNS on L2(Polygon/Amoy) ``` -yarn hardhat run --network mumbai scripts/deploy_UNS_only.ts +yarn hardhat run --network amoy scripts/deploy_UNS_only.ts ``` ## L2 Polygon -There are configs networks [Mainnet](https://static.matic.network/network/mainnet/v1/index.json), [Testnet](https://static.matic.network/network/testnet/mumbai/index.json) +There are configs networks [Mainnet](https://static.polygon.technology/network/mainnet/v1/index.json), [Testnet](https://static.polygon.technology/network/testnet/amoy/index.json) diff --git a/ens-config.json b/ens-config.json index c9670962..75d34e1c 100644 --- a/ens-config.json +++ b/ens-config.json @@ -1,5 +1,5 @@ { - "version": "0.1.11", + "version": "0.2.0", "networks": { "1": { "contracts": { @@ -70,75 +70,6 @@ } } }, - "5": { - "contracts": { - "ENSRegistry": { - "address": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - "deploymentBlock": "0x1fd6d3" - }, - "BaseRegistrarImplementation": { - "address": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85", - "deploymentBlock": "0x1fd6dd" - }, - "ReverseRegistrar": { - "address": "0x4f7A657451358a22dc397d5eE7981FfC526cd856", - "deploymentBlock": "0x830309" - }, - "NameWrapper": { - "address": "0x114D4603199df73e7D157787f8778E21fCd13066", - "deploymentBlock": "0x83f9a2" - }, - "DummyOracle": { - "address": "0x0000000000000000000000000000000000000000", - "deploymentBlock": "0x0" - }, - "StablePriceOracle": { - "address": "0x0000000000000000000000000000000000000000", - "deploymentBlock": "0x0" - }, - "ETHRegistrarController": { - "address": "0xCc5e7dB10E65EED1BBD105359e7268aa660f6734", - "deploymentBlock": "0x83fa46" - }, - "PublicResolver": { - "address": "0xd7a4F6473f32aC2Af804B3686AE8F1932bC35750", - "legacyAddresses": [ - "0x342cf18D3e41DE491aa1a3067574C849AdA6a2Ad" - ], - "deploymentBlock": "0x83fa9e" - }, - "ProxyAdmin": { - "address": "0xf4906E210523F9dA79E33811A44EE000441F4E04", - "deploymentBlock": "0x5b57e8" - }, - "ENSCustody": { - "address": "0x74d1fA29295028e58573b894A4bF2cE8541036d4", - "deploymentBlock": "0x8b85b3", - "implementation": "0x223350B4892300EA6E8adEF48C955dcf1C544D02", - "forwarder": "0x74d1fA29295028e58573b894A4bF2cE8541036d4" - }, - "LegacyENSRegistry": { - "address": "0x112234455C3a32FD11230C42E7Bccd4A84e02010", - "deploymentBlock": "0xa890" - }, - "LegacyETHRegistrarController": { - "address": "0x283Af0B28c62C092C9727F1Ee09c02CA627EB7F5", - "deploymentBlock": "0x1fd6f0" - }, - "DNSRegistrar": { - "address": "0x8edc487D26F6c8Fa76e032066A3D4F87E273515d", - "deploymentBlock": "0x62ba01" - }, - "DNSSECImpl": { - "address": "0xF427c4AdED8B6dfde604865c1a7E953B160C26f0", - "deploymentBlock": "0x62b998" - }, - "Root": { - "address": "0x31e789Eb325aB116997942f7809731197a3dc059", - "deploymentBlock": "0x1FD760" - } - } - }, "1337": { "contracts": { "ENSRegistry": { diff --git a/hardhat.config.ts b/hardhat.config.ts index 096124de..fb5f7bd9 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -13,7 +13,7 @@ declare module 'hardhat/types/config' { interface HardhatUserConfig { uns?: { minters: MintersMap; - multisig: Record; + multisig: Record; }; } @@ -136,11 +136,6 @@ const config: HardhatUserConfig = { loggingEnabled: true, }, sandbox: Sandbox.defaultNetworkOptions(), - goerli: { - url: `https://goerli.infura.io/v3/${process.env.GOERLI_INFURA_KEY}`, - chainId: 5, - accounts: process.env.GOERLI_UNS_PRIVATE_KEY ? [process.env.GOERLI_UNS_PRIVATE_KEY] : undefined, - }, sepolia: { url: `https://sepolia.infura.io/v3/${process.env.SEPOLIA_INFURA_KEY}`, chainId: 11155111, @@ -157,12 +152,6 @@ const config: HardhatUserConfig = { accounts: process.env.MAINNET_UNS_PRIVATE_KEY ? [process.env.MAINNET_UNS_PRIVATE_KEY] : undefined, loggingEnabled: true, }, - mumbai: { - url: `https://polygon-mumbai.infura.io/v3/${process.env.MUMBAI_INFURA_KEY}`, - chainId: 80001, - accounts: process.env.MUMBAI_UNS_PRIVATE_KEY ? [process.env.MUMBAI_UNS_PRIVATE_KEY] : undefined, - loggingEnabled: true, - }, polygon: { url: `https://polygon-mainnet.infura.io/v3/${process.env.POLYGON_INFURA_KEY}`, chainId: 137, @@ -192,12 +181,8 @@ const config: HardhatUserConfig = { etherscan: { apiKey: pickBy({ mainnet: process.env.ETHERSCAN_API_KEY, - goerli: process.env.ETHERSCAN_API_KEY, sepolia: process.env.ETHERSCAN_API_KEY, - polygon: process.env.POLYGONSCAN_API_KEY, - polygonMumbai: process.env.POLYGONSCAN_API_KEY, - polygonAmoy: process.env.OKLINK_API_KEY, }) as Record, customChains: [ @@ -223,25 +208,17 @@ const config: HardhatUserConfig = { hardhat: ['0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'], localhost: ['0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'], sandbox: ['0x9DC64b2558b458A15C7f01c192D874Ef460f0A29'], - - goerli: ['0x1daf08a27304a78434e22ab79bea508e341f910d'], sepolia: ['0x1daf08a27304a78434e22ab79bea508e341f910d'], - - mumbai: ['0x31df70766e92c0a69ada7ecb6dc1634d64748be2'], amoy: ['0x31df70766e92c0a69ada7ecb6dc1634d64748be2'], - mainnet: ['0x5465c72ce00196550d6f89c40830f6bc81599f4f'], polygon: ['0x58cb2542a5b3b0999d41de59ad03331bbfb4dda3'], }, multisig: { mainnet: '0x6bEca92600be24179ae70A430AEF4aE632fddDc8', polygon: '0xC8E1B5c41c42ad1cE8336714cA2b2f2588F0a337', - goerli: '0x6DB268C88b8659141936F70e5e8acAa3f10597e8', - mumbai: '0xFce156303580bA8cC44D07aDcc7723A12E596244', - - // Multisigs will be created later - sepolia: '', - amoy: '', + // Multisigs will be created in the next PR + sepolia: null, + amoy: null, }, }, defender: { diff --git a/package.json b/package.json index 75d2e7bf..6f9b5ae8 100644 --- a/package.json +++ b/package.json @@ -24,11 +24,11 @@ "lint:sol": "solhint 'contracts/**/*.sol' && prettier -c 'contracts/**/*.sol'", "lint:sol:fix": "prettier --write \"contracts/**/*.sol\"", "deploy:localhost": "hardhat run --network localhost scripts/deploy.ts", - "deploy:goerli": "hardhat run --network goerli scripts/deploy.ts", + "deploy:sepolia": "hardhat run --network sepolia scripts/deploy.ts", "deploy:mainnet": "hardhat run --network mainnet scripts/deploy_UNS.ts", - "deploy:mumbai": "hardhat run --network mumbai scripts/deploy.ts", + "deploy:amoy": "hardhat run --network amoy scripts/deploy.ts", "upgrade:localhost": "hardhat run --network localhost scripts/upgrade.ts", - "upgrade:goerli": "hardhat run --network goerli scripts/upgrade.ts", + "upgrade:sepolia": "hardhat run --network sepolia scripts/upgrade.ts", "upgrade:mainnet": "hardhat run --network mainnet scripts/upgrade.ts", "start:node": "hardhat node", "gas-report": "env ENABLE_GAS_REPORT=true yarn test:sol", diff --git a/scripts/blockexplorer_links.ts b/scripts/blockexplorer_links.ts index 3c504ec8..67225cd2 100644 --- a/scripts/blockexplorer_links.ts +++ b/scripts/blockexplorer_links.ts @@ -1,4 +1,5 @@ import * as fs from 'fs'; +import {unwrap} from '../src/helpers'; type ContractSetup = { address: string; @@ -19,10 +20,9 @@ const isValidAddress = (address?: string): boolean => { const BlockExplorerUrls = { 1: 'https://etherscan.io', - 5: 'https://goerli.etherscan.io', 137: 'http://polygonscan.com', - // 1337: "http://localhost", - 80001: 'https://mumbai.polygonscan.com', + 80002: 'https://www.oklink.com/amoy', + 11155111: 'https://sepolia.etherscan.io/', }; const Networks = Object.keys(BlockExplorerUrls); @@ -50,7 +50,7 @@ const contractLinks = ( ? [address] : []; return addresses.length - ? addresses.map((a) => link(network, a)).join('
') + ? addresses.map((a) => link(network, unwrap(a))).join('
') : '—'; }; diff --git a/uns-config.json b/uns-config.json index 0541d198..6fbf2911 100644 --- a/uns-config.json +++ b/uns-config.json @@ -1,5 +1,5 @@ { - "version": "0.8.7", + "version": "0.9.0", "networks": { "1": { "contracts": { @@ -121,118 +121,6 @@ } } }, - "5": { - "contracts": { - "UNSRegistry": { - "address": "0x070e83FCed225184E67c86302493ffFCDB953f71", - "implementation": "0x2ab164829617D51cD8c29848b8DcE163bFAF70aa", - "legacyAddresses": [], - "deploymentBlock": "0x5b57ea", - "forwarder": "0x070e83FCed225184E67c86302493ffFCDB953f71" - }, - "CNSRegistry": { - "address": "0x801452cFAC27e79a11c6b185986fdE09e8637589", - "legacyAddresses": [], - "deploymentBlock": "0x5b57d7", - "forwarder": "0x00443017FFaa4C840Caf5Dc7d3CB59147f363080" - }, - "MintingManager": { - "address": "0x9ee42D3EB042e06F8Cd241890C4fA0d51e4DA345", - "implementation": "0xe72E170CeA8F6665DcF6B8c350511F9771f21800", - "legacyAddresses": [], - "deploymentBlock": "0x5b57ec", - "forwarder": "0x7F9F48cF94C69ce91D4b442DA186F31118ac0185" - }, - "UNSOperator": { - "address": "0xd484eF427E87462F8ee816B0eA219c841f802eF6", - "legacyAddresses": [], - "deploymentBlock": "0x7ff335", - "implementation": "0x7DB4481290635743721FbDB9f96b1b0Cdf5CaE69" - }, - "ProxyAdmin": { - "address": "0xf4906E210523F9dA79E33811A44EE000441F4E04", - "legacyAddresses": [], - "deploymentBlock": "0x5b57e8" - }, - "SignatureController": { - "address": "0x5199dAE4B24B987ba18FcE1b64664D1B798d372B", - "legacyAddresses": [], - "deploymentBlock": "0x5b57d8" - }, - "MintingController": { - "address": "0xCEC41677be322049cC885c0DAe2fE0D52CA195ca", - "legacyAddresses": [], - "deploymentBlock": "0x5b57d9", - "deprecated": true - }, - "WhitelistedMinter": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "deprecated": true - }, - "URIPrefixController": { - "address": "0x29465e3d2daA588E62375977bCe9b3f51406a794", - "legacyAddresses": [], - "deploymentBlock": "0x5b57da", - "deprecated": true - }, - "DomainZoneController": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "deprecated": true - }, - "Resolver": { - "address": "0x0555344A5F440Bd1d8cb6B42db46c5e5D4070437", - "legacyAddresses": [], - "deploymentBlock": "0x5b57dc", - "forwarder": "0xFCc1A95B7287Ae7a8B7cA813F12991dF5714d4C7" - }, - "ProxyReader": { - "address": "0x76007c52C73972A441aFA1A0E1016B140ffdE689", - "implementation": "0xAa61dBf197646Bd01747f0AFf4Fa24135B4568Fb", - "legacyAddresses": [ - "0x77cb0e7503Ea82315421BcF0eE9603451cd285F6", - "0xE3b961856C417d081a02cBa0161a051268F52677", - "0x9A70ff906D422C2FD0F7B94244D6b36DB62Ee982", - "0xFc5f608149f4D9e2Ed0733efFe9DD57ee24BCF68" - ], - "deploymentBlock": "0x78b972" - }, - "TwitterValidationOperator": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0" - }, - "FreeMinter": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "deprecated": true - }, - "MintableERC721Predicate": { - "address": "0x56E14C4C1748a818a5564D33cF774c59EB3eDF59", - "legacyAddresses": [], - "deploymentBlock": "0x2fc240" - }, - "RootChainManager": { - "address": "0xBbD7cBFA79faee899Eaf900F13C9065bF03B1A74", - "legacyAddresses": [], - "deploymentBlock": "0x2dc9b9" - }, - "DotCoinBurner": { - "address": "0x65c6abdf52aD08A53A77488D1Acc5c666ada840F", - "legacyAddresses": [], - "deploymentBlock": "0x78f5ac" - }, - "ZilliqaRecover": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0" - } - } - }, "137": { "contracts": { "UNSRegistry": { @@ -456,120 +344,6 @@ } } }, - "80001": { - "contracts": { - "UNSRegistry": { - "address": "0x2a93C52E7B6E7054870758e15A1446E769EdfB93", - "implementation": "0xd150C9043209C8D28E50C65f2A25548681A3B0E2", - "legacyAddresses": [], - "deploymentBlock": "0x01213f43", - "forwarder": "0x2a93C52E7B6E7054870758e15A1446E769EdfB93" - }, - "CNSRegistry": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "forwarder": "0x0000000000000000000000000000000000000000" - }, - "MintingManager": { - "address": "0x428189346bb3CC52f031A1092fd47C919AC30A9f", - "implementation": "0x965b2c23853fF01148B61341E64eB1c806e372C5", - "legacyAddresses": [], - "deploymentBlock": "0x01213f4a", - "forwarder": "0xEf3a491A8750BEC2Dff5339CF6Df94436d432C4d" - }, - "UNSOperator": { - "address": "0x576a376832181ddD19d17CD4505F6BF8FEdb428E", - "legacyAddresses": [], - "deploymentBlock": "0x01e03592", - "implementation": "0xaBB7934fFD76282dc9d5126A5549C2695C9b52A2" - }, - "ProxyAdmin": { - "address": "0x460d63117c7Ab1624b7474C45BF46eC6702f57ce", - "legacyAddresses": [], - "deploymentBlock": "0x01213b22" - }, - "SignatureController": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0" - }, - "MintingController": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "deprecated": true - }, - "WhitelistedMinter": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "deprecated": true - }, - "URIPrefixController": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "deprecated": true - }, - "DomainZoneController": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "deprecated": true - }, - "Resolver": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "forwarder": "0x0000000000000000000000000000000000000000" - }, - "ProxyReader": { - "address": "0xBD4674F11d512120dFc8BAe5f84963d7419A5db2", - "implementation": "0x952e0E876ad3a47F503Fb53eB04dD89aA1e6B8Da", - "legacyAddresses": [ - "0x71f7C0A978A541aB13Bd5783470f38b0dd71Cf78", - "0x6fe7c857C1B0E54492C8762f27e0a45CA7ff264B", - "0xbd9e01F6513E7C05f71Bf21d419a3bDF1EA9104b", - "0x332A8191905fA8E6eeA7350B5799F225B8ed30a9" - ], - "deploymentBlock": "0x01bb07d3" - }, - "TwitterValidationOperator": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0" - }, - "FreeMinter": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0", - "deprecated": true - }, - "MintableERC721Predicate": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0" - }, - "RootChainManager": { - "address": "0x0000000000000000000000000000000000000000", - "legacyAddresses": [], - "deploymentBlock": "0x0" - }, - "DotCoinBurner": { - "address": "0x65c6abdf52aD08A53A77488D1Acc5c666ada840F", - "legacyAddresses": [], - "deploymentBlock": "0x01bbafc7" - }, - "ZilliqaRecover": { - "address": "0xED5ab744F862A1A2294366B63f9040cd690D2AC5", - "deploymentBlock": "0x029d7604", - "implementation": "0x200Eb5A26ce1d84166e998fB63F56b8B636a2006", - "legacyAddresses": [], - "forwarder": "0xED5ab744F862A1A2294366B63f9040cd690D2AC5" - } - } - }, "80002": { "contracts": { "CNSRegistry": { @@ -745,6 +519,11 @@ "deploymentBlock": "0x0", "deprecated": true }, + "MintableERC721Predicate": { + "address": "0xf8D2ecCA43F50F04922A13c417aEd05C34F1EF52", + "legacyAddresses": [], + "deploymentBlock": "0x0" + }, "RootChainManager": { "address": "0x34F5A25B627f50Bb3f5cAb72807c4D4F405a9232", "legacyAddresses": [], From 9963f95341978c65b5099224c9e06490d0d23a7f Mon Sep 17 00:00:00 2001 From: Nick Shatilo Date: Mon, 8 Apr 2024 11:30:09 +0100 Subject: [PATCH 7/8] updated changelog, package.json --- CHANGELOG.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b72506f..024b69b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## v0.9.7 + +- Deployed smart contracts to Sepolia, Amoy +- Removed Goerli, Mumbai + ## v0.9.6 - Add `.pog` TLD diff --git a/package.json b/package.json index 6f9b5ae8..bad5aa5a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uns", - "version": "0.9.6", + "version": "0.9.7", "description": "UNS contracts and tools", "repository": "https://github.com/unstoppabledomains/uns.git", "main": "./dist/index.js", From 812b7fe73e25cac081d96fb2e30f7e610b26b7c6 Mon Sep 17 00:00:00 2001 From: Nick Shatilo Date: Mon, 8 Apr 2024 11:42:00 +0100 Subject: [PATCH 8/8] lint fix --- scripts/blockexplorer_links.ts | 2 +- scripts/deploy_ENSCustody.ts | 2 +- scripts/propose_ENSCustody.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/blockexplorer_links.ts b/scripts/blockexplorer_links.ts index 67225cd2..44671f87 100644 --- a/scripts/blockexplorer_links.ts +++ b/scripts/blockexplorer_links.ts @@ -1,5 +1,5 @@ import * as fs from 'fs'; -import {unwrap} from '../src/helpers'; +import { unwrap } from '../src/helpers'; type ContractSetup = { address: string; diff --git a/scripts/deploy_ENSCustody.ts b/scripts/deploy_ENSCustody.ts index 2a1958fb..46280d0c 100644 --- a/scripts/deploy_ENSCustody.ts +++ b/scripts/deploy_ENSCustody.ts @@ -7,7 +7,7 @@ async function main () { console.log('Network:', network.name); const chainId: number = unwrap(network.config, 'chainId'); - if (![1, 5, 1337, 11155111].includes(chainId)) { + if (![1, 5, 1337].includes(chainId)) { throw new Error(`Unsupported network ${chainId}`); } diff --git a/scripts/propose_ENSCustody.ts b/scripts/propose_ENSCustody.ts index 658d7fe8..2e97470d 100644 --- a/scripts/propose_ENSCustody.ts +++ b/scripts/propose_ENSCustody.ts @@ -7,7 +7,7 @@ async function main () { console.log('Network:', network.name); const chainId: number = unwrap(network.config, 'chainId'); - if (![1, 5, 1337, 11155111].includes(chainId)) { + if (![1, 5, 1337].includes(chainId)) { throw new Error(`Unsupported network ${chainId}`); }