From 1d09a6a9403d8e7095a68080273064e03a712dba Mon Sep 17 00:00:00 2001 From: Mark Tyneway Date: Tue, 18 Jul 2023 20:11:15 -0700 Subject: [PATCH] chain-mon: migrate fault detector This commit migrates the fault-detector service to the chain-mon package. This is useful because it moves towards standardizing all of the offchain monitoring services into a single typescript package, following the pattern that is already used in the repo. This simplifies all of the linting and removes boilerplate, as the services in chain-mon are all very similar and use the same dependencies. This also ports the tests from fault-detector to chain-mon, making it the first tests in the repo. Longer term we could likely remove the need to test using hardhat, but no need to do that for now. This will make it easier to upgrade to a newer version of hardhat as the version we are currently on only supports up to node v16 which is no longer LTS. This change will save a bit of build time and a bit of time before each commit because it will be one less package that needs to be built or linted. --- .circleci/config.yml | 35 +- .github/CODEOWNERS | 3 +- .github/workflows/release-docker-canary.yml | 12 +- .github/workflows/release.yml | 12 +- .github/workflows/tag-service.yml | 2 + .vscode/settings.json | 6 +- README.md | 2 - codecov.yml | 1 - .../src/docs/releases/bedrock/README.md | 6 +- ops/docker/Dockerfile.packages | 10 +- ops/scripts/ci-docker-tag-op-stack-release.sh | 2 +- ops/scripts/detector.sh | 19 - ops/tag-service/tag-service.py | 1 - packages/chain-mon/.env.example | 28 ++ .../hardhat.config.ts | 0 packages/chain-mon/package.json | 8 +- .../src/fault-mon}/README.md | 6 +- .../src/fault-mon}/helpers.ts | 0 .../src => chain-mon/src/fault-mon}/index.ts | 0 .../src/fault-mon}/service.ts | 4 +- packages/chain-mon/src/index.ts | 1 + .../test/fault-mon}/helpers.spec.ts | 8 +- .../test/fault-mon}/setup.ts | 0 packages/fault-detector/.depcheckrc | 13 - packages/fault-detector/.env.example | 5 - packages/fault-detector/.eslintrc.js | 3 - packages/fault-detector/.gitignore | 2 - packages/fault-detector/.lintstagedrc.yml | 2 - packages/fault-detector/.prettierrc.js | 3 - packages/fault-detector/CHANGELOG.md | 272 ----------- packages/fault-detector/LICENSE | 22 - packages/fault-detector/example.env | 23 - packages/fault-detector/package.json | 59 --- packages/fault-detector/tsconfig.json | 11 - pnpm-lock.yaml | 449 ++---------------- 35 files changed, 101 insertions(+), 929 deletions(-) delete mode 100755 ops/scripts/detector.sh rename packages/{fault-detector => chain-mon}/hardhat.config.ts (100%) rename packages/{fault-detector => chain-mon/src/fault-mon}/README.md (90%) rename packages/{fault-detector/src => chain-mon/src/fault-mon}/helpers.ts (100%) rename packages/{fault-detector/src => chain-mon/src/fault-mon}/index.ts (100%) rename packages/{fault-detector/src => chain-mon/src/fault-mon}/service.ts (99%) rename packages/{fault-detector/test => chain-mon/test/fault-mon}/helpers.spec.ts (97%) rename packages/{fault-detector/test => chain-mon/test/fault-mon}/setup.ts (100%) delete mode 100644 packages/fault-detector/.depcheckrc delete mode 100644 packages/fault-detector/.env.example delete mode 100644 packages/fault-detector/.eslintrc.js delete mode 100644 packages/fault-detector/.gitignore delete mode 100644 packages/fault-detector/.lintstagedrc.yml delete mode 100644 packages/fault-detector/.prettierrc.js delete mode 100644 packages/fault-detector/CHANGELOG.md delete mode 100644 packages/fault-detector/LICENSE delete mode 100644 packages/fault-detector/example.env delete mode 100644 packages/fault-detector/package.json delete mode 100644 packages/fault-detector/tsconfig.json diff --git a/.circleci/config.yml b/.circleci/config.yml index acac4f61e126..13b8ba79e493 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -140,7 +140,6 @@ jobs: - "packages/common-ts/node_modules" - "packages/contracts-bedrock/node_modules" - "packages/core-utils/node_modules" - - "packages/fault-detector/node_modules" - "packages/replica-healthcheck/node_modules" - "packages/sdk/node_modules" - "packages/contracts-ts/node_modules" @@ -1363,13 +1362,6 @@ workflows: dependencies: "(common-ts|contracts-bedrock|core-utils|sdk)" requires: - pnpm-monorepo - - js-lint-test: - name: fault-detector-tests - coverage_flag: fault-detector-tests - package_name: fault-detector - dependencies: "(common-ts|core-utils|sdk)" - requires: - - pnpm-monorepo - js-lint-test: name: contracts-ts-tests coverage_flag: contracts-ts-tests @@ -1616,14 +1608,6 @@ workflows: docker_target: wd-mon context: - oplabs-gcr - - docker-publish: - name: fault-detector-docker-publish - docker_file: ./ops/docker/Dockerfile.packages - docker_name: fault-detector - docker_tags: <>,<> - docker_target: fault-detector - context: - - oplabs-gcr - hive-test: name: hive-test-rpc version: <> @@ -1661,7 +1645,7 @@ workflows: type: approval filters: tags: - only: /^(fault-detector|proxyd|indexer|ci-builder|op-[a-z0-9\-]*)\/v.*/ + only: /^(proxyd|indexer|ci-builder|op-[a-z0-9\-]*)\/v.*/ branches: ignore: /.*/ - docker-release: @@ -1728,23 +1712,6 @@ workflows: - oplabs-gcr-release requires: - hold - - docker-release: - name: fault-detector-docker-release - filters: - tags: - only: /^fault-detector\/v.*/ - branches: - ignore: /.*/ - docker_file: ./ops/docker/Dockerfile.packages - docker_name: fault-detector - docker_tags: <>,<> - docker_target: fault-detector - docker_context: . - platforms: "linux/amd64,linux/arm64" - context: - - oplabs-gcr-release - requires: - - hold - docker-build: name: op-migrate-docker-release filters: diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9cebf8273d19..e3601a8e0270 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,8 +3,7 @@ /packages/contracts @ethereum-optimism/contract-reviewers /packages/contracts-bedrock @ethereum-optimism/contract-reviewers /packages/core-utils @ethereum-optimism/legacy-reviewers -/packages/chain-mon @smartcontracts -/packages/fault-detector @ethereum-optimism/devxpod +/packages/chain-mon @ethereum-optimism/devxpod /packages/replica-healthcheck @ethereum-optimism/legacy-reviewers /packages/sdk @ethereum-optimism/devxpod /packages/atst @ethereum-optimism/devxpod diff --git a/.github/workflows/release-docker-canary.yml b/.github/workflows/release-docker-canary.yml index df75627b9725..f0682a033923 100644 --- a/.github/workflows/release-docker-canary.yml +++ b/.github/workflows/release-docker-canary.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest # map the step outputs to job outputs outputs: - fault-detector: ${{ steps.packages.outputs.fault-detector }} + fault-mon: ${{ steps.packages.outputs.fault-mon }} balance-mon: ${{ steps.packages.outputs.balance-mon }} drippie-mon: ${{ steps.packages.outputs.drippie-mon }} wd-mon: ${{ steps.packages.outputs.wd-mon }} @@ -43,10 +43,10 @@ jobs: env: CUSTOM_IMAGE_NAME: ${{ github.event.inputs.customImageName }} - fault-detector: - name: Publish Fault Detector Version ${{ needs.canary-publish.outputs.canary-docker-tag }} + fault-mon: + name: Publish fault-mon Version ${{ needs.canary-publish.outputs.canary-docker-tag }} needs: canary-publish - if: needs.canary-publish.outputs.fault-detector != '' + if: needs.canary-publish.outputs.fault-mon != '' runs-on: ubuntu-latest steps: @@ -66,9 +66,9 @@ jobs: with: context: . file: ./ops/docker/Dockerfile.packages - target: fault-detector + target: fault-mon push: true - tags: ethereumoptimism/fault-detector:${{ needs.canary-publish.outputs.canary-docker-tag }} + tags: ethereumoptimism/fault-mon:${{ needs.canary-publish.outputs.canary-docker-tag }} balance-mon: name: Publish Balance Monitor Version ${{ needs.canary-publish.outputs.canary-docker-tag }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cf03a876481b..6677c911c179 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: if: github.repository == 'ethereum-optimism/optimism' # map the step outputs to job outputs outputs: - fault-detector: ${{ steps.packages.outputs.fault-detector }} + fault-mon: ${{ steps.packages.outputs.fault-mon }} balance-mon: ${{ steps.packages.outputs.drippie-mon }} drippie-mon: ${{ steps.packages.outputs.drippie-mon }} wd-mon: ${{ steps.packages.outputs.wd-mon }} @@ -100,10 +100,10 @@ jobs: GITCOMMIT=${{ steps.build_args.outputs.GITCOMMIT }} GITVERSION=${{ steps.build_args.outputs.GITVERSION }} - fault-detector: - name: Publish Fault Detector Version ${{ needs.release.outputs.fault-detector }} + fault-mon: + name: Publish fault-mon Version ${{ needs.release.outputs.fault-mon }} needs: release - if: needs.release.outputs.fault-detector != '' + if: needs.release.outputs.fault-mon != '' runs-on: ubuntu-latest steps: @@ -123,9 +123,9 @@ jobs: with: context: . file: ./ops/docker/Dockerfile.packages - target: fault-detector + target: fault-mon push: true - tags: ethereumoptimism/fault-detector:${{ needs.release.outputs.fault-detector }},ethereumoptimism/fault-detector:latest + tags: ethereumoptimism/fault-mon:${{ needs.release.outputs.fault-mon }},ethereumoptimism/fault-mon:latest wd-mon: name: Publish Withdrawal Monitor Version ${{ needs.release.outputs.wd-mon }} diff --git a/.github/workflows/tag-service.yml b/.github/workflows/tag-service.yml index 77011c659ca6..edbd207ca238 100644 --- a/.github/workflows/tag-service.yml +++ b/.github/workflows/tag-service.yml @@ -26,6 +26,8 @@ on: - op-proposer - op-ufm - proxyd + - indexer + - ci-builder prerelease: description: Increment major/minor/patch as prerelease? required: false diff --git a/.vscode/settings.json b/.vscode/settings.json index 183cd325351b..923a83c7855a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -19,14 +19,10 @@ { "directory": "packages/chain-mon", "changeProcessCWD": true - }, - { - "directory": "packages/fault-detector", - "changeProcessCWD": true } ], "eslint.nodePath": "./node_modules/eslint/bin/", "eslint.format.enable": true, "editorconfig.generateAuto": false, "files.trimTrailingWhitespace": true -} \ No newline at end of file +} diff --git a/README.md b/README.md index c3c17b78a81a..f030c92728c7 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,6 @@ Refer to the Directory Structure section below to understand which packages are │ ├── contracts-bedrock: Bedrock smart contracts. │ ├── core-utils: Low-level utilities that make building Optimism easier │ ├── chain-mon: Chain monitoring services -│ ├── fault-detector: Service for detecting Sequencer faults │ ├── replica-healthcheck: Service for monitoring the health of a replica node │ └── sdk: provides a set of tools for interacting with Optimism ├── op-bindings: Go bindings for Bedrock smart contracts. @@ -80,7 +79,6 @@ Refer to the Directory Structure section below to understand which packages are │ ├── common-ts: Common tools for building apps in TypeScript │ ├── core-utils: Low-level utilities that make building Optimism easier │ ├── chain-mon: Chain monitoring services -│ ├── fault-detector: Service for detecting Sequencer faults │ ├── replica-healthcheck: Service for monitoring the health of a replica node │ └── sdk: provides a set of tools for interacting with Optimism ├── indexer: indexes and syncs transactions diff --git a/codecov.yml b/codecov.yml index 1abb69528f0f..36ab20d3f5fe 100644 --- a/codecov.yml +++ b/codecov.yml @@ -36,6 +36,5 @@ flag_management: - name: core-utils-tests - name: dtl-tests - name: chain-mon-tests - - name: fault-detector-tests - name: replica-healthcheck-tests - name: sdk-tests diff --git a/docs/op-stack/src/docs/releases/bedrock/README.md b/docs/op-stack/src/docs/releases/bedrock/README.md index bfae9af2ec29..d0e0180996fe 100644 --- a/docs/op-stack/src/docs/releases/bedrock/README.md +++ b/docs/op-stack/src/docs/releases/bedrock/README.md @@ -5,7 +5,7 @@ lang: en-US ## Overview -The first release of the OP Stack codebase is called **Bedrock**. +The first release of the OP Stack codebase is called **Bedrock**. The Bedrock release primarily consists of the core software required to run L2 blockchains and was originally designed to power an upgrade to the Optimism Mainnet network. ## Resources @@ -29,6 +29,6 @@ Dive deep into the specifications for the Bedrock release in the [specs folder o - [`op-batcher`](https://github.com/ethereum-optimism/optimism/tree/develop/op-batcher) - [`op-proposer`](https://github.com/ethereum-optimism/optimism/tree/develop/op-proposer) - [`contracts-bedrock`](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock) -- [`fault-detector`](https://github.com/ethereum-optimism/optimism/tree/develop/packages/fault-detector) +- [`fault-mon`](https://github.com/ethereum-optimism/optimism/tree/develop/packages/packages/chain-mon/src/fault-mon) - [`sdk`](https://github.com/ethereum-optimism/optimism/tree/develop/packages/sdk) -- [`chain-mon`](https://github.com/ethereum-optimism/optimism/tree/develop/packages/chain-mon) \ No newline at end of file +- [`chain-mon`](https://github.com/ethereum-optimism/optimism/tree/develop/packages/chain-mon) diff --git a/ops/docker/Dockerfile.packages b/ops/docker/Dockerfile.packages index 673d90bcb57a..19035b6697ff 100644 --- a/ops/docker/Dockerfile.packages +++ b/ops/docker/Dockerfile.packages @@ -75,11 +75,6 @@ COPY ./packages ./packages RUN pnpm build -FROM base as fault-detector -WORKDIR /opt/optimism/packages/fault-detector -COPY ./ops/scripts/detector.sh . -CMD ["pnpm", "run", "start"] - FROM base as replica-healthcheck WORKDIR /opt/optimism/packages/replica-healthcheck ENTRYPOINT ["pnpm", "run", "start"] @@ -92,7 +87,6 @@ FROM base as drippie-mon WORKDIR /opt/optimism/packages/chain-mon ENTRYPOINT ["pnpm", "run", "start:drippie-mon"] - FROM base as wd-mon WORKDIR /opt/optimism/packages/chain-mon ENTRYPOINT ["pnpm", "run", "start:wd-mon"] @@ -100,3 +94,7 @@ ENTRYPOINT ["pnpm", "run", "start:wd-mon"] FROM base as wallet-mon WORKDIR /opt/optimism/packages/chain-mon ENTRYPOINT ["pnpm", "run", "start:wallet-mon"] + +from base as fault-mon +WORKDIR /opt/optimism/packages/chain-mon +ENTRYPOINT ["pnpm", "run", "start:fault-mon"] diff --git a/ops/scripts/ci-docker-tag-op-stack-release.sh b/ops/scripts/ci-docker-tag-op-stack-release.sh index a732c9d22706..bbf95fe5bc71 100755 --- a/ops/scripts/ci-docker-tag-op-stack-release.sh +++ b/ops/scripts/ci-docker-tag-op-stack-release.sh @@ -6,7 +6,7 @@ DOCKER_REPO=$1 GIT_TAG=$2 GIT_SHA=$3 -IMAGE_NAME=$(echo "$GIT_TAG" | grep -Eow '^(ci-builder|fault-detector|proxyd|indexer|op-[a-z0-9\-]*)' || true) +IMAGE_NAME=$(echo "$GIT_TAG" | grep -Eow '^(ci-builder|proxyd|indexer|op-[a-z0-9\-]*)' || true) if [ -z "$IMAGE_NAME" ]; then echo "image name could not be parsed from git tag '$GIT_TAG'" exit 1 diff --git a/ops/scripts/detector.sh b/ops/scripts/detector.sh deleted file mode 100755 index c8871198dfc4..000000000000 --- a/ops/scripts/detector.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -set -e - -RETRIES=${RETRIES:-60} - -# waits for l2geth to be up -curl \ - --fail \ - --show-error \ - --silent \ - --output /dev/null \ - --retry-connrefused \ - --retry $RETRIES \ - --retry-delay 1 \ - $FAULT_DETECTOR__L2_RPC_PROVIDER - -# go -exec pnpm start diff --git a/ops/tag-service/tag-service.py b/ops/tag-service/tag-service.py index b52c6784707f..af8278a3bff8 100755 --- a/ops/tag-service/tag-service.py +++ b/ops/tag-service/tag-service.py @@ -15,7 +15,6 @@ 'op-proposer': '0.10.14', 'proxyd': '3.16.0', 'indexer': '0.5.0', - 'fault-detector': '0.6.3', 'ci-builder': '0.6.0' } diff --git a/packages/chain-mon/.env.example b/packages/chain-mon/.env.example index 54d4d0c5cb2f..2ffe02f03851 100644 --- a/packages/chain-mon/.env.example +++ b/packages/chain-mon/.env.example @@ -39,3 +39,31 @@ TWO_STEP_MONITOR__L2_RPC_PROVIDER= # The block number to start monitoring from TWO_STEP_MONITOR__START_BLOCK_NUMBER= + +############################################################################### +# ↓ fault-mon ↓ # +############################################################################### + +# --l1rpcprovider Provider for interacting with L1 (env: FAULT_DETECTOR__L1_RPC_PROVIDER) +FAULT_DETECTOR__L1_RPC_PROVIDER= +# --l2rpcprovider Provider for interacting with L2 (env: FAULT_DETECTOR__L2_RPC_PROVIDER) +FAULT_DETECTOR__L2_RPC_PROVIDER= +# --bedrock Whether or not the service is running against a Bedrock chain (env: FAULT_DETECTOR__BEDROCK) +BEDROCK=true + +# Optional Params + +# --startbatchindex Batch index to start checking from. For bedrock chains, this is the L2 height to start from (env: FAULT_DETECTOR__START_BATCH_INDEX) +# FAULT_DETECTOR__START_BATCH_INDEX= +# --optimismportaladdress [Custom Bedrock Chains] Deployed OptimismPortal contract address. Used to retrieve necessary info for ouput verification (env: FAULT_DETECTOR__OPTIMISM_PORTAL_ADDRESS) +# FAULT_DETECTOR__OPTIMISM_PORTAL_ADDRESS= +# --statecommitmentchainaddress [Custom Legacy Chains] Deployed StateCommitmentChain contract address. Used to fetch necessary info for output verification. (env: FAULT_DETECTOR__STATE_COMMITMENT_CHAIN_ADDRESS) +# FAULT_DETECTOR__STATE_COMMITMENT_CHAIN_ADDRESS= +# --loopintervalms Loop interval in milliseconds, only applies if service is set to loop (env: FAULT_DETECTOR__LOOP_INTERVAL_MS) +# FAULT_DETECTOR__LOOP_INTERVAL_MS= +# --port Port for the app server (env: FAULT_DETECTOR__PORT) +# FAULT_DETECTOR__PORT= +# --hostname Hostname for the app server (env: FAULT_DETECTOR__HOSTNAME) +# FAULT_DETECTOR__HOSTNAME= +# --loglevel Log level (env: FAULT_DETECTOR__LOG_LEVEL) +# FAULT_DETECTOR__LOG_LEVEL= diff --git a/packages/fault-detector/hardhat.config.ts b/packages/chain-mon/hardhat.config.ts similarity index 100% rename from packages/fault-detector/hardhat.config.ts rename to packages/chain-mon/hardhat.config.ts diff --git a/packages/chain-mon/package.json b/packages/chain-mon/package.json index 3623d549cbc6..b94818d0f5d3 100644 --- a/packages/chain-mon/package.json +++ b/packages/chain-mon/package.json @@ -13,7 +13,9 @@ "start:wallet-mon": "ts-node ./src/wallet-mon/service.ts", "start:drippie-mon": "ts-node ./src/drippie-mon/service.ts", "start:wd-mon": "ts-node ./src/wd-mon/service.ts", - "test:coverage": "echo 'No tests defined.'", + "start:fault-mon": "ts-node ./src/fault-mon/service.ts", + "test": "hardhat test", + "test:coverage": "nyc hardhat test && nyc merge .nyc_output coverage.json", "build": "tsc -p ./tsconfig.json", "clean": "rimraf dist/ ./tsconfig.tsbuildinfo", "lint": "pnpm lint:fix && pnpm lint:check", @@ -40,12 +42,16 @@ "@eth-optimism/core-utils": "0.12.2", "@eth-optimism/sdk": "3.1.0", "ethers": "^5.7.0", + "dotenv": "^16.1.4", "@types/dateformat": "^5.0.0", "chai-as-promised": "^7.1.1", "dateformat": "^4.5.1" }, "devDependencies": { "@ethersproject/abstract-provider": "^5.7.0", + "@nomiclabs/hardhat-ethers": "^2.0.6", + "@nomiclabs/hardhat-waffle": "^2.0.3", + "hardhat": "^2.9.6", "ts-node": "^10.9.1" } } diff --git a/packages/fault-detector/README.md b/packages/chain-mon/src/fault-mon/README.md similarity index 90% rename from packages/fault-detector/README.md rename to packages/chain-mon/src/fault-mon/README.md index 3d7a7ad6423a..b16aefb910c5 100644 --- a/packages/fault-detector/README.md +++ b/packages/chain-mon/src/fault-mon/README.md @@ -1,8 +1,8 @@ -# @eth-optimism/fault-detector +# @eth-optimism/fault-mon [![codecov](https://codecov.io/gh/ethereum-optimism/optimism/branch/develop/graph/badge.svg?token=0VTG7PG7YR&flag=fault-detector-tests)](https://codecov.io/gh/ethereum-optimism/optimism) -The `fault-detector` is a simple service for detecting discrepancies between your local view of the Optimism network and the L2 output proposals published to Ethereum. +The `fault-mon` is a simple service for detecting discrepancies between your local view of the Optimism network and the L2 output proposals published to Ethereum. ## Installation @@ -34,7 +34,7 @@ pnpm start ## What this service does -The `fault-detector` detects differences between the transaction results generated by your local Optimism node and the transaction results actually published to Ethereum. +The `fault-mon` detects differences between the transaction results generated by your local Optimism node and the transaction results actually published to Ethereum. Currently, transaction results take the form of [the root of the Optimism state trie](https://medium.com/@eiki1212/ethereum-state-trie-architecture-explained-a30237009d4e). The state root of the block is published to the [`L2OutputOracle`](https://github.com/ethereum-optimism/optimism/blob/39b7262cc3ffd78cd314341b8512b2683c1d9af7/packages/contracts-bedrock/contracts/L1/L2OutputOracle.sol) contract on Ethereum. diff --git a/packages/fault-detector/src/helpers.ts b/packages/chain-mon/src/fault-mon/helpers.ts similarity index 100% rename from packages/fault-detector/src/helpers.ts rename to packages/chain-mon/src/fault-mon/helpers.ts diff --git a/packages/fault-detector/src/index.ts b/packages/chain-mon/src/fault-mon/index.ts similarity index 100% rename from packages/fault-detector/src/index.ts rename to packages/chain-mon/src/fault-mon/index.ts diff --git a/packages/fault-detector/src/service.ts b/packages/chain-mon/src/fault-mon/service.ts similarity index 99% rename from packages/fault-detector/src/service.ts rename to packages/chain-mon/src/fault-mon/service.ts index f5e14386a852..2ddda7478d37 100644 --- a/packages/fault-detector/src/service.ts +++ b/packages/chain-mon/src/fault-mon/service.ts @@ -24,7 +24,7 @@ import { Provider } from '@ethersproject/abstract-provider' import { Contract, ethers } from 'ethers' import dateformat from 'dateformat' -import { version } from '../package.json' +import { version } from '../../package.json' import { findFirstUnfinalizedStateBatchIndex, findOutputForIndex, @@ -387,7 +387,7 @@ export class FaultDetector extends BaseServiceV2 { new Date( (ethers.BigNumber.from(outputBlock.timestamp).toNumber() + this.state.faultProofWindow) * - 1000 + 1000 ), 'mmmm dS, yyyy, h:MM:ss TT' ), diff --git a/packages/chain-mon/src/index.ts b/packages/chain-mon/src/index.ts index bb57ce84d2b2..98817368bbeb 100644 --- a/packages/chain-mon/src/index.ts +++ b/packages/chain-mon/src/index.ts @@ -2,3 +2,4 @@ export * from './balance-mon/service' export * from './drippie-mon/service' export * from './wd-mon/service' export * from './wallet-mon/service' +export * from './fault-mon/index' diff --git a/packages/fault-detector/test/helpers.spec.ts b/packages/chain-mon/test/fault-mon/helpers.spec.ts similarity index 97% rename from packages/fault-detector/test/helpers.spec.ts rename to packages/chain-mon/test/fault-mon/helpers.spec.ts index 1be2f6e6430d..b5bd3c501005 100644 --- a/packages/fault-detector/test/helpers.spec.ts +++ b/packages/chain-mon/test/fault-mon/helpers.spec.ts @@ -6,7 +6,7 @@ import Artifact__L2OutputOracle from '@eth-optimism/contracts-bedrock/forge-arti import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' import { expect } from './setup' -import { findOutputForIndex, findFirstUnfinalizedStateBatchIndex } from '../src' +import { findOutputForIndex, findFirstUnfinalizedStateBatchIndex } from '../../src/fault-mon' describe('helpers', () => { const deployConfig = { @@ -112,7 +112,7 @@ describe('helpers', () => { await L2OutputOracle.proposeL2Output( utils.formatBytes32String('outputRoot3'), params._l2BlockNumber + - deployConfig.l2OutputOracleSubmissionInterval * 2, + deployConfig.l2OutputOracleSubmissionInterval * 2, params._l1BlockHash, params._l1BlockNumber ) @@ -154,7 +154,7 @@ describe('helpers', () => { await L2OutputOracle.proposeL2Output( params._outputRoot, params._l2BlockNumber + - deployConfig.l2OutputOracleSubmissionInterval * 2, + deployConfig.l2OutputOracleSubmissionInterval * 2, params._l1BlockHash, params._l1BlockNumber ) @@ -196,7 +196,7 @@ describe('helpers', () => { await L2OutputOracle.proposeL2Output( params._outputRoot, params._l2BlockNumber + - deployConfig.l2OutputOracleSubmissionInterval * 2, + deployConfig.l2OutputOracleSubmissionInterval * 2, params._l1BlockHash, params._l1BlockNumber ) diff --git a/packages/fault-detector/test/setup.ts b/packages/chain-mon/test/fault-mon/setup.ts similarity index 100% rename from packages/fault-detector/test/setup.ts rename to packages/chain-mon/test/fault-mon/setup.ts diff --git a/packages/fault-detector/.depcheckrc b/packages/fault-detector/.depcheckrc deleted file mode 100644 index 3a691b778839..000000000000 --- a/packages/fault-detector/.depcheckrc +++ /dev/null @@ -1,13 +0,0 @@ -ignores: [ - "@babel/eslint-parser", - "@typescript-eslint/parser", - "eslint-plugin-import", - "eslint-plugin-unicorn", - "eslint-plugin-jsdoc", - "eslint-plugin-prefer-arrow", - "eslint-plugin-react", - "@typescript-eslint/eslint-plugin", - "eslint-config-prettier", - "eslint-plugin-prettier", - "chai" -] diff --git a/packages/fault-detector/.env.example b/packages/fault-detector/.env.example deleted file mode 100644 index 09e3fb0c6f70..000000000000 --- a/packages/fault-detector/.env.example +++ /dev/null @@ -1,5 +0,0 @@ -# URL for an L1 RPC provider, used to query L2 output proposals -FAULT_DETECTOR__L1_RPC_PROVIDER= - -# URL for an L2 RPC provider, used to query canonical L2 state -FAULT_DETECTOR__L2_RPC_PROVIDER= diff --git a/packages/fault-detector/.eslintrc.js b/packages/fault-detector/.eslintrc.js deleted file mode 100644 index bfd2057be80b..000000000000 --- a/packages/fault-detector/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: '../../.eslintrc.js', -} diff --git a/packages/fault-detector/.gitignore b/packages/fault-detector/.gitignore deleted file mode 100644 index b38db2f296ff..000000000000 --- a/packages/fault-detector/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -build/ diff --git a/packages/fault-detector/.lintstagedrc.yml b/packages/fault-detector/.lintstagedrc.yml deleted file mode 100644 index a3035a2299b2..000000000000 --- a/packages/fault-detector/.lintstagedrc.yml +++ /dev/null @@ -1,2 +0,0 @@ -"*.{ts,js}": - - eslint diff --git a/packages/fault-detector/.prettierrc.js b/packages/fault-detector/.prettierrc.js deleted file mode 100644 index 90ef435957fc..000000000000 --- a/packages/fault-detector/.prettierrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - ...require('../../.prettierrc.js'), -}; diff --git a/packages/fault-detector/CHANGELOG.md b/packages/fault-detector/CHANGELOG.md deleted file mode 100644 index 901468aae970..000000000000 --- a/packages/fault-detector/CHANGELOG.md +++ /dev/null @@ -1,272 +0,0 @@ -# @eth-optimism/fault-detector - -## 1.1.0 - -### Minor Changes - -- [#6095](https://github.com/ethereum-optimism/optimism/pull/6095) [`5884c763a`](https://github.com/ethereum-optimism/optimism/commit/5884c763aa5e7687c61c906cb65069052d9c5d9e) Thanks [@zchn](https://github.com/zchn)! - Remove pre-bedrock support from fault detector. - -### Patch Changes - -- [#6201](https://github.com/ethereum-optimism/optimism/pull/6201) [`6fb399f27`](https://github.com/ethereum-optimism/optimism/commit/6fb399f27333ef709516765dde5b3d12501803cc) Thanks [@tynes](https://github.com/tynes)! - Bump contracts-bedrock version - -- [#6164](https://github.com/ethereum-optimism/optimism/pull/6164) [`c11039060`](https://github.com/ethereum-optimism/optimism/commit/c11039060bc037a88916c2cba602687b6d69ad1a) Thanks [@pengin7384](https://github.com/pengin7384)! - fix typo - -- Updated dependencies [[`a666c4f20`](https://github.com/ethereum-optimism/optimism/commit/a666c4f2082253abbb68c0678e5a0a1ed0c00f4b), [`ff577455f`](https://github.com/ethereum-optimism/optimism/commit/ff577455f196b5f5b8a889339b845561ca6c538a), [`89ca741a6`](https://github.com/ethereum-optimism/optimism/commit/89ca741a63c5e07f9d691bb6f7a89f7718fc49ca), [`c11039060`](https://github.com/ethereum-optimism/optimism/commit/c11039060bc037a88916c2cba602687b6d69ad1a), [`72d184854`](https://github.com/ethereum-optimism/optimism/commit/72d184854ebad8b2025641f126ed76573b1f0ac3), [`77da6edc6`](https://github.com/ethereum-optimism/optimism/commit/77da6edc643e0b5e39f7b6bb41c3c7ead418a876), [`3f13fd0bb`](https://github.com/ethereum-optimism/optimism/commit/3f13fd0bbea051a4550f1df6def1a53a616aa6f6), [`639163253`](https://github.com/ethereum-optimism/optimism/commit/639163253a5e2128f1c21c446b68d358d38cbd30)]: - - @eth-optimism/sdk@3.1.0 - - @eth-optimism/contracts-bedrock@0.16.0 - - @eth-optimism/core-utils@0.12.2 - - @eth-optimism/common-ts@0.8.3 - -## 1.0.0 - -### Major Changes - -- 119754c2f: Make optimism/sdk default to bedrock mode - -### Patch Changes - -- 16ccbee24: Fix false error to warning -- 685addec2: Add better source maps and developer support -- Updated dependencies [8d7dcc70c] -- Updated dependencies [119754c2f] -- Updated dependencies [d6388be4a] - - @eth-optimism/core-utils@0.12.1 - - @eth-optimism/sdk@3.0.0 - - @eth-optimism/common-ts@0.8.2 - -## 0.6.4 - -### Patch Changes - -- Updated dependencies [a1b7ff9e3] -- Updated dependencies [8133872ed] -- Updated dependencies [afc2ab8c9] -- Updated dependencies [5063a69fb] -- Updated dependencies [aa854bdd8] - - @eth-optimism/sdk@2.1.0 - - @eth-optimism/contracts@0.6.0 - -## 0.6.3 - -### Patch Changes - -- dbe5eb308: Empty patch release to re-release packages that failed to be released by a bug in the release process. -- Updated dependencies [be3315689] - - @eth-optimism/sdk@2.0.2 - -## 0.6.2 - -### Patch Changes - -- f9b579d55: Fixes a bug that would cause the fault detector to error out if no outputs had been proposed yet. -- Updated dependencies [fecd42d67] -- Updated dependencies [66cafc00a] - - @eth-optimism/common-ts@0.8.1 - - @eth-optimism/sdk@2.0.1 - -## 0.6.1 - -### Patch Changes - -- Updated dependencies [cb19e2f9c] - - @eth-optimism/sdk@2.0.0 - -## 0.6.0 - -### Minor Changes - -- b004d1ad4: Updates the fault detector to support Bedrock networks. - -### Patch Changes - -- Updated dependencies [0e179781b] -- Updated dependencies [5372c9f5b] -- Updated dependencies [4ae94b412] - - @eth-optimism/common-ts@0.8.0 - - @eth-optimism/sdk@1.10.2 - -## 0.5.0 - -### Minor Changes - -- 9b2891852: Refactors BaseServiceV2 slightly, merges standard options with regular options - -### Patch Changes - -- ab8ec365c: Updates BaseServiceV2 so that options are secret by default. Services will have to explicitly mark options as "public" for those options to be logged and included in the metadata metric. -- c6c9c7dbf: Fault detector will now wait for providers to be connected -- Updated dependencies [e23f60f63] -- Updated dependencies [ab8ec365c] -- Updated dependencies [ba8b94a60] -- Updated dependencies [9b2891852] -- Updated dependencies [d1f9098f9] -- Updated dependencies [c6c9c7dbf] -- Updated dependencies [ffcee1013] -- Updated dependencies [eceb0de1d] - - @eth-optimism/common-ts@0.7.0 - - @eth-optimism/sdk@1.9.0 - - @eth-optimism/contracts@0.5.40 - -## 0.4.0 - -### Minor Changes - -- ab5c1b897: Includes a new event caching mechanism for running the fault detector against Geth. - -### Patch Changes - -- 1d3c749a2: Bumps the version of ts-node used -- Updated dependencies [1d3c749a2] -- Updated dependencies [767585b07] -- Updated dependencies [c975c9620] -- Updated dependencies [1d3c749a2] -- Updated dependencies [136ea1785] - - @eth-optimism/contracts@0.5.39 - - @eth-optimism/sdk@1.8.0 - - @eth-optimism/core-utils@0.12.0 - - @eth-optimism/common-ts@0.6.8 - -## 0.3.2 - -### Patch Changes - -- 97b5f578c: Fixes how versions are imported for BaseServiceV2 services - - @eth-optimism/sdk@1.6.11 - -## 0.3.1 - -### Patch Changes - -- Updated dependencies [1e76cdb86] - - @eth-optimism/core-utils@0.11.0 - - @eth-optimism/common-ts@0.6.7 - - @eth-optimism/contracts@0.5.38 - - @eth-optimism/sdk@1.6.10 - -## 0.3.0 - -### Minor Changes - -- 4a5e1832: Updates metrics to use better labels. - -### Patch Changes - -- Updated dependencies [e2faaa8b] - - @eth-optimism/sdk@1.6.5 - -## 0.2.7 - -### Patch Changes - -- 7215f4ce: Bump ethers to 5.7.0 globally -- 17999a54: Adds a fault status API to the Fault Detector. -- 2f058b84: Fixes a small bug in the fault detector that would cause errors for testnets where the fault proof window is extremely short. -- Updated dependencies [7215f4ce] -- Updated dependencies [206f6033] -- Updated dependencies [d7679ca4] - - @eth-optimism/common-ts@0.6.5 - - @eth-optimism/contracts@0.5.36 - - @eth-optimism/core-utils@0.10.1 - - @eth-optimism/sdk@1.6.4 - -## 0.2.6 - -### Patch Changes - -- Updated dependencies [b27d0fa7] -- Updated dependencies [dbfea116] -- Updated dependencies [299157e7] - - @eth-optimism/sdk@1.6.1 - - @eth-optimism/core-utils@0.10.0 - - @eth-optimism/contracts@0.5.34 - - @eth-optimism/common-ts@0.6.4 - -## 0.2.5 - -### Patch Changes - -- 98206b7e: Properly handle connection failures for L2 node - -## 0.2.4 - -### Patch Changes - -- 89d01f2e: Update dev deps -- Updated dependencies [6e3449ba] -- Updated dependencies [f9fee446] - - @eth-optimism/contracts@0.5.30 - - @eth-optimism/core-utils@0.9.1 - - @eth-optimism/sdk@1.2.1 - - @eth-optimism/common-ts@0.6.1 - -## 0.2.3 - -### Patch Changes - -- 977493bc: Update SDK version and usage to account for new constructor -- 2296cf81: Fix bug where FD would try to sync beyond local tip -- Updated dependencies [977493bc] -- Updated dependencies [700dcbb0] -- Updated dependencies [3d1cb720] - - @eth-optimism/sdk@1.2.0 - - @eth-optimism/core-utils@0.9.0 - - @eth-optimism/common-ts@0.6.0 - - @eth-optimism/contracts@0.5.29 - -## 0.2.2 - -### Patch Changes - -- Updated dependencies [cb71fcde] -- Updated dependencies [10e41522] - - @eth-optimism/common-ts@0.5.0 - -## 0.2.1 - -### Patch Changes - -- 29ff7462: Revert es target back to 2017 -- Updated dependencies [27234f68] -- Updated dependencies [c201f3f1] -- Updated dependencies [29ff7462] -- Updated dependencies [52b26878] - - @eth-optimism/contracts@0.5.28 - - @eth-optimism/common-ts@0.4.0 - - @eth-optimism/core-utils@0.8.7 - - @eth-optimism/sdk@1.1.9 - -## 0.2.0 - -### Minor Changes - -- 84a8934c: BaseServiceV2 exposes service name and version as standard synthetic metric - -### Patch Changes - -- 37dfe4f6: Smarter starting height for fault-detector -- 6fe58eb2: Fix order in which a metric was bumped then emitted to fix off by one issue -- Updated dependencies [d9e39931] -- Updated dependencies [84a8934c] - - @eth-optimism/common-ts@0.3.0 - -## 0.1.1 - -### Patch Changes - -- d18ae135: Updates all ethers versions in response to BN.js bug -- Updated dependencies [f16383f2] -- Updated dependencies [d18ae135] - - @eth-optimism/common-ts@0.2.8 - - @eth-optimism/core-utils@0.8.5 - - @eth-optimism/sdk@1.1.6 - -## 0.1.0 - -### Minor Changes - -- 2177c8ef: Releases the first public version of the fault detector - -### Patch Changes - -- @eth-optimism/sdk@1.1.4 diff --git a/packages/fault-detector/LICENSE b/packages/fault-detector/LICENSE deleted file mode 100644 index 6a7da5218bb2..000000000000 --- a/packages/fault-detector/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright 2020-2021 Optimism - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/fault-detector/example.env b/packages/fault-detector/example.env deleted file mode 100644 index bd93ab50f93f..000000000000 --- a/packages/fault-detector/example.env +++ /dev/null @@ -1,23 +0,0 @@ -# --l1rpcprovider Provider for interacting with L1 (env: FAULT_DETECTOR__L1_RPC_PROVIDER) -FAULT_DETECTOR__L1_RPC_PROVIDER= -# --l2rpcprovider Provider for interacting with L2 (env: FAULT_DETECTOR__L2_RPC_PROVIDER) -FAULT_DETECTOR__L2_RPC_PROVIDER= -# --bedrock Whether or not the service is running against a Bedrock chain (env: FAULT_DETECTOR__BEDROCK) -BEDROCK=true - -# Optional Params - -# --startbatchindex Batch index to start checking from. For bedrock chains, this is the L2 height to start from (env: FAULT_DETECTOR__START_BATCH_INDEX) -# FAULT_DETECTOR__START_BATCH_INDEX= -# --optimismportaladdress [Custom Bedrock Chains] Deployed OptimismPortal contract address. Used to retrieve necessary info for ouput verification (env: FAULT_DETECTOR__OPTIMISM_PORTAL_ADDRESS) -# FAULT_DETECTOR__OPTIMISM_PORTAL_ADDRESS= -# --statecommitmentchainaddress [Custom Legacy Chains] Deployed StateCommitmentChain contract address. Used to fetch necessary info for output verification. (env: FAULT_DETECTOR__STATE_COMMITMENT_CHAIN_ADDRESS) -# FAULT_DETECTOR__STATE_COMMITMENT_CHAIN_ADDRESS= -# --loopintervalms Loop interval in milliseconds, only applies if service is set to loop (env: FAULT_DETECTOR__LOOP_INTERVAL_MS) -# FAULT_DETECTOR__LOOP_INTERVAL_MS= -# --port Port for the app server (env: FAULT_DETECTOR__PORT) -# FAULT_DETECTOR__PORT= -# --hostname Hostname for the app server (env: FAULT_DETECTOR__HOSTNAME) -# FAULT_DETECTOR__HOSTNAME= -# --loglevel Log level (env: FAULT_DETECTOR__LOG_LEVEL) -# FAULT_DETECTOR__LOG_LEVEL= diff --git a/packages/fault-detector/package.json b/packages/fault-detector/package.json deleted file mode 100644 index db43a34fa286..000000000000 --- a/packages/fault-detector/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "private": true, - "name": "@eth-optimism/fault-detector", - "version": "1.1.0", - "description": "[Optimism] Service for detecting faulty L2 output proposals", - "main": "dist/index", - "types": "dist/index", - "files": [ - "dist/*" - ], - "scripts": { - "start": "node --enable-source-maps dist/src/service.js", - "dev": "tsx watch ./src/service.ts", - "test": "hardhat test", - "test:coverage": "nyc hardhat test && nyc merge .nyc_output coverage.json", - "build": "tsc -p tsconfig.json", - "preview": "pnpm build && pnpm start", - "clean": "rimraf dist/ ./tsconfig.tsbuildinfo", - "lint": "pnpm lint:fix && pnpm lint:check", - "pre-commit": "lint-staged", - "lint:fix": "pnpm lint:check --fix", - "lint:check": "eslint . --max-warnings=0" - }, - "keywords": [ - "optimism", - "ethereum", - "fault", - "detector" - ], - "homepage": "https://github.com/ethereum-optimism/optimism/tree/develop/packages/fault-detector#readme", - "license": "MIT", - "author": "Optimism PBC", - "repository": { - "type": "git", - "url": "https://github.com/ethereum-optimism/optimism.git" - }, - "devDependencies": { - "@defi-wonderland/smock": "^2.0.7", - "@nomiclabs/hardhat-ethers": "^2.0.6", - "@nomiclabs/hardhat-waffle": "^2.0.3", - "@types/chai": "^4.3.1", - "@types/dateformat": "^5.0.0", - "chai-as-promised": "^7.1.1", - "dateformat": "^4.5.1", - "dotenv": "^16.1.4", - "ethereum-waffle": "^3.4.4", - "ethers": "^5.7.0", - "hardhat": "^2.9.6", - "lodash": "^4.17.21", - "tsx": "^3.12.7" - }, - "dependencies": { - "@eth-optimism/common-ts": "^0.8.3", - "@eth-optimism/contracts-bedrock": "0.16.0", - "@eth-optimism/core-utils": "^0.12.2", - "@eth-optimism/sdk": "^3.1.0", - "@ethersproject/abstract-provider": "^5.7.0" - } -} diff --git a/packages/fault-detector/tsconfig.json b/packages/fault-detector/tsconfig.json deleted file mode 100644 index 7531e0946b68..000000000000 --- a/packages/fault-detector/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "sourceMap": true - }, - "include": [ - "package.json", - "src/**/*" - ] -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a89fdf8c34bd..a4de0d4c82b5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,7 +23,7 @@ importers: version: 0.4.8 '@nrwl/nx-cloud': specifier: latest - version: 16.1.1 + version: 16.0.5 '@types/chai': specifier: ^4.2.18 version: 4.2.21 @@ -163,6 +163,9 @@ importers: dateformat: specifier: ^4.5.1 version: 4.5.1 + dotenv: + specifier: ^16.1.4 + version: 16.1.4 ethers: specifier: ^5.7.0 version: 5.7.1 @@ -170,6 +173,15 @@ importers: '@ethersproject/abstract-provider': specifier: ^5.7.0 version: 5.7.0 + '@nomiclabs/hardhat-ethers': + specifier: ^2.0.6 + version: 2.0.6(ethers@5.7.1)(hardhat@2.9.6) + '@nomiclabs/hardhat-waffle': + specifier: ^2.0.3 + version: 2.0.3(@nomiclabs/hardhat-ethers@2.0.6)(ethereum-waffle@3.4.4)(ethers@5.7.1)(hardhat@2.9.6) + hardhat: + specifier: ^2.9.6 + version: 2.9.6(chai@4.3.7) ts-node: specifier: ^10.9.1 version: 10.9.1(@types/node@12.20.55)(typescript@5.1.6) @@ -409,64 +421,6 @@ importers: specifier: ^10.0.0 version: 10.0.0 - packages/fault-detector: - dependencies: - '@eth-optimism/common-ts': - specifier: ^0.8.3 - version: link:../common-ts - '@eth-optimism/contracts-bedrock': - specifier: 0.16.0 - version: link:../contracts-bedrock - '@eth-optimism/core-utils': - specifier: ^0.12.2 - version: link:../core-utils - '@eth-optimism/sdk': - specifier: ^3.1.0 - version: link:../sdk - '@ethersproject/abstract-provider': - specifier: ^5.7.0 - version: 5.7.0 - devDependencies: - '@defi-wonderland/smock': - specifier: ^2.0.7 - version: 2.0.7(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.0.6)(ethers@5.7.1)(hardhat@2.9.6) - '@nomiclabs/hardhat-ethers': - specifier: ^2.0.6 - version: 2.0.6(ethers@5.7.1)(hardhat@2.9.6) - '@nomiclabs/hardhat-waffle': - specifier: ^2.0.3 - version: 2.0.3(@nomiclabs/hardhat-ethers@2.0.6)(ethereum-waffle@3.4.4)(ethers@5.7.1)(hardhat@2.9.6) - '@types/chai': - specifier: ^4.3.1 - version: 4.3.1 - '@types/dateformat': - specifier: ^5.0.0 - version: 5.0.0 - chai-as-promised: - specifier: ^7.1.1 - version: 7.1.1(chai@4.3.7) - dateformat: - specifier: ^4.5.1 - version: 4.5.1 - dotenv: - specifier: ^16.1.4 - version: 16.1.4 - ethereum-waffle: - specifier: ^3.4.4 - version: 3.4.4(typescript@5.1.6) - ethers: - specifier: ^5.7.0 - version: 5.7.1 - hardhat: - specifier: ^2.9.6 - version: 2.9.6(chai@4.3.7) - lodash: - specifier: ^4.17.21 - version: 4.17.21 - tsx: - specifier: ^3.12.7 - version: 3.12.7 - packages/replica-healthcheck: dependencies: '@eth-optimism/common-ts': @@ -1121,30 +1075,6 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@defi-wonderland/smock@2.0.7(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.0.6)(ethers@5.7.1)(hardhat@2.9.6): - resolution: {integrity: sha512-RVpODLKZ/Cr0C1bCbhJ2aXbAr2Ll/K2WO7hDL96tqhMzCsA7ToWdDIgiNpV5Vtqqvpftu5ddO7v3TAurQNSU0w==} - peerDependencies: - '@ethersproject/abi': ^5 - '@ethersproject/abstract-provider': ^5 - '@ethersproject/abstract-signer': ^5 - '@nomiclabs/hardhat-ethers': ^2 - ethers: ^5 - hardhat: ^2 - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@nomiclabs/ethereumjs-vm': 4.2.2 - '@nomiclabs/hardhat-ethers': 2.0.6(ethers@5.7.1)(hardhat@2.9.6) - diff: 5.1.0 - ethers: 5.7.1 - hardhat: 2.9.6(chai@4.3.7) - lodash.isequal: 4.5.0 - lodash.isequalwith: 4.4.0 - rxjs: 7.8.1 - semver: 7.5.3 - dev: true - /@ensdomains/ens@0.4.5: resolution: {integrity: sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==} deprecated: Please use @ensdomains/ens-contracts @@ -1170,27 +1100,6 @@ packages: jsdoc-type-pratt-parser: 1.0.4 dev: true - /@esbuild-kit/cjs-loader@2.4.2: - resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} - dependencies: - '@esbuild-kit/core-utils': 3.0.0 - get-tsconfig: 4.4.0 - dev: true - - /@esbuild-kit/core-utils@3.0.0: - resolution: {integrity: sha512-TXmwH9EFS3DC2sI2YJWJBgHGhlteK0Xyu1VabwetMULfm3oYhbrsWV5yaSr2NTWZIgDGVLHbRf0inxbjXqAcmQ==} - dependencies: - esbuild: 0.15.18 - source-map-support: 0.5.21 - dev: true - - /@esbuild-kit/esm-loader@2.5.5: - resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} - dependencies: - '@esbuild-kit/core-utils': 3.0.0 - get-tsconfig: 4.4.0 - dev: true - /@esbuild/android-arm64@0.18.13: resolution: {integrity: sha512-j7NhycJUoUAG5kAzGf4fPWfd17N6SM3o1X6MlXVqfHvs2buFraCJzos9vbeWjLxOyBKHyPOnuCuipbhvbYtTAg==} engines: {node: '>=12'} @@ -1209,15 +1118,6 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.15.18: - resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.18.13: resolution: {integrity: sha512-KwqFhxRFMKZINHzCqf8eKxE0XqWlAVPRxwy6rc7CbVFxzUWB2sA/s3hbMZeemPdhN3fKBkqOaFhTbS8xJXYIWQ==} engines: {node: '>=12'} @@ -1308,15 +1208,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.15.18: - resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.18.13: resolution: {integrity: sha512-8pcKDApAsKc6WW51ZEVidSGwGbebYw2qKnO1VyD8xd6JN0RN6EUXfhXmDk9Vc4/U3Y4AoFTexQewQDJGsBXBpg==} engines: {node: '>=12'} @@ -2399,26 +2290,6 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@nomiclabs/ethereumjs-vm@4.2.2: - resolution: {integrity: sha512-8WmX94mMcJaZ7/m7yBbyuS6B+wuOul+eF+RY9fBpGhNaUpyMR/vFIcDojqcWQ4Yafe1tMKY5LDu2yfT4NZgV4Q==} - dependencies: - async: 2.6.4 - async-eventemitter: 0.2.4 - core-js-pure: 3.16.2 - ethereumjs-account: 3.0.0 - ethereumjs-block: 2.2.2 - ethereumjs-blockchain: 4.0.4 - ethereumjs-common: 1.5.2 - ethereumjs-tx: 2.1.2 - ethereumjs-util: 6.2.1 - fake-merkle-patricia-tree: 1.0.1 - functional-red-black-tree: 1.0.1 - merkle-patricia-tree: 3.0.0 - rustbn.js: 0.2.0 - safe-buffer: 5.2.1 - util.promisify: 1.1.2 - dev: true - /@nomiclabs/hardhat-ethers@2.0.2(ethers@5.7.1)(hardhat@2.9.6): resolution: {integrity: sha512-6quxWe8wwS4X5v3Au8q1jOvXYEPkS1Fh+cME5u6AwNdnI4uERvPlVjlgRWzpnb+Rrt1l/cEqiNRH9GlsBMSDQg==} peerDependencies: @@ -2695,10 +2566,10 @@ packages: tslib: 2.6.0 dev: true - /@nrwl/nx-cloud@16.1.1: - resolution: {integrity: sha512-iJIPP46+saFZK748FKU4u4YZH+Sv3ZvZPbMwGVMhwqhOYcrlO5aSa0lpilyoN8WuhooKNqcCfiqshx6V577fTg==} + /@nrwl/nx-cloud@16.0.5: + resolution: {integrity: sha512-1p82ym8WE9ziejwgPslstn19iV/VkHfHfKr/5YOnfCHQS+NxUf92ogcYhHXtqWLblVZ9Zs4W4pkSXK4e04wCmQ==} dependencies: - nx-cloud: 16.1.1 + nx-cloud: 16.0.5 transitivePeerDependencies: - debug dev: true @@ -3632,10 +3503,6 @@ packages: resolution: {integrity: sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg==} dev: true - /@types/chai@4.3.1: - resolution: {integrity: sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==} - dev: true - /@types/chai@4.3.5: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} dev: true @@ -3647,6 +3514,7 @@ packages: /@types/dateformat@5.0.0: resolution: {integrity: sha512-SZg4JdHIWHQGEokbYGZSDvo5wA4TLYPXaqhigs/wH+REDOejcJzgH+qyY+HtEUtWOZxEUkbhbdYPqQDiEgrXeA==} + dev: false /@types/debug@4.1.8: resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} @@ -5418,7 +5286,7 @@ packages: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.21.1 - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.1 is-string: 1.0.7 dev: true @@ -7712,6 +7580,7 @@ packages: /dateformat@4.5.1: resolution: {integrity: sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==} + dev: false /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -8224,7 +8093,6 @@ packages: /dotenv@16.1.4: resolution: {integrity: sha512-m55RtE8AsPeJBpOIFKihEmqUcoVncQIwo7x9U8ZwLEZw9ZpXboz2c+rvog+jUaJvVrZ5kBOeYQBX5+8Aa/OZQw==} engines: {node: '>=12'} - dev: true /dotenv@8.6.0: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} @@ -8569,15 +8437,6 @@ packages: dev: true optional: true - /esbuild-android-64@0.15.18: - resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /esbuild-android-arm64@0.15.13: resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} engines: {node: '>=12'} @@ -8587,15 +8446,6 @@ packages: dev: true optional: true - /esbuild-android-arm64@0.15.18: - resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /esbuild-darwin-64@0.15.13: resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} engines: {node: '>=12'} @@ -8605,15 +8455,6 @@ packages: dev: true optional: true - /esbuild-darwin-64@0.15.18: - resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /esbuild-darwin-arm64@0.15.13: resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} engines: {node: '>=12'} @@ -8623,15 +8464,6 @@ packages: dev: true optional: true - /esbuild-darwin-arm64@0.15.18: - resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /esbuild-freebsd-64@0.15.13: resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} engines: {node: '>=12'} @@ -8641,15 +8473,6 @@ packages: dev: true optional: true - /esbuild-freebsd-64@0.15.18: - resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /esbuild-freebsd-arm64@0.15.13: resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} engines: {node: '>=12'} @@ -8659,15 +8482,6 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64@0.15.18: - resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-32@0.15.13: resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} engines: {node: '>=12'} @@ -8677,15 +8491,6 @@ packages: dev: true optional: true - /esbuild-linux-32@0.15.18: - resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-64@0.15.13: resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} engines: {node: '>=12'} @@ -8695,15 +8500,6 @@ packages: dev: true optional: true - /esbuild-linux-64@0.15.18: - resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-arm64@0.15.13: resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} engines: {node: '>=12'} @@ -8713,15 +8509,6 @@ packages: dev: true optional: true - /esbuild-linux-arm64@0.15.18: - resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-arm@0.15.13: resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} engines: {node: '>=12'} @@ -8731,15 +8518,6 @@ packages: dev: true optional: true - /esbuild-linux-arm@0.15.18: - resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-mips64le@0.15.13: resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} engines: {node: '>=12'} @@ -8749,15 +8527,6 @@ packages: dev: true optional: true - /esbuild-linux-mips64le@0.15.18: - resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-ppc64le@0.15.13: resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} engines: {node: '>=12'} @@ -8767,15 +8536,6 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le@0.15.18: - resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-riscv64@0.15.13: resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} engines: {node: '>=12'} @@ -8785,15 +8545,6 @@ packages: dev: true optional: true - /esbuild-linux-riscv64@0.15.18: - resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-s390x@0.15.13: resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} engines: {node: '>=12'} @@ -8803,15 +8554,6 @@ packages: dev: true optional: true - /esbuild-linux-s390x@0.15.18: - resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-netbsd-64@0.15.13: resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} engines: {node: '>=12'} @@ -8821,15 +8563,6 @@ packages: dev: true optional: true - /esbuild-netbsd-64@0.15.18: - resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /esbuild-openbsd-64@0.15.13: resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} engines: {node: '>=12'} @@ -8839,15 +8572,6 @@ packages: dev: true optional: true - /esbuild-openbsd-64@0.15.18: - resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /esbuild-sunos-64@0.15.13: resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} engines: {node: '>=12'} @@ -8857,15 +8581,6 @@ packages: dev: true optional: true - /esbuild-sunos-64@0.15.18: - resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-32@0.15.13: resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} engines: {node: '>=12'} @@ -8875,15 +8590,6 @@ packages: dev: true optional: true - /esbuild-windows-32@0.15.18: - resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-64@0.15.13: resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} engines: {node: '>=12'} @@ -8893,15 +8599,6 @@ packages: dev: true optional: true - /esbuild-windows-64@0.15.18: - resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-arm64@0.15.13: resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} engines: {node: '>=12'} @@ -8911,15 +8608,6 @@ packages: dev: true optional: true - /esbuild-windows-arm64@0.15.18: - resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild@0.15.13: resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} engines: {node: '>=12'} @@ -8950,36 +8638,6 @@ packages: esbuild-windows-arm64: 0.15.13 dev: true - /esbuild@0.15.18: - resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.18 - '@esbuild/linux-loong64': 0.15.18 - esbuild-android-64: 0.15.18 - esbuild-android-arm64: 0.15.18 - esbuild-darwin-64: 0.15.18 - esbuild-darwin-arm64: 0.15.18 - esbuild-freebsd-64: 0.15.18 - esbuild-freebsd-arm64: 0.15.18 - esbuild-linux-32: 0.15.18 - esbuild-linux-64: 0.15.18 - esbuild-linux-arm: 0.15.18 - esbuild-linux-arm64: 0.15.18 - esbuild-linux-mips64le: 0.15.18 - esbuild-linux-ppc64le: 0.15.18 - esbuild-linux-riscv64: 0.15.18 - esbuild-linux-s390x: 0.15.18 - esbuild-netbsd-64: 0.15.18 - esbuild-openbsd-64: 0.15.18 - esbuild-sunos-64: 0.15.18 - esbuild-windows-32: 0.15.18 - esbuild-windows-64: 0.15.18 - esbuild-windows-arm64: 0.15.18 - dev: true - /esbuild@0.18.13: resolution: {integrity: sha512-vhg/WR/Oiu4oUIkVhmfcc23G6/zWuEQKFS+yiosSHe4aN6+DQRXIfeloYGibIfVhkr4wyfuVsGNLr+sQU1rWWw==} engines: {node: '>=12'} @@ -9611,7 +9269,7 @@ packages: '@ethereum-waffle/compiler': 3.4.4(typescript@5.1.6) '@ethereum-waffle/mock-contract': 3.4.4 '@ethereum-waffle/provider': 3.4.4 - ethers: 5.7.1 + ethers: 5.7.2 transitivePeerDependencies: - bufferutil - encoding @@ -10766,14 +10424,6 @@ packages: /get-func-name@2.0.0: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} - /get-intrinsic@1.1.3: - resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - dev: true - /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: @@ -10844,10 +10494,6 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.2.1 - /get-tsconfig@4.4.0: - resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==} - dev: true - /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -11230,8 +10876,8 @@ packages: mnemonist: 0.38.3 mocha: 9.2.1 p-map: 4.0.0 - qs: 6.11.0 - raw-body: 2.5.1 + qs: 6.11.2 + raw-body: 2.5.2 resolve: 1.17.0 semver: 6.3.0 slash: 3.0.0 @@ -13258,10 +12904,6 @@ packages: /lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - /lodash.isequalwith@4.4.0: - resolution: {integrity: sha512-dcZON0IalGBpRmJBmMkaoV7d3I80R2O+FrzsZyHdNSFrANq/cgDqKQNmAHE8UEj4+QYWwwhkQOVdLHiAopzlsQ==} - dev: true - /lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} dev: true @@ -14927,11 +14569,11 @@ packages: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} dev: true - /nx-cloud@16.1.1: - resolution: {integrity: sha512-Rq7ynvkYzAJ67N3pDqU6cMqwvWP7WXJGP4EFjLxgUrRHNCccqDPggeAqePodfk3nZEUrZB8F5QBKZuuw1DR3oA==} + /nx-cloud@16.0.5: + resolution: {integrity: sha512-13P7r0aKikjBtmdZrNorwXzVPeVIV4MLEwqGY+DEG6doLBtI5KqEQk/d5B5l2dCF2BEi/LXEmLYCmf9gwbOJ+Q==} hasBin: true dependencies: - '@nrwl/nx-cloud': 16.1.1 + '@nrwl/nx-cloud': 16.0.5 axios: 1.1.3 chalk: 4.1.2 dotenv: 10.0.0 @@ -15804,11 +15446,6 @@ packages: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true - /picomatch@2.3.0: - resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} - engines: {node: '>=8.6'} - dev: true - /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -16435,7 +16072,6 @@ packages: iconv-lite: 0.4.24 unpipe: 1.0.0 dev: true - optional: true /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} @@ -16606,18 +16242,6 @@ packages: string_decoder: 0.10.31 dev: true - /readable-stream@2.3.7: - resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: true - /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: @@ -16659,7 +16283,7 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /real-require@0.1.0: @@ -17978,7 +17602,7 @@ packages: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.21.1 - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.1 has-symbols: 1.0.3 internal-slot: 1.0.4 regexp.prototype.flags: 1.4.3 @@ -18090,7 +17714,7 @@ packages: dev: true /strip-hex-prefix@1.0.0: - resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + resolution: {integrity: sha1-DF8VX+8RUTczd96du1iNoFUA428=} engines: {node: '>=6.5.0', npm: '>=3'} dependencies: is-hex-prefixed: 1.0.0 @@ -18154,7 +17778,7 @@ packages: formidable: 1.2.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.11.0 + qs: 6.11.2 readable-stream: 3.6.2 semver: 7.5.3 transitivePeerDependencies: @@ -18394,7 +18018,7 @@ packages: /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: - readable-stream: 2.3.7 + readable-stream: 2.3.8 xtend: 4.0.2 dev: true @@ -18790,7 +18414,7 @@ packages: resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} /tsort@0.0.1: - resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} + resolution: {integrity: sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=} dev: true /tsup@7.1.0(typescript@5.1.6): @@ -18839,17 +18463,6 @@ packages: typescript: 4.9.3 dev: true - /tsx@3.12.7: - resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} - hasBin: true - dependencies: - '@esbuild-kit/cjs-loader': 2.4.2 - '@esbuild-kit/core-utils': 3.0.0 - '@esbuild-kit/esm-loader': 2.5.5 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /tty-table@4.1.6: resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} engines: {node: '>=8.0.0'}