From cbd6b8ba50bc881717b3d08ea2821a2fabcacd87 Mon Sep 17 00:00:00 2001 From: sudo rm -rf --no-preserve-root / Date: Fri, 17 Jan 2025 13:47:08 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9E=95=20Add=20Swellchain=20Test=20and=20Mai?= =?UTF-8?q?n=20Network=20Deployments=20(#172)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### 🕓 Changelog Add Swellchain test and main network deployments: - [Swellchain Sepolia Testnet](https://swell-testnet-explorer.alt.technology/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed), - [Swellchain](https://explorer.swellnetwork.io/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed). #### Verification Compare the `keccak256` hash of the runtime bytecode with the canonical `keccak256` hash of the runtime bytecode [here](https://github.com/pcaversaccio/createx#security-considerations) (`0xbd8a7ea8cfca7b4e5f5041d7d4b17bc317c5ce42cfbc42066a00cf26b43eb53f`): ```console ~$ cast keccak $(cast code 0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed --rpc-url https://swell-testnet.alt.technology) 0xbd8a7ea8cfca7b4e5f5041d7d4b17bc317c5ce42cfbc42066a00cf26b43eb53f ~$ cast keccak $(cast code 0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed --rpc-url https://swell-mainnet.alt.technology) 0xbd8a7ea8cfca7b4e5f5041d7d4b17bc317c5ce42cfbc42066a00cf26b43eb53f ``` --------- Signed-off-by: Pascal Marco Caversaccio --- README.md | 2 + deployments/deployments.json | 14 +++ hardhat.config.ts | 35 ++++++ interface/package.json | 4 +- lib/openzeppelin-contracts | 2 +- lib/solady | 2 +- package.json | 4 +- pnpm-lock.yaml | 212 ++++++++++++++++++----------------- src/.solhint.json | 1 + test/.solhint-tests.json | 1 + 10 files changed, 169 insertions(+), 108 deletions(-) diff --git a/README.md b/README.md index e8815d34..628c2aca 100644 --- a/README.md +++ b/README.md @@ -2238,6 +2238,7 @@ To verify a deployed [`CreateX`](./src/CreateX.sol) contract on a block explorer - [Shape](https://shapescan.xyz/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) - [Etherlink](https://explorer.etherlink.com/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) - [Soneium](https://soneium.blockscout.com/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) +- [Swellchain](https://explorer.swellnetwork.io/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) #### Ethereum Test Networks @@ -2304,6 +2305,7 @@ To verify a deployed [`CreateX`](./src/CreateX.sol) contract on a block explorer - [Shape Sepolia Testnet](https://explorer-sepolia.shape.network/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) - [Etherlink Testnet (Ghostnet)](https://testnet.explorer.etherlink.com/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) - [Soneium Sepolia Testnet (Minato)](https://soneium-minato.blockscout.com/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) +- [Swellchain Sepolia Testnet](https://swell-testnet-explorer.alt.technology/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed) ## Integration With External Tooling diff --git a/deployments/deployments.json b/deployments/deployments.json index faefe540..dd484780 100644 --- a/deployments/deployments.json +++ b/deployments/deployments.json @@ -459,6 +459,13 @@ "https://soneium.blockscout.com/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed" ] }, + { + "name": "Swellchain", + "chainId": 1923, + "urls": [ + "https://explorer.swellnetwork.io/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed" + ] + }, { "name": "Sepolia", "chainId": 11155111, @@ -902,5 +909,12 @@ "urls": [ "https://soneium-minato.blockscout.com/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed" ] + }, + { + "name": "Swellchain Sepolia Testnet", + "chainId": 1924, + "urls": [ + "https://swell-testnet-explorer.alt.technology/address/0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed" + ] } ] diff --git a/hardhat.config.ts b/hardhat.config.ts index 161ca6aa..7201df0a 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -835,6 +835,22 @@ const config: HardhatUserConfig = { url: vars.get("SONEIUM_MAINNET_URL", "https://rpc.soneium.org"), accounts, }, + swellTestnet: { + chainId: 1924, + url: vars.get( + "SWELL_TESTNET_URL", + "https://swell-testnet.alt.technology", + ), + accounts, + }, + swellMain: { + chainId: 1923, + url: vars.get( + "SWELL_MAINNET_URL", + "https://swell-mainnet.alt.technology", + ), + accounts, + }, }, contractSizer: { alphaSort: true, @@ -1057,6 +1073,9 @@ const config: HardhatUserConfig = { // For Soneium testnet & mainnet soneium: vars.get("SONEIUM_API_KEY", ""), soneiumTestnet: vars.get("SONEIUM_API_KEY", ""), + // For Swellchain testnet & mainnet + swell: vars.get("SWELL_API_KEY", ""), + swellTestnet: vars.get("SWELL_API_KEY", ""), }, customChains: [ { @@ -1937,6 +1956,22 @@ const config: HardhatUserConfig = { browserURL: "https://soneium-minato.blockscout.com", }, }, + { + network: "swell", + chainId: 1923, + urls: { + apiURL: "https://explorer.swellnetwork.io/api", + browserURL: "https://explorer.swellnetwork.io", + }, + }, + { + network: "swellTestnet", + chainId: 1924, + urls: { + apiURL: "https://swell-testnet-explorer.alt.technology/api", + browserURL: "https://swell-testnet-explorer.alt.technology", + }, + }, ], }, }; diff --git a/interface/package.json b/interface/package.json index 8075f164..b5b85d62 100644 --- a/interface/package.json +++ b/interface/package.json @@ -43,7 +43,7 @@ "@eslint/js": "^9.18.0", "@next/eslint-plugin-next": "^15.1.4", "@trivago/prettier-plugin-sort-imports": "^5.2.1", - "@types/node": "^22.10.6", + "@types/node": "^22.10.7", "@types/react": "^19.0.7", "@types/react-dom": "^19.0.3", "autoprefixer": "^10.4.20", @@ -54,7 +54,7 @@ "next-seo": "^6.6.0", "postcss": "^8.5.1", "prettier": "^3.4.2", - "prettier-plugin-tailwindcss": "^0.6.9", + "prettier-plugin-tailwindcss": "^0.6.10", "tailwindcss": "^3.4.17", "typescript": "^5.7.3", "typescript-eslint": "^8.20.0" diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts index 96b40d02..ea736bd4 160000 --- a/lib/openzeppelin-contracts +++ b/lib/openzeppelin-contracts @@ -1 +1 @@ -Subproject commit 96b40d02c3fe836ffa19b6ed9217c3719c996f78 +Subproject commit ea736bd45bd844d7968a64c5707d97710fe1c077 diff --git a/lib/solady b/lib/solady index adff2b47..8583a6e3 160000 --- a/lib/solady +++ b/lib/solady @@ -1 +1 @@ -Subproject commit adff2b4727c78341f822d9fdde21e377b79ccbb0 +Subproject commit 8583a6e386b897f3db142a541f86d5953eccd835 diff --git a/package.json b/package.json index a5ba6874..fe5957bf 100644 --- a/package.json +++ b/package.json @@ -173,6 +173,8 @@ "deploy:etherlinkmain": "npx hardhat run --no-compile --network etherlinkMain scripts/deploy.ts", "deploy:soneiumtestnet": "npx hardhat run --no-compile --network soneiumTestnet scripts/deploy.ts", "deploy:soneiummain": "npx hardhat run --no-compile --network soneiumMain scripts/deploy.ts", + "deploy:swelltestnet": "npx hardhat run --no-compile --network swellTestnet scripts/deploy.ts", + "deploy:swellmain": "npx hardhat run --no-compile --network swellMain scripts/deploy.ts", "prettier:check": "npx prettier -c \"**/*.{js,ts,md,sol,json,yml,yaml}\"", "prettier:check:interface": "pnpm -C interface prettier:check", "prettier:fix": "npx prettier -w \"**/*.{js,ts,md,sol,json,yml,yaml}\"", @@ -202,7 +204,7 @@ "hardhat-gas-reporter": "^2.2.2", "prettier": "^3.4.2", "prettier-plugin-solidity": "^1.4.2", - "solhint": "^5.0.4", + "solhint": "^5.0.5", "ts-node": "^10.9.2", "typechain": "^8.3.2", "typescript": "^5.7.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ec08efd..114e847f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,16 +13,16 @@ importers: version: 9.18.0 '@nomicfoundation/hardhat-ethers': specifier: ^3.0.8 - version: 3.0.8(ethers@6.13.5)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3)) + version: 3.0.8(ethers@6.13.5)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3)) '@nomicfoundation/hardhat-verify': specifier: ^2.0.12 - version: 2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3)) + version: 2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3)) '@typechain/ethers-v6': specifier: ^0.5.1 version: 0.5.1(ethers@6.13.5)(typechain@8.3.2(typescript@5.7.3))(typescript@5.7.3) '@typechain/hardhat': specifier: ^9.1.0 - version: 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.5)(typechain@8.3.2(typescript@5.7.3))(typescript@5.7.3))(ethers@6.13.5)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3))(typechain@8.3.2(typescript@5.7.3)) + version: 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.5)(typechain@8.3.2(typescript@5.7.3))(typescript@5.7.3))(ethers@6.13.5)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3))(typechain@8.3.2(typescript@5.7.3)) eslint: specifier: ^9.18.0 version: 9.18.0(jiti@2.4.0) @@ -34,16 +34,16 @@ importers: version: 6.13.5 hardhat: specifier: ^2.22.18 - version: 2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3) + version: 2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3) hardhat-abi-exporter: specifier: ^2.10.1 - version: 2.10.1(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3)) + version: 2.10.1(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3)) hardhat-contract-sizer: specifier: ^2.10.0 - version: 2.10.0(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3)) + version: 2.10.0(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3)) hardhat-gas-reporter: specifier: ^2.2.2 - version: 2.2.2(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3))(typescript@5.7.3) + version: 2.2.2(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3))(typescript@5.7.3) prettier: specifier: ^3.4.2 version: 3.4.2 @@ -51,11 +51,11 @@ importers: specifier: ^1.4.2 version: 1.4.2(prettier@3.4.2) solhint: - specifier: ^5.0.4 - version: 5.0.4(typescript@5.7.3) + specifier: ^5.0.5 + version: 5.0.5(typescript@5.7.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.10.6)(typescript@5.7.3) + version: 10.9.2(@types/node@22.10.7)(typescript@5.7.3) typechain: specifier: ^8.3.2 version: 8.3.2(typescript@5.7.3) @@ -103,8 +103,8 @@ importers: specifier: ^5.2.1 version: 5.2.1(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@4.2.19))(prettier@3.4.2)(svelte@4.2.19) '@types/node': - specifier: ^22.10.6 - version: 22.10.6 + specifier: ^22.10.7 + version: 22.10.7 '@types/react': specifier: ^19.0.7 version: 19.0.7 @@ -136,11 +136,11 @@ importers: specifier: ^3.4.2 version: 3.4.2 prettier-plugin-tailwindcss: - specifier: ^0.6.9 - version: 0.6.9(@trivago/prettier-plugin-sort-imports@5.2.1(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@4.2.19))(prettier@3.4.2)(svelte@4.2.19))(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@4.2.19))(prettier@3.4.2) + specifier: ^0.6.10 + version: 0.6.10(@trivago/prettier-plugin-sort-imports@5.2.1(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@4.2.19))(prettier@3.4.2)(svelte@4.2.19))(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@4.2.19))(prettier@3.4.2) tailwindcss: specifier: ^3.4.17 - version: 3.4.17(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3)) + version: 3.4.17(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)) typescript: specifier: ^5.7.3 version: 5.7.3 @@ -697,15 +697,17 @@ packages: resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@react-aria/focus@3.19.0': - resolution: {integrity: sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==} + '@react-aria/focus@3.19.1': + resolution: {integrity: sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/interactions@3.22.5': - resolution: {integrity: sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==} + '@react-aria/interactions@3.23.0': + resolution: {integrity: sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-aria/ssr@3.9.7': resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==} @@ -713,18 +715,19 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/utils@3.26.0': - resolution: {integrity: sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==} + '@react-aria/utils@3.27.0': + resolution: {integrity: sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-stately/utils@3.10.5': resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/shared@3.26.0': - resolution: {integrity: sha512-6FuPqvhmjjlpEDLTiYx29IJCbCNWPlsyO+ZUmCUXzhUv2ttShOXfw8CmeHWHftT/b2KweAWuzqSlfeXPR76jpw==} + '@react-types/shared@3.27.0': + resolution: {integrity: sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -873,8 +876,8 @@ packages: '@types/lru-cache@5.1.1': resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} - '@types/node@22.10.6': - resolution: {integrity: sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==} + '@types/node@22.10.7': + resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==} '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -1478,8 +1481,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.82: - resolution: {integrity: sha512-Zq16uk1hfQhyGx5GpwPAYDwddJuSGhtRhgOA2mCxANYaDT79nAeGnaXogMGng4KqLaJUVnOnuL0+TDop9nLOiA==} + electron-to-chromium@1.5.83: + resolution: {integrity: sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==} elliptic@6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} @@ -1524,8 +1527,8 @@ packages: resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} - es-object-atoms@1.1.0: - resolution: {integrity: sha512-Ujz8Al/KfOVR7fkaghAB1WvnLsdYxHDWmfoi2vlA2jZWRg31XhIC1a4B+/I24muD8iSbHxJ1JkrfqmWb65P/Mw==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: @@ -1729,8 +1732,8 @@ packages: fastq@1.18.0: resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} - fdir@6.4.2: - resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -2673,15 +2676,15 @@ packages: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - prettier-plugin-tailwindcss@0.6.9: - resolution: {integrity: sha512-r0i3uhaZAXYP0At5xGfJH876W3HHGHDp+LCRUJrs57PBeQ6mYHMwr25KH8NPX44F2yGTvdnH7OqCshlQx183Eg==} + prettier-plugin-tailwindcss@0.6.10: + resolution: {integrity: sha512-ndj2WLDaMzACnr1gAYZiZZLs5ZdOeBYgOsbBmHj3nvW/6q8h8PymsXiEnKvj/9qgCCAoHyvLOisoQdIcsDvIgw==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' '@prettier/plugin-pug': '*' '@shopify/prettier-plugin-liquid': '*' '@trivago/prettier-plugin-sort-imports': '*' - '@zackad/prettier-plugin-twig-melody': '*' + '@zackad/prettier-plugin-twig': '*' prettier: ^3.0 prettier-plugin-astro: '*' prettier-plugin-css-order: '*' @@ -2703,7 +2706,7 @@ packages: optional: true '@trivago/prettier-plugin-sort-imports': optional: true - '@zackad/prettier-plugin-twig-melody': + '@zackad/prettier-plugin-twig': optional: true prettier-plugin-astro: optional: true @@ -2990,8 +2993,8 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - solhint@5.0.4: - resolution: {integrity: sha512-GzKBjJ8S2utRsEOCJXhY2H35gwHGmoQY2rQXcPGT4XdDlzwgGYz0Ovo9Xm7cmWYgSo121uF+5tiwrqQT2b+Rtw==} + solhint@5.0.5: + resolution: {integrity: sha512-WrnG6T+/UduuzSWsSOAbfq1ywLUDwNea3Gd5hg6PS+pLUm8lz2ECNr0beX609clBxmDeZ3676AiA9nPDljmbJQ==} hasBin: true source-map-js@1.2.1: @@ -3286,8 +3289,8 @@ packages: undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - undici@5.28.4: - resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + undici@5.28.5: + resolution: {integrity: sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==} engines: {node: '>=14.0'} universalify@0.1.2: @@ -3713,8 +3716,8 @@ snapshots: '@headlessui/react@2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@floating-ui/react': 0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/focus': 3.19.0(react@19.0.0) - '@react-aria/interactions': 3.22.5(react@19.0.0) + '@react-aria/focus': 3.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@tanstack/react-virtual': 3.11.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -3954,27 +3957,27 @@ snapshots: '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 - '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.5)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3))': + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.5)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3))': dependencies: debug: 4.4.0(supports-color@8.1.1) ethers: 6.13.5 - hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color - '@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3))': + '@nomicfoundation/hardhat-verify@2.0.12(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3))': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/address': 5.7.0 cbor: 8.1.0 debug: 4.4.0(supports-color@8.1.1) - hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3) lodash.clonedeep: 4.5.0 picocolors: 1.1.1 semver: 6.3.1 table: 6.9.0 - undici: 5.28.4 + undici: 5.28.5 transitivePeerDependencies: - supports-color @@ -4024,43 +4027,46 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@react-aria/focus@3.19.0(react@19.0.0)': + '@react-aria/focus@3.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.22.5(react@19.0.0) - '@react-aria/utils': 3.26.0(react@19.0.0) - '@react-types/shared': 3.26.0(react@19.0.0) + '@react-aria/interactions': 3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.27.0(react@19.0.0) '@swc/helpers': 0.5.15 clsx: 2.1.1 react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) - '@react-aria/interactions@3.22.5(react@19.0.0)': + '@react-aria/interactions@3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-aria/utils': 3.26.0(react@19.0.0) - '@react-types/shared': 3.26.0(react@19.0.0) + '@react-aria/utils': 3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.27.0(react@19.0.0) '@swc/helpers': 0.5.15 react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@react-aria/ssr@3.9.7(react@19.0.0)': dependencies: '@swc/helpers': 0.5.15 react: 19.0.0 - '@react-aria/utils@3.26.0(react@19.0.0)': + '@react-aria/utils@3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@react-aria/ssr': 3.9.7(react@19.0.0) '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/shared': 3.26.0(react@19.0.0) + '@react-types/shared': 3.27.0(react@19.0.0) '@swc/helpers': 0.5.15 clsx: 2.1.1 react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@react-stately/utils@3.10.5(react@19.0.0)': dependencies: '@swc/helpers': 0.5.15 react: 19.0.0 - '@react-types/shared@3.26.0(react@19.0.0)': + '@react-types/shared@3.27.0(react@19.0.0)': dependencies: react: 19.0.0 @@ -4205,21 +4211,21 @@ snapshots: typechain: 8.3.2(typescript@5.7.3) typescript: 5.7.3 - '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.5)(typechain@8.3.2(typescript@5.7.3))(typescript@5.7.3))(ethers@6.13.5)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3))(typechain@8.3.2(typescript@5.7.3))': + '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.5)(typechain@8.3.2(typescript@5.7.3))(typescript@5.7.3))(ethers@6.13.5)(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3))(typechain@8.3.2(typescript@5.7.3))': dependencies: '@typechain/ethers-v6': 0.5.1(ethers@6.13.5)(typechain@8.3.2(typescript@5.7.3))(typescript@5.7.3) ethers: 6.13.5 fs-extra: 9.1.0 - hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3) typechain: 8.3.2(typescript@5.7.3) '@types/bn.js@4.11.6': dependencies: - '@types/node': 22.10.6 + '@types/node': 22.10.7 '@types/bn.js@5.1.6': dependencies: - '@types/node': 22.10.6 + '@types/node': 22.10.7 '@types/estree@1.0.6': {} @@ -4231,7 +4237,7 @@ snapshots: '@types/lru-cache@5.1.1': {} - '@types/node@22.10.6': + '@types/node@22.10.7': dependencies: undici-types: 6.20.0 @@ -4241,7 +4247,7 @@ snapshots: '@types/pbkdf2@3.1.2': dependencies: - '@types/node': 22.10.6 + '@types/node': 22.10.7 '@types/prettier@2.7.3': {} @@ -4255,7 +4261,7 @@ snapshots: '@types/secp256k1@4.0.6': dependencies: - '@types/node': 22.10.6 + '@types/node': 22.10.7 '@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.0))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.0))(typescript@5.7.3)': dependencies: @@ -4432,7 +4438,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.2.7 is-string: 1.1.1 @@ -4442,7 +4448,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 array.prototype.findlastindex@1.2.5: @@ -4451,7 +4457,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 array.prototype.flat@1.3.3: @@ -4578,7 +4584,7 @@ snapshots: browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001692 - electron-to-chromium: 1.5.82 + electron-to-chromium: 1.5.83 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) @@ -4898,7 +4904,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.82: {} + electron-to-chromium@1.5.83: {} elliptic@6.5.4: dependencies: @@ -4952,7 +4958,7 @@ snapshots: data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 @@ -5017,7 +5023,7 @@ snapshots: iterator.prototype: 1.1.5 safe-array-concat: 1.1.3 - es-object-atoms@1.1.0: + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -5350,7 +5356,7 @@ snapshots: dependencies: reusify: 1.0.4 - fdir@6.4.2(picomatch@4.0.2): + fdir@6.4.3(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -5443,7 +5449,7 @@ snapshots: call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 @@ -5454,7 +5460,7 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 get-stream@6.0.1: {} @@ -5542,20 +5548,20 @@ snapshots: graphemer@1.4.0: {} - hardhat-abi-exporter@2.10.1(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3)): + hardhat-abi-exporter@2.10.1(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3)): dependencies: '@ethersproject/abi': 5.7.0 delete-empty: 3.0.0 - hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3) - hardhat-contract-sizer@2.10.0(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3)): + hardhat-contract-sizer@2.10.0(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3)): dependencies: chalk: 4.1.2 cli-table3: 0.6.5 - hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3) strip-ansi: 6.0.1 - hardhat-gas-reporter@2.2.2(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3))(typescript@5.7.3): + hardhat-gas-reporter@2.2.2(hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3))(typescript@5.7.3): dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/bytes': 5.7.0 @@ -5567,7 +5573,7 @@ snapshots: cli-table3: 0.6.5 ethereum-cryptography: 2.2.1 glob: 10.4.5 - hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3) + hardhat: 2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3) jsonschema: 1.5.0 lodash: 4.17.21 markdown-table: 2.0.0 @@ -5580,7 +5586,7 @@ snapshots: - utf-8-validate - zod - hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3))(typescript@5.7.3): + hardhat@2.22.18(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))(typescript@5.7.3): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 @@ -5623,11 +5629,11 @@ snapshots: stacktrace-parser: 0.1.10 tinyglobby: 0.2.10 tsort: 0.0.1 - undici: 5.28.4 + undici: 5.28.5 uuid: 8.3.2 ws: 7.5.10 optionalDependencies: - ts-node: 10.9.2(@types/node@22.10.6)(typescript@5.7.3) + ts-node: 10.9.2(@types/node@22.10.7)(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - bufferutil @@ -5876,7 +5882,7 @@ snapshots: iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.2.7 get-proto: 1.0.1 has-symbols: 1.1.0 @@ -6170,7 +6176,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 @@ -6178,14 +6184,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 object.fromentries@2.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: @@ -6198,7 +6204,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 obliterator@2.0.5: {} @@ -6315,13 +6321,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.1 - postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3)): + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: postcss: 8.5.1 - ts-node: 10.9.2(@types/node@22.10.6)(typescript@5.7.3) + ts-node: 10.9.2(@types/node@22.10.7)(typescript@5.7.3) postcss-nested@6.2.0(postcss@8.5.1): dependencies: @@ -6361,7 +6367,7 @@ snapshots: svelte: 4.2.19 optional: true - prettier-plugin-tailwindcss@0.6.9(@trivago/prettier-plugin-sort-imports@5.2.1(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@4.2.19))(prettier@3.4.2)(svelte@4.2.19))(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@4.2.19))(prettier@3.4.2): + prettier-plugin-tailwindcss@0.6.10(@trivago/prettier-plugin-sort-imports@5.2.1(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@4.2.19))(prettier@3.4.2)(svelte@4.2.19))(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@4.2.19))(prettier@3.4.2): dependencies: prettier: 3.4.2 optionalDependencies: @@ -6441,7 +6447,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.2.7 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -6577,7 +6583,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 setimmediate@1.0.5: {} @@ -6677,7 +6683,7 @@ snapshots: transitivePeerDependencies: - debug - solhint@5.0.4(typescript@5.7.3): + solhint@5.0.5(typescript@5.7.3): dependencies: '@solidity-parser/parser': 0.19.0 ajv: 6.12.6 @@ -6748,7 +6754,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.2.7 gopd: 1.2.0 has-symbols: 1.1.0 @@ -6769,7 +6775,7 @@ snapshots: define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: @@ -6777,13 +6783,13 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.1.0 + es-object-atoms: 1.1.1 string_decoder@1.3.0: dependencies: @@ -6871,7 +6877,7 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3)): + tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -6890,7 +6896,7 @@ snapshots: postcss: 8.5.1 postcss-import: 15.1.0(postcss@8.5.1) postcss-js: 4.0.1(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3)) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)) postcss-nested: 6.2.0(postcss@8.5.1) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -6912,7 +6918,7 @@ snapshots: tinyglobby@0.2.10: dependencies: - fdir: 6.4.2(picomatch@4.0.2) + fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 tmp@0.0.33: @@ -6942,14 +6948,14 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@types/node@22.10.6)(typescript@5.7.3): + ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.6 + '@types/node': 22.10.7 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -7065,7 +7071,7 @@ snapshots: undici-types@6.20.0: {} - undici@5.28.4: + undici@5.28.5: dependencies: '@fastify/busboy': 2.1.1 diff --git a/src/.solhint.json b/src/.solhint.json index 6e08ba49..8e4b04ea 100644 --- a/src/.solhint.json +++ b/src/.solhint.json @@ -1,6 +1,7 @@ { "extends": "solhint:recommended", "rules": { + "compiler-version": "off", "func-visibility": ["warn", { "ignoreConstructors": true }], "avoid-low-level-calls": "off", "no-inline-assembly": "off" diff --git a/test/.solhint-tests.json b/test/.solhint-tests.json index f616eef1..f651bd0e 100644 --- a/test/.solhint-tests.json +++ b/test/.solhint-tests.json @@ -1,6 +1,7 @@ { "extends": "solhint:recommended", "rules": { + "compiler-version": "off", "func-visibility": ["warn", { "ignoreConstructors": true }], "one-contract-per-file": "off", "contract-name-capwords": "off",