diff --git a/docker/compose.yml b/docker/compose.yml index 7d981bfa..4f4bcf2f 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -182,6 +182,7 @@ services: image: consensys/linea-postman:${POSTMAN_TAG:-5a6fdf3} profiles: [ "l2", "debug" ] platform: linux/amd64 + restart: on-failure depends_on: sequencer: condition: service_healthy @@ -468,6 +469,7 @@ services: sequencer: condition: service_healthy privileged: true + restart: always user: root ports: - "8945:8545" # http diff --git a/e2e/env-setup/custom.d.ts b/e2e/env-setup/custom.d.ts deleted file mode 100644 index fbf4581e..00000000 --- a/e2e/env-setup/custom.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* eslint-disable no-var */ -import { JsonRpcProvider } from "@ethersproject/providers"; -import { TestEnvironment } from "./test-env"; -import { DummyContract, L2MessageService, L2TestContract, LineaRollup } from "src/typechain"; - -declare global { - var testingEnv: TestEnvironment; - var l1Provider: JsonRpcProvider; - var l2Provider: JsonRpcProvider; - var l2MessageService: L2MessageService; - var dummyContract: DummyContract; - var l1DummyContract: DummyContract; - var l2TestContract: L2TestContract; - var lineaRollup: LineaRollup; - var useLocalSetup: boolean; - var chainId: number; - var CHAIN_ID: number; - var L2_MESSAGE_SERVICE_ADDRESS: string; - var LINEA_ROLLUP_CONTRACT_ADDRESS: string; - var L1_ACCOUNT_0_PRIVATE_KEY: string; - var L2_ACCOUNT_0_PRIVATE_KEY: string; - var L2_ACCOUNT_1_PRIVATE_KEY: string; - var L1_DEPLOYER_ACCOUNT_PRIVATE_KEY: string; - var L2_DEPLOYER_ACCOUNT_PRIVATE_KEY: string; - var TRANSACTION_CALLDATA_LIMIT: number; - var OPERATOR_0_PRIVATE_KEY: string; - var SHOMEI_ENDPOINT: URL | null; - var SHOMEI_FRONTEND_ENDPOINT: URL | null; - var SEQUENCER_ENDPOINT: URL | null; - var OPERATOR_1_ADDRESS: string; - var SECURITY_COUNCIL_PRIVATE_KEY: string; - var CONTRACT_GAS_OPTIMIZATION_SWITCH_BLOCK: number; -} diff --git a/e2e/env-setup/global-setup.ts b/e2e/env-setup/global-setup.ts deleted file mode 100644 index fd382c93..00000000 --- a/e2e/env-setup/global-setup.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { globalTestEnvironment } from "./global-test-env"; - -export default async (): Promise => { - await globalTestEnvironment.startEnv(); - global.testingEnv = globalTestEnvironment.testingEnv; -}; diff --git a/e2e/env-setup/global-teardown.ts b/e2e/env-setup/global-teardown.ts deleted file mode 100644 index fdd85c1f..00000000 --- a/e2e/env-setup/global-teardown.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { globalTestEnvironment } from "./global-test-env"; - -export default async (): Promise => { - await globalTestEnvironment.stopEnv(); -}; diff --git a/e2e/env-setup/global-test-env.ts b/e2e/env-setup/global-test-env.ts deleted file mode 100644 index d4b55e7d..00000000 --- a/e2e/env-setup/global-test-env.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { TestEnvironment } from "./test-env"; - -export class GlobalTestEnvironment { - public readonly testingEnv = new TestEnvironment(); - - public async startEnv(): Promise { - await this.testingEnv.startEnv(); - } - - public async stopEnv(): Promise { - await this.testingEnv.stopEnv(); - } - - public async restartCoordinator(): Promise { - await this.testingEnv.restartCoordinator(global.useLocalSetup); - } -} - -export const globalTestEnvironment = new GlobalTestEnvironment(); diff --git a/e2e/env-setup/setup-dev.ts b/e2e/env-setup/setup-dev.ts deleted file mode 100644 index 002d2a86..00000000 --- a/e2e/env-setup/setup-dev.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { beforeAll, jest } from "@jest/globals"; -import { - DummyContract, - DummyContract__factory, - L2MessageService, - L2MessageService__factory, - LineaRollup, - LineaRollup__factory, -} from "../src/typechain"; -import { - getL1Provider, - getL2Provider, - CHAIN_ID, - DEPLOYER_ACCOUNT_PRIVATE_KEY, - MESSAGE_SERVICE_ADDRESS, - DUMMY_CONTRACT_ADDRESS, - ACCOUNT_0_PRIVATE_KEY, - TRANSACTION_CALLDATA_LIMIT, - OPERATOR_0_PRIVATE_KEY, - SHOMEI_ENDPOINT, - SHOMEI_FRONTEND_ENDPOINT, - LINEA_ROLLUP_CONTRACT_ADDRESS, -} from "../src/utils/constants.dev"; - -jest.setTimeout(5 * 60 * 1000); - -beforeAll(async () => { - /*********** PROVIDERS SETUP ***********/ - const l1Provider = getL1Provider(); - const l2Provider = getL2Provider(); - - const dummyContract: DummyContract = DummyContract__factory.connect(DUMMY_CONTRACT_ADDRESS, l2Provider); - // L2MessageService contract - const l2MessageService: L2MessageService = L2MessageService__factory.connect(MESSAGE_SERVICE_ADDRESS, l2Provider); - - /*********** L1 Contracts ***********/ - // LineaRollup deployment - const lineaRollup: LineaRollup = LineaRollup__factory.connect(LINEA_ROLLUP_CONTRACT_ADDRESS, l1Provider); - - global.l1Provider = l1Provider; - global.l2Provider = l2Provider; - global.dummyContract = dummyContract; - global.l2MessageService = l2MessageService; - global.lineaRollup = lineaRollup; - global.chainId = CHAIN_ID; - global.L1_ACCOUNT_0_PRIVATE_KEY = ACCOUNT_0_PRIVATE_KEY; - global.L1_DEPLOYER_ACCOUNT_PRIVATE_KEY = DEPLOYER_ACCOUNT_PRIVATE_KEY; - global.L2_DEPLOYER_ACCOUNT_PRIVATE_KEY = DEPLOYER_ACCOUNT_PRIVATE_KEY; - global.TRANSACTION_CALLDATA_LIMIT = TRANSACTION_CALLDATA_LIMIT; - global.OPERATOR_0_PRIVATE_KEY = OPERATOR_0_PRIVATE_KEY; - global.SHOMEI_ENDPOINT = SHOMEI_ENDPOINT; - global.SHOMEI_FRONTEND_ENDPOINT = SHOMEI_FRONTEND_ENDPOINT; -}); diff --git a/e2e/env-setup/setup-local-deploy.ts b/e2e/env-setup/setup-local-deploy.ts deleted file mode 100644 index 25c9a563..00000000 --- a/e2e/env-setup/setup-local-deploy.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { beforeAll, jest } from "@jest/globals"; -import { Wallet } from "ethers"; -import { - DummyContract, - DummyContract__factory, - L2MessageService, - L2MessageService__factory, - LineaRollup, - LineaRollup__factory, - TestPlonkVerifierForDataAggregation__factory, -} from "../src/typechain"; -import { - L2_ACCOUNT_0, - L2_ACCOUNT_0_PRIVATE_KEY, - L2_ACCOUNT_1_PRIVATE_KEY, - L1_DEPLOYER_ACCOUNT_PRIVATE_KEY, - L2_DEPLOYER_ACCOUNT_PRIVATE_KEY, - INITIAL_WITHDRAW_LIMIT, - LINEA_ROLLUP_INITIAL_L2_BLOCK_NR, - LINEA_ROLLUP_INITIAL_STATE_ROOT_HASH, - LINEA_ROLLUP_OPERATORS, - LINEA_ROLLUP_RATE_LIMIT_AMOUNT, - LINEA_ROLLUP_RATE_LIMIT_PERIOD, - LINEA_ROLLUP_SECURITY_COUNCIL, - getL1Provider, - getL2Provider, - TRANSACTION_CALLDATA_LIMIT, - OPERATOR_0_PRIVATE_KEY, - SHOMEI_ENDPOINT, - SHOMEI_FRONTEND_ENDPOINT, -} from "../src/utils/constants.local"; -import { deployContract, deployUpgradableContractWithProxyAdmin } from "../src/utils/deployments"; - -jest.setTimeout(5 * 60 * 1000); - -beforeAll(async () => { - /*********** PROVIDERS SETUP ***********/ - const l1Provider = getL1Provider(); - const l2Provider = getL2Provider(); - - const l2Deployer = new Wallet(L2_DEPLOYER_ACCOUNT_PRIVATE_KEY, l2Provider); - const dummyContract = (await deployContract(new DummyContract__factory(), l2Deployer)) as DummyContract; - - // L2MessageService deployment - const l2MessageService = (await deployUpgradableContractWithProxyAdmin(new L2MessageService__factory(), l2Deployer, [ - L2_ACCOUNT_0, - 86400, - INITIAL_WITHDRAW_LIMIT, - ])) as L2MessageService; - - /*********** L1 DEPLOYMENTS ***********/ - const l1Deployer = new Wallet(L1_DEPLOYER_ACCOUNT_PRIVATE_KEY, l1Provider); - - // PlonkVerifier and LineaRollup deployment - const plonkVerifier = await deployContract(new TestPlonkVerifierForDataAggregation__factory(), l1Deployer); - - const lineaRollup = (await deployUpgradableContractWithProxyAdmin(new LineaRollup__factory(), l1Deployer, [ - LINEA_ROLLUP_INITIAL_STATE_ROOT_HASH, - LINEA_ROLLUP_INITIAL_L2_BLOCK_NR, - plonkVerifier.address, - LINEA_ROLLUP_SECURITY_COUNCIL, - LINEA_ROLLUP_OPERATORS, - LINEA_ROLLUP_RATE_LIMIT_PERIOD, - LINEA_ROLLUP_RATE_LIMIT_AMOUNT, - ])) as LineaRollup; - - global.l1Provider = l1Provider; - global.l2Provider = l2Provider; - global.dummyContract = dummyContract; - global.l2MessageService = l2MessageService; - global.lineaRollup = lineaRollup; - global.useLocalSetup = true; - global.L2_ACCOUNT_0_PRIVATE_KEY = L2_ACCOUNT_0_PRIVATE_KEY; - global.L2_ACCOUNT_1_PRIVATE_KEY = L2_ACCOUNT_1_PRIVATE_KEY; - global.L1_DEPLOYER_ACCOUNT_PRIVATE_KEY = L1_DEPLOYER_ACCOUNT_PRIVATE_KEY; - global.L2_DEPLOYER_ACCOUNT_PRIVATE_KEY = L2_DEPLOYER_ACCOUNT_PRIVATE_KEY; - global.TRANSACTION_CALLDATA_LIMIT = TRANSACTION_CALLDATA_LIMIT; - global.OPERATOR_0_PRIVATE_KEY = OPERATOR_0_PRIVATE_KEY; - global.SHOMEI_ENDPOINT = SHOMEI_ENDPOINT; - global.SHOMEI_FRONTEND_ENDPOINT = SHOMEI_FRONTEND_ENDPOINT; -}); diff --git a/e2e/env-setup/setup-local.ts b/e2e/env-setup/setup-local.ts deleted file mode 100644 index e133f7eb..00000000 --- a/e2e/env-setup/setup-local.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { beforeAll, jest } from "@jest/globals"; -import { Wallet, ethers } from "ethers"; -import { - DummyContract, - DummyContract__factory, - L2MessageService, - L2MessageService__factory, - LineaRollup, - LineaRollup__factory, -} from "../src/typechain"; -import { - getL1Provider, - getL2Provider, - CHAIN_ID, - L1_DEPLOYER_ACCOUNT_PRIVATE_KEY, - L2_DEPLOYER_ACCOUNT_PRIVATE_KEY, - LINEA_ROLLUP_CONTRACT_ADDRESS, - MESSAGE_SERVICE_ADDRESS, - L1_ACCOUNT_0_PRIVATE_KEY, - L2_ACCOUNT_0_PRIVATE_KEY, - L2_ACCOUNT_1_PRIVATE_KEY, - TRANSACTION_CALLDATA_LIMIT, - OPERATOR_0_PRIVATE_KEY, - SHOMEI_ENDPOINT, - SHOMEI_FRONTEND_ENDPOINT, - SEQUENCER_ENDPOINT, - OPERATOR_1, - SECURITY_COUNCIL_PRIVATE_KEY, - CONTRACT_GAS_OPTIMIZATION_SWITCH_BLOCK, -} from "../src/utils/constants.local"; -import { deployContract } from "../src/utils/deployments"; -import { getAndIncreaseFeeData } from "../src/utils/helpers"; - -jest.setTimeout(3 * 60 * 1000); - -beforeAll(async () => { - /*********** PROVIDERS SETUP ***********/ - const l1JsonRpcProvider = getL1Provider(); - const l2JsonRpcProvider = getL2Provider(); - - const l1Deployer = new Wallet(L1_DEPLOYER_ACCOUNT_PRIVATE_KEY, l1JsonRpcProvider); - const l2Deployer = new Wallet(L2_DEPLOYER_ACCOUNT_PRIVATE_KEY, l2JsonRpcProvider); - - const [dummyContract, l1DummyContract] = await Promise.all([ - deployContract(new DummyContract__factory(), l2Deployer) as unknown as DummyContract, - deployContract(new DummyContract__factory(), l1Deployer) as unknown as DummyContract, - ]); - - // Old LineaRollup contract instanciation - // LineaRollup ABI contains both old and new functions - const lineaRollup: LineaRollup = LineaRollup__factory.connect(LINEA_ROLLUP_CONTRACT_ADDRESS, l1JsonRpcProvider); - // L2 MessageService contract instanciation - const l2MessageService: L2MessageService = L2MessageService__factory.connect( - MESSAGE_SERVICE_ADDRESS, - l2JsonRpcProvider, - ); - - // Send ETH to the LineaRollup contract - const value = ethers.utils.parseEther("500"); - const fee = ethers.utils.parseEther("3"); - const to = "0x8D97689C9818892B700e27F316cc3E41e17fBeb9"; - const calldata = "0x"; - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(await l1JsonRpcProvider.getFeeData()); - const tx = await lineaRollup - .connect(l1Deployer) - .sendMessage(to, fee, calldata, { value, maxPriorityFeePerGas, maxFeePerGas }); - await tx.wait(); - - global.l1Provider = l1JsonRpcProvider; - global.l2Provider = l2JsonRpcProvider; - global.dummyContract = dummyContract; - global.l1DummyContract = l1DummyContract; - global.l2MessageService = l2MessageService; - global.L2_MESSAGE_SERVICE_ADDRESS = MESSAGE_SERVICE_ADDRESS; - global.LINEA_ROLLUP_CONTRACT_ADDRESS = LINEA_ROLLUP_CONTRACT_ADDRESS; - global.lineaRollup = lineaRollup; - global.useLocalSetup = true; - global.chainId = CHAIN_ID; - global.L1_ACCOUNT_0_PRIVATE_KEY = L1_ACCOUNT_0_PRIVATE_KEY; - global.L2_ACCOUNT_0_PRIVATE_KEY = L2_ACCOUNT_0_PRIVATE_KEY; - global.L2_ACCOUNT_1_PRIVATE_KEY = L2_ACCOUNT_1_PRIVATE_KEY; - global.L1_DEPLOYER_ACCOUNT_PRIVATE_KEY = L1_DEPLOYER_ACCOUNT_PRIVATE_KEY; - global.L2_DEPLOYER_ACCOUNT_PRIVATE_KEY = L2_DEPLOYER_ACCOUNT_PRIVATE_KEY; - global.TRANSACTION_CALLDATA_LIMIT = TRANSACTION_CALLDATA_LIMIT; - global.OPERATOR_0_PRIVATE_KEY = OPERATOR_0_PRIVATE_KEY; - global.SHOMEI_ENDPOINT = SHOMEI_ENDPOINT; - global.SHOMEI_FRONTEND_ENDPOINT = SHOMEI_FRONTEND_ENDPOINT; - global.SEQUENCER_ENDPOINT = SEQUENCER_ENDPOINT; - global.OPERATOR_1_ADDRESS = OPERATOR_1; - global.SECURITY_COUNCIL_PRIVATE_KEY = SECURITY_COUNCIL_PRIVATE_KEY; - global.CONTRACT_GAS_OPTIMIZATION_SWITCH_BLOCK = CONTRACT_GAS_OPTIMIZATION_SWITCH_BLOCK; -}); diff --git a/e2e/env-setup/setup-shadow.ts b/e2e/env-setup/setup-shadow.ts deleted file mode 100644 index 37d3fcc9..00000000 --- a/e2e/env-setup/setup-shadow.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { beforeAll, jest } from "@jest/globals"; -import { - DummyContract, - DummyContract__factory, - L2MessageService, - L2MessageService__factory, - L2TestContract__factory, - L2TestContract, - LineaRollup, - LineaRollup__factory, -} from "../src/typechain"; -import { - getL1Provider, - getL2Provider, - CHAIN_ID, - SHADOW_ZKEVMV2_CONTRACT_ADDRESS, - SHADOW_MESSAGE_SERVICE_ADDRESS, - DUMMY_CONTRACT_ADDRESS, - ACCOUNT_0_PRIVATE_KEY, - TRANSACTION_CALLDATA_LIMIT, - L1_DUMMY_CONTRACT_ADDRESS, - SHOMEI_ENDPOINT, - SHOMEI_FRONTEND_ENDPOINT, -} from "../src/utils/constants.uat"; - -jest.setTimeout(5 * 60 * 1000); - -beforeAll(async () => { - /*********** PROVIDERS SETUP ***********/ - const l1Provider = getL1Provider(); - const l2Provider = getL2Provider(); - - const l1DummyContract: DummyContract = DummyContract__factory.connect(L1_DUMMY_CONTRACT_ADDRESS, l1Provider); - const dummyContract: DummyContract = DummyContract__factory.connect(DUMMY_CONTRACT_ADDRESS, l2Provider); - const l2TestContract: L2TestContract = L2TestContract__factory.connect( - "0xaD711a736ae454Be345078C0bc849997b78A30B9", - l2Provider, - ); - // L2MessageService contract - const l2MessageService: L2MessageService = L2MessageService__factory.connect( - SHADOW_MESSAGE_SERVICE_ADDRESS, - l2Provider, - ); - - /*********** L1 Contracts ***********/ - - // LineaRollup deployment - const lineaRollup: LineaRollup = LineaRollup__factory.connect(SHADOW_ZKEVMV2_CONTRACT_ADDRESS, l1Provider); - - global.l1Provider = l1Provider; - global.l2Provider = l2Provider; - global.l2TestContract = l2TestContract; - global.l1DummyContract = l1DummyContract; - global.dummyContract = dummyContract; - global.l2MessageService = l2MessageService; - global.lineaRollup = lineaRollup; - global.chainId = CHAIN_ID; - global.L2_ACCOUNT_0_PRIVATE_KEY = ACCOUNT_0_PRIVATE_KEY; - global.TRANSACTION_CALLDATA_LIMIT = TRANSACTION_CALLDATA_LIMIT; - global.SHOMEI_ENDPOINT = SHOMEI_ENDPOINT; - global.SHOMEI_FRONTEND_ENDPOINT = SHOMEI_FRONTEND_ENDPOINT; -}); diff --git a/e2e/env-setup/setup-uat.ts b/e2e/env-setup/setup-uat.ts deleted file mode 100644 index e3ebb2c3..00000000 --- a/e2e/env-setup/setup-uat.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { beforeAll, jest } from "@jest/globals"; -import { - DummyContract, - DummyContract__factory, - L2MessageService, - L2MessageService__factory, - L2TestContract__factory, - L2TestContract, - LineaRollup, - LineaRollup__factory, -} from "../src/typechain"; -import { - getL1Provider, - getL2Provider, - CHAIN_ID, - LINEA_ROLLUP_CONTRACT_ADDRESS, - MESSAGE_SERVICE_ADDRESS, - DUMMY_CONTRACT_ADDRESS, - ACCOUNT_0_PRIVATE_KEY, - TRANSACTION_CALLDATA_LIMIT, - L1_DUMMY_CONTRACT_ADDRESS, - SHOMEI_ENDPOINT, - SHOMEI_FRONTEND_ENDPOINT, -} from "../src/utils/constants.uat"; - -jest.setTimeout(5 * 60 * 1000); - -beforeAll(async () => { - /*********** PROVIDERS SETUP ***********/ - const l1Provider = getL1Provider(); - const l2Provider = getL2Provider(); - - const l1DummyContract: DummyContract = DummyContract__factory.connect(L1_DUMMY_CONTRACT_ADDRESS, l1Provider); - const dummyContract: DummyContract = DummyContract__factory.connect(DUMMY_CONTRACT_ADDRESS, l2Provider); - const l2TestContract: L2TestContract = L2TestContract__factory.connect( - "0xaD711a736ae454Be345078C0bc849997b78A30B9", - l2Provider, - ); - // L2MessageService contract - const l2MessageService: L2MessageService = L2MessageService__factory.connect(MESSAGE_SERVICE_ADDRESS, l2Provider); - - /*********** L1 Contracts ***********/ - - // LineaRollup deployment - const lineaRollup: LineaRollup = LineaRollup__factory.connect(LINEA_ROLLUP_CONTRACT_ADDRESS, l1Provider); - - global.l1Provider = l1Provider; - global.l2Provider = l2Provider; - global.l2TestContract = l2TestContract; - global.l1DummyContract = l1DummyContract; - global.dummyContract = dummyContract; - global.l2MessageService = l2MessageService; - global.lineaRollup = lineaRollup; - global.chainId = CHAIN_ID; - global.L1_ACCOUNT_0_PRIVATE_KEY = ACCOUNT_0_PRIVATE_KEY; - global.TRANSACTION_CALLDATA_LIMIT = TRANSACTION_CALLDATA_LIMIT; - global.SHOMEI_ENDPOINT = SHOMEI_ENDPOINT; - global.SHOMEI_FRONTEND_ENDPOINT = SHOMEI_FRONTEND_ENDPOINT; -}); diff --git a/e2e/jest.config.ts b/e2e/jest.config.ts index 534388c4..ce990bd1 100644 --- a/e2e/jest.config.ts +++ b/e2e/jest.config.ts @@ -3,12 +3,15 @@ import type { Config } from "jest"; const config: Config = { preset: "ts-jest", testEnvironment: "node", - rootDir: ".", - testRegex: "(spec|test).ts$", + rootDir: "src", + testRegex: ".spec.ts$", verbose: true, - globalSetup: "./env-setup/global-setup.ts", - setupFilesAfterEnv: ["./env-setup/setup.ts"], - globalTeardown: "./env-setup/global-teardown.ts", + globalSetup: "./config/jest/global-setup.ts", + globalTeardown: "./config/jest/global-teardown.ts", + maxWorkers: "50%", + maxConcurrency: 5, + testTimeout: 3 * 60 * 1000, + workerThreads: true, }; export default config; diff --git a/e2e/jest.local.config.ts b/e2e/jest.local.config.ts deleted file mode 100644 index 533d9ded..00000000 --- a/e2e/jest.local.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { Config } from "jest"; - -const config: Config = { - preset: "ts-jest", - testEnvironment: "node", - rootDir: ".", - testRegex: "ordered-test.ts$", - verbose: true, - setupFilesAfterEnv: ["./env-setup/setup-local.ts"], - bail: 1, - forceExit: true, - detectOpenHandles: true, -}; - -export default config; diff --git a/e2e/jest.shadow.config.ts b/e2e/jest.shadow.config.ts deleted file mode 100644 index f31e9e3f..00000000 --- a/e2e/jest.shadow.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { Config } from "jest"; - -const config: Config = { - preset: "ts-jest", - testEnvironment: "node", - rootDir: ".", - testRegex: "(spec|test).ts$", - verbose: true, - setupFilesAfterEnv: ["./env-setup/setup-shadow.ts"], -}; - -export default config; diff --git a/e2e/jest.dev.config.ts b/e2e/jest.testnet.config.ts similarity index 60% rename from e2e/jest.dev.config.ts rename to e2e/jest.testnet.config.ts index 0cdaeed5..33efc4af 100644 --- a/e2e/jest.dev.config.ts +++ b/e2e/jest.testnet.config.ts @@ -3,10 +3,11 @@ import type { Config } from "jest"; const config: Config = { preset: "ts-jest", testEnvironment: "node", - rootDir: ".", - testRegex: "(spec|test).ts$", + rootDir: "src", + testRegex: ".spec.ts$", verbose: true, - setupFilesAfterEnv: ["./env-setup/setup-dev.ts"], + maxWorkers: "50%", + testTimeout: 3 * 60 * 1000, }; export default config; diff --git a/e2e/jest.uat.config.ts b/e2e/jest.uat.config.ts deleted file mode 100644 index 7331a086..00000000 --- a/e2e/jest.uat.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { Config } from "jest"; - -const config: Config = { - preset: "ts-jest", - testEnvironment: "node", - rootDir: ".", - testRegex: "(spec|test).ts$", - verbose: true, - setupFilesAfterEnv: ["./env-setup/setup-uat.ts"], -}; - -export default config; diff --git a/e2e/jest.vscode.config.ts b/e2e/jest.vscode.config.ts deleted file mode 100644 index fab1b705..00000000 --- a/e2e/jest.vscode.config.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { Config } from "jest"; - -const config: Config = { - preset: "ts-jest", - testEnvironment: "node", - rootDir: ".", - testRegex: "(spec|test).ts$", - verbose: true, - globalSetup: "", - setupFilesAfterEnv: ["./env-setup/setup-local.ts"], - globalTeardown: "", -}; - -export default config; diff --git a/e2e/package.json b/e2e/package.json index 29e0d0e7..3787dffa 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -8,30 +8,25 @@ "lint:ts:fix": "npx eslint --fix '**/*.{js,ts}'", "prettier": "prettier -c '**/*.{js,ts}'", "prettier:fix": "prettier -w '**/*.{js,ts}'", - "test:e2e:local": "npx jest --config ./jest.local.config.ts --runInBand", - "test:e2e:local:testenv": "npx jest --config ./jest.local.config.ts --runInBand --globalSetup ./env-setup/global-setup.ts --setupFilesAfterEnv ./env-setup/setup-local-deploy.ts --globalTeardown ./env-setup/global-teardown.ts", - "test:e2e:dev": "npx jest --config ./jest.dev.config.ts --bail --runInBand --testPathIgnorePatterns=restart.spec.ts", - "test:e2e:uat": "npx jest --config ./jest.uat.config.ts --bail --runInBand --testPathIgnorePatterns=restart.spec.ts", - "test:e2e:uat:shadow": "npx jest --config ./jest.uat.config.ts --bail --runInBand --testPathIgnorePatterns=restart.spec.ts", - "postinstall": "typechain --target ethers-v5 --out-dir ./src/typechain './src/abi/*.json'", - "test:e2e:vscode": "npx jest --config ./jest.vscode.config.ts --runInBand --detectOpenHandles --forceExit", + "test:e2e:local": "TEST_ENV=local npx jest", + "test:e2e:dev": "TEST_ENV=dev npx jest --config ./jest.testnet.config.ts --bail --runInBand --testPathIgnorePatterns=restart.spec.ts", + "test:e2e:sepolia": "TEST_ENV=sepolia npx jest --config ./jest.testnet.config.ts --bail --runInBand --testPathIgnorePatterns=restart.spec.ts", + "postinstall": "typechain --target ethers-v6 --out-dir ./src/typechain './src/abi/*.json'", "lint:fix": "pnpm run lint:ts:fix && pnpm run prettier:fix", - "clean": "rimraf node_modules" + "clean": "rimraf node_modules src/typechain" }, "author": "", "license": "ISC", "devDependencies": { - "@ethersproject/providers": "5.7.2", "@jest/globals": "29.7.0", "@openzeppelin/upgrades-core": "1.33.1", - "@typechain/ethers-v5": "11.1.2", - "@types/jest": "29.5.12", + "@typechain/ethers-v6": "0.5.1", + "@types/jest": "29.5.13", "child_process": "1.0.2", "dotenv": "16.4.5", - "ethers": "5.7.2", + "ethers": "6.13.3", "jest": "29.7.0", - "testcontainers": "10.9.0", - "ts-jest": "29.1.2", + "ts-jest": "29.2.5", "typechain": "8.3.2" } } diff --git a/e2e/src/utils/constants.ts b/e2e/src/common/constants.ts similarity index 83% rename from e2e/src/utils/constants.ts rename to e2e/src/common/constants.ts index fe397b4f..c8e13676 100644 --- a/e2e/src/utils/constants.ts +++ b/e2e/src/common/constants.ts @@ -6,4 +6,6 @@ export const OPERATOR_ROLE = "0x97667070c54ef182b0f5858b034beac1b6f3089aa2d3188b export const VERIFIER_SETTER_ROLE = "0x32937fd5162e282df7e9a14a5073a2425321c7966eaf70ed6c838a1006d84c4c"; export const MESSAGE_SENT_EVENT_SIGNATURE = "0xe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c"; -export const HASH_ZERO = ethers.constants.HashZero; +export const HASH_ZERO = ethers.ZeroHash; + +export const TRANSACTION_CALLDATA_LIMIT = 30_000; diff --git a/e2e/src/utils/deployments.ts b/e2e/src/common/deployments.ts similarity index 53% rename from e2e/src/utils/deployments.ts rename to e2e/src/common/deployments.ts index f4996bc7..2a46c010 100644 --- a/e2e/src/utils/deployments.ts +++ b/e2e/src/common/deployments.ts @@ -1,14 +1,21 @@ -import { Contract, ContractFactory, Overrides, Wallet, ethers, utils } from "ethers"; +import { AbiCoder, BaseContract, ContractFactory, Wallet, ethers } from "ethers"; import { ProxyAdmin__factory, TransparentUpgradeableProxy__factory, ProxyAdmin } from "../typechain"; -function getInitializerData(contractInterface: ethers.utils.Interface, args: unknown[]) { +export const encodeData = (types: string[], values: unknown[], packed?: boolean) => { + if (packed) { + return ethers.solidityPacked(types, values); + } + return AbiCoder.defaultAbiCoder().encode(types, values); +}; + +function getInitializerData(contractInterface: ethers.Interface, args: unknown[]) { const initializer = "initialize"; const fragment = contractInterface.getFunction(initializer); - return contractInterface.encodeFunctionData(fragment, args); + return contractInterface.encodeFunctionData(fragment!, args); } export const encodeLibraryName = (libraryName: string) => { - const encodedLibraryName = utils.solidityKeccak256(["string"], [libraryName]).slice(2, 36); + const encodedLibraryName = ethers.keccak256(encodeData(["string"], [libraryName])).slice(2, 36); return `__$${encodedLibraryName}$__`; }; @@ -17,29 +24,28 @@ export const deployContract = async ( deployer: Wallet, // eslint-disable-next-line @typescript-eslint/no-explicit-any args?: any[], - overrides?: Overrides, -): Promise => { +): Promise => { const deploymentArgs = args || []; - const instance = await contractFactory.connect(deployer).deploy(...deploymentArgs, overrides); - await instance.deployed(); + const instance = await contractFactory.connect(deployer).deploy(...deploymentArgs); + await instance.waitForDeployment(); return instance; }; -export const deployUpgradableContract = async ( +const deployUpgradableContract = async ( contractFactory: T, deployer: Wallet, admin: ProxyAdmin, initializerData = "0x", -): Promise => { +): Promise => { const instance = await contractFactory.connect(deployer).deploy(); - await instance.deployed(); + await instance.waitForDeployment(); const proxy = await new TransparentUpgradeableProxy__factory() .connect(deployer) - .deploy(instance.address, admin.address, initializerData); - await proxy.deployed(); + .deploy(await instance.getAddress(), await admin.getAddress(), initializerData); + await proxy.waitForDeployment(); - return instance.attach(proxy.address); + return instance.attach(await proxy.getAddress()); }; export async function deployUpgradableContractWithProxyAdmin( @@ -49,8 +55,8 @@ export async function deployUpgradableContractWithProxyAdmin { +): Promise { const proxyAdminFactory = new ProxyAdmin__factory(deployer); - const proxyAdmin = proxyAdminFactory.connect(deployer).attach(proxyAdminContractAddress); + const proxyAdmin = proxyAdminFactory.connect(deployer).attach(proxyAdminContractAddress) as ProxyAdmin; const tx = await proxyAdmin.upgradeAndCall(proxyContractAddress, implementationContractAddress, initializerData); - return tx.wait(); } @@ -29,9 +28,9 @@ export async function upgradeContract( proxyAdminContractAddress: string, proxyContractAddress: string, implementationContractAddress: string, -): Promise { +): Promise { const proxyAdminFactory = new ProxyAdmin__factory(deployer); - const proxyAdmin = proxyAdminFactory.connect(deployer).attach(proxyAdminContractAddress); + const proxyAdmin = proxyAdminFactory.connect(deployer).attach(proxyAdminContractAddress) as ProxyAdmin; const tx = await proxyAdmin.upgrade(proxyContractAddress, implementationContractAddress); return tx.wait(); diff --git a/e2e/src/common/utils.ts b/e2e/src/common/utils.ts new file mode 100644 index 00000000..319aae07 --- /dev/null +++ b/e2e/src/common/utils.ts @@ -0,0 +1,263 @@ +import * as fs from "fs"; +import assert from "assert"; +import { BaseContract, BlockTag, TransactionReceipt, Wallet, ethers } from "ethers"; +import path from "path"; +import { exec } from "child_process"; +import { L2MessageService, LineaRollup } from "../typechain"; +import { PayableOverrides, TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog } from "../typechain/common"; +import { MessageEvent, SendMessageArgs } from "./types"; + +export function etherToWei(amount: string): bigint { + return ethers.parseEther(amount.toString()); +} + +export function readJsonFile(filePath: string): unknown { + const data = fs.readFileSync(filePath, "utf8"); + return JSON.parse(data); +} + +export const wait = (timeout: number) => new Promise((resolve) => setTimeout(resolve, timeout)); + +export function increaseDate(currentDate: Date, seconds: number): Date { + const newDate = new Date(currentDate.getTime()); + newDate.setSeconds(newDate.getSeconds() + seconds); + return newDate; +} + +export const subtractSecondsToDate = (date: Date, seconds: number): Date => { + const dateCopy = new Date(date); + dateCopy.setSeconds(date.getSeconds() - seconds); + return dateCopy; +}; + +export function getWallet(privateKey: string, provider: ethers.JsonRpcProvider) { + return new ethers.Wallet(privateKey, provider); +} + +export function encodeFunctionCall(contractInterface: ethers.Interface, functionName: string, args: unknown[]) { + return contractInterface.encodeFunctionData(functionName, args); +} + +export const generateKeccak256 = (types: string[], values: unknown[], packed?: boolean) => + ethers.keccak256(encodeData(types, values, packed)); + +export const encodeData = (types: string[], values: unknown[], packed?: boolean) => { + if (packed) { + return ethers.solidityPacked(types, values); + } + return ethers.AbiCoder.defaultAbiCoder().encode(types, values); +}; + +export class RollupGetZkEVMBlockNumberClient { + private endpoint: URL; + private request = { + method: "post", + body: JSON.stringify({ + jsonrpc: "2.0", + method: "rollup_getZkEVMBlockNumber", + params: [], + id: 1, + }), + }; + + public constructor(endpoint: URL) { + this.endpoint = endpoint; + } + + public async rollupGetZkEVMBlockNumber(): Promise { + const response = await fetch(this.endpoint, this.request); + const data = await response.json(); + assert("result" in data); + return Number.parseInt(data.result); + } +} + +export async function getBlockByNumberOrBlockTag(rpcUrl: URL, blockTag: BlockTag): Promise { + const provider = new ethers.JsonRpcProvider(rpcUrl.href); + try { + const blockNumber = await provider.getBlock(blockTag); + return blockNumber; + } catch (error) { + return null; + } +} + +export async function getEvents( + contract: TContract, + eventFilter: TypedDeferredTopicFilter, + fromBlock?: BlockTag, + toBlock?: BlockTag, + criteria?: (events: TypedEventLog[]) => Promise[]>, +): Promise>> { + const events = await contract.queryFilter( + eventFilter, + fromBlock as string | number | undefined, + toBlock as string | number | undefined, + ); + + if (criteria) { + return await criteria(events); + } + + return events; +} + +export async function waitForEvents< + TContract extends LineaRollup | L2MessageService, + TEvent extends TypedContractEvent, +>( + contract: TContract, + eventFilter: TypedDeferredTopicFilter, + pollingInterval: number = 500, + fromBlock?: BlockTag, + toBlock?: BlockTag, + criteria?: (events: TypedEventLog[]) => Promise[]>, +): Promise[]> { + let events = await getEvents(contract, eventFilter, fromBlock, toBlock, criteria); + + while (events.length === 0) { + events = await getEvents(contract, eventFilter, fromBlock, toBlock, criteria); + await wait(pollingInterval); + } + + return events; +} + +export function getFiles(directory: string, fileRegex: RegExp[]): string[] { + const files = fs.readdirSync(directory, { withFileTypes: true }); + const filteredFiles = files.filter((file) => fileRegex.map((regex) => regex.test(file.name)).includes(true)); + return filteredFiles.map((file) => fs.readFileSync(path.join(directory, file.name), "utf-8")); +} + +export async function waitForFile( + directory: string, + regex: RegExp, + pollingInterval: number, + timeout: number, + criteria?: (fileName: string) => boolean, +): Promise { + const endTime = Date.now() + timeout; + + while (Date.now() < endTime) { + try { + const files = fs.readdirSync(directory); + + for (const file of files) { + if (regex.test(file) && (!criteria || criteria(file))) { + const filePath = path.join(directory, file); + const content = fs.readFileSync(filePath, "utf-8"); + return content; + } + } + } catch (err) { + throw new Error(`Error reading directory: ${(err as Error).message}`); + } + + await new Promise((resolve) => setTimeout(resolve, pollingInterval)); + } + + throw new Error("File check timed out"); +} + +export async function sendTransactionsToGenerateTrafficWithInterval(signer: Wallet, pollingInterval: number = 1_000) { + const { maxPriorityFeePerGas, maxFeePerGas } = await signer.provider!.getFeeData(); + const transactionRequest = { + to: signer.address, + value: etherToWei("0.000001"), + maxPriorityFeePerGas: maxPriorityFeePerGas, + maxFeePerGas: maxFeePerGas, + }; + + let timeoutId: NodeJS.Timeout | null = null; + let isRunning = true; + + const sendTransaction = async () => { + if (!isRunning) return; + + try { + const tx = await signer.sendTransaction(transactionRequest); + await tx.wait(); + } catch (error) { + console.error("Error sending transaction:", error); + } finally { + if (isRunning) { + timeoutId = setTimeout(sendTransaction, pollingInterval); + } + } + }; + + const stop = () => { + isRunning = false; + if (timeoutId) { + clearTimeout(timeoutId); + timeoutId = null; + } + console.log("Transaction loop stopped."); + }; + + sendTransaction(); + + return stop; +} + +export function getMessageSentEventFromLogs( + contract: T, + receipts: TransactionReceipt[], +): MessageEvent[] { + return receipts + .flatMap((receipt) => receipt.logs) + .filter((log) => log.topics[0] === "0xe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c") + .map((log) => { + const logDescription = contract.interface.parseLog(log); + if (!logDescription) { + throw new Error("Invalid log description"); + } + const { args } = logDescription; + return { + from: args._from, + to: args._to, + fee: args._fee, + value: args._value, + messageNumber: args._nonce, + calldata: args._calldata, + messageHash: args._messageHash, + blockNumber: log.blockNumber, + }; + }); +} + +export const sendMessage = async ( + signer: Wallet, + contract: T, + args: SendMessageArgs, + overrides?: PayableOverrides, +): Promise => { + const tx = await signer.sendTransaction({ + to: await contract.getAddress(), + value: overrides?.value || 0n, + data: contract.interface.encodeFunctionData("sendMessage", [args.to, args.fee, args.calldata]), + ...overrides, + }); + + const receipt = await tx.wait(); + + if (!receipt) { + throw new Error("Transaction receipt is undefined"); + } + return receipt; +}; + +export async function execDockerCommand(command: string, containerName: string): Promise { + const dockerCommand = `docker ${command} ${containerName}`; + console.log(`Executing: ${dockerCommand}...`); + return new Promise((resolve, reject) => { + exec(dockerCommand, (error, stdout, stderr) => { + if (error) { + console.error(`Error executing (${dockerCommand}): ${stderr}`); + reject(error); + } + console.log(`Execution success (${dockerCommand}): ${stdout}`); + resolve(stdout); + }); + }); +} diff --git a/e2e/src/config/jest/global-setup.ts b/e2e/src/config/jest/global-setup.ts new file mode 100644 index 00000000..2d610c04 --- /dev/null +++ b/e2e/src/config/jest/global-setup.ts @@ -0,0 +1,39 @@ +/* eslint-disable no-var */ +import { config } from "../tests-config"; +import { deployContract } from "../../common/deployments"; +import { DummyContract__factory } from "../../typechain"; +import { etherToWei, sendTransactionsToGenerateTrafficWithInterval } from "../../common/utils"; + +declare global { + var stopL2TrafficGeneration: () => void; +} + +export default async (): Promise => { + const account = config.getL1AccountManager().whaleAccount(0); + const l2Account = config.getL2AccountManager().whaleAccount(0); + + const [dummyContract, l2DummyContract] = await Promise.all([ + deployContract(new DummyContract__factory(), account), + deployContract(new DummyContract__factory(), l2Account), + ]); + + console.log(`L1 Dummy contract deployed at address: ${await dummyContract.getAddress()}`); + console.log(`L2 Dummy contract deployed at address: ${await l2DummyContract.getAddress()}`); + + // Send ETH to the LineaRollup contract + const lineaRollup = config.getLineaRollupContract(account); + const l1JsonRpcProvider = config.getL1Provider(); + + const value = etherToWei("500"); + const fee = etherToWei("3"); + const to = "0x8D97689C9818892B700e27F316cc3E41e17fBeb9"; + const calldata = "0x"; + const { maxPriorityFeePerGas, maxFeePerGas } = await l1JsonRpcProvider.getFeeData(); + const tx = await lineaRollup.sendMessage(to, fee, calldata, { value, maxPriorityFeePerGas, maxFeePerGas }); + await tx.wait(); + + console.log("Generating L2 traffic..."); + const stopPolling = await sendTransactionsToGenerateTrafficWithInterval(l2Account, 2_000); + + global.stopL2TrafficGeneration = stopPolling; +}; diff --git a/e2e/src/config/jest/global-teardown.ts b/e2e/src/config/jest/global-teardown.ts new file mode 100644 index 00000000..f1f0f307 --- /dev/null +++ b/e2e/src/config/jest/global-teardown.ts @@ -0,0 +1,3 @@ +export default async (): Promise => { + global.stopL2TrafficGeneration(); +}; diff --git a/e2e/src/config/tests-config/accounts/account-manager.ts b/e2e/src/config/tests-config/accounts/account-manager.ts new file mode 100644 index 00000000..42984b78 --- /dev/null +++ b/e2e/src/config/tests-config/accounts/account-manager.ts @@ -0,0 +1,124 @@ +import { ethers, Provider, Wallet } from "ethers"; +import Account from "./account"; +import { etherToWei } from "../../../common/utils"; + +interface IAccountManager { + whaleAccount(accIndex?: number): Wallet; + generateAccount(initialBalanceWei?: bigint): Promise; + generateAccounts(numberOfAccounts: number, initialBalanceWei?: bigint): Promise; + getWallet(account: Account): Wallet; +} + +function getWallet(provider: Provider, privateKey: string): Wallet { + if (!privateKey.startsWith("0x")) { + privateKey = "0x" + privateKey; + } + let keyWithoutPrefix = privateKey.slice(2); + + // Pad the private key to 64 hex characters (32 bytes) if it's shorter + if (keyWithoutPrefix.length < 64) { + keyWithoutPrefix = keyWithoutPrefix.padStart(64, "0"); + } + return new Wallet(`0x${keyWithoutPrefix}`, provider); +} + +abstract class AccountManager implements IAccountManager { + protected readonly chainId: number; + protected readonly whaleAccounts: Account[]; + protected provider: Provider; + protected accountWallets: Wallet[]; + + constructor(provider: Provider, whaleAccounts: Account[], chainId: number) { + this.provider = provider; + this.whaleAccounts = whaleAccounts; + this.chainId = chainId; + this.accountWallets = this.whaleAccounts.map((account) => getWallet(this.provider, account.privateKey)); + } + + selectWhaleAccount(accIndex?: number): { account: Account; accountWallet: Wallet } { + if (accIndex) { + return { account: this.whaleAccounts[accIndex], accountWallet: this.accountWallets[accIndex] }; + } + const workerIdEnv = process.env.JEST_WORKER_ID || "1"; + const workerId = parseInt(workerIdEnv, 10) - 1; + + const accountIndex = workerId; + const whaleAccount = this.whaleAccounts[accountIndex]; + const whaleTxManager = this.accountWallets[this.whaleAccounts.indexOf(whaleAccount)]; + return { account: whaleAccount, accountWallet: whaleTxManager }; + } + + whaleAccount(accIndex?: number): Wallet { + return this.selectWhaleAccount(accIndex).accountWallet; + } + + async generateAccount(initialBalanceWei = etherToWei("10")): Promise { + const accounts = await this.generateAccounts(1, initialBalanceWei); + return this.getWallet(accounts[0]); + } + + async generateAccounts( + numberOfAccounts: number, + initialBalanceWei = etherToWei("10"), + retryDelayMs = 1_000, + ): Promise { + const { account: whaleAccount, accountWallet: whaleAccountWallet } = this.selectWhaleAccount(); + + console.log( + `Generating accounts: chainId=${this.chainId} numberOfAccounts=${numberOfAccounts} whaleAccount=${whaleAccount.address}`, + ); + + const accounts: Account[] = []; + + for (let i = 0; i < numberOfAccounts; i++) { + const randomBytes = ethers.randomBytes(32); + const randomPrivKey = ethers.hexlify(randomBytes); + const newAccount = new Account(randomPrivKey, ethers.computeAddress(randomPrivKey)); + accounts.push(newAccount); + + let success = false; + while (!success) { + try { + const tx = { + to: newAccount.address, + value: initialBalanceWei, + gasPrice: ethers.parseUnits("300", "gwei"), + gasLimit: 21000n, + }; + const transactionResponse = await whaleAccountWallet.sendTransaction(tx); + console.log( + `Waiting for account funding: newAccount=${newAccount.address} txHash=${transactionResponse.hash} whaleAccount=${whaleAccount.address}`, + ); + const receipt = await transactionResponse.wait(); + + if (!receipt) { + throw new Error(`Transaction failed to be mined`); + } + + if (receipt.status !== 1) { + throw new Error(`Transaction failed with status ${receipt.status}`); + } + console.log( + `Account funded: newAccount=${newAccount.address} balance=${( + await this.provider.getBalance(newAccount.address) + ).toString()} wei`, + ); + success = true; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } catch (error: any) { + console.log( + `Failed to send funds from accAddress=${whaleAccount.address}. Retrying funding in ${retryDelayMs}ms...`, + ); + await new Promise((resolve) => setTimeout(resolve, retryDelayMs)); + } + } + } + return accounts.map((account) => getWallet(this.provider, account.privateKey)); + } + + getWallet(account: Account): Wallet { + return getWallet(this.provider, account.privateKey); + } +} + +export { AccountManager }; diff --git a/e2e/src/config/tests-config/accounts/account.ts b/e2e/src/config/tests-config/accounts/account.ts new file mode 100644 index 00000000..acd928bd --- /dev/null +++ b/e2e/src/config/tests-config/accounts/account.ts @@ -0,0 +1,9 @@ +export default class Account { + public readonly privateKey: string; + public readonly address: string; + + constructor(privateKey: string, address: string) { + this.privateKey = privateKey; + this.address = address; + } +} diff --git a/e2e/src/config/tests-config/accounts/environment-based-account-manager.ts b/e2e/src/config/tests-config/accounts/environment-based-account-manager.ts new file mode 100644 index 00000000..c98342ee --- /dev/null +++ b/e2e/src/config/tests-config/accounts/environment-based-account-manager.ts @@ -0,0 +1,11 @@ +import { Provider } from "ethers"; +import Account from "./account"; +import { AccountManager } from "./account-manager"; + +class EnvironmentBasedAccountManager extends AccountManager { + constructor(provider: Provider, whaleAccounts: Account[], chainId: number) { + super(provider, whaleAccounts, chainId); + } +} + +export { EnvironmentBasedAccountManager }; diff --git a/e2e/src/config/tests-config/accounts/genesis-based-account-manager.ts b/e2e/src/config/tests-config/accounts/genesis-based-account-manager.ts new file mode 100644 index 00000000..bc3a7801 --- /dev/null +++ b/e2e/src/config/tests-config/accounts/genesis-based-account-manager.ts @@ -0,0 +1,41 @@ +import { ethers, Provider } from "ethers"; +import Account from "./account"; +import { AccountManager } from "./account-manager"; +import { readJsonFile } from "../../../common/utils"; + +interface GenesisJson { + config: { + chainId: number; + }; + alloc: { + [address: string]: { + privateKey?: string; + }; + }; +} + +function readGenesisFileAccounts(genesisJson: GenesisJson): Account[] { + const alloc = genesisJson.alloc; + const accounts: Account[] = []; + for (const address in alloc) { + const accountData = alloc[address]; + if (accountData.privateKey) { + const addr = ethers.getAddress(address); + accounts.push(new Account(accountData.privateKey, addr)); + } + } + return accounts; +} + +class GenesisBasedAccountManager extends AccountManager { + constructor(provider: Provider, genesisFilePath: string) { + const genesisJson = readJsonFile(genesisFilePath); + const genesis = genesisJson as GenesisJson; + const chainId = genesis.config.chainId; + const whaleAccounts = readGenesisFileAccounts(genesis); + + super(provider, whaleAccounts, chainId); + } +} + +export { GenesisBasedAccountManager }; diff --git a/e2e/src/config/tests-config/environments/dev.ts b/e2e/src/config/tests-config/environments/dev.ts new file mode 100644 index 00000000..1ed0d35b --- /dev/null +++ b/e2e/src/config/tests-config/environments/dev.ts @@ -0,0 +1,49 @@ +import { ethers } from "ethers"; +import { EnvironmentBasedAccountManager } from "../accounts/environment-based-account-manager"; +import { Config } from "../types"; +import Account from "../accounts/account"; + +const L1_RPC_URL = new URL(`https://sepolia.infura.io/v3/${process.env.INFURA_PROJECT_ID}`); +const L2_RPC_URL = new URL("https://rpc.devnet.linea.build"); +const L1_CHAIN_ID = 11155111; +const L2_CHAIN_ID = 59139; + +const L1_WHALE_ACCOUNTS_PRIVATE_KEYS: string[] = process.env.L1_WHALE_ACCOUNTS_PRIVATE_KEYS?.split(",") ?? []; +const L2_WHALE_ACCOUNTS_PRIVATE_KEYS: string[] = process.env.L2_WHALE_ACCOUNTS_PRIVATE_KEYS?.split(",") ?? []; +const L1_WHALE_ACCOUNTS_ADDRESSES: string[] = process.env.L1_WHALE_ACCOUNTS_ADDRESSES?.split(",") ?? []; +const L2_WHALE_ACCOUNTS_ADDRESSES: string[] = process.env.L2_WHALE_ACCOUNTS_ADDRESSES?.split(",") ?? []; + +const L1_WHALE_ACCOUNTS: Account[] = L1_WHALE_ACCOUNTS_PRIVATE_KEYS.map((privateKey, index) => { + return new Account(privateKey, L1_WHALE_ACCOUNTS_ADDRESSES[index]); +}); + +const L2_WHALE_ACCOUNTS: Account[] = L2_WHALE_ACCOUNTS_PRIVATE_KEYS.map((privateKey, index) => { + return new Account(privateKey, L2_WHALE_ACCOUNTS_ADDRESSES[index]); +}); + +const config: Config = { + L1: { + rpcUrl: L1_RPC_URL, + chainId: L1_CHAIN_ID, + lineaRollupAddress: "0x2A5CDCfc38856e2590E9Bd32F54Fa348e5De5f48", + accountManager: new EnvironmentBasedAccountManager( + new ethers.JsonRpcProvider(L1_RPC_URL.toString()), + L1_WHALE_ACCOUNTS, + L1_CHAIN_ID, + ), + dummyContractAddress: "", + }, + L2: { + rpcUrl: L2_RPC_URL, + chainId: L2_CHAIN_ID, + l2MessageServiceAddress: "0x33bf916373159A8c1b54b025202517BfDbB7863D", + accountManager: new EnvironmentBasedAccountManager( + new ethers.JsonRpcProvider(L2_RPC_URL.toString()), + L2_WHALE_ACCOUNTS, + L2_CHAIN_ID, + ), + dummyContractAddress: "", + }, +}; + +export default config; diff --git a/e2e/src/config/tests-config/environments/local.ts b/e2e/src/config/tests-config/environments/local.ts new file mode 100644 index 00000000..c4607eed --- /dev/null +++ b/e2e/src/config/tests-config/environments/local.ts @@ -0,0 +1,44 @@ +import { ethers } from "ethers"; +import path from "path"; +import { GenesisBasedAccountManager } from "../accounts/genesis-based-account-manager"; +import { Config } from "../types"; + +const L1_RPC_URL = new URL("http://localhost:8445"); +const L2_RPC_URL = new URL("http://localhost:8845"); +const SHOMEI_ENDPOINT = new URL("http://localhost:8998"); +const SHOMEI_FRONTEND_ENDPOINT = new URL("http://localhost:8889"); +const SEQUENCER_ENDPOINT = new URL("http://localhost:8545"); + +const config: Config = { + L1: { + rpcUrl: L1_RPC_URL, + chainId: 31648428, + lineaRollupAddress: "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9", + dummyContractAddress: "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9", + accountManager: new GenesisBasedAccountManager( + new ethers.JsonRpcProvider(L1_RPC_URL.toString()), + path.resolve( + process.env.LOCAL_L1_GENESIS || + path.resolve(__dirname, "../../../../..", "docker/config/l1-node/el", "genesis.json"), + ), + ), + }, + L2: { + rpcUrl: L2_RPC_URL, + chainId: 1337, + l2MessageServiceAddress: "0xe537D669CA013d86EBeF1D64e40fC74CADC91987", + dummyContractAddress: "0x2f6dAaF8A81AB675fbD37Ca6Ed5b72cf86237453", + accountManager: new GenesisBasedAccountManager( + new ethers.JsonRpcProvider(L2_RPC_URL.toString()), + path.resolve( + process.env.LOCAL_L2_GENESIS || + path.resolve(__dirname, "../../../../..", "docker/config", "linea-local-dev-genesis-PoA.json"), + ), + ), + shomeiEndpoint: SHOMEI_ENDPOINT, + shomeiFrontendEndpoint: SHOMEI_FRONTEND_ENDPOINT, + sequencerEndpoint: SEQUENCER_ENDPOINT, + }, +}; + +export default config; diff --git a/e2e/src/config/tests-config/environments/sepolia.ts b/e2e/src/config/tests-config/environments/sepolia.ts new file mode 100644 index 00000000..c9fb33f3 --- /dev/null +++ b/e2e/src/config/tests-config/environments/sepolia.ts @@ -0,0 +1,48 @@ +import { ethers } from "ethers"; +import { EnvironmentBasedAccountManager } from "../accounts/environment-based-account-manager"; +import Account from "../accounts/account"; +import { Config } from "../types"; + +const L1_RPC_URL = new URL(`https://sepolia.infura.io/v3/${process.env.INFURA_PROJECT_ID}`); +const L2_RPC_URL = new URL(`https://linea-sepolia.infura.io/v3/${process.env.INFURA_PROJECT_ID}`); +const L1_CHAIN_ID = 11155111; +const L2_CHAIN_ID = 59141; +const L1_WHALE_ACCOUNTS_PRIVATE_KEYS: string[] = process.env.L1_WHALE_ACCOUNTS_PRIVATE_KEYS?.split(",") ?? []; +const L2_WHALE_ACCOUNTS_PRIVATE_KEYS: string[] = process.env.L2_WHALE_ACCOUNTS_PRIVATE_KEYS?.split(",") ?? []; +const L1_WHALE_ACCOUNTS_ADDRESSES: string[] = process.env.L1_WHALE_ACCOUNTS_ADDRESSES?.split(",") ?? []; +const L2_WHALE_ACCOUNTS_ADDRESSES: string[] = process.env.L2_WHALE_ACCOUNTS_ADDRESSES?.split(",") ?? []; + +const L1_WHALE_ACCOUNTS: Account[] = L1_WHALE_ACCOUNTS_PRIVATE_KEYS.map((privateKey, index) => { + return new Account(privateKey, L1_WHALE_ACCOUNTS_ADDRESSES[index]); +}); + +const L2_WHALE_ACCOUNTS: Account[] = L2_WHALE_ACCOUNTS_PRIVATE_KEYS.map((privateKey, index) => { + return new Account(privateKey, L2_WHALE_ACCOUNTS_ADDRESSES[index]); +}); + +const config: Config = { + L1: { + rpcUrl: L1_RPC_URL, + chainId: L1_CHAIN_ID, + lineaRollupAddress: "0xB218f8A4Bc926cF1cA7b3423c154a0D627Bdb7E5", + accountManager: new EnvironmentBasedAccountManager( + new ethers.JsonRpcProvider(L1_RPC_URL.toString()), + L1_WHALE_ACCOUNTS, + L1_CHAIN_ID, + ), + dummyContractAddress: "", + }, + L2: { + rpcUrl: L2_RPC_URL, + chainId: L2_CHAIN_ID, + l2MessageServiceAddress: "0x971e727e956690b9957be6d51Ec16E73AcAC83A7", + accountManager: new EnvironmentBasedAccountManager( + new ethers.JsonRpcProvider(L2_RPC_URL.toString()), + L2_WHALE_ACCOUNTS, + L2_CHAIN_ID, + ), + dummyContractAddress: "", + }, +}; + +export default config; diff --git a/e2e/src/config/tests-config/index.ts b/e2e/src/config/tests-config/index.ts new file mode 100644 index 00000000..639ed63b --- /dev/null +++ b/e2e/src/config/tests-config/index.ts @@ -0,0 +1,26 @@ +import TestSetup from "./setup"; +import localConfig from "./environments/local"; +import devConfig from "./environments/dev"; +import sepoliaConfig from "./environments/sepolia"; + +import { Config } from "./types"; + +const testEnv = process.env.TEST_ENV || "local"; // Default to local environment + +let config: Config; + +switch (testEnv) { + case "dev": + config = devConfig; + break; + case "sepolia": + config = sepoliaConfig; + break; + case "local": + default: + config = localConfig; + break; +} +const setup = new TestSetup(config); + +export { setup as config }; diff --git a/e2e/src/config/tests-config/setup.ts b/e2e/src/config/tests-config/setup.ts new file mode 100644 index 00000000..d54879ba --- /dev/null +++ b/e2e/src/config/tests-config/setup.ts @@ -0,0 +1,97 @@ +import { JsonRpcProvider, Wallet } from "ethers"; +import { Config } from "./types"; +import { + DummyContract, + DummyContract__factory, + L2MessageService, + L2MessageService__factory, + LineaRollup, + LineaRollup__factory, +} from "../../typechain"; +import { AccountManager } from "./accounts/account-manager"; + +export default class TestSetup { + constructor(private readonly config: Config) {} + + public getL1Provider(): JsonRpcProvider { + return new JsonRpcProvider(this.config.L1.rpcUrl.toString()); + } + + public getL2Provider(): JsonRpcProvider { + return new JsonRpcProvider(this.config.L2.rpcUrl.toString()); + } + + public getL1ChainId(): number { + return this.config.L1.chainId; + } + + public getL2ChainId(): number { + return this.config.L2.chainId; + } + + public getShomeiEndpoint(): URL | undefined { + return this.config.L2.shomeiEndpoint; + } + + public getShomeiFrontendEndpoint(): URL | undefined { + return this.config.L2.shomeiFrontendEndpoint; + } + + public getSequencerEndpoint(): URL | undefined { + return this.config.L2.sequencerEndpoint; + } + + public getLineaRollupContract(signer?: Wallet): LineaRollup { + const lineaRollup: LineaRollup = LineaRollup__factory.connect( + this.config.L1.lineaRollupAddress, + this.getL1Provider(), + ); + + if (signer) { + return lineaRollup.connect(signer); + } + + return lineaRollup; + } + + public getL2MessageServiceContract(signer?: Wallet): L2MessageService { + const l2MessageService: L2MessageService = L2MessageService__factory.connect( + this.config.L2.l2MessageServiceAddress, + this.getL2Provider(), + ); + + if (signer) { + return l2MessageService.connect(signer); + } + + return l2MessageService; + } + + public getL1DummyContract(signer?: Wallet): DummyContract { + const dummyContract = DummyContract__factory.connect(this.config.L1.dummyContractAddress, this.getL1Provider()); + + if (signer) { + return dummyContract.connect(signer); + } + + return dummyContract; + } + + public getL2DummyContract(signer?: Wallet): DummyContract { + const dummyContract = DummyContract__factory.connect(this.config.L2.dummyContractAddress, this.getL2Provider()); + + if (signer) { + return dummyContract.connect(signer); + } + + return dummyContract; + } + + public getL1AccountManager(): AccountManager { + return this.config.L1.accountManager; + } + + public getL2AccountManager(): AccountManager { + return this.config.L2.accountManager; + } +} diff --git a/e2e/src/config/tests-config/types.ts b/e2e/src/config/tests-config/types.ts new file mode 100644 index 00000000..832ca0ad --- /dev/null +++ b/e2e/src/config/tests-config/types.ts @@ -0,0 +1,24 @@ +import { AccountManager } from "./accounts/account-manager"; + +export type BaseConfig = { + rpcUrl: URL; + chainId: number; + accountManager: AccountManager; + dummyContractAddress: string; +}; + +export type L1Config = BaseConfig & { + lineaRollupAddress: string; +}; + +export type L2Config = BaseConfig & { + l2MessageServiceAddress: string; + shomeiEndpoint?: URL; + shomeiFrontendEndpoint?: URL; + sequencerEndpoint?: URL; +}; + +export type Config = { + L1: L1Config; + L2: L2Config; +}; diff --git a/e2e/src/index.ordered-test.ts b/e2e/src/index.ordered-test.ts deleted file mode 100644 index ac1c6baa..00000000 --- a/e2e/src/index.ordered-test.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Here we want to guarantee the running order of test files -// to minimize timeout errors in ci pipeline -import submissionAndFinalizationTestSuite from "./submission-finalization.spec"; -import layer2TestSuite from "./l2.spec"; -import messagingTestSuite from "./messaging.spec"; -import coordinatorRestartTestSuite from "./restart.spec"; - -messagingTestSuite("Messaging test suite"); -// NOTES: The coordinator restart test must not be run first in the sequence of tests. -coordinatorRestartTestSuite("Coordinator restart test suite"); -layer2TestSuite("Layer 2 test suite"); -submissionAndFinalizationTestSuite("Submission and finalization test suite"); diff --git a/e2e/src/l2.spec.ts b/e2e/src/l2.spec.ts index 71b5edce..c064e76f 100644 --- a/e2e/src/l2.spec.ts +++ b/e2e/src/l2.spec.ts @@ -1,339 +1,157 @@ -import { Wallet, ethers } from "ethers"; -import { describe, expect, it } from "@jest/globals"; -import { TransactionRequest } from "@ethersproject/providers"; -import { getAndIncreaseFeeData } from "./utils/helpers"; -import { RollupGetZkEVMBlockNumberClient, getEvents, wait } from "./utils/utils"; +import { JsonRpcProvider, ethers } from "ethers"; +import { beforeAll, describe, expect, it } from "@jest/globals"; +import { config } from "./config/tests-config"; +import { RollupGetZkEVMBlockNumberClient, etherToWei } from "./common/utils"; +import { TRANSACTION_CALLDATA_LIMIT } from "./common/constants"; -const layer2TestSuite = (title: string) => { - describe(title, () => { - describe("Transaction data size", () => { - it("Should revert if transaction data size is above the limit", async () => { - const account = new Wallet(L2_DEPLOYER_ACCOUNT_PRIVATE_KEY, l2Provider); - await expect( - dummyContract.connect(account).setPayload(ethers.utils.randomBytes(TRANSACTION_CALLDATA_LIMIT)), - ).rejects.toThrow("err: tx data is too large (in bytes)"); - }); +const l2AccountManager = config.getL2AccountManager(); - it("Should succeed if transaction data size is below the limit", async () => { - const account = new Wallet(L2_ACCOUNT_0_PRIVATE_KEY, l2Provider); +describe("Layer 2 test suite", () => { + let l2Provider: JsonRpcProvider; - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); + beforeAll(() => { + l2Provider = config.getL2Provider(); + }); - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(feeData); - const tx = await dummyContract.connect(account).setPayload(ethers.utils.randomBytes(1000), { - nonce, + it.concurrent("Should revert if transaction data size is above the limit", async () => { + const account = await l2AccountManager.generateAccount(); + const dummyContract = config.getL2DummyContract(account); + + await expect( + dummyContract.connect(account).setPayload(ethers.randomBytes(TRANSACTION_CALLDATA_LIMIT)), + ).rejects.toThrow("missing revert data"); + }); + + it.concurrent("Should succeed if transaction data size is below the limit", async () => { + const account = await l2AccountManager.generateAccount(); + const dummyContract = config.getL2DummyContract(account); + + const tx = await dummyContract.connect(account).setPayload(ethers.randomBytes(1000)); + + const receipt = await tx.wait(); + expect(receipt?.status).toEqual(1); + }); + + it.concurrent("Should successfully send a legacy transaction", async () => { + const account = await l2AccountManager.generateAccount(); + + const { gasPrice } = await l2Provider.getFeeData(); + + const receipt = await ( + await account.sendTransaction({ + type: 0, + to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", + gasPrice, + value: etherToWei("0.01"), + gasLimit: "0x466124", + chainId: config.getL2ChainId(), + }) + ).wait(); + + expect(receipt).not.toBeNull(); + }); + + it.concurrent("Should successfully send an EIP1559 transaction", async () => { + const account = await l2AccountManager.generateAccount(); + + const { maxPriorityFeePerGas, maxFeePerGas } = await l2Provider.getFeeData(); + + const receipt = await ( + await account.sendTransaction({ + type: 2, + to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", + maxPriorityFeePerGas, + maxFeePerGas, + value: etherToWei("0.01"), + gasLimit: "21000", + chainId: config.getL2ChainId(), + }) + ).wait(); + + expect(receipt).not.toBeNull(); + }); + + it.concurrent("Should successfully send an access list transaction with empty access list", async () => { + const account = await l2AccountManager.generateAccount(); + + const { gasPrice } = await l2Provider.getFeeData(); + + const receipt = await ( + await account.sendTransaction({ + type: 1, + to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", + gasPrice, + value: etherToWei("0.01"), + gasLimit: "21000", + chainId: config.getL2ChainId(), + }) + ).wait(); + + expect(receipt).not.toBeNull(); + }); + + it.concurrent("Should successfully send an access list transaction with access list", async () => { + const account = await l2AccountManager.generateAccount(); + + const { gasPrice } = await l2Provider.getFeeData(); + const accessList = { + "0x8D97689C9818892B700e27F316cc3E41e17fBeb9": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001", + ], + }; + + const receipt = await ( + await account.sendTransaction({ + type: 1, + to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", + gasPrice, + value: etherToWei("0.01"), + gasLimit: "200000", + chainId: config.getL2ChainId(), + accessList: ethers.accessListify(accessList), + }) + ).wait(); + + expect(receipt).not.toBeNull(); + }); + + // TODO: discuss new frontend + it.skip("Shomei frontend always behind while conflating multiple blocks and proving on L1", async () => { + const account = await l2AccountManager.generateAccount(); + + const shomeiEndpoint = config.getShomeiEndpoint(); + const shomeiFrontendEndpoint = config.getShomeiFrontendEndpoint(); + + if (!shomeiEndpoint || !shomeiFrontendEndpoint) { + // Skip this test for dev and uat environments + return; + } + const shomeiClient = new RollupGetZkEVMBlockNumberClient(shomeiEndpoint); + const shomeiFrontendClient = new RollupGetZkEVMBlockNumberClient(shomeiFrontendEndpoint); + + for (let i = 0; i < 5; i++) { + const { maxPriorityFeePerGas, maxFeePerGas } = await l2Provider.getFeeData(); + + await ( + await account.sendTransaction({ + type: 2, + to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", maxPriorityFeePerGas, maxFeePerGas, - }); + value: etherToWei("0.01"), + gasLimit: "21000", + chainId: config.getL2ChainId(), + }) + ).wait(); - const receipt = await tx.wait(); - expect(receipt.status).toEqual(1); - }); - }); + const [shomeiBlock, shomeiFrontendBlock] = await Promise.all([ + shomeiClient.rollupGetZkEVMBlockNumber(), + shomeiFrontendClient.rollupGetZkEVMBlockNumber(), + ]); + console.log(`shomeiBlock = ${shomeiBlock}, shomeiFrontendBlock = ${shomeiFrontendBlock}`); - describe("Block conflation", () => { - it("Should succeed in conflating multiple blocks and proving on L1", async () => { - const account = new Wallet(L2_ACCOUNT_0_PRIVATE_KEY, l2Provider); - - const l2BlockNumbers: number[] = []; - for (let i = 0; i < 2; i++) { - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); - - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(feeData); - - const tx: TransactionRequest = { - type: 2, - nonce, - to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", - maxPriorityFeePerGas, - maxFeePerGas, - value: ethers.utils.parseEther("0.01"), - gasLimit: "21000", - chainId, - }; - - const signedTx = await account.signTransaction(tx); - - const receipt = await (await l2Provider.sendTransaction(signedTx)).wait(); - l2BlockNumbers.push(receipt.blockNumber); - } - - for (let i = 0; i < 2; i++) { - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); - - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(feeData); - - const tx = await dummyContract - .connect(account) - .setPayload(ethers.utils.randomBytes(TRANSACTION_CALLDATA_LIMIT / 2 - 1000), { - nonce, - maxPriorityFeePerGas, - maxFeePerGas, - }); - const receipt = await tx.wait(); - l2BlockNumbers.push(receipt.blockNumber); - } - - // These is just to push the L1 verified block forward to the max number in - // l2BlockNumbers as it's always 2 blocks behind the current L2 block number - for (let i = 0; i < 4; i++) { - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); - - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(feeData); - - const tx = await dummyContract.connect(account).setPayload(ethers.utils.randomBytes(10), { - nonce, - maxPriorityFeePerGas, - maxFeePerGas, - }); - await tx.wait(); - } - - const maxL2BlockNumber = Math.max(...l2BlockNumbers); - let currentL2BlockNumber = (await lineaRollup.currentL2BlockNumber()).toNumber(); - console.log(`maxL2BlockNumber: ${maxL2BlockNumber}`); - console.log(`l2BlockNumbers: ${l2BlockNumbers}`); - console.log(`initial currentL2BlockNumber: ${currentL2BlockNumber}`); - - while (maxL2BlockNumber > currentL2BlockNumber) { - await wait(2000); - currentL2BlockNumber = (await lineaRollup.currentL2BlockNumber()).toNumber(); - } - - const events = await getEvents(lineaRollup, lineaRollup.filters.BlocksVerificationDone()); - console.log(`Last blockVerification: ${JSON.stringify(events.at(-1))}`); - console.log(`currentL2BlockNumber: ${currentL2BlockNumber}`); - - expect(currentL2BlockNumber).toBeGreaterThanOrEqual(maxL2BlockNumber); - }, 300000); - - it("Should succeed in conflating transactions with large calldata with low gas into multiple L1 blocks", async () => { - const account = new Wallet(L2_ACCOUNT_0_PRIVATE_KEY, l2Provider); - const l2BlockNumbers: number[] = []; - const txList = []; - for (let i = 0; i < 4; i++) { - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address, "pending"), - l2Provider.getFeeData(), - ]); - - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(feeData); - - const tx = await dummyContract - .connect(account) - .setPayload(ethers.utils.randomBytes(TRANSACTION_CALLDATA_LIMIT / 2 - 1000), { - nonce, - maxPriorityFeePerGas, - maxFeePerGas, - }); - txList.push(tx); - } - - await Promise.all( - txList.map(async (tx) => { - const receipt = await tx.wait(); - l2BlockNumbers.push(receipt.blockNumber); - }), - ); - - // These is just to push the L1 verified block forward to the max number in - // l2BlockNumbers as it's always 2 blocks behind the current L2 block number - for (let i = 0; i < 4; i++) { - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); - - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(feeData); - - const tx = await dummyContract.connect(account).setPayload(ethers.utils.randomBytes(10), { - nonce, - maxPriorityFeePerGas, - maxFeePerGas, - }); - await tx.wait(); - } - - const maxL2BlockNumber = Math.max(...l2BlockNumbers); - let currentL2BlockNumber = (await lineaRollup.currentL2BlockNumber()).toNumber(); - console.log(`l2BlockNumbers: ${l2BlockNumbers}`); - console.log(`initial currentL2BlockNumber: ${currentL2BlockNumber}`); - - while (maxL2BlockNumber > currentL2BlockNumber) { - await wait(2000); - currentL2BlockNumber = (await lineaRollup.currentL2BlockNumber()).toNumber(); - } - - const events = await getEvents(lineaRollup, lineaRollup.filters.BlocksVerificationDone()); - console.log(`Last blockVerification: ${JSON.stringify(events.at(-1))}`); - console.log(`currentL2BlockNumber: ${currentL2BlockNumber}`); - - expect(currentL2BlockNumber).toBeGreaterThanOrEqual(maxL2BlockNumber); - }, 600000); - }); - - describe("Different transaction types", () => { - it("Should successfully send a legacy transaction", async () => { - const account = new Wallet(L2_DEPLOYER_ACCOUNT_PRIVATE_KEY, l2Provider); - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); - - const [, , gasPrice] = getAndIncreaseFeeData(feeData); - - const receipt = await ( - await account.sendTransaction({ - type: 0, - nonce, - to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", - gasPrice, - value: ethers.utils.parseEther("0.01"), - gasLimit: "0x466124", - chainId, - }) - ).wait(); - - expect(receipt).not.toBeNull(); - }); - - it("Should successfully send an EIP1559 transaction", async () => { - const account = new Wallet(L2_DEPLOYER_ACCOUNT_PRIVATE_KEY, l2Provider); - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); - - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(feeData); - const receipt = await ( - await account.sendTransaction({ - type: 2, - nonce, - to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", - maxPriorityFeePerGas, - maxFeePerGas, - value: ethers.utils.parseEther("0.01"), - gasLimit: "21000", - chainId, - }) - ).wait(); - - expect(receipt).not.toBeNull(); - }); - - it("Should successfully send an access list transaction with empty access list", async () => { - const account = new Wallet(L2_DEPLOYER_ACCOUNT_PRIVATE_KEY, l2Provider); - - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); - - const [, , gasPrice] = getAndIncreaseFeeData(feeData); - - const receipt = await ( - await account.sendTransaction({ - type: 1, - nonce, - to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", - gasPrice, - value: ethers.utils.parseEther("0.01"), - gasLimit: "21000", - chainId, - }) - ).wait(); - - expect(receipt).not.toBeNull(); - }); - - it("Should successfully send an access list transaction with access list", async () => { - const account = new Wallet(L2_DEPLOYER_ACCOUNT_PRIVATE_KEY, l2Provider); - - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); - - const [, , gasPrice] = getAndIncreaseFeeData(feeData); - const accessList = { - "0x8D97689C9818892B700e27F316cc3E41e17fBeb9": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000001", - ], - }; - - const receipt = await ( - await account.sendTransaction({ - type: 1, - nonce, - to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", - gasPrice, - value: ethers.utils.parseEther("0.01"), - gasLimit: "200000", - chainId, - accessList: ethers.utils.accessListify(accessList), - }) - ).wait(); - - expect(receipt).not.toBeNull(); - }); - }); - - describe("Block finalization notifications", () => { - // TODO: discuss new frontend - it.skip("Shomei frontend always behind while conflating multiple blocks and proving on L1", async () => { - if (SHOMEI_ENDPOINT == null || SHOMEI_FRONTEND_ENDPOINT == null) { - // Skip this test for dev and uat environments - return; - } - const account = new Wallet(L2_ACCOUNT_0_PRIVATE_KEY, l2Provider); - const shomeiClient = new RollupGetZkEVMBlockNumberClient(SHOMEI_ENDPOINT); - const shomeiFrontendClient = new RollupGetZkEVMBlockNumberClient(SHOMEI_FRONTEND_ENDPOINT); - - for (let i = 0; i < 5; i++) { - const [nonce, feeData] = await Promise.all([ - l2Provider.getTransactionCount(account.address), - l2Provider.getFeeData(), - ]); - - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(feeData); - - await ( - await account.sendTransaction({ - type: 2, - nonce, - to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", - maxPriorityFeePerGas, - maxFeePerGas, - value: ethers.utils.parseEther("0.01"), - gasLimit: "21000", - chainId, - }) - ).wait(); - - const [shomeiBlock, shomeiFrontendBlock] = await Promise.all([ - shomeiClient.rollupGetZkEVMBlockNumber(), - shomeiFrontendClient.rollupGetZkEVMBlockNumber(), - ]); - console.log(`shomeiBlock = ${shomeiBlock}, shomeiFrontendBlock = ${shomeiFrontendBlock}`); - - expect(shomeiBlock).toBeGreaterThan(shomeiFrontendBlock); - } - }, 300000); - }); - }); -}; - -export default layer2TestSuite; + expect(shomeiBlock).toBeGreaterThan(shomeiFrontendBlock); + } + }, 150_000); +}); diff --git a/e2e/src/messaging.spec.ts b/e2e/src/messaging.spec.ts index 035906bf..722531d4 100644 --- a/e2e/src/messaging.spec.ts +++ b/e2e/src/messaging.spec.ts @@ -1,129 +1,211 @@ -import { Wallet, ethers } from "ethers"; -import { beforeAll, describe, expect, it } from "@jest/globals"; -import { - encodeFunctionCall, - sendTransactionsToGenerateTrafficWithInterval, - waitForEvents -} from "./utils/utils"; -import { getAndIncreaseFeeData } from "./utils/helpers"; -import { MESSAGE_SENT_EVENT_SIGNATURE } from "./utils/constants"; +import { ethers, Wallet } from "ethers"; +import { describe, expect, it } from "@jest/globals"; +import { config } from "./config/tests-config"; +import { encodeFunctionCall, etherToWei, waitForEvents } from "./common/utils"; +import { MESSAGE_SENT_EVENT_SIGNATURE } from "./common/constants"; -const messagingTestSuite = (title: string) => { - describe(title, () => { - let l1Account: Wallet; - let l2Account0: Wallet; - let l2AccountForLiveness: Wallet; +async function sendL1ToL2Message({ + l1Account, + l2Account, + withCalldata = false, +}: { + l1Account: Wallet; + l2Account: Wallet; + withCalldata: boolean; +}) { + const dummyContract = config.getL2DummyContract(l2Account); + const lineaRollup = config.getLineaRollupContract(l1Account); - beforeAll(() => { - l1Account = new Wallet(L1_ACCOUNT_0_PRIVATE_KEY, l1Provider); - l2Account0 = new Wallet(L2_ACCOUNT_0_PRIVATE_KEY, l2Provider); - l2AccountForLiveness = new Wallet(L2_ACCOUNT_1_PRIVATE_KEY, l2Provider); - }); + const valueAndFee = etherToWei("1.1"); + const calldata = withCalldata + ? encodeFunctionCall(dummyContract.interface, "setPayload", [ethers.randomBytes(100)]) + : "0x"; + const destinationAddress = withCalldata + ? await dummyContract.getAddress() + : "0x8D97689C9818892B700e27F316cc3E41e17fBeb9"; - describe("Message Service L1 -> L2", () => { - it.each([ - { - subTitle: "with calldata", - withCalldata: true, - }, - { - subTitle: "without calldata", - withCalldata: false, - }, - ])( - "Should send a transaction $subTitle to L1 message service, be successfully claimed it on L2", - async ({ withCalldata }) => { - const valueAndFee = ethers.utils.parseEther("1.1"); - const calldata = withCalldata - ? encodeFunctionCall(dummyContract.interface, "setPayload", [ethers.utils.randomBytes(100)]) - : "0x"; - const destinationAddress = withCalldata - ? dummyContract.address - : "0x8D97689C9818892B700e27F316cc3E41e17fBeb9"; - - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(await l1Provider.getFeeData()); - const nonce = await l1Provider.getTransactionCount(l1Account.address, "pending"); - const tx = await lineaRollup.connect(l1Account).sendMessage(destinationAddress, valueAndFee, calldata, { - value: valueAndFee, - nonce: nonce, - maxPriorityFeePerGas: maxPriorityFeePerGas, - maxFeePerGas: maxFeePerGas, - }); - - const receipt = await tx.wait(); - - console.log("Moving the L2 chain forward to trigger anchoring..."); - const intervalId = await sendTransactionsToGenerateTrafficWithInterval(l2AccountForLiveness); - - const [messageSentEvent] = receipt.logs.filter((log) => log.topics[0] === MESSAGE_SENT_EVENT_SIGNATURE); - const messageHash = messageSentEvent.topics[3]; - console.log(`L1 message sent: messageHash=${messageHash} transaction=${JSON.stringify(tx)}`); - - console.log("Waiting for MessageClaimed event on L2."); - const [messageClaimedEvent] = await waitForEvents( - l2MessageService, - l2MessageService.filters.MessageClaimed(messageHash), - ); - clearInterval(intervalId); - console.log(`Message claimed on L2: ${JSON.stringify(messageClaimedEvent)}`); - expect(messageClaimedEvent).toBeDefined(); - }, - 300_000, - ); - }); - - describe("Message Service L2 -> L1", () => { - it.each([ - { - subTitle: "with calldata", - withCalldata: true, - }, - { - subTitle: "without calldata", - withCalldata: false, - }, - ])( - "Should send a transaction $subTitle to L2 message service, be successfully claimed it on L1", - async ({ withCalldata }) => { - const valueAndFee = ethers.utils.parseEther("0.001"); - const calldata = withCalldata - ? encodeFunctionCall(l1DummyContract.interface, "setPayload", [ethers.utils.randomBytes(100)]) - : "0x"; - - const destinationAddress = withCalldata ? l1DummyContract.address : l1Account.address; - const nonce = await l2Provider.getTransactionCount(l2Account0.address, "pending"); - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(await l2Provider.getFeeData()); - - const tx = await l2MessageService.connect(l2Account0).sendMessage(destinationAddress, valueAndFee, calldata, { - value: valueAndFee, - nonce: nonce, - maxPriorityFeePerGas, - maxFeePerGas, - }); - - const receipt = await tx.wait(); - - const [messageSentEvent] = receipt.logs.filter((log) => log.topics[0] === MESSAGE_SENT_EVENT_SIGNATURE); - const messageHash = messageSentEvent.topics[3]; - console.log(`L2 message sent: messageHash=${messageHash} transaction=${JSON.stringify(tx)}`); - - console.log("Moving the L2 chain forward to trigger conflation..."); - const intervalId = await sendTransactionsToGenerateTrafficWithInterval(l2AccountForLiveness); - - console.log("Waiting for MessageClaimed event on L1."); - const [messageClaimedEvent] = await waitForEvents( - lineaRollup, - lineaRollup.filters.MessageClaimed(messageHash) - ); - clearInterval(intervalId); - - console.log(`Message claimed on L1: ${JSON.stringify(messageClaimedEvent)}`); - expect(messageClaimedEvent).toBeDefined(); - }, - 300_000, - ); - }); + const l1Provider = config.getL1Provider(); + const { maxPriorityFeePerGas, maxFeePerGas } = await l1Provider.getFeeData(); + const nonce = await l1Provider.getTransactionCount(l1Account.address, "pending"); + const tx = await lineaRollup.sendMessage(destinationAddress, valueAndFee, calldata, { + value: valueAndFee, + nonce, + maxPriorityFeePerGas, + maxFeePerGas, }); -}; -export default messagingTestSuite; + let receipt = await tx.wait(); + while (!receipt) { + console.log("Waiting for transaction to be mined..."); + receipt = await tx.wait(); + } + + return { tx, receipt }; +} + +async function sendL2ToL1Message({ + l1Account, + l2Account, + withCalldata = false, +}: { + l1Account: Wallet; + l2Account: Wallet; + withCalldata: boolean; +}) { + const l2Provider = config.getL2Provider(); + const dummyContract = config.getL1DummyContract(l1Account); + const l2MessageService = config.getL2MessageServiceContract(l2Account); + + const valueAndFee = etherToWei("0.001"); + const calldata = withCalldata + ? encodeFunctionCall(dummyContract.interface, "setPayload", [ethers.randomBytes(100)]) + : "0x"; + + const destinationAddress = withCalldata ? await dummyContract.getAddress() : l1Account.address; + const nonce = await l2Provider.getTransactionCount(l2Account.address, "pending"); + const { maxPriorityFeePerGas, maxFeePerGas } = await l2Provider.getFeeData(); + + const tx = await l2MessageService.sendMessage(destinationAddress, valueAndFee, calldata, { + value: valueAndFee, + nonce, + maxPriorityFeePerGas, + maxFeePerGas, + }); + + let receipt = await tx.wait(); + + while (!receipt) { + console.log("Waiting for transaction to be mined..."); + receipt = await tx.wait(); + } + + return { tx, receipt }; +} + +const l1AccountManager = config.getL1AccountManager(); +const l2AccountManager = config.getL2AccountManager(); + +describe("Messaging test suite", () => { + it.concurrent( + "Should send a transaction with calldata to L1 message service, be successfully claimed it on L2", + async () => { + const [l1Account, l2Account] = await Promise.all([ + l1AccountManager.generateAccount(), + l2AccountManager.generateAccount(), + ]); + + const { tx, receipt } = await sendL1ToL2Message({ l1Account, l2Account, withCalldata: true }); + + const [messageSentEvent] = receipt.logs.filter((log) => log.topics[0] === MESSAGE_SENT_EVENT_SIGNATURE); + const messageHash = messageSentEvent.topics[3]; + console.log(`L1 message sent: messageHash=${messageHash} transaction=${JSON.stringify(tx)}`); + + console.log("Waiting for MessageClaimed event on L2."); + const l2MessageService = config.getL2MessageServiceContract(); + const [messageClaimedEvent] = await waitForEvents( + l2MessageService, + l2MessageService.filters.MessageClaimed(messageHash), + ); + + console.log(`Message claimed on L2: ${JSON.stringify(messageClaimedEvent)}`); + expect(messageClaimedEvent).toBeDefined(); + }, + 100_000, + ); + + it.concurrent( + "Should send a transaction without calldata to L1 message service, be successfully claimed it on L2", + async () => { + const [l1Account, l2Account] = await Promise.all([ + l1AccountManager.generateAccount(), + l2AccountManager.generateAccount(), + ]); + + const { tx, receipt } = await sendL1ToL2Message({ l1Account, l2Account, withCalldata: false }); + + const [messageSentEvent] = receipt.logs.filter((log) => log.topics[0] === MESSAGE_SENT_EVENT_SIGNATURE); + const messageHash = messageSentEvent.topics[3]; + console.log(`L1 message sent: messageHash=${messageHash} transaction=${JSON.stringify(tx)}`); + + console.log("Waiting for MessageClaimed event on L2."); + const l2MessageService = config.getL2MessageServiceContract(); + const [messageClaimedEvent] = await waitForEvents( + l2MessageService, + l2MessageService.filters.MessageClaimed(messageHash), + ); + console.log(`Message claimed on L2: ${JSON.stringify(messageClaimedEvent)}`); + expect(messageClaimedEvent).toBeDefined(); + }, + 100_000, + ); + + it.concurrent( + "Should send a transaction with calldata to L2 message service, be successfully claimed it on L1", + async () => { + const [l1Account, l2Account] = await Promise.all([ + l1AccountManager.generateAccount(), + l2AccountManager.generateAccount(), + ]); + + const lineaRollup = config.getLineaRollupContract(); + const { tx, receipt } = await sendL2ToL1Message({ l1Account, l2Account, withCalldata: true }); + + const [messageSentEvent] = receipt.logs.filter((log) => log.topics[0] === MESSAGE_SENT_EVENT_SIGNATURE); + const messageHash = messageSentEvent.topics[3]; + console.log(`L2 message sent: messageHash=${messageHash} transaction=${JSON.stringify(tx)}`); + + console.log(`Waiting for L2MessagingBlockAnchored... with blockNumber=${messageSentEvent.blockNumber}`); + await waitForEvents( + lineaRollup, + lineaRollup.filters.L2MessagingBlockAnchored(messageSentEvent.blockNumber), + 1_000, + ); + + console.log("Waiting for MessageClaimed event on L1."); + const [messageClaimedEvent] = await waitForEvents( + lineaRollup, + lineaRollup.filters.MessageClaimed(messageHash), + 1_000, + ); + + console.log(`Message claimed on L1: ${JSON.stringify(messageClaimedEvent)}`); + expect(messageClaimedEvent).toBeDefined(); + }, + 150_000, + ); + + it.concurrent( + "Should send a transaction without calldata to L2 message service, be successfully claimed it on L1", + async () => { + const [l1Account, l2Account] = await Promise.all([ + l1AccountManager.generateAccount(), + l2AccountManager.generateAccount(), + ]); + + const lineaRollup = config.getLineaRollupContract(); + const { tx, receipt } = await sendL2ToL1Message({ l1Account, l2Account, withCalldata: false }); + + const [messageSentEvent] = receipt.logs.filter((log) => log.topics[0] === MESSAGE_SENT_EVENT_SIGNATURE); + const messageHash = messageSentEvent.topics[3]; + console.log(`L2 message sent: messageHash=${messageHash} transaction=${JSON.stringify(tx)}`); + + console.log(`Waiting for L2MessagingBlockAnchored... with blockNumber=${messageSentEvent.blockNumber}`); + await waitForEvents( + lineaRollup, + lineaRollup.filters.L2MessagingBlockAnchored(messageSentEvent.blockNumber), + 1_000, + ); + + console.log("Waiting for MessageClaimed event on L1."); + const [messageClaimedEvent] = await waitForEvents( + lineaRollup, + lineaRollup.filters.MessageClaimed(messageHash), + 1_000, + ); + + console.log(`Message claimed on L1: ${JSON.stringify(messageClaimedEvent)}`); + expect(messageClaimedEvent).toBeDefined(); + }, + 150_000, + ); +}); diff --git a/e2e/src/restart.spec.ts b/e2e/src/restart.spec.ts index 57ab3e1a..9f828bf0 100644 --- a/e2e/src/restart.spec.ts +++ b/e2e/src/restart.spec.ts @@ -1,53 +1,73 @@ -import {describe, expect, it} from "@jest/globals"; +import { describe, expect, it } from "@jest/globals"; import { - getEvents, execDockerCommand, waitForEvents, getMessageSentEventFromLogs, sendMessage, - sendTransactionsToGenerateTrafficWithInterval, -} from "./utils/utils"; -import {getAndIncreaseFeeData} from "./utils/helpers"; -import {Wallet, ethers} from "ethers"; + etherToWei, + wait, +} from "./common/utils"; +import { config } from "./config/tests-config"; -const coordinatorRestartTestSuite = (title: string) => { - describe(title, () => { - it("When the coordinator restarts it should resume blob submission and finalization", async () => { - const l2AccountForLiveness = new Wallet(L2_ACCOUNT_1_PRIVATE_KEY, l2Provider); +let testsWaitingForRestart = 0; +const TOTAL_TESTS_WAITING = 2; +let coordinatorHasRestarted = false; - console.log("Moving the L2 chain forward to trigger conflation..."); - const intervalId = await sendTransactionsToGenerateTrafficWithInterval(l2AccountForLiveness); +async function waitForCoordinatorRestart() { + testsWaitingForRestart += 1; + while (testsWaitingForRestart < TOTAL_TESTS_WAITING) { + console.log("Both tests have reached the restart point. Restarting coordinator..."); + await wait(1_000); + if (!coordinatorHasRestarted) { + coordinatorHasRestarted = true; + try { + await execDockerCommand("restart", "coordinator"); + console.log("Coordinator restarted."); + return; + } catch (error) { + console.error("Failed to restart coordinator:", error); + throw error; + } + } + } +} +describe("Coordinator restart test suite", () => { + it.concurrent( + "When the coordinator restarts it should resume blob submission and finalization", + async () => { + if (process.env.TEST_ENV !== "local") { + console.log("Skipping test because it's not running on a local environment."); + return; + } + const lineaRollup = config.getLineaRollupContract(); + const l1Provider = config.getL1Provider(); // await for a finalization to happen on L1 - await Promise.all([ + const [dataSubmittedEventsBeforeRestart, dataFinalizedEventsBeforeRestart] = await Promise.all([ waitForEvents(lineaRollup, lineaRollup.filters.DataSubmittedV2(), 0, "latest"), waitForEvents(lineaRollup, lineaRollup.filters.DataFinalized(), 0, "latest"), ]); - await execDockerCommand("stop", "coordinator"); - - const currentBlockNumberBeforeRestart = await l1Provider.getBlockNumber(); - const [dataSubmittedEventsBeforeRestart, dataFinalizedEventsBeforeRestart] = await Promise.all([ - getEvents(lineaRollup, lineaRollup.filters.DataSubmittedV2(), 0, currentBlockNumberBeforeRestart), - getEvents(lineaRollup, lineaRollup.filters.DataFinalized(), 0, currentBlockNumberBeforeRestart), - ]); - const lastDataSubmittedEventBeforeRestart = dataSubmittedEventsBeforeRestart.slice(-1)[0]; const lastDataFinalizedEventsBeforeRestart = dataFinalizedEventsBeforeRestart.slice(-1)[0]; // Just some sanity checks // Check that the coordinator has submitted and finalized data before the restart - expect(lastDataSubmittedEventBeforeRestart.args.endBlock.toNumber()).toBeGreaterThan(0) - expect(lastDataFinalizedEventsBeforeRestart.args.lastBlockFinalized.toNumber()).toBeGreaterThan(0) + expect(lastDataSubmittedEventBeforeRestart.args.endBlock).toBeGreaterThan(0n); + expect(lastDataFinalizedEventsBeforeRestart.args.lastBlockFinalized).toBeGreaterThan(0n); + + await waitForCoordinatorRestart(); - await execDockerCommand("start", "coordinator"); const currentBlockNumberAfterRestart = await l1Provider.getBlockNumber(); console.log("Waiting for DataSubmittedV2 event after coordinator restart..."); const [dataSubmittedV2EventAfterRestart] = await waitForEvents( lineaRollup, - lineaRollup.filters.DataSubmittedV2(null, lastDataSubmittedEventBeforeRestart.args.endBlock.add(1)), + lineaRollup.filters.DataSubmittedV2(), 1_000, currentBlockNumberAfterRestart, + "latest", + async (events) => + events.filter((event) => event.args.startBlock > lastDataSubmittedEventBeforeRestart.args.endBlock), ); console.log(`New DataSubmittedV2 event found: event=${JSON.stringify(dataSubmittedV2EventAfterRestart)}`); @@ -58,37 +78,48 @@ const coordinatorRestartTestSuite = (title: string) => { 1_000, currentBlockNumberAfterRestart, "latest", - async (events) => { - return events.filter((event) => - event.args.lastBlockFinalized.gt(lastDataFinalizedEventsBeforeRestart.args.lastBlockFinalized), - ); - }, + async (events) => + events.filter( + (event) => event.args.lastBlockFinalized > lastDataFinalizedEventsBeforeRestart.args.lastBlockFinalized, + ), ); console.log(`New DataFinalized event found: event=${JSON.stringify(dataFinalizedEventAfterRestart)}`); - clearInterval(intervalId) - expect(dataFinalizedEventAfterRestart.args.lastBlockFinalized.toNumber()).toBeGreaterThan( - lastDataFinalizedEventsBeforeRestart.args.lastBlockFinalized.toNumber(), + expect(dataFinalizedEventAfterRestart.args.lastBlockFinalized).toBeGreaterThan( + lastDataFinalizedEventsBeforeRestart.args.lastBlockFinalized, ); - }, 300_000); + }, + 150_000, + ); - it("When the coordinator restarts it should resume anchoring", async () => { - const l1MessageSender = new Wallet(L1_ACCOUNT_0_PRIVATE_KEY, l1Provider); - const l2AccountForLiveness = new Wallet(L2_ACCOUNT_1_PRIVATE_KEY, l2Provider); + it.concurrent( + "When the coordinator restarts it should resume anchoring", + async () => { + if (process.env.TEST_ENV !== "local") { + console.log("Skipping test because it's not running on a local environment."); + return; + } + + const l1Provider = config.getL1Provider(); + const l1MessageSender = await config.getL1AccountManager().generateAccount(); + + const lineaRollup = config.getLineaRollupContract(); + const l2MessageService = config.getL2MessageServiceContract(); // Send Messages L1 -> L2 - const messageFee = ethers.utils.parseEther("0.0001"); - const messageValue = ethers.utils.parseEther("0.0051"); + const messageFee = etherToWei("0.0001"); + const messageValue = etherToWei("0.0051"); const destinationAddress = "0x8D97689C9818892B700e27F316cc3E41e17fBeb9"; const l1MessagesPromises = []; let l1MessageSenderNonce = await l1Provider.getTransactionCount(l1MessageSender.address); - const l1Fees = getAndIncreaseFeeData(await l1Provider.getFeeData()); + const { maxPriorityFeePerGas, maxFeePerGas } = await l1Provider.getFeeData(); for (let i = 0; i < 5; i++) { l1MessagesPromises.push( sendMessage( - lineaRollup.connect(l1MessageSender), + l1MessageSender, + lineaRollup, { to: destinationAddress, fee: messageFee, @@ -97,8 +128,8 @@ const coordinatorRestartTestSuite = (title: string) => { { value: messageValue, nonce: l1MessageSenderNonce, - maxPriorityFeePerGas: l1Fees[0], - maxFeePerGas: l1Fees[1], + maxPriorityFeePerGas, + maxFeePerGas, }, ), ); @@ -112,15 +143,26 @@ const coordinatorRestartTestSuite = (title: string) => { const lastNewL1MessageNumber = l1Messages.slice(-1)[0].messageNumber; console.log(`Waiting L1->L2 anchoring messageNumber=${lastNewL1MessageNumber}`); - await waitForEvents(l2MessageService, l2MessageService.filters.RollingHashUpdated(lastNewL1MessageNumber), 1_000); + await waitForEvents( + l2MessageService, + l2MessageService.filters.RollingHashUpdated(), + 1_000, + 0, + "latest", + async (events) => { + return events.filter((event) => event.args.messageNumber >= lastNewL1MessageNumber); + }, + ); // Restart Coordinator - await execDockerCommand("restart", "coordinator"); + await waitForCoordinatorRestart(); + const l1Fees = await l1Provider.getFeeData(); // Send more messages L1 -> L2 for (let i = 0; i < 5; i++) { l1MessagesPromises.push( sendMessage( + l1MessageSender, lineaRollup.connect(l1MessageSender), { to: destinationAddress, @@ -130,8 +172,8 @@ const coordinatorRestartTestSuite = (title: string) => { { value: messageValue, nonce: l1MessageSenderNonce, - maxPriorityFeePerGas: l1Fees[0], - maxFeePerGas: l1Fees[1], + maxPriorityFeePerGas: l1Fees.maxPriorityFeePerGas, + maxFeePerGas: l1Fees.maxFeePerGas, }, ), ); @@ -141,33 +183,31 @@ const coordinatorRestartTestSuite = (title: string) => { const l1ReceiptsAfterRestart = await Promise.all(l1MessagesPromises); const l1MessagesAfterRestart = getMessageSentEventFromLogs(lineaRollup, l1ReceiptsAfterRestart); - console.log("Moving the L2 chain forward to trigger anchoring..."); - // Using 5 messages to give the coordinator time to restart - const intervalId = await sendTransactionsToGenerateTrafficWithInterval(l2AccountForLiveness); - // Wait for messages to be anchored on L2 const lastNewL1MessageNumberAfterRestart = l1MessagesAfterRestart.slice(-1)[0].messageNumber; console.log( - `Waiting L1->L2 anchoring after coordinator restart messageNumber=${lastNewL1MessageNumberAfterRestart}` + `Waiting L1->L2 anchoring after coordinator restart messageNumber=${lastNewL1MessageNumberAfterRestart}`, ); const [rollingHashUpdatedEventAfterRestart] = await waitForEvents( l2MessageService, l2MessageService.filters.RollingHashUpdated(lastNewL1MessageNumberAfterRestart), 1_000, + 0, + "latest", + async (events) => { + return events.filter((event) => event.args.messageNumber >= lastNewL1MessageNumberAfterRestart); + }, ); const [lastNewMessageRollingHashAfterRestart, lastAnchoredL1MessageNumberAfterRestart] = await Promise.all([ - lineaRollup.rollingHashes(lastNewL1MessageNumberAfterRestart), + lineaRollup.rollingHashes(rollingHashUpdatedEventAfterRestart.args.messageNumber), l2MessageService.lastAnchoredL1MessageNumber(), ]); - clearInterval(intervalId) - expect(lastNewMessageRollingHashAfterRestart).toEqual(rollingHashUpdatedEventAfterRestart.args.rollingHash); - expect(lastAnchoredL1MessageNumberAfterRestart).toEqual(lastNewL1MessageNumberAfterRestart); - }, 300_000); - }); -}; - -export default coordinatorRestartTestSuite; + expect(lastAnchoredL1MessageNumberAfterRestart).toEqual(rollingHashUpdatedEventAfterRestart.args.messageNumber); + }, + 150_000, + ); +}); diff --git a/e2e/src/submission-finalization.spec.ts b/e2e/src/submission-finalization.spec.ts index bac7888c..2b100b64 100644 --- a/e2e/src/submission-finalization.spec.ts +++ b/e2e/src/submission-finalization.spec.ts @@ -1,146 +1,125 @@ -import { beforeAll, describe, expect, it } from "@jest/globals"; -import { Wallet, ethers } from "ethers"; -import { OPERATOR_ROLE, ROLLING_HASH_UPDATED_EVENT_SIGNATURE, VERIFIER_SETTER_ROLE } from "./utils/constants"; -import { getAndIncreaseFeeData } from "./utils/helpers"; -import { MessageEvent } from "./utils/types"; -import { getMessageSentEventFromLogs, sendMessage, sendTransactionsWithInterval, waitForEvents, wait, getBlockByNumberOrBlockTag } from "./utils/utils"; +import { describe, expect, it } from "@jest/globals"; +import { JsonRpcProvider } from "ethers"; +import { + getMessageSentEventFromLogs, + sendMessage, + waitForEvents, + wait, + getBlockByNumberOrBlockTag, + etherToWei, +} from "./common/utils"; +import { config } from "./config/tests-config"; +import { LineaRollup } from "./typechain"; -const submissionAndFinalizationTestSuite = (title: string) => { - describe(title, () => { - let securityCouncil: Wallet; - let l1Messages: MessageEvent[]; - let l2Messages: MessageEvent[]; +describe("Submission and finalization test suite", () => { + let l1Provider: JsonRpcProvider; - beforeAll(async () => { - // Deploy new contracts implementation and grant roles - securityCouncil = new Wallet(SECURITY_COUNCIL_PRIVATE_KEY, l1Provider); - const securityCouncilNonce = await securityCouncil.getTransactionCount(); + beforeAll(() => { + l1Provider = config.getL1Provider(); + }); - const rolesTransactions = await Promise.all([ - lineaRollup - .connect(securityCouncil) - .grantRole(OPERATOR_ROLE, OPERATOR_1_ADDRESS, { nonce: securityCouncilNonce }), - lineaRollup - .connect(securityCouncil) - .grantRole(VERIFIER_SETTER_ROLE, securityCouncil.address, { nonce: securityCouncilNonce + 1 }), - ]); + const sendMessages = async () => { + const messageFee = etherToWei("0.0001"); + const messageValue = etherToWei("0.0051"); + const destinationAddress = "0x8D97689C9818892B700e27F316cc3E41e17fBeb9"; - await Promise.all(rolesTransactions.map((tx) => tx.wait())); - }); + const l1MessageSender = await config.getL1AccountManager().generateAccount(); + const lineaRollup = config.getLineaRollupContract(); - it("Send messages on L1 and L2", async () => { - const messageFee = ethers.utils.parseEther("0.0001"); - const messageValue = ethers.utils.parseEther("0.0051"); - const destinationAddress = "0x8D97689C9818892B700e27F316cc3E41e17fBeb9"; + console.log("Sending messages on L1"); - const l1MessageSender = new Wallet(L1_ACCOUNT_0_PRIVATE_KEY, l1Provider); - const l2MessageSender = new Wallet(L2_ACCOUNT_0_PRIVATE_KEY, l2Provider); + // Send L1 messages + const l1MessagesPromises = []; + // eslint-disable-next-line prefer-const + let [l1MessageSenderNonce, { maxPriorityFeePerGas, maxFeePerGas }] = await Promise.all([ + l1Provider.getTransactionCount(l1MessageSender.address), + l1Provider.getFeeData(), + ]); - console.log("Sending messages on L1 and L2..."); + for (let i = 0; i < 5; i++) { + l1MessagesPromises.push( + sendMessage( + l1MessageSender, + lineaRollup, + { + to: destinationAddress, + fee: messageFee, + calldata: "0x", + }, + { + value: messageValue, + nonce: l1MessageSenderNonce, + maxPriorityFeePerGas, + maxFeePerGas, + }, + ), + ); + l1MessageSenderNonce++; + } - // Send L1 messages - const l1MessagesPromises = []; - let l1MessageSenderNonce = await l1Provider.getTransactionCount(l1MessageSender.address); - const l1Fees = getAndIncreaseFeeData(await l1Provider.getFeeData()); + const l1Receipts = await Promise.all(l1MessagesPromises); - const l2MessagesPromises = []; - let l2MessageSenderNonce = await l2Provider.getTransactionCount(l2MessageSender.address); - const l2Fees = getAndIncreaseFeeData(await l2Provider.getFeeData()); + console.log("Messages sent on L1."); - for (let i = 0; i < 5; i++) { - l1MessagesPromises.push( - sendMessage( - lineaRollup.connect(l1MessageSender), - { - to: destinationAddress, - fee: messageFee, - calldata: "0x", - }, - { - value: messageValue, - nonce: l1MessageSenderNonce, - maxPriorityFeePerGas: l1Fees[0], - maxFeePerGas: l1Fees[1], - }, - ), - ); - l1MessageSenderNonce++; + // Extract message events + const l1Messages = getMessageSentEventFromLogs(lineaRollup, l1Receipts); - l2MessagesPromises.push( - sendMessage( - l2MessageService.connect(l2MessageSender), - { - to: destinationAddress, - fee: messageFee, - calldata: "0x", - }, - { - value: messageValue, - nonce: l2MessageSenderNonce, - maxPriorityFeePerGas: l2Fees[0], - maxFeePerGas: l2Fees[1], - }, - ), - ); - l2MessageSenderNonce++; + return { l1Messages, l1Receipts }; + }; + + async function getFinalizedL2BlockNumber(lineaRollup: LineaRollup) { + let blockNumber = null; + + while (!blockNumber) { + try { + blockNumber = await lineaRollup.currentL2BlockNumber({ blockTag: "finalized" }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } catch (error: any) { + console.log("No finalized block yet, retrying in 5 seconds..."); + await new Promise((resolve) => setTimeout(resolve, 5_000)); } + } - const l1Receipts = await Promise.all(l1MessagesPromises); - const l2Receipts = await Promise.all(l2MessagesPromises); + return blockNumber; + } - console.log("Messages sent on L1 and L2."); + it.concurrent( + "Check L2 anchoring", + async () => { + const lineaRollup = config.getLineaRollupContract(); + const l2MessageService = config.getL2MessageServiceContract(); - // Check that L1 messages emit RollingHashUpdated events - expect(l1Receipts.length).toBeGreaterThan(0); + const { l1Messages } = await sendMessages(); - const newL1MessagesRollingHashUpdatedLogs = l1Receipts - .flatMap((receipt) => receipt.logs) - .filter((log) => log.topics[0] === ROLLING_HASH_UPDATED_EVENT_SIGNATURE); - - expect(newL1MessagesRollingHashUpdatedLogs).toHaveLength(l1Receipts.length); - - // Check that there are L2 messages - expect(l2Receipts.length).toBeGreaterThan(0); - - l1Messages = getMessageSentEventFromLogs(lineaRollup, l1Receipts); - l2Messages = getMessageSentEventFromLogs(l2MessageService, l2Receipts); - }, 300_000); - - it("Check L2 anchoring", async () => { // Wait for the last L1->L2 message to be anchored on L2 const lastNewL1MessageNumber = l1Messages.slice(-1)[0].messageNumber; console.log("Waiting for the anchoring using rolling hash..."); const [rollingHashUpdatedEvent] = await waitForEvents( l2MessageService, - l2MessageService.filters.RollingHashUpdated(lastNewL1MessageNumber), + l2MessageService.filters.RollingHashUpdated(), 1_000, + 0, + "latest", + async (events) => events.filter((event) => event.args.messageNumber >= lastNewL1MessageNumber), ); const [lastNewMessageRollingHash, lastAnchoredL1MessageNumber] = await Promise.all([ - lineaRollup.rollingHashes(lastNewL1MessageNumber), + lineaRollup.rollingHashes(rollingHashUpdatedEvent.args.messageNumber), l2MessageService.lastAnchoredL1MessageNumber(), ]); expect(lastNewMessageRollingHash).toEqual(rollingHashUpdatedEvent.args.rollingHash); - expect(lastAnchoredL1MessageNumber).toEqual(lastNewL1MessageNumber); + expect(lastAnchoredL1MessageNumber).toEqual(rollingHashUpdatedEvent.args.messageNumber); console.log("New anchoring using rolling hash done."); - }, 300_000); + }, + 150_000, + ); - it("Check L1 data submission and finalization", async () => { - // Send transactions on L2 in the background to make the L2 chain moving forward - const l2MessageSender = new Wallet(L2_ACCOUNT_0_PRIVATE_KEY, l2Provider); - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(await l2Provider.getFeeData()); - const sendTransactionsPromise = sendTransactionsWithInterval( - l2MessageSender, - { - to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", - value: ethers.utils.parseEther("0.0001"), - maxPriorityFeePerGas, - maxFeePerGas, - }, - 5_000, - ); + it.concurrent( + "Check L1 data submission and finalization", + async () => { + const lineaRollup = config.getLineaRollupContract(); const [currentL2BlockNumber, startingRootHash] = await Promise.all([ lineaRollup.currentL2BlockNumber(), @@ -149,13 +128,17 @@ const submissionAndFinalizationTestSuite = (title: string) => { console.log("Waiting for data submission used to finalize with proof..."); // Waiting for data submission starting from migration block number - await waitForEvents(lineaRollup, lineaRollup.filters.DataSubmittedV2(null, currentL2BlockNumber.add(1)), 1_000); + await waitForEvents( + lineaRollup, + lineaRollup.filters.DataSubmittedV2(undefined, currentL2BlockNumber + 1n), + 1_000, + ); console.log("Waiting for the first DataFinalized event with proof..."); // Waiting for first DataFinalized event with proof const [dataFinalizedEvent] = await waitForEvents( lineaRollup, - lineaRollup.filters.DataFinalized(null, startingRootHash), + lineaRollup.filters.DataFinalized(undefined, startingRootHash), 1_000, ); @@ -164,69 +147,47 @@ const submissionAndFinalizationTestSuite = (title: string) => { lineaRollup.stateRootHashes(dataFinalizedEvent.args.lastBlockFinalized), ]); - expect(lastBlockFinalized.toBigInt()).toBeGreaterThanOrEqual(dataFinalizedEvent.args.lastBlockFinalized.toBigInt()); + expect(lastBlockFinalized).toBeGreaterThanOrEqual(dataFinalizedEvent.args.lastBlockFinalized); expect(newStateRootHash).toEqual(dataFinalizedEvent.args.finalRootHash); expect(dataFinalizedEvent.args.withProof).toBeTruthy(); console.log("Finalization with proof done."); + }, + 150_000, + ); - clearInterval(sendTransactionsPromise); - }, 300_000); - - it( "Check L2 safe/finalized tag update on sequencer", async () => { - if (SEQUENCER_ENDPOINT == null) { - console.log("Skipped the \"Check L2 safe/finalized tag update on sequencer\" test"); + it.concurrent( + "Check L2 safe/finalized tag update on sequencer", + async () => { + const lineaRollup = config.getLineaRollupContract(); + const sequencerEndpoint = config.getSequencerEndpoint(); + if (!sequencerEndpoint) { + console.log('Skipped the "Check L2 safe/finalized tag update on sequencer" test'); return; } - const lastFinalizedL2BlockNumberOnL1 = (await lineaRollup.currentL2BlockNumber({ blockTag: "finalized" })).toNumber(); - console.log(`lastFinalizedL2BlockNumberOnL1=${lastFinalizedL2BlockNumberOnL1}`) - let safeL2BlockNumber = -1, finalizedL2BlockNumber = -1 - while (safeL2BlockNumber < lastFinalizedL2BlockNumberOnL1 || finalizedL2BlockNumber < lastFinalizedL2BlockNumberOnL1) { - safeL2BlockNumber = (await getBlockByNumberOrBlockTag(SEQUENCER_ENDPOINT, "safe")).number; - finalizedL2BlockNumber = (await getBlockByNumberOrBlockTag(SEQUENCER_ENDPOINT, "finalized")).number; + const lastFinalizedL2BlockNumberOnL1 = (await getFinalizedL2BlockNumber(lineaRollup)).toString(); + console.log(`lastFinalizedL2BlockNumberOnL1=${lastFinalizedL2BlockNumberOnL1}`); + + let safeL2BlockNumber = -1, + finalizedL2BlockNumber = -1; + while ( + safeL2BlockNumber < parseInt(lastFinalizedL2BlockNumberOnL1) || + finalizedL2BlockNumber < parseInt(lastFinalizedL2BlockNumberOnL1) + ) { + safeL2BlockNumber = (await getBlockByNumberOrBlockTag(sequencerEndpoint, "safe"))?.number || safeL2BlockNumber; + finalizedL2BlockNumber = + (await getBlockByNumberOrBlockTag(sequencerEndpoint, "finalized"))?.number || finalizedL2BlockNumber; await wait(1_000); } console.log(`safeL2BlockNumber=${safeL2BlockNumber} finalizedL2BlockNumber=${finalizedL2BlockNumber}`); - expect(safeL2BlockNumber).toBeGreaterThanOrEqual(lastFinalizedL2BlockNumberOnL1); - expect(finalizedL2BlockNumber).toBeGreaterThanOrEqual(lastFinalizedL2BlockNumberOnL1); + expect(safeL2BlockNumber).toBeGreaterThanOrEqual(parseInt(lastFinalizedL2BlockNumberOnL1)); + expect(finalizedL2BlockNumber).toBeGreaterThanOrEqual(parseInt(lastFinalizedL2BlockNumberOnL1)); console.log("L2 safe/finalized tag update on sequencer done."); - }, 300_000) - - it("Check L1 claiming", async () => { - // Send transactions on L2 in the background to make the L2 chain moving forward - const l2MessageSender = new Wallet(L2_ACCOUNT_0_PRIVATE_KEY, l2Provider); - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(await l2Provider.getFeeData()); - const sendTransactionsPromise = sendTransactionsWithInterval( - l2MessageSender, - { - to: "0x8D97689C9818892B700e27F316cc3E41e17fBeb9", - value: ethers.utils.parseEther("0.0001"), - maxPriorityFeePerGas, - maxFeePerGas, - }, - 1_000, - ); - - const { messageHash, messageNumber, blockNumber } = l2Messages[0]; - - console.log(`Waiting for L2MessagingBlockAnchored... with blockNumber=${blockNumber}`); - await waitForEvents(lineaRollup, lineaRollup.filters.L2MessagingBlockAnchored(blockNumber), 1_000); - - console.log("L2MessagingBlockAnchored event found."); - - await waitForEvents(lineaRollup, lineaRollup.filters.MessageClaimed(messageHash), 1_000); - - expect(await lineaRollup.isMessageClaimed(messageNumber)).toBeTruthy(); - - console.log("L1 claiming done."); - - clearInterval(sendTransactionsPromise); - }, 400_000); - }); -}; - -export default submissionAndFinalizationTestSuite; + }, + 150_000, + ); +}); diff --git a/e2e/src/utils/constants.dev.ts b/e2e/src/utils/constants.dev.ts deleted file mode 100644 index 88438d8a..00000000 --- a/e2e/src/utils/constants.dev.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { ethers } from "ethers"; -import * as dotenv from "dotenv"; -dotenv.config(); - -export const TRANSACTION_CALLDATA_LIMIT = 30000; -export const L1_RPC_URL = "https://l1-rpc.dev.zkevm.consensys.net/"; -export const L2_RPC_URL = "https://archive.dev.zkevm.consensys.net/"; -export const CHAIN_ID = 59139; - -export function getL1Provider() { - return new ethers.providers.JsonRpcProvider(L1_RPC_URL); -} - -export function getL2Provider() { - return new ethers.providers.JsonRpcProvider(L2_RPC_URL); -} - -export const DEPLOYER_ACCOUNT_PRIVATE_KEY = process.env.LOCAL_DEPLOYER_ACCOUNT_PRIVATE_KEY ?? ""; - -export const INITIAL_WITHDRAW_LIMIT = ethers.utils.parseEther("5"); - -export const ACCOUNT_0 = "0xc8c92fe825d8930b9357c006e0af160dfa727a62"; -export const ACCOUNT_0_PRIVATE_KEY = process.env.LOCAL_ACCOUNT_0_PRIVATE_KEY ?? ""; -export const ACCOUNT_1 = ""; - -export const OPERATOR_0 = "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"; -export const OPERATOR_0_PRIVATE_KEY = process.env.LOCAL_OPERATOR_0_PRIVATE_KEY ?? ""; - -export const LINEA_ROLLUP_CONTRACT_ADDRESS = "0xFE63fc3C8898F83B1c5F199133f89bDBA88B1C37"; -export const LINEA_ROLLUP_INITIAL_STATE_ROOT_HASH = - "0x0000000000000000000000000000000000000000000000000000000000000000"; -export const LINEA_ROLLUP_INITIAL_L2_BLOCK_NR = "123456"; -export const LINEA_ROLLUP_SECURITY_COUNCIL = OPERATOR_0; -export const LINEA_ROLLUP_OPERATORS = [OPERATOR_0]; -export const LINEA_ROLLUP_RATE_LIMIT_PERIOD = "86400"; //24Hours in seconds -export const LINEA_ROLLUP_RATE_LIMIT_AMOUNT = "1000000000000000000000"; //1000ETH - -export const TRANSACTION_DECODER_ADDRESS = ""; -export const PLONK_VERIFIER_ADDRESS = ""; -export const MESSAGE_SERVICE_ADDRESS = "0xa2d2C55e9B7054d9C4EA075Df35935BeA1693e27"; -export const DUMMY_CONTRACT_ADDRESS = ""; - -export const SHOMEI_ENDPOINT = null; -export const SHOMEI_FRONTEND_ENDPOINT = null; diff --git a/e2e/src/utils/constants.local.ts b/e2e/src/utils/constants.local.ts deleted file mode 100644 index 1f140e59..00000000 --- a/e2e/src/utils/constants.local.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { ethers } from "ethers"; -import * as dotenv from "dotenv"; -dotenv.config(); - -export const TRANSACTION_CALLDATA_LIMIT = 30000; -export const L1_RPC_URL = "http://localhost:8445"; -export const L2_RPC_URL = "http://localhost:8845"; -export const CHAIN_ID = 1337; - -export function getL1Provider() { - return new ethers.providers.JsonRpcProvider(L1_RPC_URL); -} - -export function getL2Provider() { - return new ethers.providers.JsonRpcProvider(L2_RPC_URL); -} - -// WARNING: FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE -export const L1_DEPLOYER_ACCOUNT_PRIVATE_KEY = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"; -// WARNING: FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE -export const L2_DEPLOYER_ACCOUNT_PRIVATE_KEY = "0x1dd171cec7e2995408b5513004e8207fe88d6820aeff0d82463b3e41df251aae"; - -export const INITIAL_WITHDRAW_LIMIT = ethers.utils.parseEther("5"); - -export const L1_ACCOUNT_0 = "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65"; -// WARNING: FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE -export const L1_ACCOUNT_0_PRIVATE_KEY = "0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a"; - -export const L2_ACCOUNT_0 = "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"; -// WARNING: FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE -export const L2_ACCOUNT_0_PRIVATE_KEY = "0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63"; -export const L2_ACCOUNT_1_PRIVATE_KEY = "0xc87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3"; - -export const OPERATOR_0 = "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"; -// WARNING: FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE -export const OPERATOR_0_PRIVATE_KEY = "0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d"; - -export const OPERATOR_1 = "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC"; -// WARNING: FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE -export const OPERATOR_1_PRIVATE_KEY = "0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a"; - -// WARNING: FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE -export const SECURITY_COUNCIL_PRIVATE_KEY = "0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6"; - -export const LINEA_ROLLUP_INITIAL_STATE_ROOT_HASH = - "0x0000000000000000000000000000000000000000000000000000000000000000"; -export const LINEA_ROLLUP_INITIAL_L2_BLOCK_NR = "123456"; -export const LINEA_ROLLUP_SECURITY_COUNCIL = OPERATOR_0; -export const LINEA_ROLLUP_OPERATORS = [OPERATOR_0]; -export const LINEA_ROLLUP_RATE_LIMIT_PERIOD = "86400"; //24Hours in seconds -export const LINEA_ROLLUP_RATE_LIMIT_AMOUNT = "1000000000000000000000"; //1000ETH - -export const LINEA_ROLLUP_CONTRACT_ADDRESS = "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9"; -export const MESSAGE_SERVICE_ADDRESS = "0xe537D669CA013d86EBeF1D64e40fC74CADC91987"; - -export const SHOMEI_ENDPOINT = new URL("http://localhost:8998"); -export const SHOMEI_FRONTEND_ENDPOINT = new URL("http://localhost:8889"); -export const SEQUENCER_ENDPOINT = new URL("http://localhost:8545") - -export const CONTRACT_GAS_OPTIMIZATION_SWITCH_BLOCK = 12; diff --git a/e2e/src/utils/constants.uat.ts b/e2e/src/utils/constants.uat.ts deleted file mode 100644 index bf45cbd6..00000000 --- a/e2e/src/utils/constants.uat.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { ethers } from "ethers"; -import * as dotenv from "dotenv"; -dotenv.config(); - -export const TRANSACTION_CALLDATA_LIMIT = 59000; -export const L1_RPC_URL = "https://goerli.infura.io/v3/" + process.env.UAT_L1_RPC_KEY; -export const L2_RPC_URL = "https://linea-goerli.infura.io/v3/" + process.env.UAT_L2_RPC_KEY; -export const CHAIN_ID = 59140; - -export function getL1Provider() { - return new ethers.providers.JsonRpcProvider(L1_RPC_URL); -} - -export function getL2Provider() { - return new ethers.providers.JsonRpcProvider(L2_RPC_URL); -} - -export const DEPLOYER_ACCOUNT_PRIVATE_KEY = process.env.UAT_DEPLOYER_ACCOUNT_PRIVATE_KEY ?? ""; - -export const INITIAL_WITHDRAW_LIMIT = ethers.utils.parseEther("5"); - -export const ACCOUNT_0 = "0x174634fbF3d3e243543c6F22102837A113DF9005"; -export const ACCOUNT_0_PRIVATE_KEY = process.env.UAT_ACCOUNT_0_PRIVATE_KEY ?? ""; - -export const ACCOUNT_1 = ""; - -export const OPERATOR_0 = "0xA2689249FAeAf6D84b6087A2970a20432b86A53e"; - -export const LINEA_ROLLUP_INITIAL_STATE_ROOT_HASH = - "0x0000000000000000000000000000000000000000000000000000000000000000"; -export const LINEA_ROLLUP_INITIAL_L2_BLOCK_NR = "123456"; -export const LINEA_ROLLUP_SECURITY_COUNCIL = OPERATOR_0; -export const LINEA_ROLLUP_OPERATORS = [OPERATOR_0]; -export const LINEA_ROLLUP_RATE_LIMIT_PERIOD = "86400"; //24Hours in seconds -export const LINEA_ROLLUP_RATE_LIMIT_AMOUNT = "1000000000000000000000"; //1000ETH - -export const LINEA_ROLLUP_CONTRACT_ADDRESS = "0x70BaD09280FD342D02fe64119779BC1f0791BAC2"; -export const MESSAGE_SERVICE_ADDRESS = "0xC499a572640B64eA1C8c194c43Bc3E19940719dC"; -export const DUMMY_CONTRACT_ADDRESS = "0x91614d09f5A8c87E28ab79D5eC48164DA0988319"; -export const L1_DUMMY_CONTRACT_ADDRESS = "0x75b33806dCdb0fC7BB06fd1121a3358a88EdC5E9"; - -export const SHOMEI_ENDPOINT = null; -export const SHOMEI_FRONTEND_ENDPOINT = null; diff --git a/e2e/src/utils/helpers.ts b/e2e/src/utils/helpers.ts deleted file mode 100644 index ba78d6fa..00000000 --- a/e2e/src/utils/helpers.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { BigNumber, ethers } from "ethers"; - -export function getAndIncreaseFeeData(feeData: ethers.providers.FeeData): [BigNumber, BigNumber, BigNumber] { - const maxPriorityFeePerGas = BigNumber.from((parseFloat(feeData.maxPriorityFeePerGas!.toString()) * 1.1).toFixed(0)); - const maxFeePerGas = BigNumber.from((parseFloat(feeData.maxFeePerGas!.toString()) * 1.1).toFixed(0)); - const gasPrice = BigNumber.from((parseFloat(feeData.gasPrice!.toString()) * 1.1).toFixed(0)); - return [maxPriorityFeePerGas, maxFeePerGas, gasPrice]; -} diff --git a/e2e/src/utils/utils.ts b/e2e/src/utils/utils.ts deleted file mode 100644 index 189547c6..00000000 --- a/e2e/src/utils/utils.ts +++ /dev/null @@ -1,288 +0,0 @@ -import { BlockTag } from "@ethersproject/providers"; -import * as fs from "fs"; -import assert from "assert"; -import {Contract, ContractReceipt, PayableOverrides, Wallet, ethers} from "ethers"; -import path from "path"; -import { exec } from "child_process"; -import { L2MessageService, LineaRollup } from "../typechain"; -import { TypedEvent, TypedEventFilter } from "../typechain/common"; -import { MessageEvent, SendMessageArgs } from "./types"; -import { getAndIncreaseFeeData } from "./helpers"; - -export const wait = (timeout: number) => new Promise((resolve) => setTimeout(resolve, timeout)); - -export function increaseDate(currentDate: Date, seconds: number): Date { - const newDate = new Date(currentDate.getTime()); - newDate.setSeconds(newDate.getSeconds() + seconds); - return newDate; -} - -export const subtractSecondsToDate = (date: Date, seconds: number): Date => { - const dateCopy = new Date(date); - dateCopy.setSeconds(date.getSeconds() - seconds); - return dateCopy; -}; - -export function getWallet(privateKey: string, provider: ethers.providers.JsonRpcProvider) { - return new ethers.Wallet(privateKey, provider); -} - -export function encodeFunctionCall(contractInterface: ethers.utils.Interface, functionName: string, args: unknown[]) { - return contractInterface.encodeFunctionData(functionName, args); -} - -export const generateKeccak256 = (types: string[], values: unknown[], packed?: boolean) => - ethers.utils.keccak256(encodeData(types, values, packed)); - -export const encodeData = (types: string[], values: unknown[], packed?: boolean) => { - if (packed) { - return ethers.utils.solidityPack(types, values); - } - return ethers.utils.defaultAbiCoder.encode(types, values); -}; - -export class RollupGetZkEVMBlockNumberClient { - private endpoint: URL; - private request = { - method: "post", - body: JSON.stringify({ - jsonrpc: "2.0", - method: "rollup_getZkEVMBlockNumber", - params: [], - id: 1, - }), - }; - - public constructor(endpoint: URL) { - this.endpoint = endpoint; - } - - public async rollupGetZkEVMBlockNumber(): Promise { - const response = await fetch(this.endpoint, this.request); - const data = await response.json(); - assert("result" in data); - return Number.parseInt(data.result); - } -} - -export async function getBlockByNumberOrBlockTag( - rpcUrl: URL, - blockTag: BlockTag -): Promise { - const provider = new ethers.providers.JsonRpcProvider(rpcUrl.href); - return provider.getBlock(blockTag) -} - -export async function getEvents( - contract: TContract, - eventFilter: TypedEventFilter, - fromBlock?: BlockTag, - toBlock?: BlockTag, - criteria?: (events: TEvent[]) => Promise, -): Promise> { - const events = await contract.queryFilter(eventFilter, fromBlock, toBlock); - - if (criteria) { - return await criteria(events); - } - - return events; -} - -export async function waitForEvents( - contract: TContract, - eventFilter: TypedEventFilter, - pollingInterval: number = 500, - fromBlock?: BlockTag, - toBlock?: BlockTag, - criteria?: (events: TEvent[]) => Promise, -): Promise { - let events = await getEvents(contract, eventFilter, fromBlock, toBlock, criteria); - - while (events.length === 0) { - events = await getEvents(contract, eventFilter, fromBlock, toBlock, criteria); - await wait(pollingInterval); - } - - return events; -} - -export function getFiles(directory: string, fileRegex: RegExp[]): string[] { - const files = fs.readdirSync(directory, { withFileTypes: true }); - const filteredFiles = files.filter((file) => fileRegex.map((regex) => regex.test(file.name)).includes(true)); - return filteredFiles.map((file) => fs.readFileSync(path.join(directory, file.name), "utf-8")); -} - -export async function waitForFile( - directory: string, - regex: RegExp, - pollingInterval: number, - timeout: number, - criteria?: (fileName: string) => boolean, -): Promise { - return new Promise((resolve, reject) => { - const interval = setInterval(() => { - fs.readdir(directory, (err, files) => { - if (err) { - clearInterval(interval); - clearTimeout(timeoutId); - reject(new Error(`Error reading directory: ${err}`)); - return; - } - - for (const file of files) { - if (regex.test(file) && (!criteria || criteria(file))) { - clearInterval(interval); - clearTimeout(timeoutId); - resolve(fs.readFileSync(path.join(directory, file), "utf-8")); - return; - } - } - }); - }, pollingInterval); - - const timeoutId = setTimeout(() => { - clearInterval(interval); - reject(new Error("File check timed out")); - }, timeout); - }); -} - -export function sendTransactionsWithInterval( - signer: Wallet, - transactionRequest: ethers.providers.TransactionRequest, - pollingInterval: number, -) { - return setInterval(async function () { - const tx = await signer.sendTransaction(transactionRequest); - await tx.wait(); - }, pollingInterval); -} - -export async function sendXTransactions( - signer: Wallet, - transactionRequest: ethers.providers.TransactionRequest, - numberOfTransactions: number, -) { - for (let i = 0; i < numberOfTransactions; i++) { - const tx = await signer.sendTransaction(transactionRequest); - await tx.wait(); - } -} - -export async function sendTransactionsToGenerateTrafficWithInterval( - signer: Wallet, - pollingInterval: number = 1000, -) { - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(await signer.provider.getFeeData()); - const transactionRequest = { - to: signer.address, - value: ethers.utils.parseEther("0.000001"), - maxPriorityFeePerGas: maxPriorityFeePerGas, - maxFeePerGas: maxFeePerGas, - } - - return setInterval(async function () { - const tx = await signer.sendTransaction(transactionRequest); - await tx.wait(); - }, pollingInterval); -} - -export function getMessageSentEventFromLogs( - contract: T, - receipts: ContractReceipt[], -): MessageEvent[] { - return receipts - .flatMap((receipt) => receipt.logs) - .filter((log) => log.topics[0] === "0xe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c") - .map((log) => { - const { args } = contract.interface.parseLog(log); - - return { - from: args._from, - to: args._to, - fee: args._fee, - value: args._value, - messageNumber: args._nonce, - calldata: args._calldata, - messageHash: args._messageHash, - blockNumber: log.blockNumber, - }; - }); -} - -export async function waitForMessageAnchoring( - contract: L2MessageService, - messageHash: string, - pollingInterval: number, -) { - let messageStatus = await contract.inboxL1L2MessageStatus(messageHash); - while (messageStatus.toNumber() === 0) { - messageStatus = await contract.inboxL1L2MessageStatus(messageHash); - await wait(pollingInterval); - } -} - -export const sendMessage = async ( - contract: T, - args: SendMessageArgs, - overrides?: PayableOverrides, -): Promise => { - const tx = await contract.sendMessage(args.to, args.fee, args.calldata, overrides); - return await tx.wait(); -}; - -export const sendMessagesForNSeconds = async ( - provider: ethers.providers.JsonRpcProvider, - signer: Wallet, - contract: T, - duration: number, - args: SendMessageArgs, - overrides?: PayableOverrides, -): Promise => { - let nonce = await provider.getTransactionCount(signer.address); - - const currentDate = new Date(); - const endDate = increaseDate(currentDate, duration); - - const sendMessagePromises: Promise[] = []; - let currentTime = new Date().getTime(); - - const [maxPriorityFeePerGas, maxFeePerGas] = getAndIncreaseFeeData(await provider.getFeeData()); - while (currentTime < endDate.getTime()) { - sendMessagePromises.push( - sendMessage(contract.connect(signer), args, { - ...overrides, - maxPriorityFeePerGas, - maxFeePerGas, - nonce, - }).catch(() => { - return null; - }), - ); - nonce++; - - if (sendMessagePromises.length % 10 === 0) { - await wait(10_000); - } - currentTime = new Date().getTime(); - } - - const result = (await Promise.all(sendMessagePromises)).filter((receipt) => receipt !== null) as ContractReceipt[]; - return result; -}; - -export async function execDockerCommand(command: string, containerName: string): Promise { - const dockerCommand = `docker ${command} ${containerName}`; - console.log(`Executing: ${dockerCommand}...`); - return new Promise((resolve, reject) => { - exec(dockerCommand, (error, stdout, stderr) => { - if (error) { - console.error(`Error executing (${dockerCommand}): ${stderr}`); - reject(error); - } - console.log(`Execution success (${dockerCommand}): ${stdout}`); - resolve(stdout); - }); - }); -} diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json index 2def2bf8..be4ae3d2 100644 --- a/e2e/tsconfig.json +++ b/e2e/tsconfig.json @@ -12,7 +12,6 @@ "isolatedModules": true, "noFallthroughCasesInSwitch": true, "strictPropertyInitialization": false, - "typeRoots": ["./env-setup/custom.d.ts"], }, "references": [ { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1480763e..14547a86 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,13 +52,13 @@ importers: version: 5.59.3(react@18.3.1) '@wagmi/connectors': specifier: 5.1.15 - version: 5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + version: 5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) '@wagmi/core': specifier: 2.13.8 version: 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)) '@web3modal/wagmi': specifier: 5.1.11 - version: 5.1.11(@types/react@18.3.11)(@wagmi/connectors@5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)) + version: 5.1.11(@types/react@18.3.11)(@wagmi/connectors@5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -79,10 +79,10 @@ importers: version: 1.9.2 next: specifier: 14.2.15 - version: 14.2.15(@babel/core@7.25.2)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.15(@babel/core@7.25.7)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-seo: specifier: 6.6.0 - version: 6.6.0(next@14.2.15(@babel/core@7.25.2)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.6.0(next@14.2.15(@babel/core@7.25.7)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) pino-pretty: specifier: 11.2.2 version: 11.2.2 @@ -118,7 +118,7 @@ importers: version: 2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4) wagmi: specifier: 2.12.17 - version: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + version: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) zustand: specifier: 4.5.4 version: 4.5.4(@types/react@18.3.11)(react@18.3.1) @@ -179,7 +179,7 @@ importers: version: 1.0.10(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-toolbox': specifier: 4.0.0 - version: 4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.1.1)(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-network-helpers@1.0.10(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-verify@1.1.1(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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/ethers-v6@0.5.1(ethers@6.12.0(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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)))(@types/chai@4.3.20)(@types/mocha@10.0.8)(@types/node@20.12.7)(chai@4.1.1)(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.8)(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(solidity-coverage@0.8.13(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) + version: 4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.1.1)(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-network-helpers@1.0.10(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-verify@1.1.1(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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/ethers-v6@0.5.1(ethers@6.12.0(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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)))(@types/chai@4.3.20)(@types/mocha@10.0.9)(@types/node@20.12.7)(chai@4.1.1)(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.8)(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(solidity-coverage@0.8.13(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) '@nomicfoundation/hardhat-verify': specifier: 1.1.1 version: 1.1.1(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) @@ -255,21 +255,18 @@ importers: e2e: devDependencies: - '@ethersproject/providers': - specifier: 5.7.2 - version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@jest/globals': specifier: 29.7.0 version: 29.7.0 '@openzeppelin/upgrades-core': specifier: 1.33.1 version: 1.33.1 - '@typechain/ethers-v5': - specifier: 11.1.2 - version: 11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) + '@typechain/ethers-v6': + specifier: 0.5.1 + version: 0.5.1(ethers@6.13.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5) '@types/jest': - specifier: 29.5.12 - version: 29.5.12 + specifier: 29.5.13 + version: 29.5.13 child_process: specifier: 1.0.2 version: 1.0.2 @@ -277,17 +274,14 @@ importers: specifier: 16.4.5 version: 16.4.5 ethers: - specifier: 5.7.2 - version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + specifier: 6.13.3 + version: 6.13.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) - testcontainers: - specifier: 10.9.0 - version: 10.9.0(encoding@0.1.13) ts-jest: - specifier: 29.1.2 - version: 29.1.2(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) + specifier: 29.2.5 + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) typechain: specifier: 8.3.2 version: 8.3.2(typescript@5.4.5) @@ -330,7 +324,7 @@ importers: version: 0.3.4 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) sdk: dependencies: @@ -385,7 +379,7 @@ importers: version: 3.0.5(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) ts-jest: specifier: 29.1.2 - version: 29.1.2(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.1.2(@babel/core@7.25.7)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) typechain: specifier: 8.3.2 version: 8.3.2(typescript@5.4.5) @@ -425,7 +419,7 @@ importers: version: 16.4.5 ethers: specifier: ^6.13.1 - version: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 6.13.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) @@ -437,7 +431,7 @@ importers: version: 3.3.2 ts-jest: specifier: ^29.1.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5) unzipper: specifier: ^0.12.1 version: 0.12.3 @@ -467,49 +461,49 @@ packages: '@aws-crypto/util@1.2.2': resolution: {integrity: sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg==} - '@aws-sdk/types@3.654.0': - resolution: {integrity: sha512-VWvbED3SV+10QJIcmU/PKjsKilsTV16d1I7/on4bvD/jo1qGeMXqLDBSen3ks/tuvXZF/mFc7ZW/W2DiLVtO7A==} + '@aws-sdk/types@3.664.0': + resolution: {integrity: sha512-+GtXktvVgpreM2b+NJL9OqZGsOzHwlCUrO8jgQUvH/yA6Kd8QO2YFhQCp0C9sSzTteZJVqGBu8E0CQurxJHPbw==} engines: {node: '>=16.0.0'} '@aws-sdk/util-utf8-browser@3.259.0': resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.4': - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + '@babel/compat-data@7.25.7': + resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} engines: {node: '>=6.9.0'} - '@babel/core@7.25.2': - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + '@babel/core@7.25.7': + resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + '@babel/helper-annotate-as-pure@7.25.7': + resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} engines: {node: '>=6.9.0'} - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': - resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.7': + resolution: {integrity: sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.4': - resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} + '@babel/helper-create-class-features-plugin@7.25.7': + resolution: {integrity: sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.25.2': - resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} + '@babel/helper-create-regexp-features-plugin@7.25.7': + resolution: {integrity: sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -519,103 +513,103 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-member-expression-to-functions@7.24.8': - resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} + '@babel/helper-member-expression-to-functions@7.25.7': + resolution: {integrity: sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.24.7': - resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + '@babel/helper-optimise-call-expression@7.25.7': + resolution: {integrity: sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + '@babel/helper-plugin-utils@7.25.7': + resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.25.0': - resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==} + '@babel/helper-remap-async-to-generator@7.25.7': + resolution: {integrity: sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.25.0': - resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} + '@babel/helper-replace-supers@7.25.7': + resolution: {integrity: sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + '@babel/helper-skip-transparent-expression-wrappers@7.25.7': + resolution: {integrity: sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.25.0': - resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} + '@babel/helper-wrap-function@7.25.7': + resolution: {integrity: sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.6': - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + '@babel/parser@7.25.7': + resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3': - resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.7': + resolution: {integrity: sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0': - resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==} + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.7': + resolution: {integrity: sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0': - resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.7': + resolution: {integrity: sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': - resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.7': + resolution: {integrity: sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0': - resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.7': + resolution: {integrity: sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -627,8 +621,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-export-default-from@7.24.7': - resolution: {integrity: sha512-CcmFwUJ3tKhLjPdt4NP+SHMshebytF8ZTYOv5ZDpkzq2sin80Wb5vJrGt8fhPrORQCfoSa0LAxC/DW+GAC5+Hw==} + '@babel/plugin-proposal-export-default-from@7.25.7': + resolution: {integrity: sha512-Egdiuy7pLTyaPkIr6rItNyFVbblTmx3VgqY+72KiS9BzcA+SMyrS9zSumQeSANo8uE3Kax0ZUMkpNh0Q+mbNwg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -679,8 +673,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-export-default-from@7.24.7': - resolution: {integrity: sha512-bTPz4/635WQ9WhwsyPdxUJDVpsi/X9BMmy/8Rf/UAlOO4jSql4CxUCjWI5PiM+jG+c4LVPTScoTw80geFj9+Bw==} + '@babel/plugin-syntax-export-default-from@7.25.7': + resolution: {integrity: sha512-LRUCsC0YucSjabsmxx6yly8+Q/5mxKdp9gemlpR9ro3bfpcOQOXx/CHivs7QCbjgygd6uQ2GcRfHu1FVax/hgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -690,20 +684,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.7': - resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} + '@babel/plugin-syntax-flow@7.25.7': + resolution: {integrity: sha512-fyoj6/YdVtlv2ROig/J0fP7hh/wNO1MJGm1NR70Pg7jbkF+jOUL9joorqaCOQh06Y+LfgTagHzC8KqZ3MF782w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.25.6': - resolution: {integrity: sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==} + '@babel/plugin-syntax-import-assertions@7.25.7': + resolution: {integrity: sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.25.6': - resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} + '@babel/plugin-syntax-import-attributes@7.25.7': + resolution: {integrity: sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -718,8 +712,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + '@babel/plugin-syntax-jsx@7.25.7': + resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -766,8 +760,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.4': - resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} + '@babel/plugin-syntax-typescript@7.25.7': + resolution: {integrity: sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -778,368 +772,368 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.24.7': - resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + '@babel/plugin-transform-arrow-functions@7.25.7': + resolution: {integrity: sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.25.4': - resolution: {integrity: sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==} + '@babel/plugin-transform-async-generator-functions@7.25.7': + resolution: {integrity: sha512-4B6OhTrwYKHYYgcwErvZjbmH9X5TxQBsaBHdzEIB4l71gR5jh/tuHGlb9in47udL2+wVUcOz5XXhhfhVJwEpEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.24.7': - resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} + '@babel/plugin-transform-async-to-generator@7.25.7': + resolution: {integrity: sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.24.7': - resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + '@babel/plugin-transform-block-scoped-functions@7.25.7': + resolution: {integrity: sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.25.0': - resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} + '@babel/plugin-transform-block-scoping@7.25.7': + resolution: {integrity: sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.4': - resolution: {integrity: sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==} + '@babel/plugin-transform-class-properties@7.25.7': + resolution: {integrity: sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.24.7': - resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} + '@babel/plugin-transform-class-static-block@7.25.7': + resolution: {integrity: sha512-rvUUtoVlkDWtDWxGAiiQj0aNktTPn3eFynBcMC2IhsXweehwgdI9ODe+XjWw515kEmv22sSOTp/rxIRuTiB7zg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.25.4': - resolution: {integrity: sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==} + '@babel/plugin-transform-classes@7.25.7': + resolution: {integrity: sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.24.7': - resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + '@babel/plugin-transform-computed-properties@7.25.7': + resolution: {integrity: sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.8': - resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} + '@babel/plugin-transform-destructuring@7.25.7': + resolution: {integrity: sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.24.7': - resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} + '@babel/plugin-transform-dotall-regex@7.25.7': + resolution: {integrity: sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.24.7': - resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} + '@babel/plugin-transform-duplicate-keys@7.25.7': + resolution: {integrity: sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0': - resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.7': + resolution: {integrity: sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-dynamic-import@7.24.7': - resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} + '@babel/plugin-transform-dynamic-import@7.25.7': + resolution: {integrity: sha512-UvcLuual4h7/GfylKm2IAA3aph9rwvAM2XBA0uPKU3lca+Maai4jBjjEVUS568ld6kJcgbouuumCBhMd/Yz17w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.24.7': - resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} + '@babel/plugin-transform-exponentiation-operator@7.25.7': + resolution: {integrity: sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.24.7': - resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} + '@babel/plugin-transform-export-namespace-from@7.25.7': + resolution: {integrity: sha512-h3MDAP5l34NQkkNulsTNyjdaR+OiB0Im67VU//sFupouP8Q6m9Spy7l66DcaAQxtmCqGdanPByLsnwFttxKISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.25.2': - resolution: {integrity: sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==} + '@babel/plugin-transform-flow-strip-types@7.25.7': + resolution: {integrity: sha512-q8Td2PPc6/6I73g96SreSUCKEcwMXCwcXSIAVTyTTN6CpJe0dMj8coxu1fg1T9vfBLi6Rsi6a4ECcFBbKabS5w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.24.7': - resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} + '@babel/plugin-transform-for-of@7.25.7': + resolution: {integrity: sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.25.1': - resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} + '@babel/plugin-transform-function-name@7.25.7': + resolution: {integrity: sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.24.7': - resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} + '@babel/plugin-transform-json-strings@7.25.7': + resolution: {integrity: sha512-Ot43PrL9TEAiCe8C/2erAjXMeVSnE/BLEx6eyrKLNFCCw5jvhTHKyHxdI1pA0kz5njZRYAnMO2KObGqOCRDYSA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.25.2': - resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} + '@babel/plugin-transform-literals@7.25.7': + resolution: {integrity: sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.24.7': - resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} + '@babel/plugin-transform-logical-assignment-operators@7.25.7': + resolution: {integrity: sha512-iImzbA55BjiovLyG2bggWS+V+OLkaBorNvc/yJoeeDQGztknRnDdYfp2d/UPmunZYEnZi6Lg8QcTmNMHOB0lGA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.24.7': - resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + '@babel/plugin-transform-member-expression-literals@7.25.7': + resolution: {integrity: sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.24.7': - resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} + '@babel/plugin-transform-modules-amd@7.25.7': + resolution: {integrity: sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.8': - resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} + '@babel/plugin-transform-modules-commonjs@7.25.7': + resolution: {integrity: sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.25.0': - resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==} + '@babel/plugin-transform-modules-systemjs@7.25.7': + resolution: {integrity: sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.24.7': - resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} + '@babel/plugin-transform-modules-umd@7.25.7': + resolution: {integrity: sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': - resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} + '@babel/plugin-transform-named-capturing-groups-regex@7.25.7': + resolution: {integrity: sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.24.7': - resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} + '@babel/plugin-transform-new-target@7.25.7': + resolution: {integrity: sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': - resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} + '@babel/plugin-transform-nullish-coalescing-operator@7.25.7': + resolution: {integrity: sha512-FbuJ63/4LEL32mIxrxwYaqjJxpbzxPVQj5a+Ebrc8JICV6YX8nE53jY+K0RZT3um56GoNWgkS2BQ/uLGTjtwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.24.7': - resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} + '@babel/plugin-transform-numeric-separator@7.25.7': + resolution: {integrity: sha512-8CbutzSSh4hmD+jJHIA8vdTNk15kAzOnFLVVgBSMGr28rt85ouT01/rezMecks9pkU939wDInImwCKv4ahU4IA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.24.7': - resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} + '@babel/plugin-transform-object-rest-spread@7.25.7': + resolution: {integrity: sha512-1JdVKPhD7Y5PvgfFy0Mv2brdrolzpzSoUq2pr6xsR+m+3viGGeHEokFKsCgOkbeFOQxfB1Vt2F0cPJLRpFI4Zg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.24.7': - resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + '@babel/plugin-transform-object-super@7.25.7': + resolution: {integrity: sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.24.7': - resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} + '@babel/plugin-transform-optional-catch-binding@7.25.7': + resolution: {integrity: sha512-m9obYBA39mDPN7lJzD5WkGGb0GO54PPLXsbcnj1Hyeu8mSRz7Gb4b1A6zxNX32ZuUySDK4G6it8SDFWD1nCnqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.24.8': - resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} + '@babel/plugin-transform-optional-chaining@7.25.7': + resolution: {integrity: sha512-h39agClImgPWg4H8mYVAbD1qP9vClFbEjqoJmt87Zen8pjqK8FTPUwrOXAvqu5soytwxrLMd2fx2KSCp2CHcNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.7': - resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + '@babel/plugin-transform-parameters@7.25.7': + resolution: {integrity: sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.4': - resolution: {integrity: sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==} + '@babel/plugin-transform-private-methods@7.25.7': + resolution: {integrity: sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.24.7': - resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} + '@babel/plugin-transform-private-property-in-object@7.25.7': + resolution: {integrity: sha512-LzA5ESzBy7tqj00Yjey9yWfs3FKy4EmJyKOSWld144OxkTji81WWnUT8nkLUn+imN/zHL8ZQlOu/MTUAhHaX3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.24.7': - resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + '@babel/plugin-transform-property-literals@7.25.7': + resolution: {integrity: sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-constant-elements@7.25.1': - resolution: {integrity: sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==} + '@babel/plugin-transform-react-constant-elements@7.25.7': + resolution: {integrity: sha512-/qXt69Em8HgsjCLu7G3zdIQn7A2QwmYND7Wa0LTp09Na+Zn8L5d0A7wSXrKi18TJRc/Q5S1i1De/SU1LzVkSvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.24.7': - resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} + '@babel/plugin-transform-react-display-name@7.25.7': + resolution: {integrity: sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.24.7': - resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} + '@babel/plugin-transform-react-jsx-development@7.25.7': + resolution: {integrity: sha512-5yd3lH1PWxzW6IZj+p+Y4OLQzz0/LzlOG8vGqonHfVR3euf1vyzyMUJk9Ac+m97BH46mFc/98t9PmYLyvgL3qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.7': - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + '@babel/plugin-transform-react-jsx-self@7.25.7': + resolution: {integrity: sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.7': - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + '@babel/plugin-transform-react-jsx-source@7.25.7': + resolution: {integrity: sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.25.2': - resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==} + '@babel/plugin-transform-react-jsx@7.25.7': + resolution: {integrity: sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-pure-annotations@7.24.7': - resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} + '@babel/plugin-transform-react-pure-annotations@7.25.7': + resolution: {integrity: sha512-6YTHJ7yjjgYqGc8S+CbEXhLICODk0Tn92j+vNJo07HFk9t3bjFgAKxPLFhHwF2NjmQVSI1zBRfBWUeVBa2osfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.24.7': - resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} + '@babel/plugin-transform-regenerator@7.25.7': + resolution: {integrity: sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-reserved-words@7.24.7': - resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} + '@babel/plugin-transform-reserved-words@7.25.7': + resolution: {integrity: sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-runtime@7.25.4': - resolution: {integrity: sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==} + '@babel/plugin-transform-runtime@7.25.7': + resolution: {integrity: sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.24.7': - resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + '@babel/plugin-transform-shorthand-properties@7.25.7': + resolution: {integrity: sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.24.7': - resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} + '@babel/plugin-transform-spread@7.25.7': + resolution: {integrity: sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.24.7': - resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} + '@babel/plugin-transform-sticky-regex@7.25.7': + resolution: {integrity: sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.24.7': - resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} + '@babel/plugin-transform-template-literals@7.25.7': + resolution: {integrity: sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.24.8': - resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} + '@babel/plugin-transform-typeof-symbol@7.25.7': + resolution: {integrity: sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.25.2': - resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==} + '@babel/plugin-transform-typescript@7.25.7': + resolution: {integrity: sha512-VKlgy2vBzj8AmEzunocMun2fF06bsSWV+FvVXohtL6FGve/+L217qhHxRTVGHEDO/YR8IANcjzgJsd04J8ge5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.24.7': - resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} + '@babel/plugin-transform-unicode-escapes@7.25.7': + resolution: {integrity: sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.24.7': - resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} + '@babel/plugin-transform-unicode-property-regex@7.25.7': + resolution: {integrity: sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.24.7': - resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} + '@babel/plugin-transform-unicode-regex@7.25.7': + resolution: {integrity: sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.25.4': - resolution: {integrity: sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==} + '@babel/plugin-transform-unicode-sets-regex@7.25.7': + resolution: {integrity: sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.25.4': - resolution: {integrity: sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==} + '@babel/preset-env@7.25.7': + resolution: {integrity: sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-flow@7.24.7': - resolution: {integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==} + '@babel/preset-flow@7.25.7': + resolution: {integrity: sha512-q2x3g0YHzo/Ohsr51KOYS/BtZMsvkzVd8qEyhZAyTatYdobfgXCuyppTqTuIhdq5kR/P3nyyVvZ6H5dMc4PnCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1149,46 +1143,40 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.24.7': - resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} + '@babel/preset-react@7.25.7': + resolution: {integrity: sha512-GjV0/mUEEXpi1U5ZgDprMRRgajGMRW3G5FjMr5KLKD8nT2fTG8+h/klV3+6Dm5739QE+K5+2e91qFKAYI3pmRg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-typescript@7.24.7': - resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} + '@babel/preset-typescript@7.25.7': + resolution: {integrity: sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/register@7.24.6': - resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==} + '@babel/register@7.25.7': + resolution: {integrity: sha512-qHTd2Rhn/rKhSUwdY6+n98FmwXN+N+zxSVx3zWqRe9INyvTpv+aQ5gDV2+43ACd3VtMBzPPljbb0gZb8u5ma6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - - '@babel/runtime@7.25.6': - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + '@babel/runtime@7.25.7': + resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + '@babel/types@7.25.7': + resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} - '@balena/dockerignore@1.0.2': - resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} - '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1212,19 +1200,19 @@ packages: '@dabh/diagnostics@2.0.3': resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} - '@depay/solana-web3.js@1.26.0': - resolution: {integrity: sha512-aAhDxfNGraE8VBwM5g/BhHnNCENlLSKDJ3yIh2EZd4mfmKM/4utv0cNUhTEytUAvvFoaMcOXXQ5U5sE1IMXFrQ==} + '@depay/solana-web3.js@1.27.0': + resolution: {integrity: sha512-BRRGu4LkWFkvrYRRnenxj+/omvuJidYHK9gUys0VXJQS2QGE/d7iME2Hlc2rzlVeCwz5DVjQc5Mgf8lFBvaZgg==} - '@depay/web3-blockchains@9.6.1': - resolution: {integrity: sha512-IK8D+zQ8UufqY8+fIGJ2Yuzw4Yms7VLYtkEPbAfurUffNTMOweMxBWRJVQfkcmKTamZbA7juTHFJ7Uv/z0m17g==} + '@depay/web3-blockchains@9.6.7': + resolution: {integrity: sha512-RqVsm/aURJ2npRm0/0qr/GiMdBsGSbRA2GpzG75Vy7qODYScbYjA/CitMjhw9ktzGjiFN9oh/ooq9GBjPIhEdA==} engines: {node: '>=10'} '@depay/web3-mock@14.17.0': resolution: {integrity: sha512-0WCIpHqGUTPmOb5l3iN+4wCY+P3nHnGWd3uyWB+Wrt5DygS6MWI2b50gwtSCgYUCfgmEv9KlRuCnHDC4TDKCeA==} engines: {node: '>=16'} - '@emnapi/runtime@1.2.0': - resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + '@emnapi/runtime@1.3.0': + resolution: {integrity: sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==} '@esbuild/aix-ppc64@0.19.12': resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} @@ -2009,8 +1997,8 @@ packages: resolution: {integrity: sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==} engines: {node: '>=16.0.0'} - '@metamask/utils@9.2.1': - resolution: {integrity: sha512-/u663aUaB6+Xe75i3Mt/1cCljm41HDYIsna5oBrwGvgkY2zH7/9k9Zjd706cxoAbxN7QgLSVAReUiGnuxCuXrQ==} + '@metamask/utils@9.3.0': + resolution: {integrity: sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==} engines: {node: '>=16.0.0'} '@motionone/animation@10.18.0': @@ -2317,11 +2305,11 @@ packages: resolution: {integrity: sha512-PTef+rMxkM5VQ7sLwLKSjp2DBakYQd661ZJiSRywx+q/nIpm3B/HYGcz5wPZCA5O/QcEP6TatXXDoeMwimbcnw==} deprecated: This package has been deprecated and will no longer be maintained, please use @openzeppelin/defender-sdk package instead. - '@openzeppelin/defender-sdk-base-client@1.14.4': - resolution: {integrity: sha512-tOePVQLKpqfGQ1GMzHvSBNd2psPYd86LDNpvdl5gjD0Y2kW/zNh5qBXy29RraGtk/qc8zs9hzS5pAOh0vhGkGQ==} + '@openzeppelin/defender-sdk-base-client@1.15.0': + resolution: {integrity: sha512-nuf/xegMIuKCO0hMrxI1KQKTzQw1iCl/9kew2nJM9MrFIohhfEXItc5rbJRoV/jehmK/Jhi9ATF9OHH09StEsQ==} - '@openzeppelin/defender-sdk-deploy-client@1.14.4': - resolution: {integrity: sha512-+diSoz1zid37LMsY2RDxI+uAsYx9Eryg8Vz+yfvuyd56fXrzjQEln7BBtYQw+2zp9yvyAByOL5XSQdrQga9OBQ==} + '@openzeppelin/defender-sdk-deploy-client@1.15.0': + resolution: {integrity: sha512-2ODMN4j5pPYWyIOvA/zRQmJ0tJyqi6NV3S/PyvufBXa3oj/MDnVO5bMGSQFH0M2VE3bg+i/rcUb0hdbX9Rtm5Q==} '@openzeppelin/hardhat-upgrades@2.5.1': resolution: {integrity: sha512-wRwq9f2PqlfIdNGFApsqRpqptqy98exSFp8SESb6Brgw4L07sExySInNJhscM/tWVSnR1Qnuws9Ck6Fs5zIxvg==} @@ -2446,24 +2434,24 @@ packages: resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@react-aria/focus@3.18.2': - resolution: {integrity: sha512-Jc/IY+StjA3uqN73o6txKQ527RFU7gnG5crEl5Xy3V+gbYp2O5L3ezAo/E0Ipi2cyMbG6T5Iit1IDs7hcGu8aw==} + '@react-aria/focus@3.18.3': + resolution: {integrity: sha512-WKUElg+5zS0D3xlVn8MntNnkzJql2J6MuzAMP8Sv5WTgFDse/XGR842dsxPTIyKKdrWVCRegCuwa4m3n/GzgJw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@react-aria/interactions@3.22.2': - resolution: {integrity: sha512-xE/77fRVSlqHp2sfkrMeNLrqf2amF/RyuAS6T5oDJemRSgYM3UoxTbWjucPhfnoW7r32pFPHHgz4lbdX8xqD/g==} + '@react-aria/interactions@3.22.3': + resolution: {integrity: sha512-RRUb/aG+P0IKTIWikY/SylB6bIbLZeztnZY2vbe7RAG5MgVaCgn5HQ45SI15GlTmhsFG8CnF6slJsUFJiNHpbQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@react-aria/ssr@3.9.5': - resolution: {integrity: sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==} + '@react-aria/ssr@3.9.6': + resolution: {integrity: sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==} engines: {node: '>= 12'} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@react-aria/utils@3.25.2': - resolution: {integrity: sha512-GdIvG8GBJJZygB4L2QJP1Gabyn2mjFsha73I2wSe+o4DYeGWoJiMZRM06PyTIxLH4S7Sn7eVDtsSBfkc2VY/NA==} + '@react-aria/utils@3.25.3': + resolution: {integrity: sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 @@ -2502,57 +2490,57 @@ packages: engines: {node: '>=18'} hasBin: true - '@react-native/assets-registry@0.75.3': - resolution: {integrity: sha512-i7MaRbYR06WdpJWv3a0PQ2ScFBUeevwcJ0tVopnFwTg0tBWp3NFEMDIcU8lyXVy9Y59WmrP1V2ROaRDaPiESgg==} + '@react-native/assets-registry@0.75.4': + resolution: {integrity: sha512-WX6/LNHwyjislSFM+h3qQjBiPaXXPJW5ZV4TdgNKb6QOPO0g1KGYRQj44cI2xSpZ3fcWrvQFZfQgSMbVK9Sg7A==} engines: {node: '>=18'} - '@react-native/babel-plugin-codegen@0.75.3': - resolution: {integrity: sha512-8JmXEKq+Efb9AffsV48l8gmKe/ZQ2PbBygZjHdIf8DNZZhO/z5mt27J4B43MWNdp5Ww1l59T0mEaf8l/uywQUg==} + '@react-native/babel-plugin-codegen@0.75.4': + resolution: {integrity: sha512-gu5ZRIdr7+ufi09DJROhfDtbF4biTnCDJqtqcmtsku4cXOXPHE36QbC/vAmKEZ0PMPURBI8lwF2wfaeHLn7gig==} engines: {node: '>=18'} - '@react-native/babel-preset@0.75.3': - resolution: {integrity: sha512-VZQkQEj36DKEGApXFYdVcFtqdglbnoVr7aOZpjffURSgPcIA9vWTm1b+OL4ayOaRZXTZKiDBNQCXvBX5E5AgQg==} + '@react-native/babel-preset@0.75.4': + resolution: {integrity: sha512-UtyYCDJ3rZIeggyFEfh/q5t/FZ5a1h9F8EI37Nbrwyk/OKPH+1XS4PbHROHJzBARlJwOAfmT75+ovYUO0eakJA==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' - '@react-native/codegen@0.75.3': - resolution: {integrity: sha512-I0bz5jwOkiR7vnhYLGoV22RGmesErUg03tjsCiQgmsMpbyCYumudEtLNN5+DplHGK56bu8KyzBqKkWXGSKSCZQ==} + '@react-native/codegen@0.75.4': + resolution: {integrity: sha512-0FplNAD/S5FUvm8YIn6uyarOcP4jdJPqWz17K4a/Gp2KSsG/JJKEskX3aj5wpePzVfNQl3WyvBJ0whODdCocIA==} engines: {node: '>=18'} peerDependencies: '@babel/preset-env': ^7.1.6 - '@react-native/community-cli-plugin@0.75.3': - resolution: {integrity: sha512-njsYm+jBWzfLcJcxavAY5QFzYTrmPtjbxq/64GSqwcQYzy9qAkI7LNTK/Wprq1I/4HOuHJO7Km+EddCXB+ByRQ==} + '@react-native/community-cli-plugin@0.75.4': + resolution: {integrity: sha512-k/hevYPjEpW0MNVVyb3v9PJosOP+FzenS7+oqYNLXdEmgTnGHrAtYX9ABrJJgzeJt7I6g8g+RDvm8PSE+tnM5w==} engines: {node: '>=18'} - '@react-native/debugger-frontend@0.75.3': - resolution: {integrity: sha512-99bLQsUwsxUMNR7Wa9eV2uyR38yfd6mOEqfN+JIm8/L9sKA926oh+CZkjDy1M8RmCB6spB5N9fVFVkrVdf2yFA==} + '@react-native/debugger-frontend@0.75.4': + resolution: {integrity: sha512-QfGurR5hV6bhMPn/6VxS2RomYrPRFGwA03jJr+zKyWHnxDAu5jOqYVyKAktIIbhYe5sPp78QVl1ZYuhcnsRbEw==} engines: {node: '>=18'} - '@react-native/dev-middleware@0.75.3': - resolution: {integrity: sha512-h2/6+UGmeMWjnT43axy27jNqoDRsE1C1qpjRC3sYpD4g0bI0jSTkY1kAgj8uqGGXLnHXiHOtjLDGdbAgZrsPaA==} + '@react-native/dev-middleware@0.75.4': + resolution: {integrity: sha512-UhyBeQOG2wNcvrUGw3+IBrHBk/lIu7hHGmWt4j8W9Aqv9BwktHKkPyko+5A1yoUeO1O/VDnHWYqWeOejcA9wpQ==} engines: {node: '>=18'} - '@react-native/gradle-plugin@0.75.3': - resolution: {integrity: sha512-mSfa/Mq/AsALuG/kvXz5ECrc6HdY5waMHal2sSfa8KA0Gt3JqYQVXF9Pdwd4yR5ClPZDI2HRa1tdE8GVlhMvPA==} + '@react-native/gradle-plugin@0.75.4': + resolution: {integrity: sha512-kKTmw7cF7p1raT30DC0L6N+xiVXN7dlRy0J+hYPiCRRVHplwgvyS7pszjxfzwXmHFqOxwpxQVI3du8opsma1Mg==} engines: {node: '>=18'} - '@react-native/js-polyfills@0.75.3': - resolution: {integrity: sha512-+JVFJ351GSJT3V7LuXscMqfnpR/UxzsAjbBjfAHBR3kqTbVqrAmBccqPCA3NLzgb/RY8khLJklwMUVlWrn8iFg==} + '@react-native/js-polyfills@0.75.4': + resolution: {integrity: sha512-NF5ID5FjcVHBYk1LQ4JMRjPmxBWEo4yoqW1m6vGOQZPT8D5Qs9afgx3f7gQatxbn3ivMh0FVbLW0zBx6LyxEzA==} engines: {node: '>=18'} - '@react-native/metro-babel-transformer@0.75.3': - resolution: {integrity: sha512-gDlEl6C2mwQPLxFOR+yla5MpJpDPNOFD6J5Hd9JM9+lOdUq6MNujh1Xn4ZMvglW7rfViq3nMjg4xPQeGUhDG+w==} + '@react-native/metro-babel-transformer@0.75.4': + resolution: {integrity: sha512-O0WMW/K8Ny/MAAeRebqGEQhrbzcioxcPHZtos+EH2hWeBTEKHQV8fMYYxfYDabpr392qdhSBwg3LlXUD4U3PXQ==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' - '@react-native/normalize-colors@0.75.3': - resolution: {integrity: sha512-3mhF8AJFfIN0E5bEs/DQ4U2LzMJYm+FPSwY5bJ1DZhrxW1PFAh24bAPrSd8PwS0iarQ7biLdr1lWf/8LFv8pDA==} + '@react-native/normalize-colors@0.75.4': + resolution: {integrity: sha512-90QrQDLg0/k9xqYesaKuIkayOSjD+FKa0hsHollbwT5h3kuGMY+lU7UZxnb8tU55Y1PKdvjYxqQsYWI/ql79zA==} - '@react-native/virtualized-lists@0.75.3': - resolution: {integrity: sha512-cTLm7k7Y//SvV8UK8esrDHEw5OrwwSJ4Fqc3x52Imi6ROuhshfGIPFwhtn4pmAg9nWHzHwwqiJ+9hCSVnXXX+g==} + '@react-native/virtualized-lists@0.75.4': + resolution: {integrity: sha512-iEauRiXjvWG/iOH8bV+9MfepCS+72cuL5rhkrenYZS0NUnDcNjF+wtaoS9+Gx5z1UJOfEXxSmyXRtQJZne8SnA==} engines: {node: '>=18'} peerDependencies: '@types/react': ^18.2.6 @@ -2562,93 +2550,93 @@ packages: '@types/react': optional: true - '@react-stately/utils@3.10.3': - resolution: {integrity: sha512-moClv7MlVSHpbYtQIkm0Cx+on8Pgt1XqtPx6fy9rQFb2DNc9u1G3AUVnqA17buOkH1vLxAtX4MedlxMWyRCYYA==} + '@react-stately/utils@3.10.4': + resolution: {integrity: sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@react-types/shared@3.24.1': - resolution: {integrity: sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==} + '@react-types/shared@3.25.0': + resolution: {integrity: sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@rollup/rollup-android-arm-eabi@4.22.5': - resolution: {integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==} + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.22.5': - resolution: {integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==} + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.22.5': - resolution: {integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==} + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.22.5': - resolution: {integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==} + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.22.5': - resolution: {integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==} + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.22.5': - resolution: {integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==} + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.22.5': - resolution: {integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==} + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.22.5': - resolution: {integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==} + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': - resolution: {integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==} + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.22.5': - resolution: {integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==} + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.22.5': - resolution: {integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==} + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.22.5': - resolution: {integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==} + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.22.5': - resolution: {integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==} + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.22.5': - resolution: {integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==} + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.22.5': - resolution: {integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==} + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.22.5': - resolution: {integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==} + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] os: [win32] @@ -2758,8 +2746,8 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@smithy/types@3.4.2': - resolution: {integrity: sha512-tHiFcfcVedVBHpmHUEUHOCCih8iZbIAYn9NvPsNzaPm/237I3imdDdZoOC8c87H5HBAVEa06tTgb+OcSWV9g5w==} + '@smithy/types@3.5.0': + resolution: {integrity: sha512-QN0twHNfe8mNJdH9unwsCK13GURU7oEAZqkBI+rsvpv1jrmserO+WnLE7jidR9W/1dxwZ0u/CB01mV2Gms/K2Q==} engines: {node: '>=16.0.0'} '@socket.io/component-emitter@3.1.2': @@ -3002,15 +2990,6 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@typechain/ethers-v5@11.1.2': - resolution: {integrity: sha512-ID6pqWkao54EuUQa0P5RgjvfA3MYqxUQKpbGKERbsjBW5Ra7EIXvbMlPp2pcP5IAdUkyMCFYsP2SN5q7mPdLDQ==} - peerDependencies: - '@ethersproject/abi': ^5.0.0 - '@ethersproject/providers': ^5.0.0 - ethers: ^5.1.3 - typechain: ^8.3.2 - typescript: '>=4.3.0' - '@typechain/ethers-v6@0.5.1': resolution: {integrity: sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==} peerDependencies: @@ -3062,12 +3041,6 @@ packages: '@types/diff@5.2.0': resolution: {integrity: sha512-pjJH+02ukgJRW0mViDUA1cdC+wzSgRu0e4cPuogPLAw0i66y62iMP0ZlXoJAmoXrKRZnF3pMDwyKZsgNVlMX4A==} - '@types/docker-modem@3.0.6': - resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==} - - '@types/dockerode@3.3.31': - resolution: {integrity: sha512-42R9eoVqJDSvVspV89g7RwRqfNExgievLNWoHkg7NoWIqAmavIbgQBb4oc0qRtHkxE+I3Xxvqv7qVXFABKPBTg==} - '@types/dom-screen-wake-lock@1.0.3': resolution: {integrity: sha512-3Iten7X3Zgwvk6kh6/NRdwN7WbZ760YgFCsF5AxDifltUQzW1RaW+WRmcVtgwFzLjaNu64H+0MPJ13yRa8g3Dw==} @@ -3125,8 +3098,8 @@ packages: '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/mocha@10.0.8': - resolution: {integrity: sha512-HfMcUmy9hTMJh66VNcmeC9iVErIZJli2bszuXc6julh5YGuRb/W5OnkHjwLNYdFlMis0sY3If5SEAp+PktdJjw==} + '@types/mocha@10.0.9': + resolution: {integrity: sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==} '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} @@ -3143,9 +3116,6 @@ packages: '@types/node@18.15.13': resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} - '@types/node@18.19.54': - resolution: {integrity: sha512-+BRgt0G5gYjTvdLac9sIeE0iZcJxi4Jc4PV5EUzqi+88jmQLr+fRZdv2tCTV7IHKSGxM6SaLoOXQWWUiLUItMw==} - '@types/node@20.12.7': resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} @@ -3185,15 +3155,6 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/ssh2-streams@0.1.12': - resolution: {integrity: sha512-Sy8tpEmCce4Tq0oSOYdfqaBpA3hDM8SoxoFh5vzFsu2oL+znzGz8oVWW7xb4K920yYMUY+PIG31qZnFMfPWNCg==} - - '@types/ssh2@0.5.52': - resolution: {integrity: sha512-lbLLlXxdCZOSJMCInKH2+9V/77ET2J6NPQHpFI0kda61Dd1KglJs+fPQBchizmzYSOJBgdTajhPqBO1xxLywvg==} - - '@types/ssh2@1.15.1': - resolution: {integrity: sha512-ZIbEqKAsi5gj35y4P4vkJYly642wIbY6PqoN0xiyQGshKUGXR9WQjF/iF9mXBQ8uBKy3ezfsCkcoHKhd0BzuDA==} - '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -3627,18 +3588,6 @@ packages: appdirsjs@1.2.7: resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} - archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} - engines: {node: '>= 6'} - - archiver-utils@3.0.4: - resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} - engines: {node: '>= 10'} - - archiver@5.3.2: - resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} - engines: {node: '>= 10'} - arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -3739,9 +3688,6 @@ packages: async-limiter@1.0.1: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} - async-lock@1.4.1: - resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} - async-mutex@0.2.6: resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} @@ -3799,9 +3745,6 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} - babel-core@7.0.0-bridge.0: resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: @@ -3853,21 +3796,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.5.0: - resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} - - bare-fs@2.3.5: - resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==} - - bare-os@2.4.4: - resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==} - - bare-path@2.1.3: - resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} - - bare-stream@2.3.0: - resolution: {integrity: sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==} - base-x@3.0.10: resolution: {integrity: sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==} @@ -3981,9 +3909,6 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -4018,10 +3943,6 @@ packages: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} - buildcheck@0.0.6: - resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} - engines: {node: '>=10.0.0'} - bundle-require@4.2.1: resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4032,10 +3953,6 @@ packages: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - byline@5.0.0: - resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} - engines: {node: '>=0.10.0'} - bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -4107,8 +4024,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001664: - resolution: {integrity: sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==} + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -4364,10 +4281,6 @@ packages: compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} - compress-commons@4.1.2: - resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} - engines: {node: '>= 10'} - compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -4383,8 +4296,8 @@ packages: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} engines: {'0': node >= 0.8} - confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -4424,8 +4337,8 @@ packages: resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} core-js-compat@3.38.1: @@ -4463,19 +4376,11 @@ packages: typescript: optional: true - cpu-features@0.0.10: - resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} - engines: {node: '>=10.0.0'} - crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} hasBin: true - crc32-stream@4.0.3: - resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} - engines: {node: '>= 10'} - create-hash@1.2.0: resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} @@ -4500,13 +4405,8 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - crossws@0.2.4: - resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} - peerDependencies: - uWebSockets.js: '*' - peerDependenciesMeta: - uWebSockets.js: - optional: true + crossws@0.3.1: + resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==} crypt@0.0.2: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} @@ -4760,18 +4660,6 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - docker-compose@0.24.8: - resolution: {integrity: sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw==} - engines: {node: '>= 6.0.0'} - - docker-modem@3.0.8: - resolution: {integrity: sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ==} - engines: {node: '>= 8.0'} - - dockerode@3.3.5: - resolution: {integrity: sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==} - engines: {node: '>= 8.0'} - doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -4829,8 +4717,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.29: - resolution: {integrity: sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==} + electron-to-chromium@1.5.34: + resolution: {integrity: sha512-/TZAiChbAflBNjCg+VvstbcwAtIL/VdMFO3NgRFIzBjpvPzWOTIbbO8kNb6RwU4bt9TP7K+3KqBKw/lOU+Y+GA==} elliptic@6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} @@ -4924,8 +4812,8 @@ packages: es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-iterator-helpers@1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + es-iterator-helpers@1.1.0: + resolution: {integrity: sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==} engines: {node: '>= 0.4'} es-object-atoms@1.0.0: @@ -5043,12 +4931,12 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.30.0: - resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true @@ -5079,8 +4967,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.37.0: - resolution: {integrity: sha512-IHBePmfWH5lKhJnJ7WB1V+v/GolbB0rjS8XYVCSQCZKaQCAUhMoVoOEn1Ef8Z8Wf0a7l8KTJvuZg5/e4qrZ6nA==} + eslint-plugin-react@7.37.1: + resolution: {integrity: sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 @@ -5210,6 +5098,10 @@ packages: resolution: {integrity: sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==} engines: {node: '>=14.0.0'} + ethers@6.13.3: + resolution: {integrity: sha512-/DzbZOLVtoO4fKvvQwpEucHAQgIwBGWuRvBdwE/lMXgXvvHHTSkn7XqAQ2b+gjJzZDJjWA9OD05bVceVOsBHbg==} + engines: {node: '>=14.0.0'} + ethjs-unit@0.1.6: resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} engines: {node: '>=6.5.0', npm: '>=3'} @@ -5271,8 +5163,8 @@ packages: exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - express@4.21.0: - resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==} + express@4.21.1: + resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} engines: {node: '>= 0.10.0'} ext@1.7.0: @@ -5301,9 +5193,6 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -5589,10 +5478,6 @@ packages: resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} engines: {node: '>=4'} - get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} - get-port@6.1.2: resolution: {integrity: sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5723,8 +5608,8 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - h3@1.12.0: - resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==} + h3@1.13.0: + resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} @@ -6273,8 +6158,9 @@ packages: iterate-object@1.3.4: resolution: {integrity: sha512-4dG1D1x/7g8PwHS9aK6QV5V94+ZvyP4+d19qDv43EzImmrndysIl4prmJ1hWWIGCqrZHyaHBm6BSEWHOLnpoNw==} - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + iterator.prototype@1.1.3: + resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + engines: {node: '>= 0.4'} jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} @@ -6432,8 +6318,8 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - jiti@2.0.0: - resolution: {integrity: sha512-CJ7e7Abb779OTRv3lomfp7Mns/Sy1+U4pcAx5VbjxCZD5ZM/VJaXPpPjNKjtSvWQy/H86E49REXR34dl1JEz9w==} + jiti@2.3.3: + resolution: {integrity: sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ==} hasBin: true joi@17.13.3: @@ -6481,13 +6367,9 @@ packages: peerDependencies: '@babel/preset-env': ^7.1.6 - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true json-buffer@3.0.1: @@ -6582,10 +6464,6 @@ packages: resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} engines: {node: '>=14.16'} - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -6598,8 +6476,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - libphonenumber-js@1.11.9: - resolution: {integrity: sha512-Zs5wf5HaWzW2/inlupe2tstl0I/Tbqo7lH20ZLr6Is58u7Dz2n+gRFGNlj9/gWxFvNfp9+YyDsiegjNhdixB9A==} + libphonenumber-js@1.11.11: + resolution: {integrity: sha512-mF3KaORjJQR6JBNcOkluDcJKhtoQT4VTLRMrX1v/wlBayL4M8ybwEDeryyPcrSEJmD0rVwHUbBarpZwN5NfPFQ==} lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} @@ -6618,21 +6496,21 @@ packages: listenercount@1.0.1: resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} - listhen@1.8.0: - resolution: {integrity: sha512-Wj5hk++HPDqnG/0nc9++oXf8M3GlzObC6AJJJ9VYAVhVTdeW+t3HyeiKhK6Ro0GPhVd8lOYM75zsckrtzLB2Gw==} + listhen@1.9.0: + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} hasBin: true lit-element@3.3.3: resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} - lit-element@4.1.0: - resolution: {integrity: sha512-gSejRUQJuMQjV2Z59KAS/D4iElUhwKpIyJvZ9w+DIagIQjfJnhR20h2Q5ddpzXGS+fF0tMZ/xEYGMnKmaI/iww==} + lit-element@4.1.1: + resolution: {integrity: sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==} lit-html@2.8.0: resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==} - lit-html@3.2.0: - resolution: {integrity: sha512-pwT/HwoxqI9FggTrYVarkBKFN9MlTUpLrDHubTmW4SrkL3kkqW5gxwbxMMUnbbRHBC0WTZnYHcjDSCM559VyfA==} + lit-html@3.2.1: + resolution: {integrity: sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==} lit@2.8.0: resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==} @@ -6669,21 +6547,9 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - - lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} - - lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} - lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -6699,9 +6565,6 @@ packages: lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} - lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -7022,8 +6885,8 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.7.1: - resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + mlly@1.7.2: + resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} mnemonist@0.38.5: resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} @@ -7077,9 +6940,6 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.20.0: - resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} - nano-json-stream-parser@0.1.2: resolution: {integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==} @@ -7243,8 +7103,8 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm@10.8.3: - resolution: {integrity: sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==} + npm@10.9.0: + resolution: {integrity: sha512-ZanDioFylI9helNhl2LNd+ErmVD+H5I53ry41ixlLyCBgkuYb+58CvbAp99hW+zr5L9W4X7CchSoeqKdngOLSw==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true bundledDependencies: @@ -7387,8 +7247,8 @@ packages: oboe@2.1.5: resolution: {integrity: sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==} - ofetch@1.4.0: - resolution: {integrity: sha512-MuHgsEhU6zGeX+EMh+8mSMrYTnsqJQQrpM00Q6QHMKNqQ0bKy0B43tk8tL1wg+CnsSTy1kg4Ir2T5Ig6rD+dfQ==} + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} ohash@1.1.4: resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} @@ -7679,8 +7539,8 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-types@1.2.0: - resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} playwright-core@1.45.3: resolution: {integrity: sha512-+ym0jNbcjikaOwwSZycFbwkWgfruWvYlJfThKYAlImbxUgdWFO2oW70ojPm4OpE4t6TAo2FY/smM+hpVTtkhDA==} @@ -7769,8 +7629,8 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} - preact@10.24.1: - resolution: {integrity: sha512-PnBAwFI3Yjxxcxw75n6VId/5TFxNW/81zexzWD9jn1+eSrOP84NdsS38H5IkF/UH3frqRPT+MvuCoVHjTDTnDw==} + preact@10.24.2: + resolution: {integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==} prebuild-install@7.1.2: resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} @@ -7852,10 +7712,6 @@ packages: proper-lockfile@4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} - properties-reader@2.3.0: - resolution: {integrity: sha512-z597WicA7nDZxK12kZqHr2TcvwNU1GCfA5UwfDY/HDp3hXPoPlb5rlEx9bwGTiJnc0OqbBTkU975jDToth8Gxw==} - engines: {node: '>=14'} - proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -7920,9 +7776,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - queue@6.0.2: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} @@ -7994,8 +7847,8 @@ packages: react: '*' react-native: '*' - react-native@0.75.3: - resolution: {integrity: sha512-+Ne6u5H+tPo36sme19SCd1u2UID2uo0J/XzAJarxmrDj4Nsdi44eyUDKtQHmhgxjRGsuVJqAYrMK0abLSq8AHw==} + react-native@0.75.4: + resolution: {integrity: sha512-Jehg4AMNIAXu9cn0/1jbTCoNg3tc+t6EekwucCalN8YoRmxGd/PY6osQTI/5fSAM40JQ4O8uv8Qg09Ycpb5sxQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -8033,9 +7886,6 @@ packages: resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -8086,12 +7936,12 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} - regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + regexpu-core@6.1.1: + resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==} engines: {node: '>=4'} registry-auth-token@5.0.2: @@ -8102,8 +7952,11 @@ packages: resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} engines: {node: '>=12'} - regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.11.1: + resolution: {integrity: sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==} hasBin: true req-cwd@2.0.0: @@ -8233,8 +8086,8 @@ packages: rollup: optional: true - rollup@4.22.5: - resolution: {integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==} + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -8500,9 +8353,6 @@ packages: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} - split-ca@1.0.1: - resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} - split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -8517,13 +8367,6 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - ssh-remote-port-forward@1.0.4: - resolution: {integrity: sha512-x0LV1eVDwjf1gmG7TTnfqIzf+3VPRz7vrNIjX6oYLbeCrf/PeVY6hkT68Mg+q02qXxQhrLjB0jfgvhevoCRmLQ==} - - ssh2@1.16.0: - resolution: {integrity: sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==} - engines: {node: '>=10.16.0'} - sshpk@1.18.0: resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} @@ -8569,9 +8412,6 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - streamx@2.20.1: - resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} - strict-uri-encode@1.1.0: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} engines: {node: '>=0.10.0'} @@ -8777,22 +8617,13 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - tar-fs@2.0.1: - resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==} - tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - tar-fs@3.0.6: - resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} - tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - tar@4.4.19: resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} engines: {node: '>=4.5'} @@ -8814,12 +8645,6 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - testcontainers@10.9.0: - resolution: {integrity: sha512-LN+cKAOd61Up9SVMJW+3VFVGeVQG8JBqZhEQo2U0HBfIsAynyAXcsLBSo+KZrOfy9SBz7pGHctWN/KabLDbNFA==} - - text-decoder@1.2.0: - resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} - text-encoding-utf-8@1.0.2: resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} @@ -8863,10 +8688,6 @@ packages: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} - tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -9789,10 +9610,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zip-stream@4.1.1: - resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} - engines: {node: '>= 10'} - zksync-ethers@5.9.2: resolution: {integrity: sha512-Y2Mx6ovvxO6UdC2dePLguVzvNToOY8iLWeq5ne+jgGSJxAi/f4He/NF6FNsf6x1aWX0o8dy4Df8RcOQXAkj5qw==} engines: {node: '>=16.0.0'} @@ -9850,43 +9667,43 @@ snapshots: '@aws-crypto/sha256-js@1.2.2': dependencies: '@aws-crypto/util': 1.2.2 - '@aws-sdk/types': 3.654.0 + '@aws-sdk/types': 3.664.0 tslib: 1.14.1 '@aws-crypto/util@1.2.2': dependencies: - '@aws-sdk/types': 3.654.0 + '@aws-sdk/types': 3.664.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 - '@aws-sdk/types@3.654.0': + '@aws-sdk/types@3.664.0': dependencies: - '@smithy/types': 3.4.2 + '@smithy/types': 3.5.0 tslib: 2.7.0 '@aws-sdk/util-utf8-browser@3.259.0': dependencies: tslib: 2.7.0 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.25.7': dependencies: - '@babel/highlight': 7.24.7 + '@babel/highlight': 7.25.7 picocolors: 1.1.0 - '@babel/compat-data@7.25.4': {} + '@babel/compat-data@7.25.7': {} - '@babel/core@7.25.2': + '@babel/core@7.25.7': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 convert-source-map: 2.0.0 debug: 4.3.7(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -9895,908 +9712,904 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.25.6': + '@babel/generator@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 - '@babel/helper-annotate-as-pure@7.24.7': + '@babel/helper-annotate-as-pure@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-compilation-targets@7.25.2': + '@babel/helper-compilation-targets@7.25.7': dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 + '@babel/compat-data': 7.25.7 + '@babel/helper-validator-option': 7.25.7 browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': + '@babel/helper-create-class-features-plugin@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-member-expression-to-functions': 7.25.7 + '@babel/helper-optimise-call-expression': 7.25.7 + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + '@babel/traverse': 7.25.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': + '@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + regexpu-core: 6.1.1 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 debug: 4.3.7(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-member-expression-to-functions@7.24.8': + '@babel/helper-member-expression-to-functions@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.24.7': + '@babel/helper-module-imports@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.24.7': + '@babel/helper-optimise-call-expression@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/helper-plugin-utils@7.24.8': {} + '@babel/helper-plugin-utils@7.25.7': {} - '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': + '@babel/helper-remap-async-to-generator@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-wrap-function': 7.25.0 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-wrap-function': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': + '@babel/helper-replace-supers@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-member-expression-to-functions': 7.25.7 + '@babel/helper-optimise-call-expression': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-simple-access@7.24.7': + '@babel/helper-simple-access@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + '@babel/helper-skip-transparent-expression-wrappers@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-string-parser@7.25.7': {} - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.7': {} - '@babel/helper-validator-option@7.24.8': {} + '@babel/helper-validator-option@7.25.7': {} - '@babel/helper-wrap-function@7.25.0': + '@babel/helper-wrap-function@7.25.7': dependencies: - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helpers@7.25.6': + '@babel/helpers@7.25.7': dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 - '@babel/highlight@7.24.7': + '@babel/highlight@7.25.7': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/parser@7.25.6': + '@babel/parser@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + '@babel/plugin-transform-optional-chaining': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.2)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-export-default-from@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-proposal-export-default-from@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.25.2)': + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.25.2)': + '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-export-default-from@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-flow@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-assertions@7.25.6(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-assertions@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-attributes@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-arrow-functions@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-async-generator-functions@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-async-to-generator@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-block-scoped-functions@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-transform-block-scoping@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-class-properties@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-class-static-block@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-classes@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.7) + '@babel/traverse': 7.25.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-computed-properties@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.25.0 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/template': 7.25.7 - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': + '@babel/plugin-transform-destructuring@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-dotall-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-duplicate-keys@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-dynamic-import@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-exponentiation-operator@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-export-namespace-from@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.25.2)': + '@babel/plugin-transform-flow-strip-types@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-for-of@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': + '@babel/plugin-transform-function-name@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-json-strings@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': + '@babel/plugin-transform-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-logical-assignment-operators@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-member-expression-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-modules-amd@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': + '@babel/plugin-transform-modules-commonjs@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 + '@babel/core': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-simple-access': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-transform-modules-systemjs@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-modules-umd@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-named-capturing-groups-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-new-target@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-nullish-coalescing-operator@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-numeric-separator@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-object-rest-spread@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-object-super@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-optional-catch-binding@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': + '@babel/plugin-transform-optional-chaining@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-parameters@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-private-methods@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-private-property-in-object@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-property-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-constant-elements@7.25.1(@babel/core@7.25.2)': + '@babel/plugin-transform-react-constant-elements@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-display-name@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-development@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-self@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-source@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-pure-annotations@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-regenerator@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-reserved-words@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-runtime@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-runtime@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.7) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-shorthand-properties@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-spread@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-sticky-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-template-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': + '@babel/plugin-transform-typeof-symbol@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)': + '@babel/plugin-transform-typescript@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-escapes@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-property-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-sets-regex@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 - '@babel/preset-env@7.25.4(@babel/core@7.25.2)': + '@babel/preset-env@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/compat-data': 7.25.4 - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-import-assertions': 7.25.6(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.25.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-generator-functions': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-sets-regex': 7.25.4(@babel/core@7.25.2) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + '@babel/compat-data': 7.25.7 + '@babel/core': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-validator-option': 7.25.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-import-assertions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-import-attributes': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-async-generator-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-async-to-generator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoped-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-class-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-class-static-block': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-dotall-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-duplicate-keys': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-dynamic-import': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-exponentiation-operator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-export-namespace-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-for-of': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-json-strings': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-logical-assignment-operators': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-member-expression-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-amd': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-systemjs': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-umd': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-new-target': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-numeric-separator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-object-rest-spread': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-object-super': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-catch-binding': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-chaining': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-property-in-object': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-property-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-regenerator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-reserved-words': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-template-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-typeof-symbol': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-escapes': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-property-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-sets-regex': 7.25.7(@babel/core@7.25.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.7) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.7) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.7) core-js-compat: 3.38.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-flow@7.24.7(@babel/core@7.25.2)': + '@babel/preset-flow@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-validator-option': 7.25.7 + '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.7) - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/types': 7.25.7 esutils: 2.0.3 - '@babel/preset-react@7.24.7(@babel/core@7.25.2)': + '@babel/preset-react@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-validator-option': 7.25.7 + '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-development': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-pure-annotations': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.24.7(@babel/core@7.25.2)': + '@babel/preset-typescript@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-validator-option': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/register@7.24.6(@babel/core@7.25.2)': + '@babel/register@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 pirates: 4.0.6 source-map-support: 0.5.21 - '@babel/regjsgen@0.8.0': {} - - '@babel/runtime@7.25.6': + '@babel/runtime@7.25.7': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.25.0': + '@babel/template@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 - '@babel/traverse@7.25.6': + '@babel/traverse@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 debug: 4.3.7(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.25.6': + '@babel/types@7.25.7': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 - '@balena/dockerignore@1.0.2': {} - '@bcoe/v8-coverage@0.2.3': {} '@coinbase/wallet-sdk@3.9.3': @@ -10808,7 +10621,7 @@ snapshots: eth-json-rpc-filters: 6.0.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.24.1 + preact: 10.24.2 sha.js: 2.4.11 transitivePeerDependencies: - supports-color @@ -10819,7 +10632,7 @@ snapshots: clsx: 1.2.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.24.1 + preact: 10.24.2 sha.js: 2.4.11 '@colors/colors@1.6.0': {} @@ -10829,7 +10642,7 @@ snapshots: better-sqlite3: 9.6.0 class-validator: 0.14.1 dotenv: 16.4.5 - ethers: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) lru-cache: 10.2.2 pg: 8.11.3 typeorm: 0.3.20(better-sqlite3@9.6.0)(pg@8.11.3)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) @@ -10865,22 +10678,22 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 - '@depay/solana-web3.js@1.26.0': + '@depay/solana-web3.js@1.27.0': dependencies: bs58: 5.0.0 - '@depay/web3-blockchains@9.6.1': {} + '@depay/web3-blockchains@9.6.7': {} '@depay/web3-mock@14.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@depay/solana-web3.js': 1.26.0 - '@depay/web3-blockchains': 9.6.1 + '@depay/solana-web3.js': 1.27.0 + '@depay/web3-blockchains': 9.6.7 ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate - '@emnapi/runtime@1.2.0': + '@emnapi/runtime@1.3.0': dependencies: tslib: 2.7.0 optional: true @@ -11374,8 +11187,8 @@ snapshots: '@headlessui/react@2.1.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react': 0.26.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/focus': 3.18.2(react@18.3.1) - '@react-aria/interactions': 3.22.2(react@18.3.1) + '@react-aria/focus': 3.18.3(react@18.3.1) + '@react-aria/interactions': 3.22.3(react@18.3.1) '@tanstack/react-virtual': 3.10.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11458,7 +11271,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.2.0 + '@emnapi/runtime': 1.3.0 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -11627,7 +11440,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -11768,7 +11581,7 @@ snapshots: '@metamask/rpc-errors@6.4.0': dependencies: - '@metamask/utils': 9.2.1 + '@metamask/utils': 9.3.0 fast-safe-stringify: 2.1.1 transitivePeerDependencies: - supports-color @@ -11792,21 +11605,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@metamask/sdk-install-modal-web@0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)': + '@metamask/sdk-install-modal-web@0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: i18next: 23.11.5 qr-code-styling: 1.6.0-rc.1 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-native: 0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10) + react-native: 0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10) - '@metamask/sdk@0.28.4(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(utf-8-validate@5.0.10)': + '@metamask/sdk@0.28.4(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(utf-8-validate@5.0.10)': dependencies: '@metamask/onboarding': 1.0.1 '@metamask/providers': 16.1.0 '@metamask/sdk-communication-layer': 0.28.2(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.20)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - '@metamask/sdk-install-modal-web': 0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1) + '@metamask/sdk-install-modal-web': 0.28.1(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1) '@types/dom-screen-wake-lock': 1.0.3 '@types/uuid': 10.0.0 bowser: 2.11.0 @@ -11820,9 +11633,9 @@ snapshots: obj-multiplex: 1.0.0 pump: 3.0.2 qrcode-terminal-nooctal: 0.12.1 - react-native-webview: 11.26.1(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1) + react-native-webview: 11.26.1(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1) readable-stream: 3.6.2 - rollup-plugin-visualizer: 5.12.0(rollup@4.22.5) + rollup-plugin-visualizer: 5.12.0(rollup@4.24.0) socket.io-client: 4.8.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) util: 0.12.5 uuid: 8.3.2 @@ -11863,7 +11676,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@metamask/utils@9.2.1': + '@metamask/utils@9.3.0': dependencies: '@ethereumjs/tx': 4.2.0 '@metamask/superstruct': 3.1.0 @@ -12064,7 +11877,7 @@ snapshots: ethereumjs-util: 7.1.5 hardhat: 2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-toolbox@4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.1.1)(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-network-helpers@1.0.10(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-verify@1.1.1(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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/ethers-v6@0.5.1(ethers@6.12.0(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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)))(@types/chai@4.3.20)(@types/mocha@10.0.8)(@types/node@20.12.7)(chai@4.1.1)(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.8)(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(solidity-coverage@0.8.13(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5)' + ? '@nomicfoundation/hardhat-toolbox@4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.1.1)(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-network-helpers@1.0.10(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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-verify@1.1.1(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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/ethers-v6@0.5.1(ethers@6.12.0(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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)))(@types/chai@4.3.20)(@types/mocha@10.0.9)(@types/node@20.12.7)(chai@4.1.1)(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.8)(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10))(solidity-coverage@0.8.13(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5)' : dependencies: '@nomicfoundation/hardhat-chai-matchers': 2.0.8(@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.1.1)(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) @@ -12073,7 +11886,7 @@ snapshots: '@typechain/ethers-v6': 0.5.1(ethers@6.12.0(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5))(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(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)) '@types/chai': 4.3.20 - '@types/mocha': 10.0.8 + '@types/mocha': 10.0.9 '@types/node': 20.12.7 chai: 4.1.1 ethers: 6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -12174,7 +11987,7 @@ snapshots: '@oclif/core': 4.0.23 ansis: 3.3.2 debug: 4.3.7(supports-color@8.1.1) - npm: 10.8.3 + npm: 10.9.0 npm-package-arg: 11.0.3 npm-run-path: 5.3.0 object-treeify: 4.0.1 @@ -12221,16 +12034,16 @@ snapshots: - debug - encoding - '@openzeppelin/defender-sdk-base-client@1.14.4(encoding@0.1.13)': + '@openzeppelin/defender-sdk-base-client@1.15.0(encoding@0.1.13)': dependencies: amazon-cognito-identity-js: 6.3.12(encoding@0.1.13) async-retry: 1.3.3 transitivePeerDependencies: - encoding - '@openzeppelin/defender-sdk-deploy-client@1.14.4(debug@4.3.7)(encoding@0.1.13)': + '@openzeppelin/defender-sdk-deploy-client@1.15.0(debug@4.3.7)(encoding@0.1.13)': dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0(encoding@0.1.13) axios: 1.7.7(debug@4.3.7) lodash: 4.17.21 transitivePeerDependencies: @@ -12242,8 +12055,8 @@ snapshots: '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.10(bufferutil@4.0.8)(c-kzg@2.1.2)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@openzeppelin/defender-admin-client': 1.54.6(bufferutil@4.0.8)(debug@4.3.7)(encoding@0.1.13)(utf-8-validate@5.0.10) '@openzeppelin/defender-base-client': 1.54.6(debug@4.3.7)(encoding@0.1.13) - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) - '@openzeppelin/defender-sdk-deploy-client': 1.14.4(debug@4.3.7)(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0(encoding@0.1.13) + '@openzeppelin/defender-sdk-deploy-client': 1.15.0(debug@4.3.7)(encoding@0.1.13) '@openzeppelin/upgrades-core': 1.33.1 chalk: 4.1.2 debug: 4.3.7(supports-color@8.1.1) @@ -12355,33 +12168,33 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@react-aria/focus@3.18.2(react@18.3.1)': + '@react-aria/focus@3.18.3(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.22.2(react@18.3.1) - '@react-aria/utils': 3.25.2(react@18.3.1) - '@react-types/shared': 3.24.1(react@18.3.1) + '@react-aria/interactions': 3.22.3(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) '@swc/helpers': 0.5.13 clsx: 2.1.1 react: 18.3.1 - '@react-aria/interactions@3.22.2(react@18.3.1)': + '@react-aria/interactions@3.22.3(react@18.3.1)': dependencies: - '@react-aria/ssr': 3.9.5(react@18.3.1) - '@react-aria/utils': 3.25.2(react@18.3.1) - '@react-types/shared': 3.24.1(react@18.3.1) + '@react-aria/ssr': 3.9.6(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 - '@react-aria/ssr@3.9.5(react@18.3.1)': + '@react-aria/ssr@3.9.6(react@18.3.1)': dependencies: '@swc/helpers': 0.5.13 react: 18.3.1 - '@react-aria/utils@3.25.2(react@18.3.1)': + '@react-aria/utils@3.25.3(react@18.3.1)': dependencies: - '@react-aria/ssr': 3.9.5(react@18.3.1) - '@react-stately/utils': 3.10.3(react@18.3.1) - '@react-types/shared': 3.24.1(react@18.3.1) + '@react-aria/ssr': 3.9.6(react@18.3.1) + '@react-stately/utils': 3.10.4(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) '@swc/helpers': 0.5.13 clsx: 2.1.1 react: 18.3.1 @@ -12510,86 +12323,86 @@ snapshots: - typescript - utf-8-validate - '@react-native/assets-registry@0.75.3': {} + '@react-native/assets-registry@0.75.4': {} - '@react-native/babel-plugin-codegen@0.75.3(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/babel-plugin-codegen@0.75.4(@babel/preset-env@7.25.7(@babel/core@7.25.7))': dependencies: - '@react-native/codegen': 0.75.3(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@react-native/codegen': 0.75.4(@babel/preset-env@7.25.7(@babel/core@7.25.7)) transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-preset@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/babel-preset@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-generator-functions': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-runtime': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) - '@babel/template': 7.25.0 - '@react-native/babel-plugin-codegen': 0.75.3(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-proposal-export-default-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-export-default-from': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-async-generator-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-async-to-generator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-class-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-for-of': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-logical-assignment-operators': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-numeric-separator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-object-rest-spread': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-catch-binding': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-chaining': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-property-in-object': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-regenerator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.25.7) + '@babel/template': 7.25.7 + '@react-native/babel-plugin-codegen': 0.75.4(@babel/preset-env@7.25.7(@babel/core@7.25.7)) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.7) react-refresh: 0.14.2 transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/codegen@0.75.3(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/codegen@0.75.4(@babel/preset-env@7.25.7(@babel/core@7.25.7))': dependencies: - '@babel/parser': 7.25.6 - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) + '@babel/parser': 7.25.7 + '@babel/preset-env': 7.25.7(@babel/core@7.25.7) glob: 7.2.3 hermes-parser: 0.22.0 invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + jscodeshift: 0.14.0(@babel/preset-env@7.25.7(@babel/core@7.25.7)) mkdirp: 0.5.6 nullthrows: 1.1.1 yargs: 17.7.2 transitivePeerDependencies: - supports-color - '@react-native/community-cli-plugin@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@react-native/community-cli-plugin@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@react-native-community/cli-server-api': 14.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@react-native-community/cli-tools': 14.1.0 - '@react-native/dev-middleware': 0.75.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@react-native/metro-babel-transformer': 0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@react-native/dev-middleware': 0.75.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@react-native/metro-babel-transformer': 0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7)) chalk: 4.1.2 execa: 5.1.1 metro: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -12605,12 +12418,12 @@ snapshots: - supports-color - utf-8-validate - '@react-native/debugger-frontend@0.75.3': {} + '@react-native/debugger-frontend@0.75.4': {} - '@react-native/dev-middleware@0.75.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@react-native/dev-middleware@0.75.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.75.3 + '@react-native/debugger-frontend': 0.75.4 chrome-launcher: 0.15.2 chromium-edge-launcher: 0.2.0 connect: 3.7.0 @@ -12627,86 +12440,86 @@ snapshots: - supports-color - utf-8-validate - '@react-native/gradle-plugin@0.75.3': {} + '@react-native/gradle-plugin@0.75.4': {} - '@react-native/js-polyfills@0.75.3': {} + '@react-native/js-polyfills@0.75.4': {} - '@react-native/metro-babel-transformer@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))': + '@react-native/metro-babel-transformer@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))': dependencies: - '@babel/core': 7.25.2 - '@react-native/babel-preset': 0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@babel/core': 7.25.7 + '@react-native/babel-preset': 0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7)) hermes-parser: 0.22.0 nullthrows: 1.1.1 transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/normalize-colors@0.75.3': {} + '@react-native/normalize-colors@0.75.4': {} - '@react-native/virtualized-lists@0.75.3(@types/react@18.3.11)(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)': + '@react-native/virtualized-lists@0.75.4(@types/react@18.3.11)(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10) + react-native: 0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10) optionalDependencies: '@types/react': 18.3.11 - '@react-stately/utils@3.10.3(react@18.3.1)': + '@react-stately/utils@3.10.4(react@18.3.1)': dependencies: '@swc/helpers': 0.5.13 react: 18.3.1 - '@react-types/shared@3.24.1(react@18.3.1)': + '@react-types/shared@3.25.0(react@18.3.1)': dependencies: react: 18.3.1 - '@rollup/rollup-android-arm-eabi@4.22.5': + '@rollup/rollup-android-arm-eabi@4.24.0': optional: true - '@rollup/rollup-android-arm64@4.22.5': + '@rollup/rollup-android-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-arm64@4.22.5': + '@rollup/rollup-darwin-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-x64@4.22.5': + '@rollup/rollup-darwin-x64@4.24.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.22.5': + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.22.5': + '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.22.5': + '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.22.5': + '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.22.5': + '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.22.5': + '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.22.5': + '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-musl@4.22.5': + '@rollup/rollup-linux-x64-musl@4.24.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.22.5': + '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.22.5': + '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.22.5': + '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true '@rtsao/scc@1.1.0': {} @@ -12718,7 +12531,7 @@ snapshots: '@noble/hashes': 1.5.0 '@safe-global/safe-deployments': 1.37.10 ethereumjs-util: 7.1.5 - ethers: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) semver: 7.6.3 web3: 1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-core: 1.10.4(encoding@0.1.13) @@ -12752,7 +12565,7 @@ snapshots: '@safe-global/safe-core-sdk-types@4.0.2(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@safe-global/safe-deployments': 1.37.10 - ethers: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) web3-core: 1.10.4(encoding@0.1.13) web3-utils: 1.10.4 transitivePeerDependencies: @@ -12884,7 +12697,7 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@smithy/types@3.4.2': + '@smithy/types@3.5.0': dependencies: tslib: 2.7.0 @@ -12980,54 +12793,54 @@ snapshots: '@stablelib/random': 1.0.2 '@stablelib/wipe': 1.0.1 - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.25.2)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.25.2)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.25.2)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.25.2)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.25.2)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.25.2)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.25.2)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.25.2)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - '@svgr/babel-preset@8.1.0(@babel/core@7.25.2)': + '@svgr/babel-preset@8.1.0(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.25.2) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.25.2) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.25.2) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.25.2) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.25.2) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.25.2) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.25.2) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.25.7) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.25.7) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.25.7) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.25.7) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.25.7) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.25.7) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.25.7) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.25.7) '@svgr/core@8.1.0(typescript@5.4.5)': dependencies: - '@babel/core': 7.25.2 - '@svgr/babel-preset': 8.1.0(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@svgr/babel-preset': 8.1.0(@babel/core@7.25.7) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.4.5) snake-case: 3.0.4 @@ -13037,13 +12850,13 @@ snapshots: '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 entities: 4.5.0 '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.4.5))': dependencies: - '@babel/core': 7.25.2 - '@svgr/babel-preset': 8.1.0(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@svgr/babel-preset': 8.1.0(@babel/core@7.25.7) '@svgr/core': 8.1.0(typescript@5.4.5) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -13061,11 +12874,11 @@ snapshots: '@svgr/webpack@8.1.0(typescript@5.4.5)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-constant-elements': 7.25.1(@babel/core@7.25.2) - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) - '@babel/preset-react': 7.24.7(@babel/core@7.25.2) - '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-transform-react-constant-elements': 7.25.7(@babel/core@7.25.7) + '@babel/preset-env': 7.25.7(@babel/core@7.25.7) + '@babel/preset-react': 7.25.7(@babel/core@7.25.7) + '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) '@svgr/core': 8.1.0(typescript@5.4.5) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.4.5)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.4.5))(typescript@5.4.5) @@ -13207,19 +13020,17 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5)': + '@typechain/ethers-v6@0.5.1(ethers@6.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5)': dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.12.0(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.4.5))(typescript@5.4.5)': + '@typechain/ethers-v6@0.5.1(ethers@6.13.3(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.12.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.3(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) @@ -13235,24 +13046,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@types/bn.js@4.11.6': dependencies: @@ -13285,17 +13096,6 @@ snapshots: '@types/diff@5.2.0': {} - '@types/docker-modem@3.0.6': - dependencies: - '@types/node': 20.12.7 - '@types/ssh2': 1.15.1 - - '@types/dockerode@3.3.31': - dependencies: - '@types/docker-modem': 3.0.6 - '@types/node': 20.12.7 - '@types/ssh2': 1.15.1 - '@types/dom-screen-wake-lock@1.0.3': {} '@types/estree@1.0.6': {} @@ -13362,7 +13162,7 @@ snapshots: '@types/minimatch@5.1.2': {} - '@types/mocha@10.0.8': {} + '@types/mocha@10.0.9': {} '@types/ms@0.7.34': {} @@ -13376,10 +13176,6 @@ snapshots: '@types/node@18.15.13': {} - '@types/node@18.19.54': - dependencies: - undici-types: 5.26.5 - '@types/node@20.12.7': dependencies: undici-types: 5.26.5 @@ -13423,19 +13219,6 @@ snapshots: '@types/semver@7.5.8': {} - '@types/ssh2-streams@0.1.12': - dependencies: - '@types/node': 20.12.7 - - '@types/ssh2@0.5.52': - dependencies: - '@types/node': 20.12.7 - '@types/ssh2-streams': 0.1.12 - - '@types/ssh2@1.15.1': - dependencies: - '@types/node': 18.19.54 - '@types/stack-utils@2.0.3': {} '@types/tinycolor2@1.4.6': {} @@ -13561,10 +13344,10 @@ snapshots: - debug - utf-8-validate - '@wagmi/connectors@5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)': + '@wagmi/connectors@5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)': dependencies: '@coinbase/wallet-sdk': 4.0.4 - '@metamask/sdk': 0.28.4(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(utf-8-validate@5.0.10) + '@metamask/sdk': 0.28.4(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.3(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4) '@wagmi/core': 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)) @@ -13596,7 +13379,6 @@ snapshots: - react-native - rollup - supports-color - - uWebSockets.js - utf-8-validate - zod @@ -13647,7 +13429,6 @@ snapshots: - '@vercel/kv' - bufferutil - ioredis - - uWebSockets.js - utf-8-validate '@walletconnect/core@2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': @@ -13683,7 +13464,6 @@ snapshots: - '@vercel/kv' - bufferutil - ioredis - - uWebSockets.js - utf-8-validate '@walletconnect/environment@1.0.1': @@ -13720,7 +13500,6 @@ snapshots: - encoding - ioredis - react - - uWebSockets.js - utf-8-validate '@walletconnect/ethereum-provider@2.17.0(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)': @@ -13753,7 +13532,6 @@ snapshots: - encoding - ioredis - react - - uWebSockets.js - utf-8-validate '@walletconnect/events@1.0.1': @@ -13821,7 +13599,6 @@ snapshots: - '@upstash/redis' - '@vercel/kv' - ioredis - - uWebSockets.js '@walletconnect/logger@2.1.2': dependencies: @@ -13921,7 +13698,6 @@ snapshots: - '@vercel/kv' - bufferutil - ioredis - - uWebSockets.js - utf-8-validate '@walletconnect/sign-client@2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': @@ -13950,7 +13726,6 @@ snapshots: - '@vercel/kv' - bufferutil - ioredis - - uWebSockets.js - utf-8-validate '@walletconnect/time@1.0.2': @@ -13979,7 +13754,6 @@ snapshots: - '@upstash/redis' - '@vercel/kv' - ioredis - - uWebSockets.js '@walletconnect/types@2.17.0': dependencies: @@ -14003,7 +13777,6 @@ snapshots: - '@upstash/redis' - '@vercel/kv' - ioredis - - uWebSockets.js '@walletconnect/universal-provider@2.16.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: @@ -14032,7 +13805,6 @@ snapshots: - bufferutil - encoding - ioredis - - uWebSockets.js - utf-8-validate '@walletconnect/universal-provider@2.17.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': @@ -14062,7 +13834,6 @@ snapshots: - bufferutil - encoding - ioredis - - uWebSockets.js - utf-8-validate '@walletconnect/utils@2.16.1': @@ -14097,7 +13868,6 @@ snapshots: - '@upstash/redis' - '@vercel/kv' - ioredis - - uWebSockets.js '@walletconnect/utils@2.17.0': dependencies: @@ -14131,7 +13901,6 @@ snapshots: - '@upstash/redis' - '@vercel/kv' - ioredis - - uWebSockets.js '@walletconnect/window-getters@1.0.1': dependencies: @@ -14172,7 +13941,6 @@ snapshots: - '@vercel/kv' - ioredis - react - - uWebSockets.js '@web3modal/common@5.1.11': dependencies: @@ -14217,7 +13985,6 @@ snapshots: - '@vercel/kv' - ioredis - react - - uWebSockets.js '@web3modal/scaffold-utils@5.1.11(@types/react@18.3.11)(react@18.3.1)': dependencies: @@ -14256,16 +14023,15 @@ snapshots: - '@vercel/kv' - ioredis - react - - uWebSockets.js '@web3modal/ui@5.1.11': dependencies: lit: 3.1.0 qrcode: 1.5.3 - ? '@web3modal/wagmi@5.1.11(@types/react@18.3.11)(@wagmi/connectors@5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))' + ? '@web3modal/wagmi@5.1.11(@types/react@18.3.11)(@wagmi/connectors@5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))' : dependencies: - '@wagmi/connectors': 5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + '@wagmi/connectors': 5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) '@wagmi/core': 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)) '@walletconnect/ethereum-provider': 2.16.1(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10) '@walletconnect/utils': 2.16.1 @@ -14276,7 +14042,7 @@ snapshots: '@web3modal/siwe': 5.1.11(@types/react@18.3.11)(react@18.3.1) '@web3modal/wallet': 5.1.11 viem: 2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4) - wagmi: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + wagmi: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -14297,7 +14063,6 @@ snapshots: - bufferutil - encoding - ioredis - - uWebSockets.js - utf-8-validate '@web3modal/wallet@5.1.11': @@ -14447,42 +14212,6 @@ snapshots: appdirsjs@1.2.7: {} - archiver-utils@2.1.0: - dependencies: - glob: 7.2.3 - graceful-fs: 4.2.11 - lazystream: 1.0.1 - lodash.defaults: 4.2.0 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.union: 4.6.0 - normalize-path: 3.0.0 - readable-stream: 2.3.8 - - archiver-utils@3.0.4: - dependencies: - glob: 7.2.3 - graceful-fs: 4.2.11 - lazystream: 1.0.1 - lodash.defaults: 4.2.0 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.union: 4.6.0 - normalize-path: 3.0.0 - readable-stream: 3.6.2 - - archiver@5.3.2: - dependencies: - archiver-utils: 2.1.0 - async: 3.2.6 - buffer-crc32: 0.2.13 - readable-stream: 3.6.2 - readdir-glob: 1.1.3 - tar-stream: 2.2.0 - zip-stream: 4.1.1 - arg@4.1.3: {} arg@5.0.2: {} @@ -14596,8 +14325,6 @@ snapshots: async-limiter@1.0.1: {} - async-lock@1.4.1: {} - async-mutex@0.2.6: dependencies: tslib: 2.7.0 @@ -14619,7 +14346,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.47): dependencies: browserslist: 4.24.0 - caniuse-lite: 1.0.30001664 + caniuse-lite: 1.0.30001667 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.0 @@ -14660,19 +14387,17 @@ snapshots: axobject-query@4.1.0: {} - b4a@1.6.7: {} - - babel-core@7.0.0-bridge.0(@babel/core@7.25.2): + babel-core@7.0.0-bridge.0(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 - babel-jest@29.7.0(@babel/core@7.25.2): + babel-jest@29.7.0(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.25.2) + babel-preset-jest: 29.6.3(@babel/core@7.25.7) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -14681,7 +14406,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -14691,92 +14416,68 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.7): dependencies: - '@babel/compat-data': 7.25.4 - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + '@babel/compat-data': 7.25.7 + '@babel/core': 7.25.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.7) core-js-compat: 3.38.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.25.2): + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.25.7): dependencies: - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - '@babel/core' - babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.2): + babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.25.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-import-attributes': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.7) - babel-preset-jest@29.6.3(@babel/core@7.25.2): + babel-preset-jest@29.6.3(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.7) balanced-match@1.0.2: {} - bare-events@2.5.0: - optional: true - - bare-fs@2.3.5: - dependencies: - bare-events: 2.5.0 - bare-path: 2.1.3 - bare-stream: 2.3.0 - optional: true - - bare-os@2.4.4: - optional: true - - bare-path@2.1.3: - dependencies: - bare-os: 2.4.4 - optional: true - - bare-stream@2.3.0: - dependencies: - b4a: 1.6.7 - streamx: 2.20.1 - optional: true - base-x@3.0.10: dependencies: safe-buffer: 5.2.1 @@ -14896,8 +14597,8 @@ snapshots: browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001664 - electron-to-chromium: 1.5.29 + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.34 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.0) @@ -14923,8 +14624,6 @@ snapshots: dependencies: node-int64: 0.4.0 - buffer-crc32@0.2.13: {} - buffer-from@1.1.2: {} buffer-indexof-polyfill@1.0.2: {} @@ -14957,9 +14656,6 @@ snapshots: dependencies: node-gyp-build: 4.8.2 - buildcheck@0.0.6: - optional: true - bundle-require@4.2.1(esbuild@0.19.12): dependencies: esbuild: 0.19.12 @@ -14969,8 +14665,6 @@ snapshots: dependencies: streamsearch: 1.1.0 - byline@5.0.0: {} - bytes@3.0.0: {} bytes@3.1.2: {} @@ -15049,7 +14743,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001664: {} + caniuse-lite@1.0.30001667: {} caseless@0.12.0: {} @@ -15166,7 +14860,7 @@ snapshots: class-validator@0.14.1: dependencies: '@types/validator': 13.12.2 - libphonenumber-js: 1.11.9 + libphonenumber-js: 1.11.11 validator: 13.12.0 clean-stack@2.2.0: {} @@ -15323,13 +15017,6 @@ snapshots: compare-versions@6.1.1: {} - compress-commons@4.1.2: - dependencies: - buffer-crc32: 0.2.13 - crc32-stream: 4.0.3 - normalize-path: 3.0.0 - readable-stream: 3.6.2 - compressible@2.0.18: dependencies: mime-db: 1.53.0 @@ -15355,7 +15042,7 @@ snapshots: readable-stream: 2.3.8 typedarray: 0.0.6 - confbox@0.1.7: {} + confbox@0.1.8: {} config-chain@1.1.13: dependencies: @@ -15397,7 +15084,7 @@ snapshots: cookie@0.4.2: {} - cookie@0.6.0: {} + cookie@0.7.1: {} core-js-compat@3.38.1: dependencies: @@ -15437,19 +15124,8 @@ snapshots: optionalDependencies: typescript: 5.4.5 - cpu-features@0.0.10: - dependencies: - buildcheck: 0.0.6 - nan: 2.20.0 - optional: true - crc-32@1.2.2: {} - crc32-stream@4.0.3: - dependencies: - crc-32: 1.2.2 - readable-stream: 3.6.2 - create-hash@1.2.0: dependencies: cipher-base: 1.0.4 @@ -15502,7 +15178,9 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crossws@0.2.4: {} + crossws@0.3.1: + dependencies: + uncrypto: 0.1.3 crypt@0.0.2: {} @@ -15587,7 +15265,7 @@ snapshots: date-fns@2.30.0: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 date-fns@4.1.0: {} @@ -15652,7 +15330,7 @@ snapshots: object-is: 1.1.6 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 side-channel: 1.0.6 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 @@ -15724,27 +15402,6 @@ snapshots: dlv@1.1.3: {} - docker-compose@0.24.8: - dependencies: - yaml: 2.5.1 - - docker-modem@3.0.8: - dependencies: - debug: 4.3.7(supports-color@8.1.1) - readable-stream: 3.6.2 - split-ca: 1.0.1 - ssh2: 1.16.0 - transitivePeerDependencies: - - supports-color - - dockerode@3.3.5: - dependencies: - '@balena/dockerignore': 1.0.2 - docker-modem: 3.0.8 - tar-fs: 2.0.1 - transitivePeerDependencies: - - supports-color - doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -15818,7 +15475,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.29: {} + electron-to-chromium@1.5.34: {} elliptic@6.5.4: dependencies: @@ -15944,7 +15601,7 @@ snapshots: object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 string.prototype.trim: 1.2.9 @@ -15975,7 +15632,7 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - es-iterator-helpers@1.0.19: + es-iterator-helpers@1.1.0: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -15989,7 +15646,7 @@ snapshots: has-proto: 1.0.3 has-symbols: 1.0.3 internal-slot: 1.0.7 - iterator.prototype: 1.1.2 + iterator.prototype: 1.1.3 safe-array-concat: 1.1.2 es-object-atoms@1.0.0: @@ -16111,10 +15768,10 @@ snapshots: '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0) - eslint-plugin-react: 7.37.0(eslint@8.57.0) + eslint-plugin-react: 7.37.1(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) optionalDependencies: typescript: 5.4.5 @@ -16135,37 +15792,37 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.57.0 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -16176,7 +15833,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -16185,6 +15842,7 @@ snapshots: object.groupby: 1.0.3 object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) @@ -16203,7 +15861,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.19 + es-iterator-helpers: 1.1.0 eslint: 8.57.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -16226,14 +15884,14 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-react@7.37.0(eslint@8.57.0): + eslint-plugin-react@7.37.1(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.0.19 + es-iterator-helpers: 1.1.0 eslint: 8.57.0 estraverse: 5.3.0 hasown: 2.0.2 @@ -16529,6 +16187,19 @@ snapshots: - bufferutil - utf-8-validate + ethers@6.13.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + '@adraffy/ens-normalize': 1.10.1 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@types/node': 18.15.13 + aes-js: 4.0.0-beta.5 + tslib: 2.4.0 + ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + ethjs-unit@0.1.6: dependencies: bn.js: 4.11.6 @@ -16611,14 +16282,14 @@ snapshots: exponential-backoff@3.1.1: {} - express@4.21.0: + express@4.21.1: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.6.0 + cookie: 0.7.1 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 @@ -16668,8 +16339,6 @@ snapshots: fast-diff@1.3.0: {} - fast-fifo@1.3.2: {} - fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -16956,8 +16625,6 @@ snapshots: get-port@3.2.0: {} - get-port@5.1.1: {} - get-port@6.1.2: {} get-stream@5.2.0: @@ -17162,10 +16829,10 @@ snapshots: graphemer@1.4.0: {} - h3@1.12.0: + h3@1.13.0: dependencies: cookie-es: 1.2.2 - crossws: 0.2.4 + crossws: 0.3.1 defu: 6.1.4 destr: 2.0.3 iron-webcrypto: 1.2.1 @@ -17174,8 +16841,6 @@ snapshots: ufo: 1.5.4 uncrypto: 0.1.3 unenv: 1.10.0 - transitivePeerDependencies: - - uWebSockets.js handlebars@4.7.8: dependencies: @@ -17454,11 +17119,11 @@ snapshots: i18next-browser-languagedetector@7.1.0: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 i18next@23.11.5: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 iconv-lite@0.4.24: dependencies: @@ -17734,8 +17399,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 + '@babel/core': 7.25.7 + '@babel/parser': 7.25.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -17744,8 +17409,8 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 + '@babel/core': 7.25.7 + '@babel/parser': 7.25.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.3 @@ -17773,7 +17438,7 @@ snapshots: iterate-object@1.3.4: {} - iterator.prototype@1.1.2: + iterator.prototype@1.1.3: dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.4 @@ -17853,10 +17518,10 @@ snapshots: jest-config@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) + babel-jest: 29.7.0(@babel/core@7.25.7) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -17948,7 +17613,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -18050,15 +17715,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.7) + '@babel/types': 7.25.7 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.7) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -18123,7 +17788,7 @@ snapshots: jiti@1.21.6: {} - jiti@2.0.0: {} + jiti@2.3.3: {} joi@17.13.3: dependencies: @@ -18160,19 +17825,19 @@ snapshots: jsc-safe-url@0.2.4: {} - jscodeshift@0.14.0(@babel/preset-env@7.25.4(@babel/core@7.25.2)): + jscodeshift@0.14.0(@babel/preset-env@7.25.7(@babel/core@7.25.7)): dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) - '@babel/preset-flow': 7.24.7(@babel/core@7.25.2) - '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) - '@babel/register': 7.24.6(@babel/core@7.25.2) - babel-core: 7.0.0-bridge.0(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) + '@babel/preset-env': 7.25.7(@babel/core@7.25.7) + '@babel/preset-flow': 7.25.7(@babel/core@7.25.7) + '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) + '@babel/register': 7.25.7(@babel/core@7.25.7) + babel-core: 7.0.0-bridge.0(@babel/core@7.25.7) chalk: 4.1.2 flow-parser: 0.247.1 graceful-fs: 4.2.11 @@ -18185,9 +17850,7 @@ snapshots: transitivePeerDependencies: - supports-color - jsesc@0.5.0: {} - - jsesc@2.5.2: {} + jsesc@3.0.2: {} json-buffer@3.0.1: {} @@ -18274,10 +17937,6 @@ snapshots: dependencies: package-json: 8.1.1 - lazystream@1.0.1: - dependencies: - readable-stream: 2.3.8 - leven@3.1.0: {} levn@0.3.0: @@ -18290,7 +17949,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - libphonenumber-js@1.11.9: {} + libphonenumber-js@1.11.11: {} lighthouse-logger@1.4.2: dependencies: @@ -18307,28 +17966,26 @@ snapshots: listenercount@1.0.1: {} - listhen@1.8.0: + listhen@1.9.0: dependencies: '@parcel/watcher': 2.4.1 '@parcel/watcher-wasm': 2.4.1 citty: 0.1.6 clipboardy: 4.0.0 consola: 3.2.3 - crossws: 0.2.4 + crossws: 0.3.1 defu: 6.1.4 get-port-please: 3.1.2 - h3: 1.12.0 + h3: 1.13.0 http-shutdown: 1.2.2 - jiti: 2.0.0 - mlly: 1.7.1 + jiti: 2.3.3 + mlly: 1.7.2 node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.7.0 ufo: 1.5.4 untun: 0.1.3 uqr: 0.1.2 - transitivePeerDependencies: - - uWebSockets.js lit-element@3.3.3: dependencies: @@ -18336,17 +17993,17 @@ snapshots: '@lit/reactive-element': 1.6.3 lit-html: 2.8.0 - lit-element@4.1.0: + lit-element@4.1.1: dependencies: '@lit-labs/ssr-dom-shim': 1.2.1 '@lit/reactive-element': 2.0.4 - lit-html: 3.2.0 + lit-html: 3.2.1 lit-html@2.8.0: dependencies: '@types/trusted-types': 2.0.7 - lit-html@3.2.0: + lit-html@3.2.1: dependencies: '@types/trusted-types': 2.0.7 @@ -18359,8 +18016,8 @@ snapshots: lit@3.1.0: dependencies: '@lit/reactive-element': 2.0.4 - lit-element: 4.1.0 - lit-html: 3.2.0 + lit-element: 4.1.1 + lit-html: 3.2.1 load-tsconfig@0.2.5: {} @@ -18388,16 +18045,8 @@ snapshots: lodash.debounce@4.0.8: {} - lodash.defaults@4.2.0: {} - - lodash.difference@4.5.0: {} - - lodash.flatten@4.4.0: {} - lodash.isequal@4.5.0: {} - lodash.isplainobject@4.0.6: {} - lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} @@ -18408,8 +18057,6 @@ snapshots: lodash.truncate@4.4.2: {} - lodash.union@4.6.0: {} - lodash@4.17.21: {} log-symbols@4.1.0: @@ -18520,7 +18167,7 @@ snapshots: metro-babel-transformer@0.80.12: dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 flow-enums-runtime: 0.0.6 hermes-parser: 0.23.1 nullthrows: 1.1.1 @@ -18587,13 +18234,13 @@ snapshots: metro-runtime@0.80.12: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 flow-enums-runtime: 0.0.6 metro-source-map@0.80.12: dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.80.12 @@ -18618,10 +18265,10 @@ snapshots: metro-transform-plugins@0.80.12: dependencies: - '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: @@ -18629,10 +18276,10 @@ snapshots: metro-transform-worker@0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: - '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 flow-enums-runtime: 0.0.6 metro: 0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10) metro-babel-transformer: 0.80.12 @@ -18649,13 +18296,13 @@ snapshots: metro@0.80.12(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: - '@babel/code-frame': 7.24.7 - '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/core': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -18815,11 +18462,11 @@ snapshots: mkdirp@3.0.1: {} - mlly@1.7.1: + mlly@1.7.2: dependencies: acorn: 8.12.1 pathe: 1.1.2 - pkg-types: 1.2.0 + pkg-types: 1.2.1 ufo: 1.5.4 mnemonist@0.38.5: @@ -18905,9 +18552,6 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.20.0: - optional: true - nano-json-stream-parser@0.1.2: {} nanoid@3.3.7: {} @@ -18920,25 +18564,25 @@ snapshots: neo-async@2.6.2: {} - next-seo@6.6.0(next@14.2.15(@babel/core@7.25.2)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-seo@6.6.0(next@14.2.15(@babel/core@7.25.7)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - next: 14.2.15(@babel/core@7.25.2)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.15(@babel/core@7.25.7)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) next-tick@1.1.0: {} - next@14.2.15(@babel/core@7.25.2)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.15(@babel/core@7.25.7)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.15 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001664 + caniuse-lite: 1.0.30001667 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(@babel/core@7.25.2)(react@18.3.1) + styled-jsx: 5.1.1(@babel/core@7.25.7)(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 14.2.15 '@next/swc-darwin-x64': 14.2.15 @@ -19055,7 +18699,7 @@ snapshots: dependencies: path-key: 4.0.0 - npm@10.8.3: {} + npm@10.9.0: {} nth-check@2.1.1: dependencies: @@ -19133,7 +18777,7 @@ snapshots: dependencies: http-https: 1.0.0 - ofetch@1.4.0: + ofetch@1.4.1: dependencies: destr: 2.0.3 node-fetch-native: 1.6.4 @@ -19286,7 +18930,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -19438,10 +19082,10 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-types@1.2.0: + pkg-types@1.2.1: dependencies: - confbox: 0.1.7 - mlly: 1.7.1 + confbox: 0.1.8 + mlly: 1.7.2 pathe: 1.1.2 playwright-core@1.45.3: {} @@ -19514,7 +19158,7 @@ snapshots: dependencies: xtend: 4.0.2 - preact@10.24.1: {} + preact@10.24.2: {} prebuild-install@7.1.2: dependencies: @@ -19601,10 +19245,6 @@ snapshots: retry: 0.12.0 signal-exit: 3.0.7 - properties-reader@2.3.0: - dependencies: - mkdirp: 1.0.4 - proto-list@1.2.4: {} proxy-addr@2.0.7: @@ -19665,8 +19305,6 @@ snapshots: queue-microtask@1.2.3: {} - queue-tick@1.0.1: {} - queue@6.0.2: dependencies: inherits: 2.0.4 @@ -19735,26 +19373,26 @@ snapshots: react-is@18.3.1: {} - react-native-webview@11.26.1(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1): + react-native-webview@11.26.1(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1): dependencies: escape-string-regexp: 2.0.0 invariant: 2.2.4 react: 18.3.1 - react-native: 0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10) + react-native: 0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10) - react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10): + react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native-community/cli': 14.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10) '@react-native-community/cli-platform-android': 14.1.0 '@react-native-community/cli-platform-ios': 14.1.0 - '@react-native/assets-registry': 0.75.3 - '@react-native/codegen': 0.75.3(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - '@react-native/community-cli-plugin': 0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@react-native/gradle-plugin': 0.75.3 - '@react-native/js-polyfills': 0.75.3 - '@react-native/normalize-colors': 0.75.3 - '@react-native/virtualized-lists': 0.75.3(@types/react@18.3.11)(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1) + '@react-native/assets-registry': 0.75.4 + '@react-native/codegen': 0.75.4(@babel/preset-env@7.25.7(@babel/core@7.25.7)) + '@react-native/community-cli-plugin': 0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@react-native/gradle-plugin': 0.75.4 + '@react-native/js-polyfills': 0.75.4 + '@react-native/normalize-colors': 0.75.4 + '@react-native/virtualized-lists': 0.75.4(@types/react@18.3.11)(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -19835,10 +19473,6 @@ snapshots: process: 0.11.10 string_decoder: 1.3.0 - readdir-glob@1.1.3: - dependencies: - minimatch: 5.1.6 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -19888,21 +19522,21 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 - regexp.prototype.flags@1.5.2: + regexp.prototype.flags@1.5.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - regexpu-core@5.3.2: + regexpu-core@6.1.1: dependencies: - '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 regenerate-unicode-properties: 10.2.0 - regjsparser: 0.9.1 + regjsgen: 0.8.0 + regjsparser: 0.11.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.0 @@ -19914,9 +19548,11 @@ snapshots: dependencies: rc: 1.2.8 - regjsparser@0.9.1: + regjsgen@0.8.0: {} + + regjsparser@0.11.1: dependencies: - jsesc: 0.5.0 + jsesc: 3.0.2 req-cwd@2.0.0: dependencies: @@ -20035,35 +19671,35 @@ snapshots: dependencies: bn.js: 5.2.1 - rollup-plugin-visualizer@5.12.0(rollup@4.22.5): + rollup-plugin-visualizer@5.12.0(rollup@4.24.0): dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.22.5 + rollup: 4.24.0 - rollup@4.22.5: + rollup@4.24.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.22.5 - '@rollup/rollup-android-arm64': 4.22.5 - '@rollup/rollup-darwin-arm64': 4.22.5 - '@rollup/rollup-darwin-x64': 4.22.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.22.5 - '@rollup/rollup-linux-arm-musleabihf': 4.22.5 - '@rollup/rollup-linux-arm64-gnu': 4.22.5 - '@rollup/rollup-linux-arm64-musl': 4.22.5 - '@rollup/rollup-linux-powerpc64le-gnu': 4.22.5 - '@rollup/rollup-linux-riscv64-gnu': 4.22.5 - '@rollup/rollup-linux-s390x-gnu': 4.22.5 - '@rollup/rollup-linux-x64-gnu': 4.22.5 - '@rollup/rollup-linux-x64-musl': 4.22.5 - '@rollup/rollup-win32-arm64-msvc': 4.22.5 - '@rollup/rollup-win32-ia32-msvc': 4.22.5 - '@rollup/rollup-win32-x64-msvc': 4.22.5 + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -20180,7 +19816,7 @@ snapshots: dependencies: body-parser: 1.20.3 cors: 2.8.5 - express: 4.21.0 + express: 4.21.1 request: 2.88.2 xhr: 2.6.0 transitivePeerDependencies: @@ -20456,8 +20092,6 @@ snapshots: dependencies: whatwg-url: 7.1.0 - split-ca@1.0.1: {} - split-on-first@1.1.0: {} split2@4.2.0: {} @@ -20466,19 +20100,6 @@ snapshots: sprintf-js@1.1.3: {} - ssh-remote-port-forward@1.0.4: - dependencies: - '@types/ssh2': 0.5.52 - ssh2: 1.16.0 - - ssh2@1.16.0: - dependencies: - asn1: 0.2.6 - bcrypt-pbkdf: 1.0.2 - optionalDependencies: - cpu-features: 0.0.10 - nan: 2.20.0 - sshpk@1.18.0: dependencies: asn1: 0.2.6 @@ -20521,14 +20142,6 @@ snapshots: streamsearch@1.1.0: {} - streamx@2.20.1: - dependencies: - fast-fifo: 1.3.2 - queue-tick: 1.0.1 - text-decoder: 1.2.0 - optionalDependencies: - bare-events: 2.5.0 - strict-uri-encode@1.1.0: {} strict-uri-encode@2.0.0: {} @@ -20573,7 +20186,7 @@ snapshots: gopd: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 set-function-name: 2.0.2 side-channel: 1.0.6 @@ -20643,12 +20256,12 @@ snapshots: strnum@1.0.5: {} - styled-jsx@5.1.1(@babel/core@7.25.2)(react@18.3.1): + styled-jsx@5.1.1(@babel/core@7.25.7)(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 optionalDependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 sucrase@3.35.0: dependencies: @@ -20783,13 +20396,6 @@ snapshots: tapable@2.2.1: {} - tar-fs@2.0.1: - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.2 - tar-stream: 2.2.0 - tar-fs@2.1.1: dependencies: chownr: 1.1.4 @@ -20797,14 +20403,6 @@ snapshots: pump: 3.0.2 tar-stream: 2.2.0 - tar-fs@3.0.6: - dependencies: - pump: 3.0.2 - tar-stream: 3.1.7 - optionalDependencies: - bare-fs: 2.3.5 - bare-path: 2.1.3 - tar-stream@2.2.0: dependencies: bl: 4.1.0 @@ -20813,12 +20411,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - tar-stream@3.1.7: - dependencies: - b4a: 1.6.7 - fast-fifo: 1.3.2 - streamx: 2.20.1 - tar@4.4.19: dependencies: chownr: 1.1.4 @@ -20855,31 +20447,6 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 - testcontainers@10.9.0(encoding@0.1.13): - dependencies: - '@balena/dockerignore': 1.0.2 - '@types/dockerode': 3.3.31 - archiver: 5.3.2 - async-lock: 1.4.1 - byline: 5.0.0 - debug: 4.3.7(supports-color@8.1.1) - docker-compose: 0.24.8 - dockerode: 3.3.5 - get-port: 5.1.1 - node-fetch: 2.7.0(encoding@0.1.13) - proper-lockfile: 4.1.2 - properties-reader: 2.3.0 - ssh-remote-port-forward: 1.0.4 - tar-fs: 3.0.6 - tmp: 0.2.3 - transitivePeerDependencies: - - encoding - - supports-color - - text-decoder@1.2.0: - dependencies: - b4a: 1.6.7 - text-encoding-utf-8@1.0.2: optional: true @@ -20933,8 +20500,6 @@ snapshots: dependencies: os-tmpdir: 1.0.2 - tmp@0.2.3: {} - tmpl@1.0.5: {} to-fast-properties@2.0.0: {} @@ -20979,7 +20544,7 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.1.2(@babel/core@7.25.2)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5): + ts-jest@29.1.2(@babel/core@7.25.7)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 @@ -20992,11 +20557,11 @@ snapshots: typescript: 5.4.5 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) + babel-jest: 29.7.0(@babel/core@7.25.7) - ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5): + ts-jest@29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@20.12.7)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(typescript@5.4.5): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 @@ -21010,10 +20575,10 @@ snapshots: typescript: 5.4.5 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) + babel-jest: 29.7.0(@babel/core@7.25.7) ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5): dependencies: @@ -21060,7 +20625,7 @@ snapshots: joycon: 3.1.1 postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) resolve-from: 5.0.0 - rollup: 4.22.5 + rollup: 4.24.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 @@ -21264,17 +20829,15 @@ snapshots: anymatch: 3.1.3 chokidar: 3.6.0 destr: 2.0.3 - h3: 1.12.0 - listhen: 1.8.0 + h3: 1.13.0 + listhen: 1.9.0 lru-cache: 10.4.3 mri: 1.2.0 node-fetch-native: 1.6.4 - ofetch: 1.4.0 + ofetch: 1.4.1 ufo: 1.5.4 optionalDependencies: idb-keyval: 6.2.1 - transitivePeerDependencies: - - uWebSockets.js untun@0.1.3: dependencies: @@ -21414,10 +20977,10 @@ snapshots: w-json@1.3.10: {} - wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4): + wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.3(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4): dependencies: '@tanstack/react-query': 5.59.3(react@18.3.1) - '@wagmi/connectors': 5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.3(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.22.5)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + '@wagmi/connectors': 5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.4(@babel/core@7.25.7)(@babel/preset-env@7.25.7(@babel/core@7.25.7))(@types/react@18.3.11)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.4.5)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.24.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) '@wagmi/core': 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.4.5)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.22.4)) react: 18.3.1 use-sync-external-store: 1.2.0(react@18.3.1) @@ -21447,7 +21010,6 @@ snapshots: - react-native - rollup - supports-color - - uWebSockets.js - utf-8-validate - zod @@ -21960,12 +21522,6 @@ snapshots: yocto-queue@0.1.0: {} - zip-stream@4.1.1: - dependencies: - archiver-utils: 3.0.4 - compress-commons: 4.1.2 - readable-stream: 3.6.2 - zksync-ethers@5.9.2(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)