diff --git a/README.md b/README.md index 17d5f24f..19760662 100644 --- a/README.md +++ b/README.md @@ -2270,6 +2270,7 @@ To verify a deployed [`CreateX`](./src/CreateX.sol) contract on a block explorer - [LightLink Phoenix](https://phoenix.lightlink.io/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) - [XRPL EVM](https://explorer.xrplevm.org/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) - [DMD Diamond](https://explorer.bit.diamonds/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) +- [Citrea](https://explorer.mainnet.citrea.xyz/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) #### Ethereum Test Networks @@ -2367,6 +2368,8 @@ To verify a deployed [`CreateX`](./src/CreateX.sol) contract on a block explorer - [XRPL EVM Testnet](https://explorer.testnet.xrplevm.org/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) - [Arc Testnet](https://testnet.arcscan.app/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) - [DMD Diamond Testnet](https://testnet-explorer.bit.diamonds/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) +- [Citrea Testnet](https://explorer.testnet.citrea.xyz/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) +- [Tempo Testnet (Moderato)](https://explore.tempo.xyz/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) ## Integration With External Tooling diff --git a/deployments/deployments.json b/deployments/deployments.json index cce22aeb..c384701b 100644 --- a/deployments/deployments.json +++ b/deployments/deployments.json @@ -695,6 +695,13 @@ "https://explorer.bit.diamonds/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed" ] }, + { + "name": "Citrea", + "chainId": 4114, + "urls": [ + "https://explorer.mainnet.citrea.xyz/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed" + ] + }, { "name": "Sepolia", "chainId": 11155111, @@ -1357,5 +1364,21 @@ "urls": [ "https://testnet-explorer.bit.diamonds/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed" ] + }, + { + "name": "Citrea Testnet", + "chainId": 5115, + "urls": [ + "https://explorer.testnet.citrea.xyz/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed", + "https://repo.sourcify.dev/5115/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed" + ] + }, + { + "name": "Tempo Testnet (Moderato)", + "chainId": 42431, + "urls": [ + "https://explore.tempo.xyz/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed", + "https://repo.sourcify.dev/42431/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed" + ] } ] diff --git a/foundry.lock b/foundry.lock index 52a5d80c..9664a089 100644 --- a/foundry.lock +++ b/foundry.lock @@ -8,7 +8,7 @@ "lib/openzeppelin-contracts": { "branch": { "name": "master", - "rev": "becf082688e4ac5ee6aab641a1c9090a1d0d5c64" + "rev": "a51494d16556f7e0d590e5d3d47c4e25ac7ecdcd" } }, "lib/solady": { diff --git a/hardhat.config.ts b/hardhat.config.ts index 32e37812..f6367f84 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1233,6 +1233,21 @@ const config: HardhatUserConfig = { url: vars.get("DMD_MAINNET_URL", "https://rpc.bit.diamonds"), accounts, }, + citreaTestnet: { + chainId: 5115, + url: vars.get("CITREA_TESTNET_URL", "https://rpc.testnet.citrea.xyz"), + accounts, + }, + citreaMain: { + chainId: 4114, + url: vars.get("CITREA_MAINNET_URL", "https://rpc.mainnet.citrea.xyz"), + accounts, + }, + tempoTestnet: { + chainId: 42431, + url: vars.get("TEMPO_TESTNET_URL", "https://rpc.moderato.tempo.xyz"), + accounts, + }, }, contractSizer: { alphaSort: true, @@ -1543,6 +1558,11 @@ const config: HardhatUserConfig = { // For DMD Diamond testnet & mainnet dmd: vars.get("DMD_API_KEY", ""), dmdTestnet: vars.get("DMD_API_KEY", ""), + // For Citrea testnet & mainnet + citrea: vars.get("CITREA_API_KEY", ""), + citreaTestnet: vars.get("CITREA_API_KEY", ""), + // For Tempo testnet + tempoTestnet: vars.get("TEMPO_API_KEY", ""), }, customChains: [ { @@ -2919,6 +2939,30 @@ const config: HardhatUserConfig = { browserURL: "https://testnet-explorer.bit.diamonds", }, }, + { + network: "citrea", + chainId: 4114, + urls: { + apiURL: "https://explorer.mainnet.citrea.xyz/api", + browserURL: "https://explorer.mainnet.citrea.xyz", + }, + }, + { + network: "citreaTestnet", + chainId: 5115, + urls: { + apiURL: "https://explorer.testnet.citrea.xyz/api", + browserURL: "https://explorer.testnet.citrea.xyz", + }, + }, + { + network: "tempoTestnet", + chainId: 42431, + urls: { + apiURL: "https://contracts.tempo.xyz/v2/verify/42431", + browserURL: "https://explore.tempo.xyz", + }, + }, ], }, }; diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts index becf0826..a51494d1 160000 --- a/lib/openzeppelin-contracts +++ b/lib/openzeppelin-contracts @@ -1 +1 @@ -Subproject commit becf082688e4ac5ee6aab641a1c9090a1d0d5c64 +Subproject commit a51494d16556f7e0d590e5d3d47c4e25ac7ecdcd diff --git a/package.json b/package.json index 111eee1e..aa1a82a6 100644 --- a/package.json +++ b/package.json @@ -241,6 +241,9 @@ "deploy:arctestnet": "hardhat run --no-compile --network arcTestnet scripts/deploy.ts", "deploy:dmdtestnet": "npx hardhat run --no-compile --network dmdTestnet scripts/deploy.ts", "deploy:dmdmain": "npx hardhat run --no-compile --network dmdMain scripts/deploy.ts", + "deploy:citreatestnet": "npx hardhat run --no-compile --network citreaTestnet scripts/deploy.ts", + "deploy:citreamain": "npx hardhat run --no-compile --network citreaMain scripts/deploy.ts", + "deploy:tempotestnet": "npx hardhat run --no-compile --network tempoTestnet scripts/deploy.ts", "prettier:check": "prettier -c \"**/*.{js,ts,md,sol,json,yml,yaml}\"", "prettier:check:interface": "pnpm -C interface prettier:check", "prettier:fix": "prettier -w \"**/*.{js,ts,md,sol,json,yml,yaml}\"", @@ -265,7 +268,7 @@ "eslint-config-prettier": "^10.1.8", "ethers": "^6.16.0", "globals": "^17.3.0", - "hardhat": "^2.28.5", + "hardhat": "^2.28.6", "hardhat-abi-exporter": "^2.11.0", "hardhat-contract-sizer": "^2.10.1", "hardhat-gas-reporter": "^2.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 54d65e65..7945d7cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,16 +13,16 @@ importers: version: 9.39.2 '@nomicfoundation/hardhat-ethers': specifier: ^3.1.3 - version: 3.1.3(ethers@6.16.0)(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)) + version: 3.1.3(ethers@6.16.0)(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)) '@nomicfoundation/hardhat-verify': specifier: ^2.1.3 - version: 2.1.3(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)) + version: 2.1.3(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)) '@typechain/ethers-v6': specifier: ^0.5.1 version: 0.5.1(ethers@6.16.0)(typechain@8.3.2(typescript@5.9.3))(typescript@5.9.3) '@typechain/hardhat': specifier: ^9.1.0 - version: 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.16.0)(typechain@8.3.2(typescript@5.9.3))(typescript@5.9.3))(ethers@6.16.0)(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))(typechain@8.3.2(typescript@5.9.3)) + version: 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.16.0)(typechain@8.3.2(typescript@5.9.3))(typescript@5.9.3))(ethers@6.16.0)(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))(typechain@8.3.2(typescript@5.9.3)) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -36,17 +36,17 @@ importers: specifier: ^17.3.0 version: 17.3.0 hardhat: - specifier: ^2.28.5 - version: 2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) + specifier: ^2.28.6 + version: 2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) hardhat-abi-exporter: specifier: ^2.11.0 - version: 2.11.0(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)) + version: 2.11.0(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)) hardhat-contract-sizer: specifier: ^2.10.1 - version: 2.10.1(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)) + version: 2.10.1(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)) hardhat-gas-reporter: specifier: ^2.3.0 - version: 2.3.0(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))(typescript@5.9.3)(zod@4.3.6) + version: 2.3.0(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))(typescript@5.9.3)(zod@4.3.6) prettier: specifier: ^3.8.1 version: 3.8.1 @@ -2160,8 +2160,8 @@ packages: peerDependencies: hardhat: ^2.16.0 - hardhat@2.28.5: - resolution: {integrity: sha512-AlTvFAiLYXdy732uyzVWMFw5qjEpfAI0x9xMNe73cBzzD98ST783EaElDzbOXddJ7ro1Z3447FbO0xSinXfTVA==} + hardhat@2.28.6: + resolution: {integrity: sha512-zQze7qe+8ltwHvhX5NQ8sN1N37WWZGw8L63y+2XcPxGwAjc/SMF829z3NS6o1krX0sryhAsVBK/xrwUqlsot4Q==} hasBin: true peerDependencies: ts-node: '*' @@ -4280,22 +4280,22 @@ snapshots: '@nomicfoundation/edr-linux-x64-musl': 0.12.0-next.23 '@nomicfoundation/edr-win32-x64-msvc': 0.12.0-next.23 - '@nomicfoundation/hardhat-ethers@3.1.3(ethers@6.16.0)(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))': + '@nomicfoundation/hardhat-ethers@3.1.3(ethers@6.16.0)(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))': dependencies: debug: 4.4.3(supports-color@8.1.1) ethers: 6.16.0 - hardhat: 2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) + hardhat: 2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color - '@nomicfoundation/hardhat-verify@2.1.3(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))': + '@nomicfoundation/hardhat-verify@2.1.3(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))': dependencies: '@ethersproject/abi': 5.8.0 '@ethersproject/address': 5.8.0 cbor: 8.1.0 debug: 4.4.3(supports-color@8.1.1) - hardhat: 2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) + hardhat: 2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) lodash.clonedeep: 4.5.0 picocolors: 1.1.1 semver: 6.3.1 @@ -4619,12 +4619,12 @@ snapshots: typechain: 8.3.2(typescript@5.9.3) typescript: 5.9.3 - '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.16.0)(typechain@8.3.2(typescript@5.9.3))(typescript@5.9.3))(ethers@6.16.0)(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))(typechain@8.3.2(typescript@5.9.3))': + '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.16.0)(typechain@8.3.2(typescript@5.9.3))(typescript@5.9.3))(ethers@6.16.0)(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))(typechain@8.3.2(typescript@5.9.3))': dependencies: '@typechain/ethers-v6': 0.5.1(ethers@6.16.0)(typechain@8.3.2(typescript@5.9.3))(typescript@5.9.3) ethers: 6.16.0 fs-extra: 9.1.0 - hardhat: 2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) + hardhat: 2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) typechain: 8.3.2(typescript@5.9.3) '@types/estree@1.0.8': {} @@ -5891,20 +5891,20 @@ snapshots: graceful-fs@4.2.11: {} - hardhat-abi-exporter@2.11.0(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)): + hardhat-abi-exporter@2.11.0(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)): dependencies: '@ethersproject/abi': 5.8.0 delete-empty: 3.0.0 - hardhat: 2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) + hardhat: 2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) - hardhat-contract-sizer@2.10.1(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)): + hardhat-contract-sizer@2.10.1(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3)): dependencies: chalk: 4.1.2 cli-table3: 0.6.5 - hardhat: 2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) + hardhat: 2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) strip-ansi: 6.0.1 - hardhat-gas-reporter@2.3.0(hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))(typescript@5.9.3)(zod@4.3.6): + hardhat-gas-reporter@2.3.0(hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3))(typescript@5.9.3)(zod@4.3.6): dependencies: '@ethersproject/abi': 5.8.0 '@ethersproject/bytes': 5.8.0 @@ -5916,7 +5916,7 @@ snapshots: cli-table3: 0.6.5 ethereum-cryptography: 2.2.1 glob: 10.5.0 - hardhat: 2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) + hardhat: 2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3) jsonschema: 1.5.0 lodash: 4.17.23 markdown-table: 2.0.0 @@ -5929,7 +5929,7 @@ snapshots: - utf-8-validate - zod - hardhat@2.28.5(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3): + hardhat@2.28.6(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))(typescript@5.9.3): dependencies: '@ethereumjs/util': 9.1.0 '@ethersproject/abi': 5.8.0