From 491d7c3a4762fffdaeaa9e2b7aac2822abcec320 Mon Sep 17 00:00:00 2001 From: Alain Nicolas Date: Fri, 20 Dec 2024 11:40:54 +0100 Subject: [PATCH] chore: Add Prettier and ESLint to the CCIP Gateway package (#279) --- packages/linea-ccip-gateway/.env.example | 2 +- packages/linea-ccip-gateway/.eslintrc.cjs | 6 + packages/linea-ccip-gateway/.mocharc.json | 12 +- packages/linea-ccip-gateway/.prettierignore | 5 + packages/linea-ccip-gateway/.prettierrc | 8 + packages/linea-ccip-gateway/Dockerfile | 4 +- packages/linea-ccip-gateway/README.md | 45 +- packages/linea-ccip-gateway/hardhat.config.ts | 8 +- packages/linea-ccip-gateway/package.json | 62 +- .../linea-ccip-gateway/src/L2ProofService.ts | 98 +-- .../src/evm-gateway/EVMGateway.ts | 81 +-- .../src/evm-gateway/EVMProofHelper.ts | 30 +- .../src/evm-gateway/IProofService.ts | 2 +- .../src/evm-gateway/index.ts | 4 +- packages/linea-ccip-gateway/src/index.ts | 10 +- packages/linea-ccip-gateway/src/server.ts | 43 +- packages/linea-ccip-gateway/src/utils.ts | 10 +- packages/linea-ccip-gateway/test/constants.ts | 8 + .../test/testVerifier.spec.ts | 167 +++-- .../linea-ccip-gateway/tsconfig.build.json | 11 + packages/linea-ccip-gateway/tsconfig.json | 38 +- pnpm-lock.yaml | 628 +++++++++++------- 22 files changed, 743 insertions(+), 539 deletions(-) create mode 100644 packages/linea-ccip-gateway/.eslintrc.cjs create mode 100644 packages/linea-ccip-gateway/.prettierignore create mode 100644 packages/linea-ccip-gateway/.prettierrc create mode 100644 packages/linea-ccip-gateway/test/constants.ts create mode 100644 packages/linea-ccip-gateway/tsconfig.build.json diff --git a/packages/linea-ccip-gateway/.env.example b/packages/linea-ccip-gateway/.env.example index 6e380afb8..6a110a7a9 100644 --- a/packages/linea-ccip-gateway/.env.example +++ b/packages/linea-ccip-gateway/.env.example @@ -3,4 +3,4 @@ PORT=8081 L1_PROVIDER_URL=http://127.0.0.1:8545 L2_PROVIDER_URL=https://rpc.sepolia.linea.build/ L1_ROLLUP_ADDRESS=0xB218f8A4Bc926cF1cA7b3423c154a0D627Bdb7E5 -L2_CHAIN_ID=59140 \ No newline at end of file +L2_CHAIN_ID=59141 diff --git a/packages/linea-ccip-gateway/.eslintrc.cjs b/packages/linea-ccip-gateway/.eslintrc.cjs new file mode 100644 index 000000000..9e35b5de7 --- /dev/null +++ b/packages/linea-ccip-gateway/.eslintrc.cjs @@ -0,0 +1,6 @@ +module.exports = { + root: true, + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'], + ignorePatterns: ['dist', '.eslintrc.cjs', 'artifacts', 'cache', 'typechain-types'], + parser: '@typescript-eslint/parser', +}; diff --git a/packages/linea-ccip-gateway/.mocharc.json b/packages/linea-ccip-gateway/.mocharc.json index 48586d7d7..7c7e241b6 100644 --- a/packages/linea-ccip-gateway/.mocharc.json +++ b/packages/linea-ccip-gateway/.mocharc.json @@ -1,7 +1,13 @@ { "require": "ts-node/register", "loader": "ts-node/esm", - "extensions": ["ts", "tsx"], - "spec": ["test/**/*.spec.*"], - "watch-files": ["src"] + "extensions": [ + "ts" + ], + "spec": [ + "test/**/*.spec.*" + ], + "watch-files": [ + "src" + ] } diff --git a/packages/linea-ccip-gateway/.prettierignore b/packages/linea-ccip-gateway/.prettierignore new file mode 100644 index 000000000..c4b74602b --- /dev/null +++ b/packages/linea-ccip-gateway/.prettierignore @@ -0,0 +1,5 @@ +dist +node_modules +typechain-types +cache +artifacts diff --git a/packages/linea-ccip-gateway/.prettierrc b/packages/linea-ccip-gateway/.prettierrc new file mode 100644 index 000000000..c9bcca6ab --- /dev/null +++ b/packages/linea-ccip-gateway/.prettierrc @@ -0,0 +1,8 @@ +{ + "semi": true, + "singleQuote": true, + "trailingComma": "all", + "printWidth": 80, + "tabWidth": 2, + "parser": "typescript" +} diff --git a/packages/linea-ccip-gateway/Dockerfile b/packages/linea-ccip-gateway/Dockerfile index a8c7d1b18..2a1cee392 100644 --- a/packages/linea-ccip-gateway/Dockerfile +++ b/packages/linea-ccip-gateway/Dockerfile @@ -38,7 +38,7 @@ COPY packages/linea-ccip-gateway ./packages/linea-ccip-gateway COPY pnpm-lock.yaml ./pnpm-lock.yaml COPY pnpm-workspace.yaml ./pnpm-workspace.yaml -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile --prefer-offline +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile --prefer-offline --prod=false RUN pnpm run --filter=./packages/linea-ccip-gateway build @@ -66,4 +66,4 @@ COPY --from=build /prod/linea-ccip-gateway . EXPOSE 3000 -CMD [ "node", "./dist/server.js" ] \ No newline at end of file +CMD [ "node", "./dist/server.js" ] diff --git a/packages/linea-ccip-gateway/README.md b/packages/linea-ccip-gateway/README.md index a0905bff9..1d4c19cc3 100644 --- a/packages/linea-ccip-gateway/README.md +++ b/packages/linea-ccip-gateway/README.md @@ -1,6 +1,7 @@ # linea-ccip-gateway -Adapted from [EVM gateway](https://github.com/ensdomains/evmgateway) for fetching data on Linea along with Sparse Merkle Proofs and return it to the L1 callback function. +Adapted from [EVM gateway](https://github.com/ensdomains/evmgateway) for fetching data on Linea along with Sparse Merkle +Proofs and return it to the L1 callback function. ## Start dev env @@ -44,23 +45,23 @@ Before running the script, ensure that you have the necessary environment variab Create a new script file in your project directory at `scripts/testL1.ts` and add the following code: ```js -import { ethers } from "ethers"; -import "dotenv/config"; +import { ethers } from 'ethers'; +import 'dotenv/config'; // Define the ABI for the getLatest function const getLatestABI = [ { inputs: [], - name: "getLatest", + name: 'getLatest', outputs: [ { - internalType: "uint256", - name: "", - type: "uint256", + internalType: 'uint256', + name: '', + type: 'uint256', }, ], - stateMutability: "view", - type: "function", + stateMutability: 'view', + type: 'function', }, ]; @@ -71,7 +72,7 @@ async function main() { https://sepolia.etherscan.io/address/0xb12038acce44e39dd5b2f59f0f68bbfaac35dd16 */ - const testL1Address = "0xB12038acCE44e39dd5B2f59F0f68bbfAaC35dd16"; + const testL1Address = '0xB12038acCE44e39dd5B2f59F0f68bbfAaC35dd16'; const provider = new ethers.JsonRpcProvider( `https://sepolia.infura.io/v3/${process.env.INFURA_API_KEY}` @@ -93,32 +94,38 @@ async function main() { } main().catch((error) => { - console.error("Error in main execution:", error); + console.error('Error in main execution:', error); process.exitCode = 1; }); ``` -This script connects to the Sepolia testnet and calls the `getLatest` function of the `TestL1` contract, demonstrating how to enable and use the CCIP-Read functionality. +This script connects to the Sepolia testnet and calls the `getLatest` function of the `TestL1` contract, demonstrating +how to enable and use the CCIP-Read functionality. #### Running the Script To execute the script, follow these steps: -1. **Open a terminal** and navigate to the root directory of your project. +1. **Open a terminal** and navigate to the root directory of your project. -2. **Run the script using Hardhat** with the following command: +2. **Run the script using Hardhat** with the following command: ```shell npx hardhat run scripts/testL1.ts --network sepolia ``` -- This command will launch the `testL1.ts` script, which interacts with the `TestL1` contract deployed on the Sepolia network. -- The script demonstrates the usage of Chainlink's CCIP-Read protocol to fetch and verify off-chain data using a Sparse Merkle Proof. +- This command will launch the `testL1.ts` script, which interacts with the `TestL1` contract deployed on the Sepolia + network. +- The script demonstrates the usage of Chainlink's CCIP-Read protocol to fetch and verify off-chain data using a Sparse + Merkle Proof. #### What the Script Does - **Connects to the Sepolia Network**: Utilizes Infura as the provider to connect to the Ethereum Sepolia testnet. -- **Interacts with the Contract**: Calls the `getLatest` function on the `TestL1` contract, showcasing how to enable and leverage CCIP-Read capabilities. -- **Handles Off-Chain Data**: Demonstrates the retrieval and verification of off-chain data, integrating it back into the on-chain environment using CCIP. +- **Interacts with the Contract**: Calls the `getLatest` function on the `TestL1` contract, showcasing how to enable and + leverage CCIP-Read capabilities. +- **Handles Off-Chain Data**: Demonstrates the retrieval and verification of off-chain data, integrating it back into + the on-chain environment using CCIP. -This example provides a practical demonstration of how to set up and utilize the CCIP-Read protocol within a dApp, highlighting the benefits of off-chain data fetching and proof verification. +This example provides a practical demonstration of how to set up and utilize the CCIP-Read protocol within a dApp, +highlighting the benefits of off-chain data fetching and proof verification. diff --git a/packages/linea-ccip-gateway/hardhat.config.ts b/packages/linea-ccip-gateway/hardhat.config.ts index 300f0e206..ae48895e4 100644 --- a/packages/linea-ccip-gateway/hardhat.config.ts +++ b/packages/linea-ccip-gateway/hardhat.config.ts @@ -1,6 +1,6 @@ -import "@nomicfoundation/hardhat-toolbox"; -import { HardhatUserConfig } from "hardhat/config"; -import * as dotenv from "dotenv"; +import '@nomicfoundation/hardhat-toolbox'; +import { HardhatUserConfig } from 'hardhat/config'; +import * as dotenv from 'dotenv'; dotenv.config(); @@ -8,7 +8,7 @@ const config: HardhatUserConfig = { solidity: { compilers: [ { - version: "0.8.25", + version: '0.8.25', settings: { optimizer: { enabled: true, diff --git a/packages/linea-ccip-gateway/package.json b/packages/linea-ccip-gateway/package.json index 75a582305..65416343b 100644 --- a/packages/linea-ccip-gateway/package.json +++ b/packages/linea-ccip-gateway/package.json @@ -1,56 +1,58 @@ { "name": "@consensys/linea-ccip-gateway", "version": "1.1.0", - "main": "dist/index.js", - "author": "Consensys", "license": "Apache-2.0", + "author": "Consensys", + "main": "dist/index.js", "scripts": { - "start": "node dist/server.js", - "build": "tsc --project tsconfig.json --module commonjs --skipLibCheck true --outDir ./dist", - "clean": "rm -fr node_modules dist", - "test": "hardhat compile && mocha test/testVerifier.spec.ts --timeout 20000 --exit", - "compile": "hardhat compile" + "build": "tsc --project tsconfig.build.json", + "clean": "rm -Rf dist", + "compile": "hardhat compile", + "lint": "eslint . --ext ts --report-unused-disable-directives --max-warnings 0", + "prettier": "prettier --check '**/*.ts'", + "prettier:fix": "prettier --write '**/*.ts'", + "start": "pnpm run build && node dist/server.js", + "start:clean": "pnpm run clean && pnpm run build && node dist/server.js", + "start:preview": "node dist/server.js", + "test": "pnpm run compile && hardhat test test/testVerifier.spec.ts" }, "dependencies": { + "@chainlink/ccip-read-server": "^0.2.1", + "@consensys/linea-state-verifier": "^1.0.1", "@ethersproject/abi": "^5.4.7", "@ethersproject/bytes": "^5.7.0", - "@chainlink/ccip-read-server": "^0.2.1", "commander": "^11.0.0", "cors": "^2.8.5", "dotenv": "^16.0.3", - "ethers": "^6.11.1", + "ethers": "^6.12.0", "express": "^4.19.2", - "@consensys/linea-state-verifier": "^1.0.1", "tsdx": "^0.14.1", "tslib": "^2.6.2", - "winston": "^3.9.0", - "typescript": "^5.4.5" + "typescript": "^5.4.5", + "winston": "^3.9.0" }, "devDependencies": { - "typechain": "^8.2.0", - "@typechain/ethers-v6": "^0.4.0", - "ts-node": "^10.9.2", - "supertest": "^6.3.3", - "eslint": "^8.56.0", - "mocha": "^10.3.0", - "@openzeppelin/contracts": "^4.9.3", - "hardhat-gas-reporter": "^1.0.8", - "solidity-coverage": "^0.8.1", - "hardhat": "^2.21.0", - "@typescript-eslint/eslint-plugin": "^7.1.0", - "@typescript-eslint/parser": "^7.1.0", - "chai": "^4.2.0", - "@typechain/hardhat": "^8.0.0", "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", - "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.5", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", - "@nomicfoundation/hardhat-toolbox": "^3.0.0", + "@nomicfoundation/hardhat-toolbox": "^5.0.0", "@nomicfoundation/hardhat-verify": "^1.0.0", + "@openzeppelin/contracts": "^4.9.3", + "@typechain/ethers-v6": "^0.5.1", + "@typechain/hardhat": "^9.1.0", "@types/chai": "^4.2.0", "@types/express": "^4.17.18", - "@types/mocha": ">=9.1.0", "@types/node": "12.0.0", "@types/supertest": "^2.0.14", - "nyc": "^15.1.0" + "@typescript-eslint/eslint-plugin": "^7.6.0", + "@typescript-eslint/parser": "^7.6.0", + "chai": "^4.2.0", + "eslint": "^8.57.0", + "hardhat": "^2.22.3", + "hardhat-gas-reporter": "^1.0.8", + "nyc": "^15.1.0", + "solidity-coverage": "^0.8.1", + "supertest": "^6.3.3", + "ts-node": "^10.9.2" } } diff --git a/packages/linea-ccip-gateway/src/L2ProofService.ts b/packages/linea-ccip-gateway/src/L2ProofService.ts index c248f11eb..5537386bc 100644 --- a/packages/linea-ccip-gateway/src/L2ProofService.ts +++ b/packages/linea-ccip-gateway/src/L2ProofService.ts @@ -1,17 +1,17 @@ import { AbiCoder, AddressLike, - JsonRpcProvider, Contract, ethers, -} from "ethers"; -import { EVMProofHelper, IProofService, StateProof } from "./evm-gateway"; -import { logDebug, logError } from "./utils"; + JsonRpcProvider, +} from 'ethers'; +import { EVMProofHelper, IProofService, StateProof } from './evm-gateway'; +import { logDebug, logError } from './utils'; export type L2ProvableBlock = number; const currentL2BlockNumberSig = - "function currentL2BlockNumber() view returns (uint256)"; + 'function currentL2BlockNumber() view returns (uint256)'; /** * The proofService class can be used to calculate proofs for a given target and slot on the Optimism Bedrock network. @@ -26,7 +26,7 @@ export class L2ProofService implements IProofService { providerL1: JsonRpcProvider, providerL2: JsonRpcProvider, rollupAddress: string, - shomeiNode?: JsonRpcProvider + shomeiNode?: JsonRpcProvider, ) { this.helper = new EVMProofHelper(providerL2, shomeiNode); const currentL2BlockNumberIface = new ethers.Interface([ @@ -35,7 +35,7 @@ export class L2ProofService implements IProofService { this.rollup = new Contract( rollupAddress, currentL2BlockNumberIface, - providerL1 + providerL1, ); } @@ -43,21 +43,22 @@ export class L2ProofService implements IProofService { * @dev Returns an object representing a block whose state can be proven on L1. */ async getProvableBlock(): Promise { - try { - logDebug( - "Calling currentL2BlockNumber() on Rollup Contract", - await this.rollup.getAddress() - ); - const lastBlockFinalized = await this.rollup.currentL2BlockNumber({ - blockTag: "finalized", - }); - if (!lastBlockFinalized) throw new Error("No block found"); - logDebug("Provable block found", lastBlockFinalized); - return lastBlockFinalized; - } catch (e) { - logError(e); - throw e; + logDebug( + 'Calling currentL2BlockNumber() on Rollup Contract', + await this.rollup.getAddress(), + ); + + const lastBlockFinalized = await this.rollup.currentL2BlockNumber({ + blockTag: 'finalized', + }); + + if (!lastBlockFinalized) { + logError('No block found'); + return Promise.reject(new Error('No block found')); } + + logDebug('Provable block found', lastBlockFinalized); + return lastBlockFinalized; } /** @@ -70,7 +71,7 @@ export class L2ProofService implements IProofService { getStorageAt( block: L2ProvableBlock, address: AddressLike, - slot: bigint + slot: bigint, ): Promise { try { return this.helper.getStorageAt(block, address, slot); @@ -82,7 +83,7 @@ export class L2ProofService implements IProofService { /** * @dev Fetches a set of proofs for the requested state slots. - * @param block A `ProvableBlock` returned by `getProvableBlock`. + * @param blockNo A `ProvableBlock`'s number returned by `getProvableBlock`. * @param address The address of the contract to fetch data from. * @param slots An array of slots to fetch data for. * @returns A proof of the given slots, encoded in a manner that this service's @@ -91,28 +92,36 @@ export class L2ProofService implements IProofService { async getProofs( blockNo: L2ProvableBlock, address: AddressLike, - slots: bigint[] + slots: bigint[], ): Promise { try { - let proof = await this.helper.getProofs(blockNo, address, slots); + const proof = await this.helper.getProofs(blockNo, address, slots); + if (!proof.accountProof) { - throw `No account proof on contract ${address} for block number ${blockNo}`; + const error = `No account proof on contract ${address} for block number ${blockNo}`; + logError(error, { blockNo, address, slots }); + return Promise.reject(new Error(error)); } + if (proof.storageProofs.length === 0) { - throw `No storage proofs on contract ${address} for block number ${blockNo}`; + const error = `No storage proofs on contract ${address} for block number ${blockNo}`; + logError(error, { blockNo, address, slots }); + return Promise.reject(new Error(error)); } - proof = this.checkStorageInitialized(proof); + + const verifiedProof = this.checkStorageInitialized(proof); + return AbiCoder.defaultAbiCoder().encode( [ - "uint256", - "tuple(bytes key, uint256 leafIndex, tuple(bytes value, bytes[] proofRelatedNodes) proof)", - "tuple(bytes32 key, uint256 leafIndex, tuple(bytes32 value, bytes[] proofRelatedNodes) proof, bool initialized)[]", + 'uint256', + 'tuple(bytes key, uint256 leafIndex, tuple(bytes value, bytes[] proofRelatedNodes) proof)', + 'tuple(bytes32 key, uint256 leafIndex, tuple(bytes32 value, bytes[] proofRelatedNodes) proof, bool initialized)[]', ], - [blockNo, proof.accountProof, proof.storageProofs] + [blockNo, verifiedProof.accountProof, verifiedProof.storageProofs], ); } catch (e) { logError(e, { blockNo, address, slots }); - throw e; + return Promise.reject(e); } } @@ -123,15 +132,22 @@ export class L2ProofService implements IProofService { * @returns modifier proof with the */ checkStorageInitialized(proof: StateProof): StateProof { - for (let storageProof of proof.storageProofs) { + for (const storageProof of proof.storageProofs) { if (storageProof.leftProof || storageProof.rightProof) { - storageProof.proof = storageProof.leftProof; - storageProof.leafIndex = storageProof.leftLeafIndex; - storageProof.initialized = false; - delete storageProof.leftProof; - delete storageProof.rightProof; - delete storageProof.leftLeafIndex; - delete storageProof.rightLeafIndex; + if ( + storageProof.leftProof && + storageProof.leftLeafIndex !== undefined + ) { + storageProof.proof = storageProof.leftProof; + storageProof.leafIndex = storageProof.leftLeafIndex; + storageProof.initialized = false; + delete storageProof.leftProof; + delete storageProof.rightProof; + delete storageProof.leftLeafIndex; + delete storageProof.rightLeafIndex; + } else { + throw new Error('Left proof or left leaf index is undefined'); + } } else { storageProof.initialized = true; } diff --git a/packages/linea-ccip-gateway/src/evm-gateway/EVMGateway.ts b/packages/linea-ccip-gateway/src/evm-gateway/EVMGateway.ts index ca19890e9..0676f8aee 100644 --- a/packages/linea-ccip-gateway/src/evm-gateway/EVMGateway.ts +++ b/packages/linea-ccip-gateway/src/evm-gateway/EVMGateway.ts @@ -1,5 +1,5 @@ -import { HandlerDescription } from "@chainlink/ccip-read-server"; -import { Fragment, Interface, JsonFragment } from "@ethersproject/abi"; +import { HandlerDescription } from '@chainlink/ccip-read-server'; +import { Fragment, Interface, JsonFragment } from '@ethersproject/abi'; import { concat, dataSlice, @@ -7,24 +7,13 @@ import { solidityPackedKeccak256, toBigInt, zeroPadValue, -} from "ethers"; -import { IProofService, ProvableBlock } from "./IProofService"; -import { logDebug, logError, logInfo } from "../utils"; +} from 'ethers'; +import { IProofService, ProvableBlock } from './IProofService'; +import { logDebug, logError, logInfo } from '../utils'; const OP_CONSTANT = 0x00; const OP_BACKREF = 0x20; -export enum StorageLayout { - /** - * address,uint,bytes32,bool - */ - FIXED, - /** - * array,bytes,string - */ - DYNAMIC, -} - interface StorageElement { slots: bigint[]; value: () => Promise; @@ -34,7 +23,7 @@ interface StorageElement { interface Server { add: ( abi: string | readonly (string | Fragment | JsonFragment)[] | Interface, - handlers: HandlerDescription[] + handlers: HandlerDescription[], ) => void; } @@ -91,30 +80,30 @@ export class EVMGateway { * The final result of this hashing operation is used as the base slot number for the storage * lookup. This mirrors Solidity's recursive hashing operation for determining storage slot locations. */ - "function getStorageSlots(address addr, bytes32[] memory commands, bytes[] memory constants) external view returns(bytes memory witness)", + 'function getStorageSlots(address addr, bytes32[] memory commands, bytes[] memory constants) external view returns(bytes memory witness)', ]; server.add(abi, [ { - type: "getStorageSlots", - func: async (args) => { + type: 'getStorageSlots', + func: async args => { const [addr, commands, constants] = args; logInfo(`CCIP request started for L2 target contract`, { address: addr, }); - logDebug("CCIP request started with args", addr, commands, constants); + logDebug('CCIP request started with args', addr, commands, constants); try { const proofs = await this.createProofs(addr, commands, constants); logInfo( `CCIP request successfully executed for L2 target contract`, { address: addr, - } + }, ); - logDebug("CCIP request finished with encoded proofs", proofs); + logDebug('CCIP request finished with encoded proofs', proofs); return [proofs]; } catch (e) { logError(e, { addr, commands, constants }); - throw "ccip-gateway error calling getStorageSlots"; + throw 'ccip-gateway error calling getStorageSlots'; } }, }, @@ -125,13 +114,13 @@ export class EVMGateway { /** * * @param address The address to fetch storage slot proofs for - * @param paths Each element of this array specifies a Solidity-style path derivation for a storage slot ID. - * See README.md for details of the encoding. + * @param commands The commands to execute to compute the storage slots + * @param constants The constants to use in the commands */ async createProofs( address: string, commands: string[], - constants: string[] + constants: string[], ): Promise { const block = await this.proofService.getProvableBlock(); const requests: Promise[] = []; @@ -143,14 +132,14 @@ export class EVMGateway { address, commands[i], constants, - requests.slice() - ) + requests.slice(), + ), ); } // Resolve all the outstanding requests const results = await Promise.all(requests); const slots = Array.prototype.concat( - ...results.map((result) => result.slots) + ...results.map(result => result.slots), ); return this.proofService.getProofs(block, address, slots); } @@ -158,7 +147,7 @@ export class EVMGateway { private async executeOperation( operation: number, constants: string[], - requests: Promise[] + requests: Promise[], ): Promise { const opcode = operation & 0xe0; const operand = operation & 0x1f; @@ -169,21 +158,21 @@ export class EVMGateway { case OP_BACKREF: return await (await requests[operand]).value(); default: - throw new Error("Unrecognized opcode"); + throw new Error('Unrecognized opcode'); } } private async computeFirstSlot( command: string, constants: string[], - requests: Promise[] + requests: Promise[], ): Promise<{ slot: bigint; isDynamic: boolean }> { const commandWord = getBytes(command); const flags = commandWord[0]; const isDynamic = (flags & 0x01) != 0; let slot = toBigInt( - await this.executeOperation(commandWord[1], constants, requests) + await this.executeOperation(commandWord[1], constants, requests), ); // If there are multiple path elements, recursively hash them solidity-style to get the final slot. @@ -191,10 +180,10 @@ export class EVMGateway { const index = await this.executeOperation( commandWord[j], constants, - requests + requests, ); slot = toBigInt( - solidityPackedKeccak256(["bytes", "uint256"], [index, slot]) + solidityPackedKeccak256(['bytes', 'uint256'], [index, slot]), ); } @@ -204,16 +193,16 @@ export class EVMGateway { private async getDynamicValue( block: T, address: string, - slot: bigint + slot: bigint, ): Promise { const firstValue = getBytes( - await this.proofService.getStorageAt(block, address, slot) + await this.proofService.getStorageAt(block, address, slot), ); // Decode Solidity dynamic value encoding if (firstValue[31] & 0x01) { // Long value: first slot is `length * 2 + 1`, following slots are data. const len = (Number(toBigInt(firstValue)) - 1) / 2; - const hashedSlot = toBigInt(solidityPackedKeccak256(["uint256"], [slot])); + const hashedSlot = toBigInt(solidityPackedKeccak256(['uint256'], [slot])); const slotNumbers = Array(Math.ceil(len / 32)) .fill(BigInt(hashedSlot)) .map((i, idx) => i + BigInt(idx)); @@ -222,9 +211,9 @@ export class EVMGateway { isDynamic: true, value: memoize(async () => { const values = await Promise.all( - slotNumbers.map((slot) => - this.proofService.getStorageAt(block, address, slot) - ) + slotNumbers.map(slot => + this.proofService.getStorageAt(block, address, slot), + ), ); return dataSlice(concat(values), 0, len); }), @@ -245,12 +234,12 @@ export class EVMGateway { address: string, command: string, constants: string[], - requests: Promise[] + requests: Promise[], ): Promise { const { slot, isDynamic } = await this.computeFirstSlot( command, constants, - requests + requests, ); if (!isDynamic) { @@ -260,8 +249,8 @@ export class EVMGateway { value: memoize(async () => zeroPadValue( await this.proofService.getStorageAt(block, address, slot), - 32 - ) + 32, + ), ), }; } else { diff --git a/packages/linea-ccip-gateway/src/evm-gateway/EVMProofHelper.ts b/packages/linea-ccip-gateway/src/evm-gateway/EVMProofHelper.ts index d48cc2234..4500c6da3 100644 --- a/packages/linea-ccip-gateway/src/evm-gateway/EVMProofHelper.ts +++ b/packages/linea-ccip-gateway/src/evm-gateway/EVMProofHelper.ts @@ -1,5 +1,5 @@ -import { toBeHex, AddressLike, JsonRpcProvider, ethers } from "ethers"; -import { logDebug, logInfo } from "../utils"; +import { AddressLike, ethers, JsonRpcProvider, toBeHex } from 'ethers'; +import { logDebug, logInfo } from '../utils'; interface ProofStruct { key: string; @@ -37,7 +37,7 @@ export class EVMProofHelper { /** * @dev Returns the value of a contract state slot at the specified block - * @param block A `ProvableBlock` returned by `getProvableBlock`. + * @param blockNo A `ProvableBlock`'s number returned by `getProvableBlock`. * @param address The address of the contract to fetch data from. * @param slot The slot to fetch. * @returns The value in `slot` of `address` at block `block` @@ -45,14 +45,14 @@ export class EVMProofHelper { getStorageAt( blockNo: number, address: AddressLike, - slot: bigint + slot: bigint, ): Promise { return this.providerL2.getStorage(address, slot, blockNo); } /** * @dev Fetches a set of proofs for the requested state slots. - * @param block A `ProvableBlock` returned by `getProvableBlock`. + * @param blockNo A `ProvableBlock`'s number returned by `getProvableBlock`. * @param address The address of the contract to fetch data from. * @param slots An array of slots to fetch data for. * @returns A proof of the given slots, encoded in a manner that this service's @@ -61,31 +61,31 @@ export class EVMProofHelper { async getProofs( blockNo: number, address: AddressLike, - slots: bigint[] + slots: bigint[], ): Promise { const args = [ address, - slots.map((slot) => toBeHex(slot, 32)), - "0x" + blockNo.toString(16), + slots.map(slot => toBeHex(slot, 32)), + '0x' + blockNo.toString(16), ]; - logInfo("Calling linea_getProof with args", args); + logInfo('Calling linea_getProof with args', args); // We have to reinitilize the provider L2 because of an issue when multiple // requests are sent at the same time, the provider becomes not aware of // the linea_getProof method - const providerUrl = await this.shomeiNode._getConnection().url; - const providerChainId = await this.shomeiNode._network.chainId; + const providerUrl = this.shomeiNode._getConnection().url; + const providerChainId = this.shomeiNode._network.chainId; const providerL2 = new ethers.JsonRpcProvider( providerUrl, providerChainId, { staticNetwork: true, - } + }, ); - logDebug("Calling linea_getProof with L2 provider", providerUrl); - const proofs: StateProof = await providerL2.send("linea_getProof", args); - logDebug("Proof result", proofs); + logDebug('Calling linea_getProof with L2 provider', providerUrl); + const proofs: StateProof = await providerL2.send('linea_getProof', args); + logDebug('Proof result', proofs); return proofs; } } diff --git a/packages/linea-ccip-gateway/src/evm-gateway/IProofService.ts b/packages/linea-ccip-gateway/src/evm-gateway/IProofService.ts index 8344eaf4c..fea25ebff 100644 --- a/packages/linea-ccip-gateway/src/evm-gateway/IProofService.ts +++ b/packages/linea-ccip-gateway/src/evm-gateway/IProofService.ts @@ -1,4 +1,4 @@ -import type { AddressLike } from 'ethers'; +import { AddressLike } from 'ethers'; export interface ProvableBlock {} diff --git a/packages/linea-ccip-gateway/src/evm-gateway/index.ts b/packages/linea-ccip-gateway/src/evm-gateway/index.ts index 9af503240..7d507b86c 100644 --- a/packages/linea-ccip-gateway/src/evm-gateway/index.ts +++ b/packages/linea-ccip-gateway/src/evm-gateway/index.ts @@ -1,3 +1,3 @@ -export { EVMGateway, StorageLayout } from './EVMGateway'; +export { EVMGateway } from './EVMGateway'; export { EVMProofHelper, StateProof } from './EVMProofHelper'; -export type { IProofService, ProvableBlock } from './IProofService'; \ No newline at end of file +export { IProofService, ProvableBlock } from './IProofService'; diff --git a/packages/linea-ccip-gateway/src/index.ts b/packages/linea-ccip-gateway/src/index.ts index 5c8227449..af90e4c17 100644 --- a/packages/linea-ccip-gateway/src/index.ts +++ b/packages/linea-ccip-gateway/src/index.ts @@ -1,6 +1,6 @@ -import { EVMGateway } from "./evm-gateway"; -import { JsonRpcProvider } from "ethers"; -import { L2ProofService, L2ProvableBlock } from "./L2ProofService"; +import { EVMGateway } from './evm-gateway'; +import { JsonRpcProvider } from 'ethers'; +import { L2ProofService, L2ProvableBlock } from './L2ProofService'; export type L1Gateway = EVMGateway; @@ -8,10 +8,10 @@ export function makeL2Gateway( providerL1: JsonRpcProvider, providerL2: JsonRpcProvider, rollupAddress: string, - shomeiNode?: JsonRpcProvider + shomeiNode?: JsonRpcProvider, ): L1Gateway { return new EVMGateway( - new L2ProofService(providerL1, providerL2, rollupAddress, shomeiNode) + new L2ProofService(providerL1, providerL2, rollupAddress, shomeiNode), ); } diff --git a/packages/linea-ccip-gateway/src/server.ts b/packages/linea-ccip-gateway/src/server.ts index 526d9c483..fa65caae8 100644 --- a/packages/linea-ccip-gateway/src/server.ts +++ b/packages/linea-ccip-gateway/src/server.ts @@ -1,16 +1,18 @@ -import { EVMGateway } from "./evm-gateway"; -import { ethers } from "ethers"; -import { L2ProofService } from "./L2ProofService"; -import "dotenv/config"; -import { Server } from "@chainlink/ccip-read-server"; -import { logError } from "./utils"; +import { Request, Response } from 'express'; +import { EVMGateway } from './evm-gateway'; +import { ethers } from 'ethers'; +import { L2ProofService } from './L2ProofService'; +import 'dotenv/config'; +import { Server } from '@chainlink/ccip-read-server'; +import { logError } from './utils'; const l1ProviderUrl = process.env.L1_PROVIDER_URL; const l2ProviderUrl = process.env.L2_PROVIDER_URL; -const l2ChainId = parseInt(process.env.L2_CHAIN_ID); -const rollupAddress = process.env.L1_ROLLUP_ADDRESS; +const l2ChainId = parseInt(process.env.L2_CHAIN_ID ?? '59141'); +const rollupAddress = + process.env.L1_ROLLUP_ADDRESS ?? '0xB218f8A4Bc926cF1cA7b3423c154a0D627Bdb7E5'; const port = process.env.PORT || 3000; -const nodeEnv = process.env.NODE_ENV || "test"; +const nodeEnv = process.env.NODE_ENV || 'test'; try { const providerL1 = new ethers.JsonRpcProvider(l1ProviderUrl); @@ -19,36 +21,36 @@ try { }); const gateway = new EVMGateway( - new L2ProofService(providerL1, providerL2, rollupAddress) + new L2ProofService(providerL1, providerL2, rollupAddress), ); const server = new Server(); gateway.add(server); - const app = server.makeApp("/"); + const app = server.makeApp('/'); - console.log("Server setup complete."); + console.log('Server setup complete.'); // Liveness probe - app.get("/live", async (_req, res, _next) => { + app.get('/live', async (_req: Request, res: Response) => { res.send({ uptime: process.uptime(), - message: "OK", + message: 'OK', timestamp: Date.now(), }); }); // Readiness probe - app.get("/ready", async (_req, res, _next) => { + app.get('/ready', async (_req: Request, res: Response) => { const readiness = { - message: "OK", + message: 'OK', timestamp: Date.now(), }; try { - const host = _req.protocol + "://" + _req.get("host"); + const host = _req.protocol + '://' + _req.get('host'); // Call the actual method to get the results for a specific slot location to check that it resolves correctly // Query to retrieve the address of "test.linea.eth" using the mainnet linea ccip gateway let urlToCheck = `${host}/0xde16ee87b0c019499cebdde29c9f7686560f679a/0xea9cd3bf00000000000000000000000086c5aed9f27837074612288610fb98ccc1733126000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000001ff000000000000000000000000000000000000000000000000000000000102200304ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a6b048e995adeec31455b4128a77bb8c173bd1314c7c99ab5e09622ee28be2f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000020a6b048e995adeec31455b4128a77bb8c173bd1314c7c99ab5e09622ee28be2f00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003c.json`; - if (nodeEnv === "test") { + if (nodeEnv === 'test') { // If on sepolia the values are slightly different // Query to retrieve the address of "test.linea-sepolia.eth" using the linea sepolia ccip gateway urlToCheck = `${host}/0x64884ed06241c059497aedb2c7a44ccae6bc7937/0xea9cd3bf000000000000000000000000a2008916ed2d7ed0ecd747a8a5309267e42cf1f1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000001ff000000000000000000000000000000000000000000000000000000000102200304ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020dde5d7fdc926e668bfdf1fa738b96e0ad0267b06f38e6709478a00dbc5243c17000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000020dde5d7fdc926e668bfdf1fa738b96e0ad0267b06f38e6709478a00dbc5243c170000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003c.json`; @@ -62,14 +64,15 @@ try { res.send(readiness); } } catch (error) { - readiness.message = error; + readiness.message = + error instanceof Error ? error.message : JSON.stringify(error); logError(error, readiness); res.status(500).send(); } }); (async () => { - app.listen(port, function () { + app.listen(port, function() { console.log(`Listening on ${port}`); }); })(); diff --git a/packages/linea-ccip-gateway/src/utils.ts b/packages/linea-ccip-gateway/src/utils.ts index 3dc1124c3..c219a58e7 100644 --- a/packages/linea-ccip-gateway/src/utils.ts +++ b/packages/linea-ccip-gateway/src/utils.ts @@ -1,13 +1,13 @@ -export function logError(error: any, ...objects: any[]) { +export function logError(error: unknown, ...objects: unknown[]) { const logObject = { - error: error.message || error, + error: error instanceof Error ? error.message : error, details: objects, }; console.error(logObject); } -export function logDebug(message: string, ...objects: any[]) { - if (process.env.NODE_ENV === "development") { +export function logDebug(message: string, ...objects: unknown[]) { + if (process.env.NODE_ENV === 'development') { const logObject = { message, details: objects, @@ -16,7 +16,7 @@ export function logDebug(message: string, ...objects: any[]) { } } -export function logInfo(message: string, ...objects: any[]) { +export function logInfo(message: string, ...objects: unknown[]) { const logObject = { message, details: objects, diff --git a/packages/linea-ccip-gateway/test/constants.ts b/packages/linea-ccip-gateway/test/constants.ts new file mode 100644 index 000000000..826645d98 --- /dev/null +++ b/packages/linea-ccip-gateway/test/constants.ts @@ -0,0 +1,8 @@ +export const L1_RPC_URL = 'https://gateway.tenderly.co/public/sepolia'; +export const L2_RPC_URL = 'https://rpc.sepolia.linea.build/'; +export const L2_TEST_CONTRACT_ADDRESS = + '0x09a434561f4b40067F71444d7042fd110013F879'; +export const ROLLUP_SEPOLIA_ADDRESS = + '0xB218f8A4Bc926cF1cA7b3423c154a0D627Bdb7E5'; +export const CHAIN_ID_L1 = 11155111; +export const CHAIN_ID_L2 = 59141; diff --git a/packages/linea-ccip-gateway/test/testVerifier.spec.ts b/packages/linea-ccip-gateway/test/testVerifier.spec.ts index e0fae776d..48689faa2 100644 --- a/packages/linea-ccip-gateway/test/testVerifier.spec.ts +++ b/packages/linea-ccip-gateway/test/testVerifier.spec.ts @@ -1,196 +1,191 @@ -import { Server } from "@chainlink/ccip-read-server"; -import { makeL2Gateway } from "../src"; -import { HardhatEthersProvider } from "@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider"; -import { HardhatEthersHelpers } from "@nomicfoundation/hardhat-ethers/types"; -import { expect } from "chai"; +import { Server } from '@chainlink/ccip-read-server'; +import { makeL2Gateway } from '../src'; +import { HardhatEthersProvider } from '@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider'; +import { HardhatEthersHelpers } from '@nomicfoundation/hardhat-ethers/types'; +import { expect } from 'chai'; import { BrowserProvider, Contract, + ethers, FetchRequest, JsonRpcProvider, Signer, - ethers as ethersT, -} from "ethers"; -import { ethers } from "hardhat"; -import { EthereumProvider } from "hardhat/types"; -import request from "supertest"; - -type ethersObj = typeof ethersT & - Omit & { - provider: Omit & { +} from 'ethers'; +import { ethers as ethersHardhat } from 'hardhat'; +import { EthereumProvider } from 'hardhat/types'; +import request from 'supertest'; +import { + CHAIN_ID_L1, + CHAIN_ID_L2, + L1_RPC_URL, + L2_RPC_URL, + L2_TEST_CONTRACT_ADDRESS, + ROLLUP_SEPOLIA_ADDRESS, +} from './constants'; + +type ethersObj = typeof ethers & + Omit & { + provider: Omit & { _hardhatProvider: EthereumProvider; }; }; -declare module "hardhat/types/runtime" { +declare module 'hardhat/types/runtime' { const ethers: ethersObj; + interface HardhatRuntimeEnvironment { - // @ts-ignore ethers: ethersObj; } } -describe("L1Verifier", () => { +describe('L1Verifier', () => { let l1Provider: BrowserProvider; let l2Provider: JsonRpcProvider; let l1SepoliaProvider: JsonRpcProvider; - let l2TestContract: string; let signer: Signer; let target: Contract; before(async () => { - // Hack to get a 'real' ethers provider from hardhat. The default `HardhatProvider` - // doesn't support CCIP-read. - // @ts-ignore - l1Provider = new ethers.BrowserProvider(ethers.provider._hardhatProvider); - l2Provider = new ethers.JsonRpcProvider( - "https://rpc.sepolia.linea.build/", - 59141, - { - staticNetwork: true, - } + l1Provider = new ethersHardhat.BrowserProvider( + ethersHardhat.provider._hardhatProvider, ); - // We need this provider to get the latest L2BlockNumber along with the the linea state root hash - l1SepoliaProvider = new ethers.JsonRpcProvider( - "https://gateway.tenderly.co/public/sepolia", - 11155111, + l2Provider = new ethersHardhat.JsonRpcProvider(L2_RPC_URL, CHAIN_ID_L2, { + staticNetwork: true, + }); + l1SepoliaProvider = new ethersHardhat.JsonRpcProvider( + L1_RPC_URL, + CHAIN_ID_L1, { staticNetwork: true, - } + }, ); - // This test only works with the specific test contract deployed on linea sepolia network - l2TestContract = "0x09a434561f4b40067F71444d7042fd110013F879"; signer = await l1Provider.getSigner(0); - const Rollup = await ethers.getContractFactory("RollupMock", signer); + const Rollup = await ethersHardhat.getContractFactory('RollupMock', signer); - // We query the latest block number and state root hash on the actual L1 sepolia chain - // because otherwise if we hard code a block number and state root hash the test is no longer - // working after a while as linea_getProof stops working for older blocks - const rollupSepolia = new ethers.Contract( - "0xB218f8A4Bc926cF1cA7b3423c154a0D627Bdb7E5", + const rollupSepolia = new ethersHardhat.Contract( + ROLLUP_SEPOLIA_ADDRESS, Rollup.interface, - l1SepoliaProvider + l1SepoliaProvider, ); const currentL2BlockNumber = await rollupSepolia.currentL2BlockNumber(); const stateRootHash = await rollupSepolia.stateRootHashes( - currentL2BlockNumber + currentL2BlockNumber, ); const rollup = await Rollup.deploy(currentL2BlockNumber, stateRootHash); const gateway = makeL2Gateway( - l1Provider as unknown as JsonRpcProvider, + (l1Provider as unknown) as JsonRpcProvider, l2Provider, - await rollup.getAddress() + await rollup.getAddress(), ); const server = new Server(); gateway.add(server); - const app = server.makeApp("/"); + const app = server.makeApp('/'); const getUrl = FetchRequest.createGetUrlFunc(); - ethers.FetchRequest.registerGetUrl(async (req: FetchRequest) => { - if (req.url != "test:") return getUrl(req); + ethersHardhat.FetchRequest.registerGetUrl(async (req: FetchRequest) => { + if (req.url != 'test:') return getUrl(req); - const r = request(app).post("/"); + const r = request(app).post('/'); if (req.hasBody()) { - r.set("Content-Type", "application/json").send( - ethers.toUtf8String(req.body) + r.set('Content-Type', 'application/json').send( + ethersHardhat.toUtf8String(req.body), ); } const response = await r; return { statusCode: response.statusCode, - statusMessage: response.ok ? "OK" : response.statusCode.toString(), - body: ethers.toUtf8Bytes(JSON.stringify(response.body)), + statusMessage: response.ok ? 'OK' : response.statusCode.toString(), + body: ethersHardhat.toUtf8Bytes(JSON.stringify(response.body)), headers: { - "Content-Type": "application/json", + 'Content-Type': 'application/json', }, }; }); - const Mimc = await ethers.getContractFactory("Mimc", signer); + const Mimc = await ethersHardhat.getContractFactory('Mimc', signer); const mimc = await Mimc.deploy(); - const SparseMerkleProof = await ethers.getContractFactory( - "SparseMerkleProof", - { libraries: { Mimc: await mimc.getAddress() }, signer } + const SparseMerkleProof = await ethersHardhat.getContractFactory( + 'SparseMerkleProof', + { libraries: { Mimc: await mimc.getAddress() }, signer }, ); const sparseMerkleProof = await SparseMerkleProof.deploy(); - const LineaSparseProofVerifier = await ethers.getContractFactory( - "LineaSparseProofVerifier", + const LineaSparseProofVerifier = await ethersHardhat.getContractFactory( + 'LineaSparseProofVerifier', { libraries: { SparseMerkleProof: await sparseMerkleProof.getAddress(), }, signer, - } + }, ); const lineaSparseProofVerifier = await LineaSparseProofVerifier.deploy( - ["test:"], - await rollup.getAddress() + ['test:'], + await rollup.getAddress(), ); - const TestL1 = await ethers.getContractFactory("TestL1", signer); + const TestL1 = await ethersHardhat.getContractFactory('TestL1', signer); target = await TestL1.deploy( await lineaSparseProofVerifier.getAddress(), - l2TestContract + L2_TEST_CONTRACT_ADDRESS, ); - // Mine an empty block so we have something to prove against - await l1Provider.send("evm_mine", []); + await l1Provider.send('evm_mine', []); }); - it("simple proofs for fixed values", async () => { + it('simple proofs for fixed values', async () => { const result = await target.getLatest({ enableCcipRead: true }); expect(Number(result)).to.equal(42); }); - it("simple proofs for dynamic values", async () => { + it('simple proofs for dynamic values', async () => { const result = await target.getName({ enableCcipRead: true }); - expect(result).to.equal("Satoshi"); + expect(result).to.equal('Satoshi'); }); - it("nested proofs for dynamic values", async () => { + it('nested proofs for dynamic values', async () => { const result = await target.getHighscorer(42, { enableCcipRead: true }); - expect(result).to.equal("Hal Finney"); + expect(result).to.equal('Hal Finney'); }); - it("nested proofs for long dynamic values", async () => { + it('nested proofs for long dynamic values', async () => { const result = await target.getHighscorer(1, { enableCcipRead: true }); expect(result).to.equal( - "Hubert Blaine Wolfeschlegelsteinhausenbergerdorff Sr." + 'Hubert Blaine Wolfeschlegelsteinhausenbergerdorff Sr.', ); }); - it("nested proofs with lookbehind", async () => { + it('nested proofs with lookbehind', async () => { const result = await target.getLatestHighscore({ enableCcipRead: true }); expect(Number(result)).to.equal(12345); }); - it("nested proofs with lookbehind for dynamic values", async () => { + it('nested proofs with lookbehind for dynamic values', async () => { const result = await target.getLatestHighscorer({ enableCcipRead: true }); - expect(result).to.equal("Hal Finney"); + expect(result).to.equal('Hal Finney'); }); - it("mappings with variable-length keys", async () => { - const result = await target.getNickname("Money Skeleton", { + it('mappings with variable-length keys', async () => { + const result = await target.getNickname('Money Skeleton', { enableCcipRead: true, }); - expect(result).to.equal("Vitalik Buterin"); + expect(result).to.equal('Vitalik Buterin'); }); - it("nested proofs of mappings with variable-length keys", async () => { + it('nested proofs of mappings with variable-length keys', async () => { const result = await target.getPrimaryNickname({ enableCcipRead: true }); - expect(result).to.equal("Hal Finney"); + expect(result).to.equal('Hal Finney'); }); - it("treats uninitialized storage elements as zeroes", async () => { + it('treats uninitialized storage elements as zeroes', async () => { const result = await target.getZero({ enableCcipRead: true }); expect(Number(result)).to.equal(0); }); - it("treats uninitialized dynamic values as empty strings", async () => { - const result = await target.getNickname("Santa", { enableCcipRead: true }); - expect(result).to.equal(""); + it('treats uninitialized dynamic values as empty strings', async () => { + const result = await target.getNickname('Santa', { enableCcipRead: true }); + expect(result).to.equal(''); }); }); diff --git a/packages/linea-ccip-gateway/tsconfig.build.json b/packages/linea-ccip-gateway/tsconfig.build.json new file mode 100644 index 000000000..2ae42f5b6 --- /dev/null +++ b/packages/linea-ccip-gateway/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "include": [ + "src" + ], + "exclude": [ + "node_modules", + "dist", + "test" + ] +} diff --git a/packages/linea-ccip-gateway/tsconfig.json b/packages/linea-ccip-gateway/tsconfig.json index 33322a0b8..3f14be6bd 100644 --- a/packages/linea-ccip-gateway/tsconfig.json +++ b/packages/linea-ccip-gateway/tsconfig.json @@ -1,24 +1,26 @@ { - "include": ["src"], "compilerOptions": { - "module": "esnext", - "lib": ["dom", "esnext"], - "importHelpers": true, - "declaration": true, - "sourceMap": true, - "rootDir": "./src", - "noUnusedLocals": true, - "noUnusedParameters": true, - "moduleResolution": "Node", - "jsx": "react", + "target": "ESNext", + "module": "commonjs", + "strict": true, + "noImplicitAny": true, + "strictNullChecks": true, "esModuleInterop": true, - "skipLibCheck": false, - "resolveJsonModule": true - }, - "ts-node": { - "compilerOptions": { - "module": "commonjs" + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "baseUrl": ".", + "outDir": "./dist", + "paths": { + "*": [ + "node_modules/*" + ] } }, - "outDir": "./dist" + "include": [ + "src", + "test" + ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5830a0a21..c8a11f3e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 0.2.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@consensys/linea-state-verifier': specifier: ^1.0.1 - version: 1.0.1(jpsyy2oxbfks3q74376qqilsiy) + version: 1.0.1(3abpvnecb7c2hhye2hcdstuhcy) '@ethersproject/abi': specifier: ^5.4.7 version: 5.7.0 @@ -30,8 +30,8 @@ importers: specifier: ^16.0.3 version: 16.4.5 ethers: - specifier: ^6.11.1 - version: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + specifier: ^6.12.0 + version: 6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) express: specifier: ^4.19.2 version: 4.19.2 @@ -50,37 +50,34 @@ importers: devDependencies: '@nomicfoundation/hardhat-chai-matchers': specifier: ^2.0.0 - version: 2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + version: 2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@nomicfoundation/hardhat-ethers': - specifier: ^3.0.0 - version: 3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + specifier: ^3.0.5 + version: 3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@nomicfoundation/hardhat-network-helpers': specifier: ^1.0.0 - version: 1.0.10(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + version: 1.0.10(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@nomicfoundation/hardhat-toolbox': - specifier: ^3.0.0 - version: 3.0.0(utq3uvudzo3cky5blfoaimxkfe) + specifier: ^5.0.0 + version: 5.0.0(ip5olib5xsxe4mxldajozhzipy) '@nomicfoundation/hardhat-verify': specifier: ^1.0.0 - version: 1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + version: 1.1.1(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@openzeppelin/contracts': specifier: ^4.9.3 version: 4.9.6 '@typechain/ethers-v6': - specifier: ^0.4.0 - version: 0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) + specifier: ^0.5.1 + version: 0.5.1(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) '@typechain/hardhat': - specifier: ^8.0.0 - version: 8.0.3(@typechain/ethers-v6@0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5)) + specifier: ^9.1.0 + version: 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5)) '@types/chai': specifier: ^4.2.0 version: 4.3.14 '@types/express': specifier: ^4.17.18 version: 4.17.21 - '@types/mocha': - specifier: '>=9.1.0' - version: 10.0.6 '@types/node': specifier: 12.0.0 version: 12.0.0 @@ -88,41 +85,35 @@ importers: specifier: ^2.0.14 version: 2.0.16 '@typescript-eslint/eslint-plugin': - specifier: ^7.1.0 + specifier: ^7.6.0 version: 7.6.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^7.1.0 + specifier: ^7.6.0 version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) chai: specifier: ^4.2.0 version: 4.4.1 eslint: - specifier: ^8.56.0 + specifier: ^8.57.0 version: 8.57.0 hardhat: - specifier: ^2.21.0 - version: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + specifier: ^2.22.3 + version: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) hardhat-gas-reporter: specifier: ^1.0.8 - version: 1.0.10(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) - mocha: - specifier: ^10.3.0 - version: 10.4.0 + version: 1.0.10(bufferutil@4.0.8)(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) nyc: specifier: ^15.1.0 version: 15.1.0 solidity-coverage: specifier: ^0.8.1 - version: 0.8.12(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + version: 0.8.12(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) supertest: specifier: ^6.3.3 version: 6.3.4 ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@12.0.0)(typescript@5.4.5) - typechain: - specifier: ^8.2.0 - version: 8.3.2(typescript@5.4.5) packages/linea-ens-app: dependencies: @@ -158,7 +149,7 @@ importers: version: 2.0.1(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(viem@2.9.17(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.22.4))(wagmi@2.5.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.7)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@6.0.3)))(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.2.0))(@types/react@18.2.21)(bufferutil@4.0.7)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.7)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@6.0.3))(react@18.2.0)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.9.17(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.22.4))(zod@3.22.4)) '@sentry/nextjs': specifier: ^7.43.0 - version: 7.110.0(encoding@0.1.13)(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(webpack@5.96.1(esbuild@0.17.19)) + version: 7.110.0(encoding@0.1.13)(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(webpack@5.96.1(esbuild@0.17.19)) '@svgr/webpack': specifier: ^8.1.0 version: 8.1.0(typescript@5.4.5) @@ -221,7 +212,7 @@ importers: version: 7.4.7(react@18.2.0) next: specifier: 14.2.10 - version: 14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) p-memoize: specifier: ^7.1.1 version: 7.1.1 @@ -312,7 +303,7 @@ importers: version: 1.43.1 '@testing-library/jest-dom': specifier: ^6.4.2 - version: 6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)))(vitest@1.5.0(@types/node@18.19.31)(jsdom@24.0.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.30.3)) + version: 6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)))(vitest@1.5.0(@types/node@18.19.31)(jsdom@24.0.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.30.3)) '@testing-library/react': specifier: ^14.0.0 version: 14.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -390,13 +381,13 @@ importers: version: 8.50.0 eslint-config-airbnb: specifier: ^19.0.4 - version: 19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.50.0))(eslint-plugin-react-hooks@4.6.0(eslint@8.50.0))(eslint-plugin-react@7.34.1(eslint@8.50.0))(eslint@8.50.0) + version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0(eslint@8.50.0))(eslint-plugin-react-hooks@4.6.0(eslint@8.50.0))(eslint-plugin-react@7.34.1(eslint@8.50.0))(eslint@8.50.0) eslint-config-airbnb-base: specifier: ^15.0.0 - version: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0))(eslint@8.50.0) + version: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.50.0) eslint-config-airbnb-typescript: specifier: ^17.1.0 - version: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5))(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0))(eslint@8.50.0) + version: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5))(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.50.0) eslint-config-next: specifier: ^13.4.19 version: 13.5.6(eslint@8.50.0)(typescript@5.4.5) @@ -468,10 +459,10 @@ importers: version: 2.2.1 next-dev-https: specifier: ^0.1.2 - version: 0.1.2(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + version: 0.1.2(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) next-router-mock: specifier: ^0.9.10 - version: 0.9.13(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + version: 0.9.13(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) next-transpile-modules: specifier: ^9.1.0 version: 9.1.0 @@ -516,7 +507,7 @@ importers: version: 3.3.0(stylelint@14.11.0)(webpack@5.96.1(esbuild@0.17.19)) svgo: specifier: latest - version: 3.2.0 + version: 3.3.2 ts-node: specifier: ^10.9.1 version: 10.9.2(@types/node@18.19.31)(typescript@5.4.5) @@ -561,7 +552,7 @@ importers: version: 0.1.1 '@ensdomains/ens-contracts': specifier: ensdomains/ens-contracts#feature/crosschain-resolver-with-reverse-registrar - version: https://codeload.github.com/ensdomains/ens-contracts/tar.gz/9d6d5b727db18247d74937aa3c6ed162f9121c52(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + version: https://codeload.github.com/ensdomains/ens-contracts/tar.gz/d93dfee5908040eb3f7ee98bad7e0fed43d4c9a4(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@nomicfoundation/hardhat-chai-matchers': specifier: ^2.0.0 version: 2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) @@ -767,10 +758,10 @@ importers: version: 10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8) '@nestjs/swagger': specifier: ^7.4.2 - version: 7.4.2(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8)(encoding@0.1.13)(reflect-metadata@0.1.14)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14) + version: 7.4.2(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14) '@nestjs/terminus': specifier: ^10.2.3 - version: 10.2.3(@nestjs/axios@3.0.2(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(axios@1.7.7)(rxjs@7.8.1))(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8)(encoding@0.1.13)(reflect-metadata@0.1.14)(rxjs@7.8.1))(reflect-metadata@0.1.14)(rxjs@7.8.1) + version: 10.2.3(@nestjs/axios@3.0.2(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(axios@1.7.7)(rxjs@7.8.1))(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8)(reflect-metadata@0.1.14)(rxjs@7.8.1) class-transformer: specifier: ^0.5.1 version: 0.5.1 @@ -807,7 +798,7 @@ importers: version: 10.1.1(chokidar@3.6.0)(typescript@5.4.5) '@nestjs/testing': specifier: ^10.3.3 - version: 10.3.7(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8)(encoding@0.1.13)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8)) + version: 10.3.7(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8)(@nestjs/platform-express@10.4.8) '@types/express': specifier: ^4.17.13 version: 4.17.21 @@ -1837,9 +1828,9 @@ packages: '@ensdomains/ens-contracts@file:packages/linea-ens-contracts': resolution: {directory: packages/linea-ens-contracts, type: directory} - '@ensdomains/ens-contracts@https://codeload.github.com/ensdomains/ens-contracts/tar.gz/9d6d5b727db18247d74937aa3c6ed162f9121c52': - resolution: {tarball: https://codeload.github.com/ensdomains/ens-contracts/tar.gz/9d6d5b727db18247d74937aa3c6ed162f9121c52} - version: 0.0.21 + '@ensdomains/ens-contracts@https://codeload.github.com/ensdomains/ens-contracts/tar.gz/d93dfee5908040eb3f7ee98bad7e0fed43d4c9a4': + resolution: {tarball: https://codeload.github.com/ensdomains/ens-contracts/tar.gz/d93dfee5908040eb3f7ee98bad7e0fed43d4c9a4} + version: 1.0.1 '@ensdomains/ens-test-env@0.4.0-beta.0': resolution: {integrity: sha512-B/Kv0EhPQnwHbgHV1yH178es3EIejYf5LbRtTN1N69jbyoxjT+0cUE74YfaH9EZFQ6sLmpJP/Yk7vE3wTpBglQ==} @@ -2328,6 +2319,7 @@ packages: '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -2335,6 +2327,7 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead '@ianvs/prettier-plugin-sort-imports@4.2.1': resolution: {integrity: sha512-NKN1LVFWUDGDGr3vt+6Ey3qPeN/163uR1pOPAlkWpgvAqgxQ6kSdUf1F0it8aHUtKRUzEGcK38Wxd07O61d7+Q==} @@ -2928,36 +2921,60 @@ packages: cpu: [arm64] os: [darwin] + '@nomicfoundation/edr-darwin-arm64@0.6.5': + resolution: {integrity: sha512-A9zCCbbNxBpLgjS1kEJSpqxIvGGAX4cYbpDYCU2f3jVqOwaZ/NU761y1SvuCRVpOwhoCXqByN9b7HPpHi0L4hw==} + engines: {node: '>= 18'} + '@nomicfoundation/edr-darwin-x64@0.3.4': resolution: {integrity: sha512-dXO0vlIoBosp8gf5/ah3dESMymjwit0Daef1E4Ew3gZ8q3LAdku0RC+YEQJi9f0I3QNfdgIrBTzibRZUoP+kVA==} engines: {node: '>= 18'} cpu: [x64] os: [darwin] + '@nomicfoundation/edr-darwin-x64@0.6.5': + resolution: {integrity: sha512-x3zBY/v3R0modR5CzlL6qMfFMdgwd6oHrWpTkuuXnPFOX8SU31qq87/230f4szM+ukGK8Hi+mNq7Ro2VF4Fj+w==} + engines: {node: '>= 18'} + '@nomicfoundation/edr-linux-arm64-gnu@0.3.4': resolution: {integrity: sha512-dv38qmFUaqkkeeA9S0JjerqruytTfHav7gbPLpZUAEXPlJGo49R0+HQxd45I0msbm6NAXbkmKEchTLApp1ohaA==} engines: {node: '>= 18'} cpu: [arm64] os: [linux] + '@nomicfoundation/edr-linux-arm64-gnu@0.6.5': + resolution: {integrity: sha512-HGpB8f1h8ogqPHTyUpyPRKZxUk2lu061g97dOQ/W4CxevI0s/qiw5DB3U3smLvSnBHKOzYS1jkxlMeGN01ky7A==} + engines: {node: '>= 18'} + '@nomicfoundation/edr-linux-arm64-musl@0.3.4': resolution: {integrity: sha512-CfEsb6gdCMVIlRSpWYTxoongEKHB60V6alE/y8mkfjIo7tA95wyiuvCtyo3fpiia3wQV7XoMYgIJHObHiKLKtA==} engines: {node: '>= 18'} cpu: [arm64] os: [linux] + '@nomicfoundation/edr-linux-arm64-musl@0.6.5': + resolution: {integrity: sha512-ESvJM5Y9XC03fZg9KaQg3Hl+mbx7dsSkTIAndoJS7X2SyakpL9KZpOSYrDk135o8s9P9lYJdPOyiq+Sh+XoCbQ==} + engines: {node: '>= 18'} + '@nomicfoundation/edr-linux-x64-gnu@0.3.4': resolution: {integrity: sha512-V0CpJA2lYWulgTR+zP11ftBAEwkpMAAki/AuMu3vd7HoPfjwIDzWDQR5KFU17qFmqAVz0ICRxsxDlvvBZ/PUxA==} engines: {node: '>= 18'} cpu: [x64] os: [linux] + '@nomicfoundation/edr-linux-x64-gnu@0.6.5': + resolution: {integrity: sha512-HCM1usyAR1Ew6RYf5AkMYGvHBy64cPA5NMbaeY72r0mpKaH3txiMyydcHibByOGdQ8iFLWpyUdpl1egotw+Tgg==} + engines: {node: '>= 18'} + '@nomicfoundation/edr-linux-x64-musl@0.3.4': resolution: {integrity: sha512-0sgTrwZajarukerU/QSb+oRdlQLnJdd7of8OlXq2wtpeTNTqemgCOwY2l2qImbWboMpVrYgcmGbINXNVPCmuJw==} engines: {node: '>= 18'} cpu: [x64] os: [linux] + '@nomicfoundation/edr-linux-x64-musl@0.6.5': + resolution: {integrity: sha512-nB2uFRyczhAvWUH7NjCsIO6rHnQrof3xcCe6Mpmnzfl2PYcGyxN7iO4ZMmRcQS7R1Y670VH6+8ZBiRn8k43m7A==} + engines: {node: '>= 18'} + '@nomicfoundation/edr-win32-arm64-msvc@0.3.4': resolution: {integrity: sha512-bOl3vhMtV0W9ozUMF5AZRBWw1183hhhx+e1YJdDLMaqNkBUFYi2CZbMYefDylq2OKQtOQ0gPLhZvn+z2D21Ztw==} engines: {node: '>= 10'} @@ -2976,10 +2993,18 @@ packages: cpu: [x64] os: [win32] + '@nomicfoundation/edr-win32-x64-msvc@0.6.5': + resolution: {integrity: sha512-B9QD/4DSSCFtWicO8A3BrsnitO1FPv7axB62wq5Q+qeJ50yJlTmyeGY3cw62gWItdvy2mh3fRM6L1LpnHiB77A==} + engines: {node: '>= 18'} + '@nomicfoundation/edr@0.3.4': resolution: {integrity: sha512-e4jzVeJ+VTKBFzNgKDbSVnGVbHYNZHIfMdgifQBugXPiIa6QEUzZqleh2+y4lhkXcCthnFyrTYe3jiEpUzr3cA==} engines: {node: '>= 18'} + '@nomicfoundation/edr@0.6.5': + resolution: {integrity: sha512-tAqMslLP+/2b2sZP4qe9AuGxG3OkQ5gGgHE4isUuq6dUVjwCRPFhAOhpdFl+OjY5P3yEv3hmq9HjUGRa2VNjng==} + engines: {node: '>= 18'} + '@nomicfoundation/ethereumjs-common@4.0.4': resolution: {integrity: sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==} @@ -3046,27 +3071,6 @@ packages: peerDependencies: hardhat: ^2.9.5 - '@nomicfoundation/hardhat-toolbox@3.0.0': - resolution: {integrity: sha512-MsteDXd0UagMksqm9KvcFG6gNKYNa3GGNCy73iQ6bEasEgg2v8Qjl6XA5hjs8o5UD5A3153B6W2BIVJ8SxYUtA==} - peerDependencies: - '@nomicfoundation/hardhat-chai-matchers': ^2.0.0 - '@nomicfoundation/hardhat-ethers': ^3.0.0 - '@nomicfoundation/hardhat-network-helpers': ^1.0.0 - '@nomicfoundation/hardhat-verify': ^1.0.0 - '@typechain/ethers-v6': ^0.4.0 - '@typechain/hardhat': ^8.0.0 - '@types/chai': ^4.2.0 - '@types/mocha': '>=9.1.0' - '@types/node': '>=12.0.0' - chai: ^4.2.0 - ethers: ^6.4.0 - hardhat: ^2.11.0 - hardhat-gas-reporter: ^1.0.8 - solidity-coverage: ^0.8.1 - ts-node: '>=8.0.0' - typechain: ^8.2.0 - typescript: '>=4.5.0' - '@nomicfoundation/hardhat-toolbox@5.0.0': resolution: {integrity: sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==} peerDependencies: @@ -3210,6 +3214,7 @@ packages: '@openzeppelin/test-helpers@0.5.16': resolution: {integrity: sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==} + deprecated: Package no longer maintained. Consider using @nomicfoundation/hardhat-chai-matchers and @nomicfoundation/hardhat-network-helpers instead. '@parcel/watcher-android-arm64@2.4.1': resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} @@ -4744,6 +4749,7 @@ packages: '@walletconnect/sign-client@2.11.1': resolution: {integrity: sha512-s3oKSx6/F5X2WmkV1jfJImBFACf9Km5HpTb+n5q+mobJVpUQw/clvoVyIrNNppLhm1V1S/ylHXh0qCrDppDpCA==} + deprecated: Reliability and performance greatly improved - please see https://github.com/WalletConnect/walletconnect-monorepo/releases '@walletconnect/sign-client@2.12.2': resolution: {integrity: sha512-cM0ualXj6nVvLqS4BDNRk+ZWR+lubcsz/IHreH+3wYrQ2sV+C0fN6ctrd7MMGZss0C0qacWCx0pm62ZBuoKvqA==} @@ -4921,6 +4927,7 @@ packages: abstract-leveldown@7.2.0: resolution: {integrity: sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==} engines: {node: '>=10'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} @@ -5859,6 +5866,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -6108,6 +6119,10 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} @@ -6734,6 +6749,7 @@ packages: eciesjs@0.3.18: resolution: {integrity: sha512-RQhegEtLSyIiGJmFTZfvCTHER/fymipXFVx6OwSRYD6hOuy+6Kjpk0dGvIfP9kxn/smBpxQy71uxpGO406ITCw==} + deprecated: Please upgrade to v0.4+ ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -7166,16 +7182,19 @@ packages: eslint@6.8.0: resolution: {integrity: sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true eslint@8.50.0: resolution: {integrity: sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==} 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 eslint@8.57.0: resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 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 esniff@2.0.1: @@ -7273,6 +7292,7 @@ packages: ethereum-bloom-filters@1.1.0: resolution: {integrity: sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==} + deprecated: do not use this package use package versions above as this can miss some topics ethereum-cryptography@0.1.3: resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} @@ -7285,6 +7305,7 @@ packages: ethereumjs-abi@0.6.8: resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} + deprecated: This library has been deprecated and usage is discouraged. ethereumjs-util@6.2.1: resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} @@ -7517,6 +7538,14 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -7908,6 +7937,7 @@ packages: glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} @@ -8066,6 +8096,18 @@ packages: peerDependencies: hardhat: ^2.0.2 + hardhat@2.22.17: + resolution: {integrity: sha512-tDlI475ccz4d/dajnADUTRc1OJ3H8fpP9sWhXhBPpYsQOg8JHq5xrDimo53UhWPl7KJmAeDCm1bFG74xvpGRpg==} + hasBin: true + peerDependencies: + ts-node: '*' + typescript: '*' + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + hardhat@2.22.2: resolution: {integrity: sha512-0xZ7MdCZ5sJem4MrvpQWLR3R3zGDoHw5lsR+pBFimqwagimIOn3bWuZv69KA+veXClwI1s/zpqgwPwiFrd4Dxw==} hasBin: true @@ -9292,6 +9334,10 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stream-stringify@3.1.6: + resolution: {integrity: sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==} + engines: {node: '>=7.10.1'} + json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -10830,6 +10876,10 @@ packages: resolution: {integrity: sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==} engines: {node: '>=12'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -11095,6 +11145,7 @@ packages: puppeteer@22.6.5: resolution: {integrity: sha512-YuoRKGj3MxHhUwrey7vmNvU4odGdUdNsj1ee8pfcqQlLWIXfMOXZCAXh8xdzpZESHH3tCGWp2xmPZE8E6iUEWg==} engines: {node: '>=18'} + deprecated: < 22.8.2 is no longer supported hasBin: true pure-rand@5.0.5: @@ -11380,6 +11431,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + readline@1.3.0: resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} @@ -11611,6 +11666,7 @@ packages: rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true ripemd160-min@0.0.6: @@ -12027,6 +12083,11 @@ packages: engines: {node: '>=8.0.0'} hasBin: true + solc@0.8.26: + resolution: {integrity: sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==} + engines: {node: '>=10.0.0'} + hasBin: true + solidity-coverage@0.8.12: resolution: {integrity: sha512-8cOB1PtjnjFRqOgwFiD8DaUsYJtVJ6+YdXQtSZDrLGf8cdhhh8xzTtGzVTGeBf15kTv0v7lYPJlV/az7zLEPJw==} hasBin: true @@ -12441,10 +12502,12 @@ packages: sudo-prompt@9.2.1: resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. superagent@8.1.2: resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} engines: {node: '>=6.4.0 <13 || >=14'} + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net superstruct@1.0.4: resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} @@ -12488,8 +12551,8 @@ packages: svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - svgo@3.2.0: - resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} engines: {node: '>=14.0.0'} hasBin: true @@ -12656,6 +12719,10 @@ packages: tinybench@2.7.0: resolution: {integrity: sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinypool@0.8.4: resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} @@ -14185,7 +14252,7 @@ snapshots: '@babel/code-frame@7.24.2': dependencies: '@babel/highlight': 7.24.2 - picocolors: 1.0.0 + picocolors: 1.1.1 '@babel/compat-data@7.24.4': {} @@ -14362,7 +14429,7 @@ snapshots: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.1.1 '@babel/parser@7.24.4': dependencies: @@ -15142,16 +15209,16 @@ snapshots: '@colors/colors@1.6.0': {} - '@consensys/linea-state-verifier@1.0.1(jpsyy2oxbfks3q74376qqilsiy)': + '@consensys/linea-state-verifier@1.0.1(3abpvnecb7c2hhye2hcdstuhcy)': dependencies: - '@nomicfoundation/hardhat-toolbox': 5.0.0(xhcvo5wveqsa5pin4ssnr3fhmi) + '@nomicfoundation/hardhat-toolbox': 5.0.0(ip5olib5xsxe4mxldajozhzipy) '@openzeppelin/contracts': 4.9.6 chai: 4.4.1 dotenv: 16.4.5 ethers: 6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) hardhat-deploy: 0.11.45(bufferutil@4.0.8)(utf-8-validate@5.0.10) - solidity-coverage: 0.8.12(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + solidity-coverage: 0.8.12(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) transitivePeerDependencies: - '@nomicfoundation/hardhat-chai-matchers' - '@nomicfoundation/hardhat-ethers' @@ -15337,7 +15404,7 @@ snapshots: transitivePeerDependencies: - debug - '@ensdomains/ens-contracts@https://codeload.github.com/ensdomains/ens-contracts/tar.gz/9d6d5b727db18247d74937aa3c6ed162f9121c52(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': + '@ensdomains/ens-contracts@https://codeload.github.com/ensdomains/ens-contracts/tar.gz/d93dfee5908040eb3f7ee98bad7e0fed43d4c9a4(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': dependencies: '@ensdomains/buffer': 0.1.1 '@ensdomains/solsha1': 0.0.3 @@ -16118,21 +16185,21 @@ snapshots: - supports-color - utf-8-validate - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.4.5))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.31 + '@types/node': 20.12.7 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -16152,22 +16219,23 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + optional: true - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.31 + '@types/node': 20.12.7 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -16187,7 +16255,6 @@ snapshots: - babel-plugin-macros - supports-color - ts-node - optional: true '@jest/create-cache-key-function@29.7.0': dependencies: @@ -16420,7 +16487,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.31 + '@types/node': 20.12.7 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -16696,7 +16763,7 @@ snapshots: '@motionone/easing': 10.17.0 '@motionone/types': 10.17.0 '@motionone/utils': 10.17.0 - tslib: 2.6.2 + tslib: 2.7.0 '@motionone/dom@10.17.0': dependencies: @@ -16705,23 +16772,23 @@ snapshots: '@motionone/types': 10.17.0 '@motionone/utils': 10.17.0 hey-listen: 1.0.8 - tslib: 2.6.2 + tslib: 2.7.0 '@motionone/easing@10.17.0': dependencies: '@motionone/utils': 10.17.0 - tslib: 2.6.2 + tslib: 2.7.0 '@motionone/generators@10.17.0': dependencies: '@motionone/types': 10.17.0 '@motionone/utils': 10.17.0 - tslib: 2.6.2 + tslib: 2.7.0 '@motionone/svelte@10.16.4': dependencies: '@motionone/dom': 10.17.0 - tslib: 2.6.2 + tslib: 2.7.0 '@motionone/types@10.17.0': {} @@ -16729,12 +16796,12 @@ snapshots: dependencies: '@motionone/types': 10.17.0 hey-listen: 1.0.8 - tslib: 2.6.2 + tslib: 2.7.0 '@motionone/vue@10.16.4': dependencies: '@motionone/dom': 10.17.0 - tslib: 2.6.2 + tslib: 2.7.0 '@mswjs/cookies@0.2.2': dependencies: @@ -16871,7 +16938,7 @@ snapshots: transitivePeerDependencies: - chokidar - '@nestjs/swagger@7.4.2(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8)(encoding@0.1.13)(reflect-metadata@0.1.14)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)': + '@nestjs/swagger@7.4.2(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8)(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)': dependencies: '@microsoft/tsdoc': 0.15.1 '@nestjs/common': 10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1) @@ -16886,7 +16953,7 @@ snapshots: class-transformer: 0.5.1 class-validator: 0.14.1 - '@nestjs/terminus@10.2.3(@nestjs/axios@3.0.2(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(axios@1.7.7)(rxjs@7.8.1))(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8)(encoding@0.1.13)(reflect-metadata@0.1.14)(rxjs@7.8.1))(reflect-metadata@0.1.14)(rxjs@7.8.1)': + '@nestjs/terminus@10.2.3(@nestjs/axios@3.0.2(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(axios@1.7.7)(rxjs@7.8.1))(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8)(reflect-metadata@0.1.14)(rxjs@7.8.1)': dependencies: '@nestjs/common': 10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1) '@nestjs/core': 10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8)(encoding@0.1.13)(reflect-metadata@0.1.14)(rxjs@7.8.1) @@ -16897,7 +16964,7 @@ snapshots: optionalDependencies: '@nestjs/axios': 3.0.2(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(axios@1.7.7)(rxjs@7.8.1) - '@nestjs/testing@10.3.7(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8)(encoding@0.1.13)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8))': + '@nestjs/testing@10.3.7(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/core@10.4.8)(@nestjs/platform-express@10.4.8)': dependencies: '@nestjs/common': 10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1) '@nestjs/core': 10.4.8(@nestjs/common@10.3.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.14)(rxjs@7.8.1))(@nestjs/platform-express@10.4.8)(encoding@0.1.13)(reflect-metadata@0.1.14)(rxjs@7.8.1) @@ -16982,21 +17049,33 @@ snapshots: '@nomicfoundation/edr-darwin-arm64@0.3.4': optional: true + '@nomicfoundation/edr-darwin-arm64@0.6.5': {} + '@nomicfoundation/edr-darwin-x64@0.3.4': optional: true + '@nomicfoundation/edr-darwin-x64@0.6.5': {} + '@nomicfoundation/edr-linux-arm64-gnu@0.3.4': optional: true + '@nomicfoundation/edr-linux-arm64-gnu@0.6.5': {} + '@nomicfoundation/edr-linux-arm64-musl@0.3.4': optional: true + '@nomicfoundation/edr-linux-arm64-musl@0.6.5': {} + '@nomicfoundation/edr-linux-x64-gnu@0.3.4': optional: true + '@nomicfoundation/edr-linux-x64-gnu@0.6.5': {} + '@nomicfoundation/edr-linux-x64-musl@0.3.4': optional: true + '@nomicfoundation/edr-linux-x64-musl@0.6.5': {} + '@nomicfoundation/edr-win32-arm64-msvc@0.3.4': optional: true @@ -17006,6 +17085,8 @@ snapshots: '@nomicfoundation/edr-win32-x64-msvc@0.3.4': optional: true + '@nomicfoundation/edr-win32-x64-msvc@0.6.5': {} + '@nomicfoundation/edr@0.3.4': optionalDependencies: '@nomicfoundation/edr-darwin-arm64': 0.3.4 @@ -17018,6 +17099,16 @@ snapshots: '@nomicfoundation/edr-win32-ia32-msvc': 0.3.4 '@nomicfoundation/edr-win32-x64-msvc': 0.3.4 + '@nomicfoundation/edr@0.6.5': + dependencies: + '@nomicfoundation/edr-darwin-arm64': 0.6.5 + '@nomicfoundation/edr-darwin-x64': 0.6.5 + '@nomicfoundation/edr-linux-arm64-gnu': 0.6.5 + '@nomicfoundation/edr-linux-arm64-musl': 0.6.5 + '@nomicfoundation/edr-linux-x64-gnu': 0.6.5 + '@nomicfoundation/edr-linux-x64-musl': 0.6.5 + '@nomicfoundation/edr-win32-x64-msvc': 0.6.5 + '@nomicfoundation/ethereumjs-common@4.0.4': dependencies: '@nomicfoundation/ethereumjs-util': 9.0.4 @@ -17038,26 +17129,26 @@ snapshots: '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 - '@nomicfoundation/hardhat-chai-matchers@2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-chai-matchers@2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@types/chai-as-promised': 7.1.8 chai: 4.4.1 chai-as-promised: 7.1.1(chai@4.4.1) deep-eql: 4.1.3 ethers: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) ordinal: 1.0.3 - '@nomicfoundation/hardhat-chai-matchers@2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-chai-matchers@2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@types/chai-as-promised': 7.1.8 chai: 4.4.1 chai-as-promised: 7.1.1(chai@4.4.1) deep-eql: 4.1.3 - ethers: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + ethers: 6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) ordinal: 1.0.3 '@nomicfoundation/hardhat-chai-matchers@2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10))': @@ -17071,20 +17162,20 @@ snapshots: hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10) ordinal: 1.0.3 - '@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': dependencies: debug: 4.3.4(supports-color@5.5.0) ethers: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color - '@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': dependencies: debug: 4.3.4(supports-color@5.5.0) - ethers: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + ethers: 6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color @@ -17098,14 +17189,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@nomicfoundation/hardhat-ignition-ethers@0.15.1(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ignition@0.15.5(@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(@nomicfoundation/ignition-core@0.15.5(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': - dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@nomicfoundation/hardhat-ignition': 0.15.5(@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) - '@nomicfoundation/ignition-core': 0.15.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) - ethers: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) - '@nomicfoundation/hardhat-ignition-ethers@0.15.1(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ignition@0.15.1(@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(@nomicfoundation/ignition-core@0.15.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': dependencies: '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) @@ -17114,6 +17197,14 @@ snapshots: ethers: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-ignition-ethers@0.15.1(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ignition@0.15.5(@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(@nomicfoundation/ignition-core@0.15.5(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': + dependencies: + '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ignition': 0.15.5(@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@nomicfoundation/ignition-core': 0.15.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-ignition-ethers@0.15.1(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ignition@0.15.5(@nomicfoundation/hardhat-verify@2.0.8(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(@nomicfoundation/ignition-core@0.15.5(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10))': dependencies: '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10)) @@ -17137,15 +17228,15 @@ snapshots: - supports-color - utf-8-validate - '@nomicfoundation/hardhat-ignition@0.15.5(@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + '@nomicfoundation/hardhat-ignition@0.15.5(@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': dependencies: - '@nomicfoundation/hardhat-verify': 1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-verify': 1.1.1(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@nomicfoundation/ignition-core': 0.15.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@nomicfoundation/ignition-ui': 0.15.5 chalk: 4.1.2 debug: 4.3.4(supports-color@5.5.0) fs-extra: 10.1.0 - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) prompts: 2.4.2 transitivePeerDependencies: - bufferutil @@ -17167,10 +17258,10 @@ snapshots: - supports-color - utf-8-validate - '@nomicfoundation/hardhat-network-helpers@1.0.10(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-network-helpers@1.0.10(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': dependencies: ethereumjs-util: 7.1.5 - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) '@nomicfoundation/hardhat-network-helpers@1.0.10(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': dependencies: @@ -17182,26 +17273,6 @@ snapshots: ethereumjs-util: 7.1.5 hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10) - '@nomicfoundation/hardhat-toolbox@3.0.0(utq3uvudzo3cky5blfoaimxkfe)': - dependencies: - '@nomicfoundation/hardhat-chai-matchers': 2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@nomicfoundation/hardhat-network-helpers': 1.0.10(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@nomicfoundation/hardhat-verify': 1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@typechain/ethers-v6': 0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) - '@typechain/hardhat': 8.0.3(@typechain/ethers-v6@0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5)) - '@types/chai': 4.3.14 - '@types/mocha': 10.0.6 - '@types/node': 12.0.0 - chai: 4.4.1 - ethers: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) - hardhat-gas-reporter: 1.0.10(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) - solidity-coverage: 0.8.12(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - ts-node: 10.9.2(@types/node@12.0.0)(typescript@5.4.5) - typechain: 8.3.2(typescript@5.4.5) - typescript: 5.4.5 - '@nomicfoundation/hardhat-toolbox@5.0.0(fy7teys6vksc2zsap4mzccqafy)': dependencies: '@nomicfoundation/hardhat-chai-matchers': 2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10)) @@ -17244,35 +17315,35 @@ snapshots: typechain: 8.3.2(typescript@5.4.5) typescript: 5.4.5 - '@nomicfoundation/hardhat-toolbox@5.0.0(xhcvo5wveqsa5pin4ssnr3fhmi)': + '@nomicfoundation/hardhat-toolbox@5.0.0(ip5olib5xsxe4mxldajozhzipy)': dependencies: - '@nomicfoundation/hardhat-chai-matchers': 2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@nomicfoundation/hardhat-ignition-ethers': 0.15.1(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ignition@0.15.5(@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(@nomicfoundation/ignition-core@0.15.5(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@nomicfoundation/hardhat-network-helpers': 1.0.10(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@nomicfoundation/hardhat-verify': 1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) - '@typechain/ethers-v6': 0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) - '@typechain/hardhat': 8.0.3(@typechain/ethers-v6@0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5)) + '@nomicfoundation/hardhat-chai-matchers': 2.0.6(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(chai@4.4.1)(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ignition-ethers': 0.15.1(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ignition@0.15.5(@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(@nomicfoundation/ignition-core@0.15.5(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-network-helpers': 1.0.10(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-verify': 1.1.1(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + '@typechain/ethers-v6': 0.5.1(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) + '@typechain/hardhat': 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5)) '@types/chai': 4.3.14 '@types/mocha': 10.0.6 '@types/node': 12.0.0 chai: 4.4.1 ethers: 6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) - hardhat-gas-reporter: 1.0.10(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) - solidity-coverage: 0.8.12(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat-gas-reporter: 1.0.10(bufferutil@4.0.8)(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + solidity-coverage: 0.8.12(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) ts-node: 10.9.2(@types/node@12.0.0)(typescript@5.4.5) typechain: 8.3.2(typescript@5.4.5) typescript: 5.4.5 - '@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/address': 5.7.0 cbor: 8.1.0 chalk: 2.4.2 debug: 4.3.4(supports-color@5.5.0) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) lodash.clonedeep: 4.5.0 semver: 6.3.1 table: 6.8.2 @@ -17438,7 +17509,7 @@ snapshots: supports-color: 8.1.1 supports-hyperlinks: 2.3.0 ts-node: 10.9.2(@types/node@20.12.7)(typescript@4.9.5) - tslib: 2.6.2 + tslib: 2.7.0 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -17603,18 +17674,18 @@ snapshots: dependencies: asn1js: 3.0.5 pvtsutils: 1.3.5 - tslib: 2.6.2 + tslib: 2.7.0 '@peculiar/json-schema@1.1.12': dependencies: - tslib: 2.6.2 + tslib: 2.7.0 '@peculiar/webcrypto@1.4.6': dependencies: '@peculiar/asn1-schema': 2.3.8 '@peculiar/json-schema': 1.1.12 pvtsutils: 1.3.5 - tslib: 2.6.2 + tslib: 2.7.0 webcrypto-core: 1.7.9 '@pkgjs/parseargs@0.11.0': @@ -18209,7 +18280,7 @@ snapshots: '@sentry/types': 5.30.0 tslib: 1.14.1 - '@sentry/nextjs@7.110.0(encoding@0.1.13)(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(webpack@5.96.1(esbuild@0.17.19))': + '@sentry/nextjs@7.110.0(encoding@0.1.13)(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(webpack@5.96.1(esbuild@0.17.19))': dependencies: '@rollup/plugin-commonjs': 24.0.0(rollup@2.78.0) '@sentry/core': 7.110.0 @@ -18221,7 +18292,7 @@ snapshots: '@sentry/vercel-edge': 7.110.0 '@sentry/webpack-plugin': 1.21.0(encoding@0.1.13) chalk: 3.0.0 - next: 14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 resolve: 1.22.8 rollup: 2.78.0 @@ -18494,7 +18565,7 @@ snapshots: '@svgr/core': 8.1.0(typescript@5.4.5) cosmiconfig: 8.3.6(typescript@5.4.5) deepmerge: 4.3.1 - svgo: 3.2.0 + svgo: 3.3.2 transitivePeerDependencies: - typescript @@ -18517,7 +18588,7 @@ snapshots: '@swc/helpers@0.5.5': dependencies: '@swc/counter': 0.1.3 - tslib: 2.6.2 + tslib: 2.7.0 '@szmarczak/http-timer@4.0.6': dependencies: @@ -18571,7 +18642,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)))(vitest@1.5.0(@types/node@18.19.31)(jsdom@24.0.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.30.3))': + '@testing-library/jest-dom@6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)))(vitest@1.5.0(@types/node@18.19.31)(jsdom@24.0.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.30.3))': dependencies: '@adobe/css-tools': 4.3.3 '@babel/runtime': 7.24.4 @@ -18584,7 +18655,7 @@ snapshots: optionalDependencies: '@jest/globals': 29.7.0 '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) + jest: 29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) vitest: 1.5.0(@types/node@18.19.31)(jsdom@24.0.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.30.3) '@testing-library/react-hooks@8.0.1(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': @@ -18727,6 +18798,14 @@ snapshots: typechain: 8.3.2(typescript@5.4.5) typescript: 5.4.5 + '@typechain/ethers-v6@0.5.1(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5)': + dependencies: + ethers: 6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + lodash: 4.17.21 + ts-essentials: 7.0.3(typescript@5.4.5) + typechain: 8.3.2(typescript@5.4.5) + typescript: 5.4.5 + '@typechain/ethers-v6@0.5.1(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.5.4))(typescript@5.5.4)': dependencies: ethers: 6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -18735,20 +18814,20 @@ snapshots: typechain: 8.3.2(typescript@5.5.4) typescript: 5.5.4 - '@typechain/hardhat@8.0.3(@typechain/ethers-v6@0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))': + '@typechain/hardhat@8.0.3(@typechain/ethers-v6@0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))': dependencies: '@typechain/ethers-v6': 0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) ethers: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) fs-extra: 9.1.0 - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) typechain: 8.3.2(typescript@5.4.5) - '@typechain/hardhat@8.0.3(@typechain/ethers-v6@0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))': + '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))': dependencies: - '@typechain/ethers-v6': 0.4.3(ethers@6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) - ethers: 6.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@typechain/ethers-v6': 0.5.1(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) + ethers: 6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) fs-extra: 9.1.0 - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) typechain: 8.3.2(typescript@5.4.5) '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.5.4))(typescript@5.5.4))(ethers@6.13.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.5.4))': @@ -18788,7 +18867,7 @@ snapshots: '@types/bn.js@5.1.5': dependencies: - '@types/node': 18.19.31 + '@types/node': 20.12.7 '@types/body-parser@1.19.5': dependencies: @@ -18823,7 +18902,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 18.19.31 + '@types/node': 20.12.7 '@types/cookie@0.4.1': {} @@ -19042,7 +19121,7 @@ snapshots: '@types/resolve@1.17.1': dependencies: - '@types/node': 18.19.31 + '@types/node': 20.12.7 '@types/responselike@1.0.3': dependencies: @@ -19050,7 +19129,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 18.19.31 + '@types/node': 20.12.7 '@types/scheduler@0.16.8': {} @@ -19067,7 +19146,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.31 + '@types/node': 20.12.7 '@types/serve-static@1.15.7': dependencies: @@ -20167,7 +20246,7 @@ snapshots: busboy: 1.6.0 fast-querystring: 1.1.2 fast-url-parser: 1.1.3 - tslib: 2.6.2 + tslib: 2.7.0 '@xmldom/xmldom@0.8.10': {} @@ -20546,7 +20625,7 @@ snapshots: dependencies: pvtsutils: 1.3.5 pvutils: 1.1.3 - tslib: 2.6.2 + tslib: 2.7.0 assemblyscript@0.19.10: dependencies: @@ -20569,7 +20648,7 @@ snapshots: ast-types@0.13.4: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 ast-types@0.15.2: dependencies: @@ -20587,7 +20666,7 @@ snapshots: async-mutex@0.2.6: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 async@1.5.2: {} @@ -21215,7 +21294,7 @@ snapshots: capnp-ts@0.7.0: dependencies: debug: 4.3.4(supports-color@5.5.0) - tslib: 2.6.2 + tslib: 2.7.0 transitivePeerDependencies: - supports-color @@ -21361,6 +21440,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.0.2 + chownr@1.1.4: {} chownr@2.0.0: {} @@ -21619,6 +21702,8 @@ snapshots: commander@7.2.0: {} + commander@8.3.0: {} + commander@9.5.0: {} comment-json@4.2.3: @@ -21818,13 +21903,13 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - create-jest@29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)): + create-jest@29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -22285,7 +22370,7 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 dotenv-expand@10.0.0: {} @@ -22673,7 +22758,7 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0))(eslint@8.50.0): + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.50.0): dependencies: confusing-browser-globals: 1.0.11 eslint: 8.50.0 @@ -22682,18 +22767,18 @@ snapshots: object.entries: 1.1.8 semver: 6.3.1 - eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5))(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0))(eslint@8.50.0): + eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5))(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@8.50.0): dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5) '@typescript-eslint/parser': 6.21.0(eslint@8.50.0)(typescript@5.4.5) eslint: 8.50.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0))(eslint@8.50.0) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.50.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) - eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.50.0))(eslint-plugin-react-hooks@4.6.0(eslint@8.50.0))(eslint-plugin-react@7.34.1(eslint@8.50.0))(eslint@8.50.0): + eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0(eslint@8.50.0))(eslint-plugin-react-hooks@4.6.0(eslint@8.50.0))(eslint-plugin-react@7.34.1(eslint@8.50.0))(eslint@8.50.0): dependencies: eslint: 8.50.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0))(eslint@8.50.0) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.50.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.50.0) eslint-plugin-react: 7.34.1(eslint@8.50.0) @@ -22760,7 +22845,7 @@ snapshots: debug: 4.3.4(supports-color@5.5.0) enhanced-resolve: 5.16.0 eslint: 8.50.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.50.0))(eslint@8.50.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) fast-glob: 3.3.2 get-tsconfig: 4.7.3 @@ -22772,7 +22857,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.50.0))(eslint@8.50.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0): dependencies: debug: 3.2.7 optionalDependencies: @@ -22808,7 +22893,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.50.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.50.0))(eslint@8.50.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -23775,6 +23860,10 @@ snapshots: dependencies: pend: 1.2.0 + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fecha@4.2.3: {} fetch-blob@3.2.0: @@ -24546,11 +24635,11 @@ snapshots: - supports-color - utf-8-validate - hardhat-gas-reporter@1.0.10(bufferutil@4.0.8)(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): + hardhat-gas-reporter@1.0.10(bufferutil@4.0.8)(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): dependencies: array-uniq: 1.0.3 eth-gas-reporter: 0.2.27(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) sha1: 1.1.1 transitivePeerDependencies: - '@codechecks/client' @@ -24582,11 +24671,11 @@ snapshots: - debug - utf-8-validate - hardhat@2.22.2(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3): + hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/edr': 0.3.4 + '@nomicfoundation/edr': 0.6.5 '@nomicfoundation/ethereumjs-common': 4.0.4 '@nomicfoundation/ethereumjs-tx': 5.0.4 '@nomicfoundation/ethereumjs-util': 9.0.4 @@ -24598,37 +24687,38 @@ snapshots: aggregate-error: 3.1.0 ansi-escapes: 4.3.2 boxen: 5.1.2 - chalk: 2.4.2 - chokidar: 3.6.0 + chokidar: 4.0.3 ci-info: 2.0.0 debug: 4.3.4(supports-color@5.5.0) enquirer: 2.4.1 env-paths: 2.2.1 ethereum-cryptography: 1.2.0 ethereumjs-abi: 0.6.8 - find-up: 2.1.0 + find-up: 5.0.0 fp-ts: 1.19.3 fs-extra: 7.0.1 - glob: 7.2.0 immutable: 4.3.5 io-ts: 1.10.4 + json-stream-stringify: 3.1.6 keccak: 3.0.4 lodash: 4.17.21 mnemonist: 0.38.5 mocha: 10.4.0 p-map: 4.0.0 + picocolors: 1.1.1 raw-body: 2.5.2 resolve: 1.17.0 semver: 6.3.1 - solc: 0.7.3(debug@4.3.4) + solc: 0.8.26(debug@4.3.4) source-map-support: 0.5.21 stacktrace-parser: 0.1.10 + tinyglobby: 0.2.10 tsort: 0.0.1 undici: 5.28.4 uuid: 8.3.2 - ws: 7.5.9(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: - ts-node: 10.9.2(@types/node@18.19.31)(typescript@5.4.5) + ts-node: 10.9.2(@types/node@12.0.0)(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - bufferutil @@ -24636,7 +24726,7 @@ snapshots: - supports-color - utf-8-validate - hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10): + hardhat@2.22.2(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 @@ -24680,9 +24770,9 @@ snapshots: tsort: 0.0.1 undici: 5.28.4 uuid: 8.3.2 - ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.9(bufferutil@4.0.7)(utf-8-validate@6.0.3) optionalDependencies: - ts-node: 10.9.2(@types/node@12.0.0)(typescript@5.4.5) + ts-node: 10.9.2(@types/node@18.19.31)(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - bufferutil @@ -25785,16 +25875,16 @@ snapshots: - supports-color - utf-8-validate - jest-cli@29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)): + jest-cli@29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) + create-jest: 29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -25851,7 +25941,7 @@ snapshots: - supports-color - utf-8-validate - jest-config@29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)): dependencies: '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 @@ -25877,12 +25967,44 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.19.31 + ts-node: 10.9.2(@types/node@18.19.31)(typescript@5.4.5) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + optional: true + + jest-config@29.7.0(@types/node@20.11.20)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.4.5)): + dependencies: + '@babel/core': 7.24.4 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.24.4) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.11.20 ts-node: 10.9.2(@types/node@20.11.20)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)): dependencies: '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 @@ -25907,14 +26029,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.31 + '@types/node': 20.12.7 ts-node: 10.9.2(@types/node@18.19.31)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@29.7.0(@types/node@20.11.20)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@20.12.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.4.5)): dependencies: '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 @@ -25939,7 +26061,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.11.20 + '@types/node': 20.12.7 ts-node: 10.9.2(@types/node@20.11.20)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros @@ -26356,7 +26478,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.31 + '@types/node': 20.12.7 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -26428,7 +26550,7 @@ snapshots: jest-worker@28.1.3: dependencies: - '@types/node': 18.19.31 + '@types/node': 20.12.7 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -26450,12 +26572,12 @@ snapshots: - supports-color - utf-8-validate - jest@29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)): + jest@29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@18.19.31)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) + jest-cli: 29.7.0(@types/node@18.19.31)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -26651,6 +26773,8 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + json-stream-stringify@3.1.6: {} + json-stringify-safe@5.0.1: {} json5@1.0.2: @@ -26965,7 +27089,7 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 lowercase-keys@2.0.0: {} @@ -27717,17 +27841,17 @@ snapshots: next-compose-plugins@2.2.1: {} - next-dev-https@0.1.2(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0): + next-dev-https@0.1.2(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0): dependencies: arg: 5.0.2 - next: 14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) qrcode-terminal: 0.12.0 react: 18.2.0 selfsigned: 2.4.1 - next-router-mock@0.9.13(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0): + next-router-mock@0.9.13(next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0): dependencies: - next: 14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 next-tick@1.1.0: {} @@ -27737,7 +27861,7 @@ snapshots: enhanced-resolve: 5.16.0 escalade: 3.1.2 - next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next@14.2.10(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@next/env': 14.2.10 '@swc/helpers': 0.5.5 @@ -27747,7 +27871,7 @@ snapshots: postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.24.4)(react@18.2.0) + styled-jsx: 5.1.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react@18.2.0) optionalDependencies: '@next/swc-darwin-arm64': 14.2.10 '@next/swc-darwin-x64': 14.2.10 @@ -27772,7 +27896,7 @@ snapshots: no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.7.0 nocache@3.0.4: {} @@ -28393,6 +28517,8 @@ snapshots: picomatch@4.0.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} pify@3.0.0: {} @@ -28517,7 +28643,7 @@ snapshots: postcss@8.4.31: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.1.1 source-map-js: 1.2.0 postcss@8.4.38: @@ -28699,7 +28825,7 @@ snapshots: pvtsutils@1.3.5: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 pvutils@1.1.3: {} @@ -28910,7 +29036,7 @@ snapshots: dependencies: react: 18.2.0 react-style-singleton: 2.2.1(@types/react@18.2.21)(react@18.2.0) - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.2.21 @@ -28919,7 +29045,7 @@ snapshots: react: 18.2.0 react-remove-scroll-bar: 2.3.6(@types/react@18.2.21)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.2.21)(react@18.2.0) - tslib: 2.6.2 + tslib: 2.7.0 use-callback-ref: 1.3.2(@types/react@18.2.21)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.21)(react@18.2.0) optionalDependencies: @@ -28936,7 +29062,7 @@ snapshots: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.2.21 @@ -29046,6 +29172,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.0.2: {} + readline@1.3.0: {} real-require@0.1.0: {} @@ -29755,7 +29883,7 @@ snapshots: snake-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 snapdragon-node@2.1.1: dependencies: @@ -29844,7 +29972,19 @@ snapshots: transitivePeerDependencies: - debug - solidity-coverage@0.8.12(hardhat@2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)): + solc@0.8.26(debug@4.3.4): + dependencies: + command-exists: 1.2.9 + commander: 8.3.0 + follow-redirects: 1.15.6(debug@4.3.4) + js-sha3: 0.8.0 + memorystream: 0.3.1 + semver: 5.7.2 + tmp: 0.0.33 + transitivePeerDependencies: + - debug + + solidity-coverage@0.8.12(hardhat@2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)): dependencies: '@ethersproject/abi': 5.7.0 '@solidity-parser/parser': 0.18.0 @@ -29855,7 +29995,7 @@ snapshots: ghost-testrpc: 0.0.2 global-modules: 2.0.0 globby: 10.0.2 - hardhat: 2.22.2(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) + hardhat: 2.22.17(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@12.0.0)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) jsonschema: 1.4.1 lodash: 4.17.21 mocha: 10.4.0 @@ -30280,12 +30420,13 @@ snapshots: transitivePeerDependencies: - '@babel/core' - styled-jsx@5.1.1(@babel/core@7.24.4)(react@18.2.0): + styled-jsx@5.1.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react@18.2.0): dependencies: client-only: 0.0.1 react: 18.2.0 optionalDependencies: '@babel/core': 7.24.4 + babel-plugin-macros: 3.1.0 stylelint-config-prettier@9.0.5(stylelint@14.11.0): dependencies: @@ -30450,7 +30591,7 @@ snapshots: svg-tags@1.0.0: {} - svgo@3.2.0: + svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -30502,7 +30643,7 @@ snapshots: synckit@0.8.8: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.2 + tslib: 2.7.0 system-architecture@0.1.0: {} @@ -30700,6 +30841,11 @@ snapshots: tinybench@2.7.0: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + tinypool@0.8.4: {} tinyspy@2.2.1: {} @@ -31341,7 +31487,7 @@ snapshots: dependencies: browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.1.1 update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: @@ -31377,7 +31523,7 @@ snapshots: use-callback-ref@1.3.2(@types/react@18.2.21)(react@18.2.0): dependencies: react: 18.2.0 - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.2.21 @@ -31390,7 +31536,7 @@ snapshots: dependencies: detect-node-es: 1.1.0 react: 18.2.0 - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.2.21 @@ -31549,7 +31695,7 @@ snapshots: vite-plugin-magical-svg@1.2.1(vite@5.2.8(@types/node@18.19.31)(terser@5.30.3)): dependencies: magic-string: 0.30.9 - svgo: 3.2.0 + svgo: 3.3.2 vite: 5.2.8(@types/node@18.19.31)(terser@5.30.3) xml2js: 0.6.2 @@ -32150,7 +32296,7 @@ snapshots: '@peculiar/json-schema': 1.1.12 asn1js: 3.0.5 pvtsutils: 1.3.5 - tslib: 2.6.2 + tslib: 2.7.0 webextension-polyfill-ts@0.25.0: dependencies: