diff --git a/.eslintignore b/.eslintignore index a033a3c..b3edb79 100644 --- a/.eslintignore +++ b/.eslintignore @@ -17,3 +17,6 @@ dist gas_report contracts/vendor + +# Hardhat deploy artifacts +/deployments diff --git a/.eslintrc.js b/.eslintrc.js index 2cafa70..6334a70 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,7 +1,8 @@ module.exports = { extends: ['plugin:@api3/eslint-plugin-commons/universal', 'plugin:@api3/eslint-plugin-commons/jest'], parserOptions: { - project: ['./tsconfig.json'], + project: './tsconfig.json', + tsconfigRootDir: __dirname, }, rules: { camelcase: 'off', @@ -26,4 +27,5 @@ module.exports = { '@typescript-eslint/no-unsafe-call': 'off', '@typescript-eslint/require-await': 'off', }, + ignorePatterns: ['typechain-types/*'], }; diff --git a/.gitignore b/.gitignore index 9fae613..fa9da55 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,6 @@ dist /coverage.json gas_report + +# Hardhat deploy artifacts +/deployments \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index a033a3c..b3edb79 100644 --- a/.prettierignore +++ b/.prettierignore @@ -17,3 +17,6 @@ dist gas_report contracts/vendor + +# Hardhat deploy artifacts +/deployments diff --git a/deploy/001_deploy_InverseApi3ReaderProxyV1.ts b/deploy/001_deploy_InverseApi3ReaderProxyV1.ts new file mode 100644 index 0000000..fa169f4 --- /dev/null +++ b/deploy/001_deploy_InverseApi3ReaderProxyV1.ts @@ -0,0 +1,58 @@ +import type { HardhatRuntimeEnvironment } from 'hardhat/types'; + +import { getDeploymentName } from '../src'; + +export const CONTRACT_NAME = 'InverseApi3ReaderProxyV1'; + +module.exports = async (hre: HardhatRuntimeEnvironment) => { + const { getUnnamedAccounts, deployments, ethers, network, run } = hre; + const { deploy, log } = deployments; + + const [deployerAddress] = await getUnnamedAccounts(); + if (!deployerAddress) { + throw new Error('No deployer address found.'); + } + log(`Deployer address: ${deployerAddress}`); + + const proxyAddress = process.env.PROXY; + if (!proxyAddress) { + throw new Error('PROXY environment variable not set. Please provide the address of the proxy contract.'); + } + if (!ethers.isAddress(proxyAddress)) { + throw new Error(`Invalid address provided for PROXY: ${proxyAddress}`); + } + log(`Proxy address: ${proxyAddress}`); + + const isLocalNetwork = network.name === 'hardhat' || network.name === 'localhost'; + + const confirmations = isLocalNetwork ? 1 : 5; + log(`Deployment confirmations: ${confirmations}`); + + const constructorArgs = [proxyAddress]; + const constructorArgTypes = ['address']; + + const deploymentName = getDeploymentName(CONTRACT_NAME, constructorArgTypes, constructorArgs); + log(`Generated deterministic deployment name for this instance: ${deploymentName}`); + + const deployment = await deploy(deploymentName, { + contract: CONTRACT_NAME, + from: deployerAddress, + args: constructorArgs, + log: true, + waitConfirmations: confirmations, + }); + + if (isLocalNetwork) { + log('Skipping verification on local network.'); + return; + } + + log( + `Attempting verification of ${deploymentName} (contract type ${CONTRACT_NAME}) at ${deployment.address} (already waited for confirmations)...` + ); + await run('verify:verify', { + address: deployment.address, + constructorArguments: deployment.args, + }); +}; +module.exports.tags = [CONTRACT_NAME]; diff --git a/deploy/002_deploy_NormalizedApi3ReaderProxyV1.ts b/deploy/002_deploy_NormalizedApi3ReaderProxyV1.ts new file mode 100644 index 0000000..5f97e81 --- /dev/null +++ b/deploy/002_deploy_NormalizedApi3ReaderProxyV1.ts @@ -0,0 +1,73 @@ +import type { HardhatRuntimeEnvironment } from 'hardhat/types'; +import type { DeploymentsExtension } from 'hardhat-deploy/types'; + +import { getDeploymentName } from '../src'; + +export const CONTRACT_NAME = 'NormalizedApi3ReaderProxyV1'; + +const deployTestFeed = async (deployments: DeploymentsExtension, deployerAddress: string) => { + const { address: scaledApi3FeedProxyV1Address } = await deployments.get('ScaledApi3FeedProxyV1').catch(async () => { + return deployments.deploy('ScaledApi3FeedProxyV1', { + from: deployerAddress, + args: ['0x5b0cf2b36a65a6BB085D501B971e4c102B9Cd473', 8], + log: true, + }); + }); + return scaledApi3FeedProxyV1Address; +}; + +module.exports = async (hre: HardhatRuntimeEnvironment) => { + const { getUnnamedAccounts, deployments, network, ethers, run } = hre; + const { deploy, log } = deployments; + + const [deployerAddress] = await getUnnamedAccounts(); + if (!deployerAddress) { + throw new Error('No deployer address found.'); + } + log(`Deployer address: ${deployerAddress}`); + + const feedAddress = + network.name === 'hardhat' ? await deployTestFeed(deployments, deployerAddress) : process.env.FEED; + if (!feedAddress) { + throw new Error( + 'FEED environment variable not set. Please provide the address of the AggregatorV2V3Interface contract.' + ); + } + if (!ethers.isAddress(feedAddress)) { + throw new Error(`Invalid address provided for FEED: ${feedAddress}`); + } + log(`Feed address: ${feedAddress}`); + + const isLocalNetwork = network.name === 'hardhat' || network.name === 'localhost'; + + const confirmations = isLocalNetwork ? 1 : 5; + log(`Deployment confirmations: ${confirmations}`); + + const constructorArgs = [feedAddress]; + const constructorArgTypes = ['address']; + + const deploymentName = getDeploymentName(CONTRACT_NAME, constructorArgTypes, constructorArgs); + log(`Generated deterministic deployment name for this instance: ${deploymentName}`); + + const deployment = await deploy(deploymentName, { + contract: CONTRACT_NAME, + from: deployerAddress, + args: constructorArgs, + log: true, + waitConfirmations: confirmations, + }); + + if (isLocalNetwork) { + log('Skipping verification on local network.'); + return; + } + + log( + `Attempting verification of ${deploymentName} (contract type ${CONTRACT_NAME}) at ${deployment.address} (already waited for confirmations)...` + ); + await run('verify:verify', { + address: deployment.address, + constructorArguments: deployment.args, + }); +}; +module.exports.tags = [CONTRACT_NAME]; diff --git a/deploy/003_deploy_ProductApi3ReaderProxyV1.ts b/deploy/003_deploy_ProductApi3ReaderProxyV1.ts new file mode 100644 index 0000000..189afa1 --- /dev/null +++ b/deploy/003_deploy_ProductApi3ReaderProxyV1.ts @@ -0,0 +1,67 @@ +import type { HardhatRuntimeEnvironment } from 'hardhat/types'; + +import { getDeploymentName } from '../src'; + +export const CONTRACT_NAME = 'ProductApi3ReaderProxyV1'; + +module.exports = async (hre: HardhatRuntimeEnvironment) => { + const { getUnnamedAccounts, deployments, ethers, network, run } = hre; + const { deploy, log } = deployments; + + const [deployerAddress] = await getUnnamedAccounts(); + if (!deployerAddress) { + throw new Error('No deployer address found.'); + } + log(`Deployer address: ${deployerAddress}`); + + const proxy1Address = process.env.PROXY1; + if (!proxy1Address) { + throw new Error('PROXY1 environment variable not set. Please provide the address of the first proxy contract.'); + } + if (!ethers.isAddress(proxy1Address)) { + throw new Error(`Invalid address provided for PROXY1: ${proxy1Address}`); + } + log(`Proxy 1 address: ${proxy1Address}`); + + const proxy2Address = process.env.PROXY2; + if (!proxy2Address) { + throw new Error('PROXY2 environment variable not set. Please provide the address of the second proxy contract.'); + } + if (!ethers.isAddress(proxy2Address)) { + throw new Error(`Invalid address provided for PROXY2: ${proxy2Address}`); + } + log(`Proxy 2 address: ${proxy2Address}`); + + const isLocalNetwork = network.name === 'hardhat' || network.name === 'localhost'; + + const confirmations = isLocalNetwork ? 1 : 5; + log(`Deployment confirmations: ${confirmations}`); + + const constructorArgs = [proxy1Address, proxy2Address]; + const constructorArgTypes = ['address', 'address']; + + const deploymentName = getDeploymentName(CONTRACT_NAME, constructorArgTypes, constructorArgs); + log(`Generated deterministic deployment name for this instance: ${deploymentName}`); + + const deployment = await deploy(deploymentName, { + contract: CONTRACT_NAME, + from: deployerAddress, + args: constructorArgs, + log: true, + waitConfirmations: confirmations, + }); + + if (isLocalNetwork) { + log('Skipping verification on local network.'); + return; + } + + log( + `Attempting verification of ${deploymentName} (contract type ${CONTRACT_NAME}) at ${deployment.address} (already waited for confirmations)...` + ); + await run('verify:verify', { + address: deployment.address, + constructorArguments: deployment.args, + }); +}; +module.exports.tags = [CONTRACT_NAME]; diff --git a/deploy/004_deploy_ScaledApi3FeedProxyV1.ts b/deploy/004_deploy_ScaledApi3FeedProxyV1.ts new file mode 100644 index 0000000..da21aee --- /dev/null +++ b/deploy/004_deploy_ScaledApi3FeedProxyV1.ts @@ -0,0 +1,79 @@ +import type { HardhatRuntimeEnvironment } from 'hardhat/types'; +import type { DeploymentsExtension } from 'hardhat-deploy/types'; + +import { getDeploymentName } from '../src'; + +export const CONTRACT_NAME = 'ScaledApi3FeedProxyV1'; + +const deployTestProxy = async (deployments: DeploymentsExtension, deployerAddress: string) => { + const { address: inverseApi3ReaderProxyV1Address } = await deployments + .get('InverseApi3ReaderProxyV1') + .catch(async () => { + return deployments.deploy('InverseApi3ReaderProxyV1', { + from: deployerAddress, + args: ['0x5b0cf2b36a65a6BB085D501B971e4c102B9Cd473'], + log: true, + }); + }); + return inverseApi3ReaderProxyV1Address; +}; + +module.exports = async (hre: HardhatRuntimeEnvironment) => { + const { getUnnamedAccounts, deployments, network, ethers, run } = hre; + const { deploy, log } = deployments; + + const [deployerAddress] = await getUnnamedAccounts(); + if (!deployerAddress) { + throw new Error('No deployer address found.'); + } + log(`Deployer address: ${deployerAddress}`); + + if (!process.env.DECIMALS) { + throw new Error('DECIMALS environment variable not set. Please provide the number of decimals to use.'); + } + const decimals = Number.parseInt(process.env.DECIMALS, 10); + log(`Decimals: ${decimals}`); + + const proxyAddress = + network.name === 'hardhat' ? await deployTestProxy(deployments, deployerAddress) : process.env.PROXY; + if (!proxyAddress) { + throw new Error('PROXY environment variable not set. Please provide the address of the Api3ReaderProxy contract.'); + } + if (!ethers.isAddress(proxyAddress)) { + throw new Error(`Invalid address provided for PROXY: ${proxyAddress}`); + } + log(`Proxy address: ${proxyAddress}`); + + const isLocalNetwork = network.name === 'hardhat' || network.name === 'localhost'; + + const confirmations = isLocalNetwork ? 1 : 5; + log(`Deployment confirmations: ${confirmations}`); + + const constructorArgs = [proxyAddress, decimals]; + const constructorArgTypes = ['address', 'uint8']; + + const deploymentName = getDeploymentName(CONTRACT_NAME, constructorArgTypes, constructorArgs); + log(`Generated deterministic deployment name for this instance: ${deploymentName}`); + + const deployment = await deploy(deploymentName, { + contract: CONTRACT_NAME, + from: deployerAddress, + args: constructorArgs, + log: true, + waitConfirmations: confirmations, + }); + + if (isLocalNetwork) { + log('Skipping verification on local network.'); + return; + } + + log( + `Attempting verification of ${deploymentName} (contract type ${CONTRACT_NAME}) at ${deployment.address} (already waited for confirmations)...` + ); + await run('verify:verify', { + address: deployment.address, + constructorArguments: deployment.args, + }); +}; +module.exports.tags = [CONTRACT_NAME]; diff --git a/example.env b/example.env new file mode 100644 index 0000000..fdfa646 --- /dev/null +++ b/example.env @@ -0,0 +1,48 @@ +MNEMONIC= +ETHERSCAN_API_KEY_APECHAIN= +ETHERSCAN_API_KEY_ARBITRUM_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_ARBITRUM= +ETHERSCAN_API_KEY_AVALANCHE_TESTNET= +ETHERSCAN_API_KEY_AVALANCHE= +ETHERSCAN_API_KEY_BASE_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_BASE= +ETHERSCAN_API_KEY_BERACHAIN= +ETHERSCAN_API_KEY_BLAST_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_BLAST= +ETHERSCAN_API_KEY_BSC_TESTNET= +ETHERSCAN_API_KEY_BSC= +ETHERSCAN_API_KEY_CORE_TESTNET= +ETHERSCAN_API_KEY_CORE= +ETHERSCAN_API_KEY_ETHEREUM_HOLESKY_TESTNET= +ETHERSCAN_API_KEY_ETHEREUM_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_ETHEREUM= +ETHERSCAN_API_KEY_FRAXTAL_HOLESKY_TESTNET= +ETHERSCAN_API_KEY_FRAXTAL= +ETHERSCAN_API_KEY_GNOSIS= +ETHERSCAN_API_KEY_KROMA_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_LINEA_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_LINEA= +ETHERSCAN_API_KEY_MANTLE_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_MANTLE= +ETHERSCAN_API_KEY_MOONBEAM_TESTNET= +ETHERSCAN_API_KEY_MOONBEAM= +ETHERSCAN_API_KEY_MOONRIVER= +ETHERSCAN_API_KEY_OPBNB_TESTNET= +ETHERSCAN_API_KEY_OPBNB= +ETHERSCAN_API_KEY_OPTIMISM_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_OPTIMISM= +ETHERSCAN_API_KEY_POLYGON_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_POLYGON_ZKEVM_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_POLYGON_ZKEVM= +ETHERSCAN_API_KEY_POLYGON= +ETHERSCAN_API_KEY_SCROLL_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_SCROLL= +ETHERSCAN_API_KEY_SONIC_TESTNET= +ETHERSCAN_API_KEY_SONIC= +ETHERSCAN_API_KEY_TAIKO_HOLESKY_TESTNET= +ETHERSCAN_API_KEY_TAIKO= +ETHERSCAN_API_KEY_UNICHAIN_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_UNICHAIN= +ETHERSCAN_API_KEY_WORLD= +ETHERSCAN_API_KEY_ZIRCUIT_SEPOLIA_TESTNET= +ETHERSCAN_API_KEY_ZIRCUIT= diff --git a/hardhat.config.ts b/hardhat.config.ts index e50001a..ad8ce39 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,5 +1,8 @@ import { hardhatConfig } from '@api3/contracts'; import '@nomicfoundation/hardhat-toolbox'; +import '@nomicfoundation/hardhat-verify'; +import 'hardhat-deploy'; +import 'dotenv/config'; import type { HardhatUserConfig } from 'hardhat/config'; const config: HardhatUserConfig = { diff --git a/package.json b/package.json index 3db3b4d..e82b979 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,10 @@ "scripts": { "build": "pnpm build:hardhat && tsc -p tsconfig.build.json", "build:hardhat": "hardhat --config hardhat.build.config.ts compile", + "deploy:InverseApi3ReaderProxyV1": "hardhat deploy --network $NETWORK --tags InverseApi3ReaderProxyV1", + "deploy:NormalizedApi3ReaderProxyV1": "hardhat deploy --network $NETWORK --tags NormalizedApi3ReaderProxyV1", + "deploy:ProductApi3ReaderProxyV1": "hardhat deploy --network $NETWORK --tags ProductApi3ReaderProxyV1", + "deploy:ScaledApi3FeedProxyV1": "hardhat deploy --network $NETWORK --tags ScaledApi3FeedProxyV1", "lint": "pnpm run prettier:check && pnpm run lint:eslint && pnpm run lint:solhint", "lint:solhint": "solhint ./contracts/**/*.sol", "lint:eslint": "eslint . --ext .js,.ts", @@ -34,26 +38,31 @@ "devDependencies": { "@api3/contracts": "^21.3.0", "@api3/eslint-plugin-commons": "^3.0.0", + "@eslint/js": "^9.27.0", "@nomicfoundation/hardhat-ethers": "^3.0.8", "@nomicfoundation/hardhat-network-helpers": "^1.0.12", "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.14", "@types/chai": "^4.3.20", "@types/mocha": "^10.0.10", "@types/node": "^22.15.18", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "chai": "^4.5.0", - "eslint": "8.57.0", - "ethers": "^6.14.0", + "dotenv": "^16.5.0", + "eslint": "8.57.1", + "ethers": "^6.13.2", "glob": "^11.0.2", "hardhat": "^2.24.0", + "hardhat-deploy": "^1.0.2", "prettier": "^3.5.3", "prettier-plugin-solidity": "^2.0.0", "solhint": "^5.1.0", "solidity-coverage": "^0.8.16", "ts-node": "^10.9.2", "typechain": "^8.3.2", - "typescript": "^5.8.3" + "typescript": "^5.8.3", + "typescript-eslint": "^8.32.1" }, "packageManager": "pnpm@9.15.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 60ba0c0..0192416 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,16 +13,22 @@ importers: version: 21.3.0(typescript@5.8.3) '@api3/eslint-plugin-commons': specifier: ^3.0.0 - version: 3.0.0(@babel/core@7.27.1)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.3) + version: 3.0.0(@babel/core@7.27.1)(eslint@8.57.1)(prettier@3.5.3)(typescript@5.8.3) + '@eslint/js': + specifier: ^9.27.0 + version: 9.27.0 '@nomicfoundation/hardhat-ethers': specifier: ^3.0.8 - version: 3.0.8(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) + version: 3.0.8(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) '@nomicfoundation/hardhat-network-helpers': specifier: ^1.0.12 version: 1.0.12(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) '@nomicfoundation/hardhat-toolbox': specifier: ^5.0.0 - version: 5.0.0(oa6ffqnvyzeztptbpf2yiefg4m) + version: 5.0.0(zs46phtpxu4vedqxmqwrnkrgcu) + '@nomicfoundation/hardhat-verify': + specifier: ^2.0.14 + version: 2.0.14(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) '@types/chai': specifier: ^4.3.20 version: 4.3.20 @@ -34,25 +40,31 @@ importers: version: 22.15.18 '@typescript-eslint/eslint-plugin': specifier: ^7.18.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) '@typescript-eslint/parser': specifier: ^7.18.0 - version: 7.18.0(eslint@8.57.0)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) chai: specifier: ^4.5.0 version: 4.5.0 + dotenv: + specifier: ^16.5.0 + version: 16.5.0 eslint: - specifier: 8.57.0 - version: 8.57.0 + specifier: 8.57.1 + version: 8.57.1 ethers: - specifier: ^6.14.0 - version: 6.14.0 + specifier: ^6.13.2 + version: 6.13.2 glob: specifier: ^11.0.2 version: 11.0.2 hardhat: specifier: ^2.24.0 version: 2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3) + hardhat-deploy: + specifier: ^1.0.2 + version: 1.0.2 prettier: specifier: ^3.5.3 version: 3.5.3 @@ -74,6 +86,9 @@ importers: typescript: specifier: ^5.8.3 version: 5.8.3 + typescript-eslint: + specifier: ^8.32.1 + version: 8.32.1(eslint@8.57.1)(typescript@5.8.3) packages: @@ -205,10 +220,14 @@ packages: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.27.0': + resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ethereumjs/rlp@4.0.1': resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} engines: {node: '>=14'} @@ -324,8 +343,8 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead @@ -507,10 +526,10 @@ packages: typechain: ^8.3.0 typescript: '>=4.5.0' - '@nomicfoundation/hardhat-verify@2.0.13': - resolution: {integrity: sha512-i57GX1sC0kYGyRVnbQrjjyBTpWTKgrvKC+jH8CMKV6gHp959Upb8lKaZ58WRHIU0espkulTxLnacYeUDirwJ2g==} + '@nomicfoundation/hardhat-verify@2.0.14': + resolution: {integrity: sha512-z3iVF1WYZHzcdMMUuureFpSAfcnlfJbJx3faOnGrOYg6PRTki1Ut9JAuRccnFzMHf1AmTEoSUpWcyvBCoxL5Rg==} peerDependencies: - hardhat: ^2.0.4 + hardhat: ^2.24.1 '@nomicfoundation/ignition-core@0.15.11': resolution: {integrity: sha512-PeYKRlrQ0koT72yRnlyyG66cXMFiv5X/cIB8hBFPl3ekeg5tPXcHAgs/VZhOsgwEox4ejphTtItLESb1IDBw0w==} @@ -716,6 +735,9 @@ packages: '@types/node@10.17.60': resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + '@types/node@18.15.13': + resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} + '@types/node@22.15.18': resolution: {integrity: sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==} @@ -1134,6 +1156,9 @@ packages: resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} engines: {node: '>=4'} + axios@0.21.4: + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + axios@1.9.0: resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} @@ -1529,6 +1554,10 @@ packages: dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dotenv@16.5.0: + resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} + engines: {node: '>=12'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -1548,6 +1577,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} @@ -1832,8 +1864,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true @@ -1903,6 +1935,10 @@ packages: ethers@5.8.0: resolution: {integrity: sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==} + ethers@6.13.2: + resolution: {integrity: sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==} + engines: {node: '>=14.0.0'} + ethers@6.14.0: resolution: {integrity: sha512-KgHwltNSMdbrGWEyKkM0Rt2s+u1nDH/5BVDQakLinzGEJi4bWindBzZSCC4gKsbZjwDTI6ex/8suR9Ihbmz4IQ==} engines: {node: '>=14.0.0'} @@ -1978,6 +2014,9 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + fmix@0.1.0: + resolution: {integrity: sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==} + follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -2174,6 +2213,9 @@ packages: engines: {node: '>=0.4.7'} hasBin: true + hardhat-deploy@1.0.2: + resolution: {integrity: sha512-FCeoGpYLQiGjROURihth6Qye+GWvRqalGbRsCTW33canhAS4g6mJEILbkWbWF8P2cPWgcpxe3cCJksk6n+oD7Q==} + hardhat-gas-reporter@1.0.10: resolution: {integrity: sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==} peerDependencies: @@ -2293,6 +2335,10 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} + imul@1.0.1: + resolution: {integrity: sha512-WFAgfwPLAjU66EKt6vRdTlKj4nAgIDQzh29JonLa4Bqtl6D8JrIMvWjCnx7xEjVNmP3U0fM5o8ZObk7d0f62bA==} + engines: {node: '>=0.10.0'} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -2656,6 +2702,9 @@ packages: markdown-table@1.1.3: resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} + match-all@1.2.7: + resolution: {integrity: sha512-qSpsBKarh55r9KyXzFC3xBLRf2GlGasba2em9kbpRsSlGvdTAqjx3QD0r3FKSARiW+OE4iMHYsolM3aX9n5djw==} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -2752,6 +2801,9 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + murmur-128@0.2.1: + resolution: {integrity: sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg==} + napi-postinstall@0.2.4: resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -3563,6 +3615,9 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} @@ -3629,6 +3684,13 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typescript-eslint@8.32.1: + resolution: {integrity: sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + typescript@5.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} @@ -3856,6 +3918,12 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + zksync-ethers@5.10.0: + resolution: {integrity: sha512-OAjTGAHF9wbdkRGkj7XZuF/a1Sk/FVbwH4pmLjAKlR7mJ7sQtQhBhrPU2dCc67xLaNvEESPfwil19ES5wooYFg==} + engines: {node: '>=16.0.0'} + peerDependencies: + ethers: ~5.7.0 + zod@3.24.4: resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} @@ -3872,7 +3940,7 @@ snapshots: '@api3/contracts@21.3.0(typescript@5.8.3)': dependencies: - ethers: 6.14.0 + ethers: 6.13.2 viem: 2.29.2(typescript@5.8.3)(zod@3.24.4) yargs: 17.7.2 zod: 3.24.4 @@ -3881,26 +3949,26 @@ snapshots: - typescript - utf-8-validate - '@api3/eslint-plugin-commons@3.0.0(@babel/core@7.27.1)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.3)': - dependencies: - '@shopify/eslint-plugin': 45.0.0(@babel/core@7.27.1)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.3) - '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) - '@typescript-eslint/parser': 8.32.1(eslint@8.57.0)(typescript@5.8.3) - eslint: 8.57.0 - eslint-config-next: 14.2.28(eslint@8.57.0)(typescript@5.8.3) - eslint-plugin-check-file: 2.8.0(eslint@8.57.0) - eslint-plugin-cypress: 3.6.0(eslint@8.57.0) - eslint-plugin-deprecation: 3.0.0(eslint@8.57.0)(typescript@5.8.3) - eslint-plugin-functional: 6.6.3(eslint@8.57.0)(typescript@5.8.3) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0) - eslint-plugin-jest: 28.11.0(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) - eslint-plugin-jest-formatting: 3.1.0(eslint@8.57.0) - eslint-plugin-lodash: 7.4.0(eslint@8.57.0) + '@api3/eslint-plugin-commons@3.0.0(@babel/core@7.27.1)(eslint@8.57.1)(prettier@3.5.3)(typescript@5.8.3)': + dependencies: + '@shopify/eslint-plugin': 45.0.0(@babel/core@7.27.1)(eslint@8.57.1)(prettier@3.5.3)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.1(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 + eslint-config-next: 14.2.28(eslint@8.57.1)(typescript@5.8.3) + eslint-plugin-check-file: 2.8.0(eslint@8.57.1) + eslint-plugin-cypress: 3.6.0(eslint@8.57.1) + eslint-plugin-deprecation: 3.0.0(eslint@8.57.1)(typescript@5.8.3) + eslint-plugin-functional: 6.6.3(eslint@8.57.1)(typescript@5.8.3) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + eslint-plugin-jest: 28.11.0(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + eslint-plugin-jest-formatting: 3.1.0(eslint@8.57.1) + eslint-plugin-lodash: 7.4.0(eslint@8.57.1) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-promise: 7.2.1(eslint@8.57.0) - eslint-plugin-react: 7.37.5(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) - eslint-plugin-unicorn: 55.0.0(eslint@8.57.0) + eslint-plugin-promise: 7.2.1(eslint@8.57.1) + eslint-plugin-react: 7.37.5(eslint@8.57.1) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + eslint-plugin-unicorn: 55.0.0(eslint@8.57.1) lodash: 4.17.21 transitivePeerDependencies: - '@babel/core' @@ -3942,18 +4010,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.27.1(@babel/core@7.27.1)(eslint@8.57.0)': + '@babel/eslint-parser@7.27.1(@babel/core@7.27.1)(eslint@8.57.1)': dependencies: '@babel/core': 7.27.1 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.0 + eslint: 8.57.1 eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-plugin@7.27.1(@babel/eslint-parser@7.27.1(@babel/core@7.27.1)(eslint@8.57.0))(eslint@8.57.0)': + '@babel/eslint-plugin@7.27.1(@babel/eslint-parser@7.27.1(@babel/core@7.27.1)(eslint@8.57.1))(eslint@8.57.1)': dependencies: - '@babel/eslint-parser': 7.27.1(@babel/core@7.27.1)(eslint@8.57.0) - eslint: 8.57.0 + '@babel/eslint-parser': 7.27.1(@babel/core@7.27.1)(eslint@8.57.1) + eslint: 8.57.1 eslint-rule-composer: 0.3.0 '@babel/generator@7.27.1': @@ -4048,9 +4116,9 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': dependencies: - eslint: 8.57.0 + eslint: 8.57.1 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -4069,7 +4137,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@8.57.1': {} + + '@eslint/js@9.27.0': {} '@ethereumjs/rlp@4.0.1': {} @@ -4351,7 +4421,7 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@humanwhocodes/config-array@0.11.14': + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 debug: 4.4.1(supports-color@8.1.1) @@ -4471,37 +4541,37 @@ snapshots: '@nomicfoundation/edr-linux-x64-musl': 0.11.0 '@nomicfoundation/edr-win32-x64-msvc': 0.11.0 - '@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(chai@4.5.0)(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': + '@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(chai@4.5.0)(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) '@types/chai-as-promised': 7.1.8 chai: 4.5.0 chai-as-promised: 7.1.2(chai@4.5.0) deep-eql: 4.1.4 - ethers: 6.14.0 + ethers: 6.13.2 hardhat: 2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3) ordinal: 1.0.3 - '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': dependencies: debug: 4.4.1(supports-color@8.1.1) - ethers: 6.14.0 + ethers: 6.13.2 hardhat: 2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color - '@nomicfoundation/hardhat-ignition-ethers@0.15.11(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(@nomicfoundation/ignition-core@0.15.11)(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': + '@nomicfoundation/hardhat-ignition-ethers@0.15.11(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.14(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(@nomicfoundation/ignition-core@0.15.11)(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) - '@nomicfoundation/hardhat-ignition': 0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) + '@nomicfoundation/hardhat-ignition': 0.15.11(@nomicfoundation/hardhat-verify@2.0.14(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) '@nomicfoundation/ignition-core': 0.15.11 - ethers: 6.14.0 + ethers: 6.13.2 hardhat: 2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3) - '@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': + '@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.14(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': dependencies: - '@nomicfoundation/hardhat-verify': 2.0.13(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) + '@nomicfoundation/hardhat-verify': 2.0.14(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) '@nomicfoundation/ignition-core': 0.15.11 '@nomicfoundation/ignition-ui': 0.15.11 chalk: 4.1.2 @@ -4520,20 +4590,20 @@ snapshots: ethereumjs-util: 7.1.5 hardhat: 2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3) - '@nomicfoundation/hardhat-toolbox@5.0.0(oa6ffqnvyzeztptbpf2yiefg4m)': + '@nomicfoundation/hardhat-toolbox@5.0.0(zs46phtpxu4vedqxmqwrnkrgcu)': dependencies: - '@nomicfoundation/hardhat-chai-matchers': 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(chai@4.5.0)(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) - '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) - '@nomicfoundation/hardhat-ignition-ethers': 0.15.11(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(@nomicfoundation/ignition-core@0.15.11)(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) + '@nomicfoundation/hardhat-chai-matchers': 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(chai@4.5.0)(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) + '@nomicfoundation/hardhat-ignition-ethers': 0.15.11(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(@nomicfoundation/hardhat-ignition@0.15.11(@nomicfoundation/hardhat-verify@2.0.14(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)))(@nomicfoundation/ignition-core@0.15.11)(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) '@nomicfoundation/hardhat-network-helpers': 1.0.12(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) - '@nomicfoundation/hardhat-verify': 2.0.13(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) - '@typechain/ethers-v6': 0.5.1(ethers@6.14.0)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) - '@typechain/hardhat': 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.14.0)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))(typechain@8.3.2(typescript@5.8.3)) + '@nomicfoundation/hardhat-verify': 2.0.14(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) + '@typechain/ethers-v6': 0.5.1(ethers@6.13.2)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) + '@typechain/hardhat': 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.2)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))(typechain@8.3.2(typescript@5.8.3)) '@types/chai': 4.3.20 '@types/mocha': 10.0.10 '@types/node': 22.15.18 chai: 4.5.0 - ethers: 6.14.0 + ethers: 6.13.2 hardhat: 2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3) hardhat-gas-reporter: 1.0.10(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) solidity-coverage: 0.8.16(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)) @@ -4541,7 +4611,7 @@ snapshots: typechain: 8.3.2(typescript@5.8.3) typescript: 5.8.3 - '@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': + '@nomicfoundation/hardhat-verify@2.0.14(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))': dependencies: '@ethersproject/abi': 5.8.0 '@ethersproject/address': 5.8.0 @@ -4716,29 +4786,29 @@ snapshots: '@sentry/types': 5.30.0 tslib: 1.14.1 - '@shopify/eslint-plugin@45.0.0(@babel/core@7.27.1)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.3)': + '@shopify/eslint-plugin@45.0.0(@babel/core@7.27.1)(eslint@8.57.1)(prettier@3.5.3)(typescript@5.8.3)': dependencies: - '@babel/eslint-parser': 7.27.1(@babel/core@7.27.1)(eslint@8.57.0) - '@babel/eslint-plugin': 7.27.1(@babel/eslint-parser@7.27.1(@babel/core@7.27.1)(eslint@8.57.0))(eslint@8.57.0) - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.8.3) + '@babel/eslint-parser': 7.27.1(@babel/core@7.27.1)(eslint@8.57.1) + '@babel/eslint-plugin': 7.27.1(@babel/eslint-parser@7.27.1(@babel/core@7.27.1)(eslint@8.57.1))(eslint@8.57.1) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) change-case: 4.1.2 common-tags: 1.8.2 doctrine: 2.1.0 - eslint: 8.57.0 - eslint-config-prettier: 9.1.0(eslint@8.57.0) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.0) - eslint-plugin-jest: 28.11.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) - eslint-plugin-jest-formatting: 3.1.0(eslint@8.57.0) - eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.0) - eslint-plugin-node: 11.1.0(eslint@8.57.0) - eslint-plugin-prettier: 5.4.0(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.5.3) - eslint-plugin-promise: 6.6.0(eslint@8.57.0) - eslint-plugin-react: 7.37.5(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) - eslint-plugin-sort-class-members: 1.21.0(eslint@8.57.0) + eslint: 8.57.1 + eslint-config-prettier: 9.1.0(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-jest: 28.11.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + eslint-plugin-jest-formatting: 3.1.0(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) + eslint-plugin-node: 11.1.0(eslint@8.57.1) + eslint-plugin-prettier: 5.4.0(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.3) + eslint-plugin-promise: 6.6.0(eslint@8.57.1) + eslint-plugin-react: 7.37.5(eslint@8.57.1) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + eslint-plugin-sort-class-members: 1.21.0(eslint@8.57.1) jsx-ast-utils: 3.3.5 pkg-dir: 5.0.0 pluralize: 8.0.0 @@ -4778,18 +4848,18 @@ snapshots: tslib: 2.8.1 optional: true - '@typechain/ethers-v6@0.5.1(ethers@6.14.0)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3)': + '@typechain/ethers-v6@0.5.1(ethers@6.13.2)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3)': dependencies: - ethers: 6.14.0 + ethers: 6.13.2 lodash: 4.17.21 ts-essentials: 7.0.3(typescript@5.8.3) typechain: 8.3.2(typescript@5.8.3) typescript: 5.8.3 - '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.14.0)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.14.0)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))(typechain@8.3.2(typescript@5.8.3))': + '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.2)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.2)(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3))(typechain@8.3.2(typescript@5.8.3))': dependencies: - '@typechain/ethers-v6': 0.5.1(ethers@6.14.0)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) - ethers: 6.14.0 + '@typechain/ethers-v6': 0.5.1(ethers@6.13.2)(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) + ethers: 6.13.2 fs-extra: 9.1.0 hardhat: 2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3) typechain: 8.3.2(typescript@5.8.3) @@ -4829,6 +4899,8 @@ snapshots: '@types/node@10.17.60': {} + '@types/node@18.15.13': {} + '@types/node@22.15.18': dependencies: undici-types: 6.21.0 @@ -4853,15 +4925,15 @@ snapshots: dependencies: '@types/node': 22.15.18 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.0 + eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -4871,15 +4943,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.32.1(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.1(eslint@8.57.1)(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/type-utils': 8.32.1(eslint@8.57.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.32.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@8.57.1)(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.32.1 - eslint: 8.57.0 + eslint: 8.57.1 graphemer: 1.4.0 ignore: 7.0.4 natural-compare: 1.4.0 @@ -4888,27 +4960,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.1(supports-color@8.1.1) - eslint: 8.57.0 + eslint: 8.57.1 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.32.1 '@typescript-eslint/types': 8.32.1 '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.32.1 debug: 4.4.1(supports-color@8.1.1) - eslint: 8.57.0 + eslint: 8.57.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -4923,24 +4995,24 @@ snapshots: '@typescript-eslint/types': 8.32.1 '@typescript-eslint/visitor-keys': 8.32.1 - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) debug: 4.4.1(supports-color@8.1.1) - eslint: 8.57.0 + eslint: 8.57.1 ts-api-utils: 1.4.3(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.32.1(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.32.1(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@8.57.1)(typescript@5.8.3) debug: 4.4.1(supports-color@8.1.1) - eslint: 8.57.0 + eslint: 8.57.1 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -4979,24 +5051,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - eslint: 8.57.0 + eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.32.1(eslint@8.57.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.32.1(eslint@8.57.1)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) '@typescript-eslint/scope-manager': 8.32.1 '@typescript-eslint/types': 8.32.1 '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - eslint: 8.57.0 + eslint: 8.57.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -5259,6 +5331,12 @@ snapshots: axe-core@4.10.3: {} + axios@0.21.4(debug@4.4.1): + dependencies: + follow-redirects: 1.15.9(debug@4.4.1) + transitivePeerDependencies: + - debug + axios@1.9.0: dependencies: follow-redirects: 1.15.9(debug@4.4.1) @@ -5701,6 +5779,8 @@ snapshots: no-case: 3.0.4 tslib: 2.8.1 + dotenv@16.5.0: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -5725,6 +5805,8 @@ snapshots: emoji-regex@9.2.2: {} + encode-utf8@1.0.3: {} + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 @@ -5849,19 +5931,19 @@ snapshots: optionalDependencies: source-map: 0.2.0 - eslint-config-next@14.2.28(eslint@8.57.0)(typescript@5.8.3): + eslint-config-next@14.2.28(eslint@8.57.1)(typescript@5.8.3): dependencies: '@next/eslint-plugin-next': 14.2.28 '@rushstack/eslint-patch': 1.11.0 - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.8.3) - eslint: 8.57.0 + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.0) - eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.0) - eslint-plugin-react: 7.37.5(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) + eslint-plugin-react: 7.37.5(eslint@8.57.1) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -5869,9 +5951,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@9.1.0(eslint@8.57.0): + eslint-config-prettier@9.1.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 eslint-import-resolver-node@0.3.9: dependencies: @@ -5881,82 +5963,82 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.0): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.1(supports-color@8.1.1) - eslint: 8.57.0 + eslint: 8.57.1 get-tsconfig: 4.10.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.13 unrs-resolver: 1.7.2 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.8.3) - eslint: 8.57.0 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@8.57.0)(typescript@5.8.3) - eslint: 8.57.0 + '@typescript-eslint/parser': 8.32.1(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-check-file@2.8.0(eslint@8.57.0): + eslint-plugin-check-file@2.8.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 is-glob: 4.0.3 micromatch: 4.0.8 - eslint-plugin-cypress@3.6.0(eslint@8.57.0): + eslint-plugin-cypress@3.6.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 globals: 13.24.0 - eslint-plugin-deprecation@3.0.0(eslint@8.57.0)(typescript@5.8.3): + eslint-plugin-deprecation@3.0.0(eslint@8.57.1)(typescript@5.8.3): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.8.3) - eslint: 8.57.0 + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 ts-api-utils: 1.4.3(typescript@5.8.3) tslib: 2.8.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-es@3.0.1(eslint@8.57.0): + eslint-plugin-es@3.0.1(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0): + eslint-plugin-eslint-comments@3.2.0(eslint@8.57.1): dependencies: escape-string-regexp: 1.0.5 - eslint: 8.57.0 + eslint: 8.57.1 ignore: 5.3.2 - eslint-plugin-functional@6.6.3(eslint@8.57.0)(typescript@5.8.3): + eslint-plugin-functional@6.6.3(eslint@8.57.1)(typescript@5.8.3): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) deepmerge-ts: 5.1.0 escape-string-regexp: 4.0.0 - eslint: 8.57.0 - is-immutable-type: 4.0.0(eslint@8.57.0)(typescript@5.8.3) + eslint: 8.57.1 + is-immutable-type: 4.0.0(eslint@8.57.1)(typescript@5.8.3) semver: 7.7.2 ts-api-utils: 1.4.3(typescript@5.8.3) optionalDependencies: @@ -5964,7 +6046,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -5973,9 +6055,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.0 + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -5987,13 +6069,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -6002,9 +6084,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.0 + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -6016,37 +6098,37 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.1(eslint@8.57.1)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest-formatting@3.1.0(eslint@8.57.0): + eslint-plugin-jest-formatting@3.1.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 - eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3): + eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3): dependencies: - '@typescript-eslint/utils': 8.32.1(eslint@8.57.0)(typescript@5.8.3) - eslint: 8.57.0 + '@typescript-eslint/utils': 8.32.1(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3): + eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3): dependencies: - '@typescript-eslint/utils': 8.32.1(eslint@8.57.0)(typescript@5.8.3) - eslint: 8.57.0 + '@typescript-eslint/utils': 8.32.1(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -6056,7 +6138,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.57.0 + eslint: 8.57.1 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -6065,46 +6147,46 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-lodash@7.4.0(eslint@8.57.0): + eslint-plugin-lodash@7.4.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 lodash: 4.17.21 eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-node@11.1.0(eslint@8.57.0): + eslint-plugin-node@11.1.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 - eslint-plugin-es: 3.0.1(eslint@8.57.0) + eslint: 8.57.1 + eslint-plugin-es: 3.0.1(eslint@8.57.1) eslint-utils: 2.1.0 ignore: 5.3.2 minimatch: 3.1.2 resolve: 1.22.10 semver: 6.3.1 - eslint-plugin-prettier@5.4.0(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.5.3): + eslint-plugin-prettier@5.4.0(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.3): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 prettier: 3.5.3 prettier-linter-helpers: 1.0.0 synckit: 0.11.5 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-config-prettier: 9.1.0(eslint@8.57.1) - eslint-plugin-promise@6.6.0(eslint@8.57.0): + eslint-plugin-promise@6.6.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 - eslint-plugin-promise@7.2.1(eslint@8.57.0): + eslint-plugin-promise@7.2.1(eslint@8.57.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) - eslint: 8.57.0 + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + eslint: 8.57.1 - eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 - eslint-plugin-react@7.37.5(eslint@8.57.0): + eslint-plugin-react@7.37.5(eslint@8.57.1): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -6112,7 +6194,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 8.57.0 + eslint: 8.57.1 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -6126,18 +6208,18 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-sort-class-members@1.21.0(eslint@8.57.0): + eslint-plugin-sort-class-members@1.21.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 - eslint-plugin-unicorn@55.0.0(eslint@8.57.0): + eslint-plugin-unicorn@55.0.0(eslint@8.57.1): dependencies: '@babel/helper-validator-identifier': 7.27.1 - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) ci-info: 4.2.0 clean-regexp: 1.0.0 core-js-compat: 3.42.0 - eslint: 8.57.0 + eslint: 8.57.1 esquery: 1.6.0 globals: 15.15.0 indent-string: 4.0.0 @@ -6174,13 +6256,13 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@8.57.0: + eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.3.0 @@ -6343,6 +6425,19 @@ snapshots: - bufferutil - utf-8-validate + ethers@6.13.2: + dependencies: + '@adraffy/ens-normalize': 1.10.1 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@types/node': 18.15.13 + aes-js: 4.0.0-beta.5 + tslib: 2.4.0 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + ethers@6.14.0: dependencies: '@adraffy/ens-normalize': 1.10.1 @@ -6426,6 +6521,10 @@ snapshots: flatted@3.3.3: {} + fmix@0.1.0: + dependencies: + imul: 1.0.1 + follow-redirects@1.15.9(debug@4.4.1): optionalDependencies: debug: 4.4.1(supports-color@8.1.1) @@ -6679,6 +6778,37 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 + hardhat-deploy@1.0.2: + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/contracts': 5.8.0 + '@ethersproject/providers': 5.8.0 + '@ethersproject/solidity': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/wallet': 5.8.0 + '@types/qs': 6.9.18 + axios: 0.21.4(debug@4.4.1) + chalk: 4.1.2 + chokidar: 3.6.0 + debug: 4.4.1(supports-color@8.1.1) + enquirer: 2.4.1 + ethers: 5.8.0 + form-data: 4.0.2 + fs-extra: 10.1.0 + match-all: 1.2.7 + murmur-128: 0.2.1 + qs: 6.14.0 + zksync-ethers: 5.10.0(ethers@5.8.0) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + hardhat-gas-reporter@1.0.10(hardhat@2.24.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.8.3))(typescript@5.8.3)): dependencies: array-uniq: 1.0.3 @@ -6846,6 +6976,8 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + imul@1.0.1: {} + imurmurhash@0.1.4: {} indent-string@4.0.0: {} @@ -6948,10 +7080,10 @@ snapshots: is-hex-prefixed@1.0.0: {} - is-immutable-type@4.0.0(eslint@8.57.0)(typescript@5.8.3): + is-immutable-type@4.0.0(eslint@8.57.1)(typescript@5.8.3): dependencies: - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.8.3) - eslint: 8.57.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 ts-api-utils: 1.4.3(typescript@5.8.3) ts-declaration-location: 1.0.7(typescript@5.8.3) typescript: 5.8.3 @@ -7186,6 +7318,8 @@ snapshots: markdown-table@1.1.3: {} + match-all@1.2.7: {} + math-intrinsics@1.1.0: {} md5.js@1.3.5: @@ -7286,6 +7420,12 @@ snapshots: ms@2.1.3: {} + murmur-128@0.2.1: + dependencies: + encode-utf8: 1.0.3 + fmix: 0.1.0 + imul: 1.0.1 + napi-postinstall@0.2.4: {} natural-compare@1.4.0: {} @@ -8244,6 +8384,8 @@ snapshots: tslib@1.14.1: {} + tslib@2.4.0: {} + tslib@2.7.0: {} tslib@2.8.1: {} @@ -8321,6 +8463,16 @@ snapshots: typedarray@0.0.6: {} + typescript-eslint@8.32.1(eslint@8.57.1)(typescript@5.8.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@8.57.1)(typescript@5.8.3) + eslint: 8.57.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + typescript@5.8.3: {} typical@4.0.0: {} @@ -8557,4 +8709,8 @@ snapshots: yocto-queue@0.1.0: {} + zksync-ethers@5.10.0(ethers@5.8.0): + dependencies: + ethers: 5.8.0 + zod@3.24.4: {} diff --git a/scripts/verify-vendor-contracts.ts b/scripts/verify-vendor-contracts.ts index 0b510f2..bed5c4e 100644 --- a/scripts/verify-vendor-contracts.ts +++ b/scripts/verify-vendor-contracts.ts @@ -43,10 +43,10 @@ async function main() { } } -/* eslint-disable */ main() .then(() => process.exit(0)) .catch((error) => { + // eslint-disable-next-line no-console console.log(error); process.exit(1); }); diff --git a/src/deployment.ts b/src/deployment.ts new file mode 100644 index 0000000..07e0ab0 --- /dev/null +++ b/src/deployment.ts @@ -0,0 +1,21 @@ +import { ethers } from 'ethers'; + +/** + * Creates a deterministic deployment name based on a base name and constructor arguments. + * @param baseName The base name for the contract (e.g., 'ProductApi3ReaderProxyV1'). + * @param constructorArgTypes Array of Solidity types for the constructor arguments. + * @param constructorArgs Array of actual constructor argument values. + * @returns A deterministic deployment name string. + */ +export const getDeploymentName = (baseName: string, constructorArgTypes: string[], constructorArgs: any[]): string => { + // Ensure addresses are checksummed for consistent ABI encoding + const processedArgs = constructorArgs.map((arg, index) => { + if (constructorArgTypes[index] === 'address' && typeof arg === 'string' && ethers.isAddress(arg)) { + return ethers.getAddress(arg); // Ensures checksum + } + return arg; + }); + const encodedArgs = ethers.AbiCoder.defaultAbiCoder().encode(constructorArgTypes, processedArgs); + const argsHash = ethers.keccak256(encodedArgs).slice(2, 10); // Use a short 8-char hex hash (e.g., 'a1b2c3d4') + return `${baseName}_${argsHash}`; +}; diff --git a/src/index.ts b/src/index.ts index 1eba20f..028e50a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1,2 @@ export * from '../typechain-types'; +export * from './deployment'; diff --git a/tsconfig.json b/tsconfig.json index 56e4b90..a50169f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,5 +28,16 @@ "baseUrl": "./", "outDir": "./dist" }, - "include": ["**/*", ".eslintrc.js"] + "exclude": ["dist/**/*", "node_modules/**/*"], + "include": [ + "./deploy/**/*", + "./scripts/**/*", + "./src/**/*", + "./test/**/*", + "./typechain-types/**/*", + ".eslintrc.js", + ".solcover.js", + "hardhat.build.config.ts", + "hardhat.config.ts" + ] }