From 5fa8359b470a84b07193e2950d7131ec12edcb62 Mon Sep 17 00:00:00 2001 From: Korbinian Date: Tue, 12 Dec 2023 14:10:32 +0100 Subject: [PATCH] Squashed commit of the following: commit 7dfc2980e288534756bd12738e2137db7524dc88 Author: Daniel Wang Date: Tue Dec 12 16:46:17 2023 +0800 add links in solidity files commit 0ece27d539d1cb3970a9a820d5a42e9241cb94fc Author: Korbinian Date: Mon Dec 11 21:59:02 2023 +0100 chore(bridge-ui-v2): update and fix typescript-linting (#15372) commit 9ef2dd263467397545bbea127122aa6768b93b5e Author: Daniel Wang <99078276+dantaik@users.noreply.github.com> Date: Mon Dec 11 19:47:30 2023 +0800 refactor(protocol): use Bridge to send cross-chain owned contract transactions (#15368) Co-authored-by: David commit 5e06cd99966ad0ca5f2a2c39bb63992658dd7458 Author: xiaodino Date: Mon Dec 11 00:35:00 2023 -0800 feat(bridge-ui-v2): Update encoded signal proof in BridgeProver.ts (#15348) Co-authored-by: David Co-authored-by: Daniel Wang <99078276+dantaik@users.noreply.github.com> commit 8edcb3cb27b7ebae4dc4d8d3c945d4e4ea3652e2 Author: Daniel Wang <99078276+dantaik@users.noreply.github.com> Date: Mon Dec 11 15:17:52 2023 +0800 chore(protocol): move eip1559_util.py to script/ (#15367) commit 161f4c63ccb87f3d845887b933cccce3723d74a5 Author: Daniel Wang <99078276+dantaik@users.noreply.github.com> Date: Fri Dec 8 16:47:54 2023 +0800 feat(protocol): Use taikoL2's address as the treasury address in circuits (#15350) Co-authored-by: David commit d50b276986379e4e67b22769debb815dd51850f6 Author: David Date: Fri Dec 8 13:51:32 2023 +0800 feat(protocol): grant `securityCouncil` the `PROPOSER` role (#15355) commit 75b2ef9f9ab9f9651a9d9d55e6bc0ad0fd8d4624 Author: jeff <113397187+cyberhorsey@users.noreply.github.com> Date: Thu Dec 7 19:02:42 2023 -0800 feat(guardian-prover-health-check): ui + api (#15324) commit 06ce873e2a817881b4710cd237d828dadd185000 Author: Daniel Wang <99078276+dantaik@users.noreply.github.com> Date: Thu Dec 7 16:01:42 2023 +0800 chore(protocol): apply fixes based on OZ's inspector reports (#15320) commit 8fc51b47d731cee83d57a272601c641573caf77b Author: CeciliaZ030 <45245961+CeciliaZ030@users.noreply.github.com> Date: Thu Dec 7 05:32:31 2023 +0300 fix(protocol): Non-recursive abi.encode for Zk Verifier (#15344) --- .../workflows/guardianproverhealthcheck.yaml | 94 +- .../workflows/guardianproverhealthcheck.yml | 101 - packages/bridge-ui-v2/.env.example | 2 +- .../__mocks__/$env/static/public.ts | 2 +- .../bridge-ui-v2/__mocks__/@wagmi/core.ts | 26 +- packages/bridge-ui-v2/package.json | 4 +- .../vite-plugins/generateCustomTokenConfig.ts | 2 +- .../AccountConnectionToast.svelte | 4 +- .../src/components/Bridge/Actions.svelte | 32 +- .../src/components/Bridge/Amount.svelte | 4 +- .../Bridge/SwitchChainsButton.svelte | 4 +- .../ConnectButton/ConnectButton.svelte | 7 +- .../SwitchChainModal/SwitchChainModal.svelte | 4 +- .../components/ThemeButton/ThemeButton.svelte | 2 +- .../Transactions/StatusInfoDialog.svelte | 3 +- .../src/libs/bridge/ERC1155Bridge.ts | 6 +- .../src/libs/bridge/ERC20Bridge.ts | 6 +- .../src/libs/bridge/ERC721Bridge.ts | 6 +- .../bridge-ui-v2/src/libs/bridge/ETHBridge.ts | 2 +- .../bridge-ui-v2/src/libs/bridge/types.ts | 2 +- .../src/libs/proof/BridgeProver.ts | 70 +- .../bridge-ui-v2/src/libs/proof/Prover.ts | 32 +- .../libs/relayer/RelayerAPIService.test.ts | 13 +- .../src/libs/relayer/RelayerAPIService.ts | 2 +- .../src/libs/token/checkOwnership.ts | 4 +- .../src/libs/token/fetchNFTImageUrl.ts | 4 +- .../src/libs/token/getCrossChainAddress.ts | 12 +- .../src/libs/util/mergeTransactions.test.ts | 7 - packages/eventindexer/generator/generator.go | 3 + .../.default.env | 3 + .../.gitignore | 24 + .../.vscode/extensions.json | 3 + .../guardian-prover-health-check-ui/README.md | 47 + .../index.html | 13 + .../package-lock.json | 3479 ++++++++++++++ .../package.json | 31 + .../postcss.config.cjs | 6 + .../public/vite.svg | 1 + .../src/App.svelte | 19 + .../src/abi/guardianProver.ts | 665 +++ .../src/app.css | 3 + .../src/assets/svelte.svg | 1 + .../src/components/BlockDetailsModal.svelte | 14 + .../src/components/Blocks.svelte | 61 + .../src/components/Checkmark.svelte | 13 + .../src/components/GuardianProvers.svelte | 287 ++ .../src/components/Home.svelte | 27 + .../src/components/Modal.svelte | 47 + .../src/main.ts | 8 + .../src/utils/fetchGuardianProverStats.ts | 174 + .../utils/fetchGuardianProversFromContract.ts | 39 + .../src/vite-env.d.ts | 2 + .../svelte.config.js | 7 + .../tailwind.config.cjs | 8 + .../tsconfig.json | 20 + .../tsconfig.node.json | 8 + .../vite.config.ts | 7 + .../guardian-prover-health-check/.default.env | 4 +- .../.generator.env | 2 +- .../GuardianProver.json | 239 +- .../bindings/guardianprover/GuardianProver.go | 859 +++- .../generator/generator.go | 3 + .../guardianprover.go | 14 + .../healthcheck.go | 19 +- .../healthchecker/healthchecker.go | 61 +- .../http/get_blocks.go | 90 + ...ent_health_checks_by_guardian_prover_id.go | 41 + .../http/get_stats.go | 27 + .../http/get_stats_by_guardian_prover_id.go | 39 + .../http/get_stats_test.go | 43 + .../http/routes.go | 8 + .../http/server.go | 6 + .../http/server_test.go | 3 + .../1666650599_create_health_checks_table.sql | 2 +- .../1666651000_create_stats_table.sql | 2 +- .../mock/health_check_repo.go | 8 + .../mock/stat_repo.go | 37 + .../repo/healthcheck.go | 19 +- .../repo/healthcheck_test.go | 3 +- .../guardian-prover-health-check/repo/stat.go | 60 + packages/guardian-prover-health-check/stat.go | 30 + .../contracts/4844/BlobHashReader.yulp | 8 + .../contracts/4844/IBlobHashReader.sol | 10 +- packages/protocol/contracts/4844/Lib4844.sol | 10 +- packages/protocol/contracts/L1/ITaikoL1.sol | 46 + packages/protocol/contracts/L1/TaikoData.sol | 10 +- .../protocol/contracts/L1/TaikoErrors.sol | 10 +- .../protocol/contracts/L1/TaikoEvents.sol | 10 +- packages/protocol/contracts/L1/TaikoL1.sol | 37 +- packages/protocol/contracts/L1/TaikoToken.sol | 11 +- .../contracts/L1/gov/TaikoGovernor.sol | 10 +- .../L1/gov/TaikoTimelockController.sol | 10 +- .../contracts/L1/hooks/AssignmentHook.sol | 12 +- .../protocol/contracts/L1/hooks/IHook.sol | 10 +- .../contracts/L1/libs/LibDepositing.sol | 12 +- .../contracts/L1/libs/LibProposing.sol | 12 +- .../protocol/contracts/L1/libs/LibProving.sol | 11 +- .../protocol/contracts/L1/libs/LibUtils.sol | 10 +- .../contracts/L1/libs/LibVerifying.sol | 12 +- .../contracts/L1/provers/GuardianProver.sol | 17 +- .../contracts/L1/provers/Guardians.sol | 12 +- .../contracts/L1/tiers/ITierProvider.sol | 10 +- .../L1/tiers/TaikoA6TierProvider.sol | 10 +- .../L1/verifiers/GuardianVerifier.sol | 10 +- .../contracts/L1/verifiers/IVerifier.sol | 10 +- .../contracts/L1/verifiers/PlonkVerifier.yulp | 10 +- .../contracts/L1/verifiers/PseZkVerifier.sol | 23 +- .../L1/verifiers/SgxAndZkVerifier.sol | 10 +- .../contracts/L1/verifiers/SgxVerifier.sol | 12 +- .../protocol/contracts/L2/CrossChainOwned.sol | 79 + .../protocol/contracts/L2/Lib1559Math.sol | 10 +- packages/protocol/contracts/L2/TaikoL2.sol | 62 +- .../L2/TaikoL2EIP1559Configurable.sol | 12 +- .../protocol/contracts/L2/TaikoL2Signer.sol | 12 +- packages/protocol/contracts/bridge/Bridge.sol | 12 +- .../protocol/contracts/bridge/IBridge.sol | 10 +- .../contracts/common/AddressManager.sol | 12 +- .../contracts/common/AddressResolver.sol | 10 +- .../contracts/common/AuthorizableContract.sol | 12 +- .../contracts/common/EssentialContract.sol | 10 +- .../contracts/common/ICrossChainSync.sol | 10 +- .../contracts/common/OwnerUUPSUpgradable.sol | 12 +- .../protocol/contracts/libs/LibAddress.sol | 10 +- .../protocol/contracts/libs/LibDeploy.sol | 10 +- packages/protocol/contracts/libs/LibMath.sol | 10 +- .../contracts/signal/ISignalService.sol | 2 +- .../contracts/signal/SignalService.sol | 14 +- .../contracts/team/TimelockTokenPool.sol | 12 +- .../contracts/team/airdrop/ERC20Airdrop.sol | 10 +- .../contracts/team/airdrop/ERC20Airdrop2.sol | 12 +- .../contracts/team/airdrop/ERC721Airdrop.sol | 10 +- .../team/airdrop/MerkleClaimable.sol | 10 +- .../contracts/test/erc20/FreeMintERC20.sol | 10 +- .../test/erc20/MayFailFreeMintERC20.sol | 12 +- .../contracts/test/erc20/RegularERC20.sol | 2 +- .../contracts/thirdparty/LibBytesUtils.sol | 2 +- .../thirdparty/LibFixedPointMath.sol | 2 +- .../contracts/thirdparty/LibMerkleTrie.sol | 2 +- .../contracts/thirdparty/LibRLPReader.sol | 2 +- .../thirdparty/LibSecureMerkleTrie.sol | 2 +- .../contracts/thirdparty/LibUint512Math.sol | 2 +- .../contracts/tokenvault/BaseNFTVault.sol | 12 +- .../contracts/tokenvault/BaseVault.sol | 11 +- .../contracts/tokenvault/BridgedERC1155.sol | 10 +- .../contracts/tokenvault/BridgedERC20.sol | 12 +- .../contracts/tokenvault/BridgedERC20Base.sol | 10 +- .../contracts/tokenvault/BridgedERC721.sol | 10 +- .../contracts/tokenvault/ERC1155Vault.sol | 14 +- .../contracts/tokenvault/ERC20Vault.sol | 13 +- .../contracts/tokenvault/ERC721Vault.sol | 12 +- .../contracts/tokenvault/IBridgedERC20.sol | 10 +- .../contracts/tokenvault/LibBridgedToken.sol | 10 +- .../tokenvault/adaptors/USDCAdaptor.sol | 10 +- .../protocol/genesis/GenerateGenesis.g.sol | 40 +- packages/protocol/genesis/test_config.js | 4 +- .../AuthorizeRemoteTaikoProtocols.s.sol | 10 +- packages/protocol/script/DeployOnL1.s.sol | 66 +- packages/protocol/script/SetAddress.s.sol | 12 +- .../script/SetRemoteBridgeSuites.s.sol | 18 +- .../{contracts/L2 => script}/eip1559_util.py | 0 packages/protocol/test/DeployCapability.sol | 6 +- packages/protocol/test/HelperContracts.sol | 2 +- packages/protocol/test/L1/Guardians.t.sol | 4 +- packages/protocol/test/L1/SgxVerifier.t.sol | 2 +- packages/protocol/test/L1/TaikoL1.t.sol | 2 +- .../test/L1/TaikoL1LibProvingWithTiers.t.sol | 2 +- packages/protocol/test/L1/TaikoL1TestBase.sol | 4 +- packages/protocol/test/L2/Lib1559Math.t.sol | 2 +- packages/protocol/test/L2/TaikoL2.t.sol | 65 +- packages/protocol/test/TaikoTest.sol | 2 +- packages/protocol/test/bridge/Bridge.t.sol | 14 +- .../test/common/EssentialContract.t.sol | 8 +- .../protocol/test/signal/SignalService.t.sol | 8 +- .../test/team/TimelockTokenPool.t.sol | 4 +- .../test/team/airdrop/MerkleClaimable.t.sol | 11 +- .../test/tokenvault/BridgedERC20.t.sol | 9 +- .../test/tokenvault/ERC1155Vault.t.sol | 16 +- .../protocol/test/tokenvault/ERC20Vault.t.sol | 16 +- .../test/tokenvault/ERC721Vault.t.sol | 16 +- .../utils/generate_genesis/interface.ts | 5 +- .../protocol/utils/generate_genesis/main.ts | 9 +- .../utils/generate_genesis/taikoL2.ts | 56 +- pnpm-lock.yaml | 4079 +++++++++-------- 183 files changed, 9599 insertions(+), 2897 deletions(-) delete mode 100644 .github/workflows/guardianproverhealthcheck.yml create mode 100644 packages/guardian-prover-health-check-ui/.default.env create mode 100644 packages/guardian-prover-health-check-ui/.gitignore create mode 100644 packages/guardian-prover-health-check-ui/.vscode/extensions.json create mode 100644 packages/guardian-prover-health-check-ui/README.md create mode 100644 packages/guardian-prover-health-check-ui/index.html create mode 100644 packages/guardian-prover-health-check-ui/package-lock.json create mode 100644 packages/guardian-prover-health-check-ui/package.json create mode 100644 packages/guardian-prover-health-check-ui/postcss.config.cjs create mode 100644 packages/guardian-prover-health-check-ui/public/vite.svg create mode 100644 packages/guardian-prover-health-check-ui/src/App.svelte create mode 100644 packages/guardian-prover-health-check-ui/src/abi/guardianProver.ts create mode 100644 packages/guardian-prover-health-check-ui/src/app.css create mode 100644 packages/guardian-prover-health-check-ui/src/assets/svelte.svg create mode 100644 packages/guardian-prover-health-check-ui/src/components/BlockDetailsModal.svelte create mode 100644 packages/guardian-prover-health-check-ui/src/components/Blocks.svelte create mode 100644 packages/guardian-prover-health-check-ui/src/components/Checkmark.svelte create mode 100644 packages/guardian-prover-health-check-ui/src/components/GuardianProvers.svelte create mode 100644 packages/guardian-prover-health-check-ui/src/components/Home.svelte create mode 100644 packages/guardian-prover-health-check-ui/src/components/Modal.svelte create mode 100644 packages/guardian-prover-health-check-ui/src/main.ts create mode 100644 packages/guardian-prover-health-check-ui/src/utils/fetchGuardianProverStats.ts create mode 100644 packages/guardian-prover-health-check-ui/src/utils/fetchGuardianProversFromContract.ts create mode 100644 packages/guardian-prover-health-check-ui/src/vite-env.d.ts create mode 100644 packages/guardian-prover-health-check-ui/svelte.config.js create mode 100644 packages/guardian-prover-health-check-ui/tailwind.config.cjs create mode 100644 packages/guardian-prover-health-check-ui/tsconfig.json create mode 100644 packages/guardian-prover-health-check-ui/tsconfig.node.json create mode 100644 packages/guardian-prover-health-check-ui/vite.config.ts create mode 100644 packages/guardian-prover-health-check/guardianprover.go create mode 100644 packages/guardian-prover-health-check/http/get_blocks.go create mode 100644 packages/guardian-prover-health-check/http/get_most_recent_health_checks_by_guardian_prover_id.go create mode 100644 packages/guardian-prover-health-check/http/get_stats.go create mode 100644 packages/guardian-prover-health-check/http/get_stats_by_guardian_prover_id.go create mode 100644 packages/guardian-prover-health-check/http/get_stats_test.go create mode 100644 packages/guardian-prover-health-check/mock/stat_repo.go create mode 100644 packages/guardian-prover-health-check/repo/stat.go create mode 100644 packages/guardian-prover-health-check/stat.go create mode 100644 packages/protocol/contracts/L1/ITaikoL1.sol create mode 100644 packages/protocol/contracts/L2/CrossChainOwned.sol rename packages/protocol/{contracts/L2 => script}/eip1559_util.py (100%) diff --git a/.github/workflows/guardianproverhealthcheck.yaml b/.github/workflows/guardianproverhealthcheck.yaml index 2dfe92f5662..4a2f8dc1675 100644 --- a/.github/workflows/guardianproverhealthcheck.yaml +++ b/.github/workflows/guardianproverhealthcheck.yaml @@ -1,19 +1,101 @@ -name: Guardianproverhealthcheck +name: guardian-prover-health-check on: push: branches: [main] + paths: + - "packages/guardian-prover-health-check/**" + pull_request: + paths: + - "packages/guardian-prover-health-check/**" jobs: - build: + lint: + name: lint runs-on: ubuntu-latest steps: - - name: Cancel previous runs + - uses: actions/setup-go@v3 + with: + go-version: 1.21.0 + - uses: actions/checkout@v3 + - name: golangci-lint + uses: golangci/golangci-lint-action@v3 + with: + # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version + version: latest + + # Optional: working directory, useful for monorepos + working-directory: ./packages/guardian-prover-health-check + args: --config=.golangci.yml --timeout=4m + + test: + runs-on: ubuntu-latest + needs: lint + steps: + - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.11.0 with: access_token: ${{ github.token }} - - name: Checkout repository - uses: actions/checkout@v3 + - uses: actions/checkout@v3 + - uses: actions/setup-go@v3 + with: + go-version: "1.21.0" + + - name: guardian-prover-health-check - Unit Tests + working-directory: ./packages/guardian-prover-health-check + run: go test `go list ./... | grep -v ./contracts | grep -v ./mock | grep -v ./cmd` -coverprofile=coverage.txt -covermode=atomic + + - name: guardian-prover-health-check - Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + files: ./packages/guardian-prover-health-check/coverage.txt + flags: guardian-prover-health-check + + push-docker-image: + # only push docker image on PR merge to main + if: ${{ github.event }} == 'push' + name: Build and push docker image + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ github.ref }} + + - name: Login to GCR + uses: docker/login-action@v2 + with: + registry: gcr.io + username: _json_key + password: ${{ secrets.GCR_JSON_KEY }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + gcr.io/evmchain/guardian-prover-health-check + tags: | + type=ref,event=branch + type=ref,event=pr + type=ref,event=tag + type=sha + + - name: Build and push + uses: docker/build-push-action@v2 with: - submodules: recursive + platforms: linux/amd64 + push: true + context: . + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: | + PACKAGE=guardian-prover-health-check diff --git a/.github/workflows/guardianproverhealthcheck.yml b/.github/workflows/guardianproverhealthcheck.yml deleted file mode 100644 index df51950dfb8..00000000000 --- a/.github/workflows/guardianproverhealthcheck.yml +++ /dev/null @@ -1,101 +0,0 @@ -name: guardianproverhealthcheck - -on: - push: - branches: [main] - paths: - - "packages/guardianproverhealthcheck/**" - pull_request: - paths: - - "packages/guardianproverhealthcheck/**" - -jobs: - lint: - name: lint - runs-on: ubuntu-latest - steps: - - uses: actions/setup-go@v3 - with: - go-version: 1.21.0 - - uses: actions/checkout@v3 - - name: golangci-lint - uses: golangci/golangci-lint-action@v3 - with: - # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: latest - - # Optional: working directory, useful for monorepos - working-directory: ./packages/guardianproverhealthcheck - args: --config=.golangci.yml --timeout=4m - - test: - runs-on: ubuntu-latest - needs: lint - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 - with: - go-version: "1.21.0" - - - name: guardianproverhealthcheck - Unit Tests - working-directory: ./packages/guardianproverhealthcheck - run: go test `go list ./... | grep -v ./contracts | grep -v ./mock | grep -v ./cmd` -coverprofile=coverage.txt -covermode=atomic - - - name: guardianproverhealthcheck - Upload coverage to Codecov - uses: codecov/codecov-action@v3 - with: - files: ./packages/guardianproverhealthcheck/coverage.txt - flags: guardianproverhealthcheck - - push-docker-image: - # only push docker image on PR merge to main - if: ${{ github.event }} == 'push' - name: Build and push docker image - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - ref: ${{ github.ref }} - - - name: Login to GCR - uses: docker/login-action@v2 - with: - registry: gcr.io - username: _json_key - password: ${{ secrets.GCR_JSON_KEY }} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Docker meta - id: meta - uses: docker/metadata-action@v4 - with: - images: | - gcr.io/evmchain/guardianproverhealthcheck - tags: | - type=ref,event=branch - type=ref,event=pr - type=ref,event=tag - type=sha - - - name: Build and push - uses: docker/build-push-action@v2 - with: - platforms: linux/amd64 - push: true - context: . - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - build-args: | - PACKAGE=guardianproverhealthcheck diff --git a/packages/bridge-ui-v2/.env.example b/packages/bridge-ui-v2/.env.example index 76cd1143202..20f4b53ee4e 100644 --- a/packages/bridge-ui-v2/.env.example +++ b/packages/bridge-ui-v2/.env.example @@ -20,6 +20,6 @@ export SENTRY_AUTH_TOKEN= # Config jsons in base64 (see ReadMe, these are generated via a script) export CONFIGURED_BRIDGES= export CONFIGURED_CHAINS= -export CONFIGURED_CUSTOM_TOKEN= +export CONFIGURED_CUSTOM_TOKENS= export CONFIGURED_RELAYER= export CONFIGURED_EVENT_INDEXER= \ No newline at end of file diff --git a/packages/bridge-ui-v2/__mocks__/$env/static/public.ts b/packages/bridge-ui-v2/__mocks__/$env/static/public.ts index 247539b0269..6ec4ece4e74 100644 --- a/packages/bridge-ui-v2/__mocks__/$env/static/public.ts +++ b/packages/bridge-ui-v2/__mocks__/$env/static/public.ts @@ -6,5 +6,5 @@ export const PUBLIC_WALLETCONNECT_PROJECT_ID = '123'; export const PUBLIC_SENTRY_DSN = 'https://sentry.com'; export const CONFIGURED_BRIDGES = ''; export const CONFIGURED_CHAINS = ''; -export const CONFIGURED_CUSTOM_TOKEN = ''; +export const CONFIGURED_CUSTOM_TOKENS = ''; export const CONFIGURED_RELAYER = ''; diff --git a/packages/bridge-ui-v2/__mocks__/@wagmi/core.ts b/packages/bridge-ui-v2/__mocks__/@wagmi/core.ts index 0700d6c0cd0..bd257aabc46 100644 --- a/packages/bridge-ui-v2/__mocks__/@wagmi/core.ts +++ b/packages/bridge-ui-v2/__mocks__/@wagmi/core.ts @@ -14,8 +14,30 @@ export const fetchToken = vi.fn(); export const readContract = vi.fn(); -export const configureChains = vi.fn(() => { - return { publicClient: 'mockPublicClient' }; +const mockChains = [ + { + id: 0, + name: 'Debug', + network: 'Debug', + nativeCurrency: { + name: 'ETH', + symbol: 'ETH', + decimals: 18, + }, + rpcUrls: { + public: { http: ['some/url/'] }, + default: { http: ['some/url/'] }, + }, + }, +]; + +const mockPublicClient = () => { + return {}; +}; + +export const configureChains = vi.fn().mockReturnValue({ + chains: mockChains, + publicClient: mockPublicClient, }); export const createConfig = vi.fn(() => { diff --git a/packages/bridge-ui-v2/package.json b/packages/bridge-ui-v2/package.json index b7f605ef0c6..9eef910b6cb 100644 --- a/packages/bridge-ui-v2/package.json +++ b/packages/bridge-ui-v2/package.json @@ -27,8 +27,8 @@ "@sveltejs/kit": "^1.27.4", "@types/debug": "^4.1.12", "@types/object-hash": "^3.0.6", - "@typescript-eslint/eslint-plugin": "^6.10.0", - "@typescript-eslint/parser": "^6.10.0", + "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/parser": "^6.13.2", "@vitest/coverage-v8": "^0.33.0", "@wagmi/cli": "^1.5.2", "abitype": "^0.8.11", diff --git a/packages/bridge-ui-v2/scripts/vite-plugins/generateCustomTokenConfig.ts b/packages/bridge-ui-v2/scripts/vite-plugins/generateCustomTokenConfig.ts index d60a9c7b594..e20c1c0fc4b 100644 --- a/packages/bridge-ui-v2/scripts/vite-plugins/generateCustomTokenConfig.ts +++ b/packages/bridge-ui-v2/scripts/vite-plugins/generateCustomTokenConfig.ts @@ -32,7 +32,7 @@ export function generateCustomTokenConfig() { } else { if (!process.env.CONFIGURED_CUSTOM_TOKENS) { throw new Error( - 'CONFIGURED_CUSTOM_TOKEN is not defined in environment. Make sure to run the export step in the documentation.', + 'CONFIGURED_CUSTOM_TOKENS is not defined in environment. Make sure to run the export step in the documentation.', ); } diff --git a/packages/bridge-ui-v2/src/components/AccountConnectionToast/AccountConnectionToast.svelte b/packages/bridge-ui-v2/src/components/AccountConnectionToast/AccountConnectionToast.svelte index 649e43a9fed..34be1eca943 100644 --- a/packages/bridge-ui-v2/src/components/AccountConnectionToast/AccountConnectionToast.svelte +++ b/packages/bridge-ui-v2/src/components/AccountConnectionToast/AccountConnectionToast.svelte @@ -9,12 +9,12 @@ // when the account is connected or disconnected via toast function onAccountChange(newAccount: Account, oldAccount?: Account) { if (newAccount?.isConnected) { - successToast({title: $t('messages.account.connected')}); + successToast({ title: $t('messages.account.connected') }); } else if (oldAccount && newAccount?.isDisconnected) { // We check if there was previous account, if not // the user just hit the app, and there is no need // to show the message. - warningToast({title: $t('messages.account.disconnected')}); + warningToast({ title: $t('messages.account.disconnected') }); } } diff --git a/packages/bridge-ui-v2/src/components/Bridge/Actions.svelte b/packages/bridge-ui-v2/src/components/Bridge/Actions.svelte index 81fdbb827fa..6a58170e7ac 100644 --- a/packages/bridge-ui-v2/src/components/Bridge/Actions.svelte +++ b/packages/bridge-ui-v2/src/components/Bridge/Actions.svelte @@ -132,8 +132,8 @@ ? typeof $tokenBalance === 'bigint' ? $tokenBalance > BigInt(0) // ERC721/1155 : 'value' in $tokenBalance - ? $tokenBalance.value > BigInt(0) - : false // ERC20 + ? $tokenBalance.value > BigInt(0) + : false // ERC20 : false); $: canDoNothing = !hasAddress || !hasNetworks || !hasBalance || !$selectedToken; @@ -144,10 +144,10 @@ $selectedToken?.type === TokenType.ERC20 ? isSelectedERC20 && $enteredAmount && !$insufficientAllowance && !$validatingAmount : $selectedToken?.type === TokenType.ERC721 - ? allTokensApproved - : $selectedToken?.type === TokenType.ERC1155 - ? allTokensApproved - : false; + ? allTokensApproved + : $selectedToken?.type === TokenType.ERC1155 + ? allTokensApproved + : false; $: { checkTokensApproved(); @@ -158,10 +158,10 @@ $selectedToken?.type === TokenType.ERC20 ? canDoNothing || $insufficientBalance || $validatingAmount || approving || isTokenApproved || !$enteredAmount : $selectedToken?.type === TokenType.ERC721 - ? allTokensApproved || approving - : $selectedToken?.type === TokenType.ERC1155 - ? allTokensApproved || approving - : approving; + ? allTokensApproved || approving + : $selectedToken?.type === TokenType.ERC1155 + ? allTokensApproved || approving + : approving; $: isERC20 = $selectedToken?.type === TokenType.ERC20; $: isERC721 = $selectedToken?.type === TokenType.ERC721; @@ -187,12 +187,12 @@ $: disableBridge = isERC20 ? !erc20ConditionsSatisfied : isERC721 - ? !erc721ConditionsSatisfied - : isERC1155 - ? !erc1155ConditionsSatisfied - : isETH - ? !ethConditionsSatisfied - : commonConditions; + ? !erc721ConditionsSatisfied + : isERC1155 + ? !erc1155ConditionsSatisfied + : isETH + ? !ethConditionsSatisfied + : commonConditions; {#if oldStyle} diff --git a/packages/bridge-ui-v2/src/components/Bridge/Amount.svelte b/packages/bridge-ui-v2/src/components/Bridge/Amount.svelte index b88fefb2ee3..e22c33eea79 100644 --- a/packages/bridge-ui-v2/src/components/Bridge/Amount.svelte +++ b/packages/bridge-ui-v2/src/components/Bridge/Amount.svelte @@ -233,8 +233,8 @@ ? $tokenBalance : BigInt(0) // ERC721/1155 : 'value' in $tokenBalance && $tokenBalance.value > BigInt(0) - ? $tokenBalance.value - : BigInt(0) // ERC20 + ? $tokenBalance.value + : BigInt(0) // ERC20 : BigInt(0); $: if (inputBox && sanitizedValue !== inputBox.getValue()) { diff --git a/packages/bridge-ui-v2/src/components/Bridge/SwitchChainsButton.svelte b/packages/bridge-ui-v2/src/components/Bridge/SwitchChainsButton.svelte index 9a59fd04510..a3c27941b77 100644 --- a/packages/bridge-ui-v2/src/components/Bridge/SwitchChainsButton.svelte +++ b/packages/bridge-ui-v2/src/components/Bridge/SwitchChainsButton.svelte @@ -16,9 +16,9 @@ } catch (err) { console.error(err); if (err instanceof SwitchChainError) { - warningToast({title: $t('messages.network.pending')}); + warningToast({ title: $t('messages.network.pending') }); } else if (err instanceof UserRejectedRequestError) { - warningToast({title: $t('messages.network.rejected')}); + warningToast({ title: $t('messages.network.rejected') }); } } } diff --git a/packages/bridge-ui-v2/src/components/ConnectButton/ConnectButton.svelte b/packages/bridge-ui-v2/src/components/ConnectButton/ConnectButton.svelte index 5d4f47547c7..e0c26f7cdd7 100644 --- a/packages/bridge-ui-v2/src/components/ConnectButton/ConnectButton.svelte +++ b/packages/bridge-ui-v2/src/components/ConnectButton/ConnectButton.svelte @@ -16,7 +16,7 @@ function connectWallet() { if (web3modalOpen) return; - web3modal.openModal(); + web3modal.openModal(); } function onWeb3Modal(state: { open: boolean }) { @@ -31,7 +31,10 @@ {#if connected} - + {/if} + {#if nextHealthCheckPage !== healthCheckPageTotal} + + {/if} + {:else if activeSubTab === "stats"} +
+

Address: {guardian.address}

+ + + + + + + + + + + + {#each stats as stat} + + + + + + + {/each} + +
DateReqsSuccessful ReqsUptime
{stat.date}{stat.requests}{stat.successfulRequests}{stat.uptime}%
+ {#if nextStatsPage - 1 !== 0} + + {/if} +
+ {#if nextStatsPage !== statsPageTotal} + + {/if} + {:else} + Blocks + {/if} + {/if} + {/each} + + + +
+{/each} + + diff --git a/packages/guardian-prover-health-check-ui/src/components/Home.svelte b/packages/guardian-prover-health-check-ui/src/components/Home.svelte new file mode 100644 index 00000000000..df6e44baede --- /dev/null +++ b/packages/guardian-prover-health-check-ui/src/components/Home.svelte @@ -0,0 +1,27 @@ + + + + +
+ {#if activeTab === "blocks"} + + {:else} + + {/if} +
diff --git a/packages/guardian-prover-health-check-ui/src/components/Modal.svelte b/packages/guardian-prover-health-check-ui/src/components/Modal.svelte new file mode 100644 index 00000000000..07358512d9c --- /dev/null +++ b/packages/guardian-prover-health-check-ui/src/components/Modal.svelte @@ -0,0 +1,47 @@ + + + + + + + diff --git a/packages/guardian-prover-health-check-ui/src/main.ts b/packages/guardian-prover-health-check-ui/src/main.ts new file mode 100644 index 00000000000..5c1f795f9f5 --- /dev/null +++ b/packages/guardian-prover-health-check-ui/src/main.ts @@ -0,0 +1,8 @@ +import './app.css' +import App from './App.svelte' + +const app = new App({ + target: document.getElementById('app') +}) + +export default app diff --git a/packages/guardian-prover-health-check-ui/src/utils/fetchGuardianProverStats.ts b/packages/guardian-prover-health-check-ui/src/utils/fetchGuardianProverStats.ts new file mode 100644 index 00000000000..6ee20b3b5ff --- /dev/null +++ b/packages/guardian-prover-health-check-ui/src/utils/fetchGuardianProverStats.ts @@ -0,0 +1,174 @@ +import axios from "axios"; + +const healthCheckRoute = "healthchecks"; + +const statsRoute = "stats"; + +const livenessRoute = "liveness"; + +const signedBlocksRoute = "signedBlocks"; + +export type SignedBlock = { + blockHash: string; + signature: string; + guardianProverID: number; +}; + +export type SignedBlocks = { [key: string]: SignedBlock[] }; + +export type HealthCheck = { + id: number; + guardianProverId: number; + alive: boolean; + expectedAddress: string; + recoveredAddress: string; + signedResponse: string; + createdAt: string; +}; + +export type Stat = { + guardianProverId: number; + date: string; + requests: number; + successfulRequests: number; + uptime: number; + createdAt: number; +}; + +export type PageResponse = { + items: T[]; + page: number; + size: number; + max_page: number; + total_pages: number; + total: number; + last: boolean; + first: boolean; + visible: number; +}; + +export async function fetchSignedBlocks( + baseURL: string +): Promise { + let url = `${baseURL}/${signedBlocksRoute}`; + + const resp = await axios.get(url); + + return resp.data; +} + +export async function fetchLatestGuardianProverRequest( + baseURL: string, + guardianProverId: number +): Promise { + let url = `${baseURL}/${livenessRoute}/${guardianProverId}`; + + const resp = await axios.get(url); + + return resp.data; +} + +export async function fetchGuardianProverRequests( + baseURL: string, + page: number, + size: number, + guardianProverId?: number +): Promise> { + let url; + if (guardianProverId) { + url = `${baseURL}/${healthCheckRoute}/${guardianProverId}`; + } else { + url = `${baseURL}/${healthCheckRoute}`; + } + + const resp = await axios.get>(url, { + params: { + page: page, + size: size, + }, + }); + + return resp.data; +} + +export async function fetchAllGuardianProverRequests( + baseURL: string, + guardianProverId?: number +): Promise { + const page = await fetchGuardianProverRequests( + baseURL, + 0, + 100, + guardianProverId + ); + const totalPages = page.total_pages; + if (totalPages === 1) { + return page.items; + } + + const healthChecks: HealthCheck[] = []; + healthChecks.concat(page.items); + + await Promise.all( + [...Array(totalPages)].map(async (x, i) => { + const page = await fetchGuardianProverRequests( + baseURL, + i, + 100, + guardianProverId + ); + + healthChecks.concat(page.items); + }) + ); + + return healthChecks; +} + +export async function fetchStats( + baseURL: string, + page: number, + size: number, + guardianProverId?: number +): Promise> { + let url; + if (guardianProverId) { + url = `${baseURL}/${statsRoute}/${guardianProverId}`; + } else { + url = `${baseURL}/${statsRoute}`; + } + + const resp = await axios.get>(url, { + params: { + page: page, + size: size, + }, + }); + + return resp.data; +} + +export async function fetchAllStats( + baseURL: string, + guardianProverId?: number +): Promise { + const page = await fetchStats(baseURL, 0, 100, guardianProverId); + const totalPages = page.total_pages; + if (totalPages === 1) { + return page.items; + } + + const stats: Stat[] = []; + + stats.concat(page.items); + + await Promise.all( + [...Array(totalPages)].map(async (x, i) => { + const page = await fetchStats(baseURL, i, 100, guardianProverId); + + stats.concat(page.items); + }) + ); + + return stats; +} diff --git a/packages/guardian-prover-health-check-ui/src/utils/fetchGuardianProversFromContract.ts b/packages/guardian-prover-health-check-ui/src/utils/fetchGuardianProversFromContract.ts new file mode 100644 index 00000000000..2374e025de6 --- /dev/null +++ b/packages/guardian-prover-health-check-ui/src/utils/fetchGuardianProversFromContract.ts @@ -0,0 +1,39 @@ +import { ethers } from "ethers"; +import guardianProverAbi from "../abi/guardianProver"; +import type { HealthCheck } from "./fetchGuardianProverStats"; + +export type Guardian = { + address: string; + id: number; + latestHealthCheck: HealthCheck; + alive: boolean; +}; + +export async function fetchGuardianProversFromContract( + contractAddress: string, + provider: ethers.providers.Provider +): Promise { + const contract = new ethers.Contract( + contractAddress, + guardianProverAbi, + provider + ); + + const numGuardians = await contract.numGuardians(); + + const guardians: Guardian[] = []; + + for (let i = 0; i < numGuardians; i++) { + const guardianAddress = await contract.guardians(i); + const guardianId = await contract.guardianIds(guardianAddress); + + guardians.push({ + address: guardianAddress, + id: guardianId, + latestHealthCheck: null, + alive: true, + }); + } + + return guardians; +} diff --git a/packages/guardian-prover-health-check-ui/src/vite-env.d.ts b/packages/guardian-prover-health-check-ui/src/vite-env.d.ts new file mode 100644 index 00000000000..4078e7476a2 --- /dev/null +++ b/packages/guardian-prover-health-check-ui/src/vite-env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/packages/guardian-prover-health-check-ui/svelte.config.js b/packages/guardian-prover-health-check-ui/svelte.config.js new file mode 100644 index 00000000000..3630bb3963b --- /dev/null +++ b/packages/guardian-prover-health-check-ui/svelte.config.js @@ -0,0 +1,7 @@ +import sveltePreprocess from 'svelte-preprocess' + +export default { + // Consult https://github.com/sveltejs/svelte-preprocess + // for more information about preprocessors + preprocess: sveltePreprocess() +} diff --git a/packages/guardian-prover-health-check-ui/tailwind.config.cjs b/packages/guardian-prover-health-check-ui/tailwind.config.cjs new file mode 100644 index 00000000000..a6f174ee602 --- /dev/null +++ b/packages/guardian-prover-health-check-ui/tailwind.config.cjs @@ -0,0 +1,8 @@ +module.exports = { + content: ["./src/**/*.{html,js,svelte}"], theme: { + extend: {}, + }, + plugins: [ + require("daisyui") + ], +} \ No newline at end of file diff --git a/packages/guardian-prover-health-check-ui/tsconfig.json b/packages/guardian-prover-health-check-ui/tsconfig.json new file mode 100644 index 00000000000..c4e1c5fe6e7 --- /dev/null +++ b/packages/guardian-prover-health-check-ui/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "resolveJsonModule": true, + /** + * Typecheck JS in `.svelte` and `.js` files by default. + * Disable checkJs if you'd like to use dynamic types in JS. + * Note that setting allowJs false does not prevent the use + * of JS in `.svelte` files. + */ + "allowJs": true, + "checkJs": true, + "isolatedModules": true + }, + "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/packages/guardian-prover-health-check-ui/tsconfig.node.json b/packages/guardian-prover-health-check-ui/tsconfig.node.json new file mode 100644 index 00000000000..65dbdb96ae5 --- /dev/null +++ b/packages/guardian-prover-health-check-ui/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node" + }, + "include": ["vite.config.ts"] +} diff --git a/packages/guardian-prover-health-check-ui/vite.config.ts b/packages/guardian-prover-health-check-ui/vite.config.ts new file mode 100644 index 00000000000..401b4d4bd6b --- /dev/null +++ b/packages/guardian-prover-health-check-ui/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import { svelte } from '@sveltejs/vite-plugin-svelte' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [svelte()] +}) diff --git a/packages/guardian-prover-health-check/.default.env b/packages/guardian-prover-health-check/.default.env index 7482b03442d..cef98351a0b 100644 --- a/packages/guardian-prover-health-check/.default.env +++ b/packages/guardian-prover-health-check/.default.env @@ -7,7 +7,7 @@ DATABASE_HOST=localhost:3306 DATABASE_MAX_IDLE_CONNS=50 DATABASE_MAX_OPEN_CONNS=3000 DATABASE_CONN_MAX_LIFETIME_IN_MS=100000 -GUARDIAN_PROVER_CONTRACT_ADDRESS=0x9A9f2CCfdE556A7E9Ff0848998Aa4a0CFD8863AE -GUARDIAN_PROVER_ENDPOINTS=https://guardian-prover-1.internal.taiko.xyz,https://guardian-prover-2.internal.taiko.xyz,https://guardian-prover-3.internal.taiko.xyz,https://guardian-prover-4.internal.taiko.xyz,https://guardian-prover-5.internal.taiko.xyz, +GUARDIAN_PROVER_CONTRACT_ADDRESS=0x0E801D84Fa97b50751Dbf25036d067dCf18858bF +GUARDIAN_PROVER_ENDPOINTS=https://guardian-prover-1.internal.taiko.xyz,https://guardian-prover-2.internal.taiko.xyz,https://guardian-prover-3.internal.taiko.xyz,https://guardian-prover-4.internal.taiko.xyz,https://guardian-prover-5.internal.taiko.xyz RPC_URL=wss://l1ws.internal.taiko.xyz INTERVAL=12s \ No newline at end of file diff --git a/packages/guardian-prover-health-check/.generator.env b/packages/guardian-prover-health-check/.generator.env index 80211abf57a..3e14bbe37f5 100644 --- a/packages/guardian-prover-health-check/.generator.env +++ b/packages/guardian-prover-health-check/.generator.env @@ -8,5 +8,5 @@ DATABASE_MAX_IDLE_CONNS=50 DATABASE_MAX_OPEN_CONNS=3000 DATABASE_CONN_MAX_LIFETIME_IN_MS=100000 REGENERATE=false -GENESIS_DATE=2023-11-03 +GENESIS_DATE=2023-12-06 INTERVAL=12s \ No newline at end of file diff --git a/packages/guardian-prover-health-check/GuardianProver.json b/packages/guardian-prover-health-check/GuardianProver.json index 8348d1ff4da..8950bb58789 100644 --- a/packages/guardian-prover-health-check/GuardianProver.json +++ b/packages/guardian-prover-health-check/GuardianProver.json @@ -9,6 +9,11 @@ "name": "INVALID_GUARDIAN_SET", "type": "error" }, + { + "inputs": [], + "name": "INVALID_MIN_GUARDIANS", + "type": "error" + }, { "inputs": [], "name": "INVALID_PAUSE_STATUS", @@ -60,14 +65,33 @@ "name": "RESOLVER_ZERO_ADDR", "type": "error" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ { "indexed": true, - "internalType": "uint64", - "name": "blockId", - "type": "uint64" + "internalType": "uint256", + "name": "operationId", + "type": "uint256" }, { "indexed": false, @@ -89,13 +113,13 @@ "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address[5]", - "name": "", - "type": "address[5]" + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" } ], - "name": "GuardiansUpdated", + "name": "BeaconUpgraded", "type": "event" }, { @@ -103,31 +127,31 @@ "inputs": [ { "indexed": false, - "internalType": "uint8", + "internalType": "uint32", "name": "version", - "type": "uint8" + "type": "uint32" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "guardians", + "type": "address[]" } ], - "name": "Initialized", + "name": "GuardiansUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" } ], - "name": "OwnershipTransferStarted", + "name": "Initialized", "type": "event" }, { @@ -176,21 +200,21 @@ "type": "event" }, { - "inputs": [], - "name": "NUM_GUARDIANS", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "Upgraded", + "type": "event" }, { "inputs": [], - "name": "REQUIRED_GUARDIANS", + "name": "MIN_NUM_GUARDIANS", "outputs": [ { "internalType": "uint256", @@ -201,13 +225,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], "name": "addressManager", @@ -221,25 +238,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "approvals", - "outputs": [ - { - "internalType": "uint256", - "name": "approvalBits", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -294,6 +292,16 @@ "name": "l1Height", "type": "uint64" }, + { + "internalType": "uint24", + "name": "txListByteOffset", + "type": "uint24" + }, + { + "internalType": "uint24", + "name": "txListByteSize", + "type": "uint24" + }, { "internalType": "uint16", "name": "minTier", @@ -303,6 +311,11 @@ "internalType": "bool", "name": "blobUsed", "type": "bool" + }, + { + "internalType": "bytes32", + "name": "parentMetaHash", + "type": "bytes32" } ], "internalType": "struct TaikoData.BlockMetadata", @@ -355,7 +368,13 @@ } ], "name": "approve", - "outputs": [], + "outputs": [ + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, @@ -410,6 +429,51 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + } + ], + "name": "isApproved", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minGuardians", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "numGuardians", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -445,12 +509,12 @@ }, { "inputs": [], - "name": "pendingOwner", + "name": "proxiableUUID", "outputs": [ { - "internalType": "address", + "internalType": "bytes32", "name": "", - "type": "address" + "type": "bytes32" } ], "stateMutability": "view", @@ -519,9 +583,14 @@ { "inputs": [ { - "internalType": "address[5]", + "internalType": "address[]", "name": "_guardians", - "type": "address[5]" + "type": "address[]" + }, + { + "internalType": "uint8", + "name": "_minGuardians", + "type": "uint8" } ], "name": "setGuardians", @@ -548,5 +617,49 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" } ] diff --git a/packages/guardian-prover-health-check/bindings/guardianprover/GuardianProver.go b/packages/guardian-prover-health-check/bindings/guardianprover/GuardianProver.go index 31628eab563..8d61b05754f 100644 --- a/packages/guardian-prover-health-check/bindings/guardianprover/GuardianProver.go +++ b/packages/guardian-prover-health-check/bindings/guardianprover/GuardianProver.go @@ -31,18 +31,21 @@ var ( // TaikoDataBlockMetadata is an auto generated low-level Go binding around an user-defined struct. type TaikoDataBlockMetadata struct { - L1Hash [32]byte - Difficulty [32]byte - BlobHash [32]byte - ExtraData [32]byte - DepositsHash [32]byte - Coinbase common.Address - Id uint64 - GasLimit uint32 - Timestamp uint64 - L1Height uint64 - MinTier uint16 - BlobUsed bool + L1Hash [32]byte + Difficulty [32]byte + BlobHash [32]byte + ExtraData [32]byte + DepositsHash [32]byte + Coinbase common.Address + Id uint64 + GasLimit uint32 + Timestamp uint64 + L1Height uint64 + TxListByteOffset *big.Int + TxListByteSize *big.Int + MinTier uint16 + BlobUsed bool + ParentMetaHash [32]byte } // TaikoDataTierProof is an auto generated low-level Go binding around an user-defined struct. @@ -61,7 +64,7 @@ type TaikoDataTransition struct { // GuardianProverMetaData contains all meta data concerning the GuardianProver contract. var GuardianProverMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"INVALID_GUARDIAN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_GUARDIAN_SET\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_PAUSE_STATUS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PROVING_FAILED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REENTRANT_CALL\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_MANAGER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_UNEXPECTED_CHAINID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"approvalBits\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"proofSubmitted\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[5]\",\"name\":\"\",\"type\":\"address[5]\"}],\"name\":\"GuardiansUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NUM_GUARDIANS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REQUIRED_GUARDIANS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"approvals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"approvalBits\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"difficulty\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blobHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"extraData\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"depositsHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"minTier\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"blobUsed\",\"type\":\"bool\"}],\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"graffiti\",\"type\":\"bytes32\"}],\"internalType\":\"structTaikoData.Transition\",\"name\":\"tran\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"tier\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"structTaikoData.TierProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guardian\",\"type\":\"address\"}],\"name\":\"guardianIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"guardians\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[5]\",\"name\":\"_guardians\",\"type\":\"address[5]\"}],\"name\":\"setGuardians\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"INVALID_GUARDIAN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_GUARDIAN_SET\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_MIN_GUARDIANS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_PAUSE_STATUS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PROVING_FAILED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REENTRANT_CALL\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_MANAGER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_UNEXPECTED_CHAINID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"operationId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"approvalBits\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"proofSubmitted\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"guardians\",\"type\":\"address[]\"}],\"name\":\"GuardiansUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_NUM_GUARDIANS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"difficulty\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blobHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"extraData\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"depositsHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"uint24\",\"name\":\"txListByteOffset\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteSize\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"minTier\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"blobUsed\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"parentMetaHash\",\"type\":\"bytes32\"}],\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"graffiti\",\"type\":\"bytes32\"}],\"internalType\":\"structTaikoData.Transition\",\"name\":\"tran\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"tier\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"structTaikoData.TierProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guardian\",\"type\":\"address\"}],\"name\":\"guardianIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"guardians\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"isApproved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minGuardians\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numGuardians\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_guardians\",\"type\":\"address[]\"},{\"internalType\":\"uint8\",\"name\":\"_minGuardians\",\"type\":\"uint8\"}],\"name\":\"setGuardians\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", } // GuardianProverABI is the input ABI used to generate the binding from. @@ -210,12 +213,12 @@ func (_GuardianProver *GuardianProverTransactorRaw) Transact(opts *bind.Transact return _GuardianProver.Contract.contract.Transact(opts, method, params...) } -// NUMGUARDIANS is a free data retrieval call binding the contract method 0x55ff4c83. +// MINNUMGUARDIANS is a free data retrieval call binding the contract method 0x353ce811. // -// Solidity: function NUM_GUARDIANS() view returns(uint256) -func (_GuardianProver *GuardianProverCaller) NUMGUARDIANS(opts *bind.CallOpts) (*big.Int, error) { +// Solidity: function MIN_NUM_GUARDIANS() view returns(uint256) +func (_GuardianProver *GuardianProverCaller) MINNUMGUARDIANS(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _GuardianProver.contract.Call(opts, &out, "NUM_GUARDIANS") + err := _GuardianProver.contract.Call(opts, &out, "MIN_NUM_GUARDIANS") if err != nil { return *new(*big.Int), err @@ -227,49 +230,18 @@ func (_GuardianProver *GuardianProverCaller) NUMGUARDIANS(opts *bind.CallOpts) ( } -// NUMGUARDIANS is a free data retrieval call binding the contract method 0x55ff4c83. +// MINNUMGUARDIANS is a free data retrieval call binding the contract method 0x353ce811. // -// Solidity: function NUM_GUARDIANS() view returns(uint256) -func (_GuardianProver *GuardianProverSession) NUMGUARDIANS() (*big.Int, error) { - return _GuardianProver.Contract.NUMGUARDIANS(&_GuardianProver.CallOpts) +// Solidity: function MIN_NUM_GUARDIANS() view returns(uint256) +func (_GuardianProver *GuardianProverSession) MINNUMGUARDIANS() (*big.Int, error) { + return _GuardianProver.Contract.MINNUMGUARDIANS(&_GuardianProver.CallOpts) } -// NUMGUARDIANS is a free data retrieval call binding the contract method 0x55ff4c83. +// MINNUMGUARDIANS is a free data retrieval call binding the contract method 0x353ce811. // -// Solidity: function NUM_GUARDIANS() view returns(uint256) -func (_GuardianProver *GuardianProverCallerSession) NUMGUARDIANS() (*big.Int, error) { - return _GuardianProver.Contract.NUMGUARDIANS(&_GuardianProver.CallOpts) -} - -// REQUIREDGUARDIANS is a free data retrieval call binding the contract method 0x05520401. -// -// Solidity: function REQUIRED_GUARDIANS() view returns(uint256) -func (_GuardianProver *GuardianProverCaller) REQUIREDGUARDIANS(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _GuardianProver.contract.Call(opts, &out, "REQUIRED_GUARDIANS") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// REQUIREDGUARDIANS is a free data retrieval call binding the contract method 0x05520401. -// -// Solidity: function REQUIRED_GUARDIANS() view returns(uint256) -func (_GuardianProver *GuardianProverSession) REQUIREDGUARDIANS() (*big.Int, error) { - return _GuardianProver.Contract.REQUIREDGUARDIANS(&_GuardianProver.CallOpts) -} - -// REQUIREDGUARDIANS is a free data retrieval call binding the contract method 0x05520401. -// -// Solidity: function REQUIRED_GUARDIANS() view returns(uint256) -func (_GuardianProver *GuardianProverCallerSession) REQUIREDGUARDIANS() (*big.Int, error) { - return _GuardianProver.Contract.REQUIREDGUARDIANS(&_GuardianProver.CallOpts) +// Solidity: function MIN_NUM_GUARDIANS() view returns(uint256) +func (_GuardianProver *GuardianProverCallerSession) MINNUMGUARDIANS() (*big.Int, error) { + return _GuardianProver.Contract.MINNUMGUARDIANS(&_GuardianProver.CallOpts) } // AddressManager is a free data retrieval call binding the contract method 0x3ab76e9f. @@ -303,37 +275,6 @@ func (_GuardianProver *GuardianProverCallerSession) AddressManager() (common.Add return _GuardianProver.Contract.AddressManager(&_GuardianProver.CallOpts) } -// Approvals is a free data retrieval call binding the contract method 0xbf7c2131. -// -// Solidity: function approvals(bytes32 ) view returns(uint256 approvalBits) -func (_GuardianProver *GuardianProverCaller) Approvals(opts *bind.CallOpts, arg0 [32]byte) (*big.Int, error) { - var out []interface{} - err := _GuardianProver.contract.Call(opts, &out, "approvals", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// Approvals is a free data retrieval call binding the contract method 0xbf7c2131. -// -// Solidity: function approvals(bytes32 ) view returns(uint256 approvalBits) -func (_GuardianProver *GuardianProverSession) Approvals(arg0 [32]byte) (*big.Int, error) { - return _GuardianProver.Contract.Approvals(&_GuardianProver.CallOpts, arg0) -} - -// Approvals is a free data retrieval call binding the contract method 0xbf7c2131. -// -// Solidity: function approvals(bytes32 ) view returns(uint256 approvalBits) -func (_GuardianProver *GuardianProverCallerSession) Approvals(arg0 [32]byte) (*big.Int, error) { - return _GuardianProver.Contract.Approvals(&_GuardianProver.CallOpts, arg0) -} - // GuardianIds is a free data retrieval call binding the contract method 0xb6158373. // // Solidity: function guardianIds(address guardian) view returns(uint256 id) @@ -396,6 +337,99 @@ func (_GuardianProver *GuardianProverCallerSession) Guardians(arg0 *big.Int) (co return _GuardianProver.Contract.Guardians(&_GuardianProver.CallOpts, arg0) } +// IsApproved is a free data retrieval call binding the contract method 0x48aefc32. +// +// Solidity: function isApproved(bytes32 hash) view returns(bool) +func (_GuardianProver *GuardianProverCaller) IsApproved(opts *bind.CallOpts, hash [32]byte) (bool, error) { + var out []interface{} + err := _GuardianProver.contract.Call(opts, &out, "isApproved", hash) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsApproved is a free data retrieval call binding the contract method 0x48aefc32. +// +// Solidity: function isApproved(bytes32 hash) view returns(bool) +func (_GuardianProver *GuardianProverSession) IsApproved(hash [32]byte) (bool, error) { + return _GuardianProver.Contract.IsApproved(&_GuardianProver.CallOpts, hash) +} + +// IsApproved is a free data retrieval call binding the contract method 0x48aefc32. +// +// Solidity: function isApproved(bytes32 hash) view returns(bool) +func (_GuardianProver *GuardianProverCallerSession) IsApproved(hash [32]byte) (bool, error) { + return _GuardianProver.Contract.IsApproved(&_GuardianProver.CallOpts, hash) +} + +// MinGuardians is a free data retrieval call binding the contract method 0x2d6f5ca7. +// +// Solidity: function minGuardians() view returns(uint32) +func (_GuardianProver *GuardianProverCaller) MinGuardians(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _GuardianProver.contract.Call(opts, &out, "minGuardians") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// MinGuardians is a free data retrieval call binding the contract method 0x2d6f5ca7. +// +// Solidity: function minGuardians() view returns(uint32) +func (_GuardianProver *GuardianProverSession) MinGuardians() (uint32, error) { + return _GuardianProver.Contract.MinGuardians(&_GuardianProver.CallOpts) +} + +// MinGuardians is a free data retrieval call binding the contract method 0x2d6f5ca7. +// +// Solidity: function minGuardians() view returns(uint32) +func (_GuardianProver *GuardianProverCallerSession) MinGuardians() (uint32, error) { + return _GuardianProver.Contract.MinGuardians(&_GuardianProver.CallOpts) +} + +// NumGuardians is a free data retrieval call binding the contract method 0xd13cbca3. +// +// Solidity: function numGuardians() view returns(uint256) +func (_GuardianProver *GuardianProverCaller) NumGuardians(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _GuardianProver.contract.Call(opts, &out, "numGuardians") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// NumGuardians is a free data retrieval call binding the contract method 0xd13cbca3. +// +// Solidity: function numGuardians() view returns(uint256) +func (_GuardianProver *GuardianProverSession) NumGuardians() (*big.Int, error) { + return _GuardianProver.Contract.NumGuardians(&_GuardianProver.CallOpts) +} + +// NumGuardians is a free data retrieval call binding the contract method 0xd13cbca3. +// +// Solidity: function numGuardians() view returns(uint256) +func (_GuardianProver *GuardianProverCallerSession) NumGuardians() (*big.Int, error) { + return _GuardianProver.Contract.NumGuardians(&_GuardianProver.CallOpts) +} + // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // // Solidity: function owner() view returns(address) @@ -458,35 +492,35 @@ func (_GuardianProver *GuardianProverCallerSession) Paused() (bool, error) { return _GuardianProver.Contract.Paused(&_GuardianProver.CallOpts) } -// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. // -// Solidity: function pendingOwner() view returns(address) -func (_GuardianProver *GuardianProverCaller) PendingOwner(opts *bind.CallOpts) (common.Address, error) { +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GuardianProver *GuardianProverCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _GuardianProver.contract.Call(opts, &out, "pendingOwner") + err := _GuardianProver.contract.Call(opts, &out, "proxiableUUID") if err != nil { - return *new(common.Address), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) return out0, err } -// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. // -// Solidity: function pendingOwner() view returns(address) -func (_GuardianProver *GuardianProverSession) PendingOwner() (common.Address, error) { - return _GuardianProver.Contract.PendingOwner(&_GuardianProver.CallOpts) +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GuardianProver *GuardianProverSession) ProxiableUUID() ([32]byte, error) { + return _GuardianProver.Contract.ProxiableUUID(&_GuardianProver.CallOpts) } -// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. // -// Solidity: function pendingOwner() view returns(address) -func (_GuardianProver *GuardianProverCallerSession) PendingOwner() (common.Address, error) { - return _GuardianProver.Contract.PendingOwner(&_GuardianProver.CallOpts) +// Solidity: function proxiableUUID() view returns(bytes32) +func (_GuardianProver *GuardianProverCallerSession) ProxiableUUID() ([32]byte, error) { + return _GuardianProver.Contract.ProxiableUUID(&_GuardianProver.CallOpts) } // Resolve is a free data retrieval call binding the contract method 0x3eb6b8cf. @@ -551,44 +585,54 @@ func (_GuardianProver *GuardianProverCallerSession) Resolve0(name [32]byte, allo return _GuardianProver.Contract.Resolve0(&_GuardianProver.CallOpts, name, allowZeroAddress) } -// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// Version is a free data retrieval call binding the contract method 0x54fd4d50. // -// Solidity: function acceptOwnership() returns() -func (_GuardianProver *GuardianProverTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _GuardianProver.contract.Transact(opts, "acceptOwnership") +// Solidity: function version() view returns(uint32) +func (_GuardianProver *GuardianProverCaller) Version(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _GuardianProver.contract.Call(opts, &out, "version") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + } -// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// Version is a free data retrieval call binding the contract method 0x54fd4d50. // -// Solidity: function acceptOwnership() returns() -func (_GuardianProver *GuardianProverSession) AcceptOwnership() (*types.Transaction, error) { - return _GuardianProver.Contract.AcceptOwnership(&_GuardianProver.TransactOpts) +// Solidity: function version() view returns(uint32) +func (_GuardianProver *GuardianProverSession) Version() (uint32, error) { + return _GuardianProver.Contract.Version(&_GuardianProver.CallOpts) } -// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// Version is a free data retrieval call binding the contract method 0x54fd4d50. // -// Solidity: function acceptOwnership() returns() -func (_GuardianProver *GuardianProverTransactorSession) AcceptOwnership() (*types.Transaction, error) { - return _GuardianProver.Contract.AcceptOwnership(&_GuardianProver.TransactOpts) +// Solidity: function version() view returns(uint32) +func (_GuardianProver *GuardianProverCallerSession) Version() (uint32, error) { + return _GuardianProver.Contract.Version(&_GuardianProver.CallOpts) } -// Approve is a paid mutator transaction binding the contract method 0x0bba05b8. +// Approve is a paid mutator transaction binding the contract method 0x492d2474. // -// Solidity: function approve((bytes32,bytes32,bytes32,bytes32,bytes32,address,uint64,uint32,uint64,uint64,uint16,bool) meta, (bytes32,bytes32,bytes32,bytes32) tran, (uint16,bytes) proof) returns() +// Solidity: function approve((bytes32,bytes32,bytes32,bytes32,bytes32,address,uint64,uint32,uint64,uint64,uint24,uint24,uint16,bool,bytes32) meta, (bytes32,bytes32,bytes32,bytes32) tran, (uint16,bytes) proof) returns(bool approved) func (_GuardianProver *GuardianProverTransactor) Approve(opts *bind.TransactOpts, meta TaikoDataBlockMetadata, tran TaikoDataTransition, proof TaikoDataTierProof) (*types.Transaction, error) { return _GuardianProver.contract.Transact(opts, "approve", meta, tran, proof) } -// Approve is a paid mutator transaction binding the contract method 0x0bba05b8. +// Approve is a paid mutator transaction binding the contract method 0x492d2474. // -// Solidity: function approve((bytes32,bytes32,bytes32,bytes32,bytes32,address,uint64,uint32,uint64,uint64,uint16,bool) meta, (bytes32,bytes32,bytes32,bytes32) tran, (uint16,bytes) proof) returns() +// Solidity: function approve((bytes32,bytes32,bytes32,bytes32,bytes32,address,uint64,uint32,uint64,uint64,uint24,uint24,uint16,bool,bytes32) meta, (bytes32,bytes32,bytes32,bytes32) tran, (uint16,bytes) proof) returns(bool approved) func (_GuardianProver *GuardianProverSession) Approve(meta TaikoDataBlockMetadata, tran TaikoDataTransition, proof TaikoDataTierProof) (*types.Transaction, error) { return _GuardianProver.Contract.Approve(&_GuardianProver.TransactOpts, meta, tran, proof) } -// Approve is a paid mutator transaction binding the contract method 0x0bba05b8. +// Approve is a paid mutator transaction binding the contract method 0x492d2474. // -// Solidity: function approve((bytes32,bytes32,bytes32,bytes32,bytes32,address,uint64,uint32,uint64,uint64,uint16,bool) meta, (bytes32,bytes32,bytes32,bytes32) tran, (uint16,bytes) proof) returns() +// Solidity: function approve((bytes32,bytes32,bytes32,bytes32,bytes32,address,uint64,uint32,uint64,uint64,uint24,uint24,uint16,bool,bytes32) meta, (bytes32,bytes32,bytes32,bytes32) tran, (uint16,bytes) proof) returns(bool approved) func (_GuardianProver *GuardianProverTransactorSession) Approve(meta TaikoDataBlockMetadata, tran TaikoDataTransition, proof TaikoDataTierProof) (*types.Transaction, error) { return _GuardianProver.Contract.Approve(&_GuardianProver.TransactOpts, meta, tran, proof) } @@ -656,25 +700,25 @@ func (_GuardianProver *GuardianProverTransactorSession) RenounceOwnership() (*ty return _GuardianProver.Contract.RenounceOwnership(&_GuardianProver.TransactOpts) } -// SetGuardians is a paid mutator transaction binding the contract method 0x5cb1eb25. +// SetGuardians is a paid mutator transaction binding the contract method 0xe94e9e99. // -// Solidity: function setGuardians(address[5] _guardians) returns() -func (_GuardianProver *GuardianProverTransactor) SetGuardians(opts *bind.TransactOpts, _guardians [5]common.Address) (*types.Transaction, error) { - return _GuardianProver.contract.Transact(opts, "setGuardians", _guardians) +// Solidity: function setGuardians(address[] _guardians, uint8 _minGuardians) returns() +func (_GuardianProver *GuardianProverTransactor) SetGuardians(opts *bind.TransactOpts, _guardians []common.Address, _minGuardians uint8) (*types.Transaction, error) { + return _GuardianProver.contract.Transact(opts, "setGuardians", _guardians, _minGuardians) } -// SetGuardians is a paid mutator transaction binding the contract method 0x5cb1eb25. +// SetGuardians is a paid mutator transaction binding the contract method 0xe94e9e99. // -// Solidity: function setGuardians(address[5] _guardians) returns() -func (_GuardianProver *GuardianProverSession) SetGuardians(_guardians [5]common.Address) (*types.Transaction, error) { - return _GuardianProver.Contract.SetGuardians(&_GuardianProver.TransactOpts, _guardians) +// Solidity: function setGuardians(address[] _guardians, uint8 _minGuardians) returns() +func (_GuardianProver *GuardianProverSession) SetGuardians(_guardians []common.Address, _minGuardians uint8) (*types.Transaction, error) { + return _GuardianProver.Contract.SetGuardians(&_GuardianProver.TransactOpts, _guardians, _minGuardians) } -// SetGuardians is a paid mutator transaction binding the contract method 0x5cb1eb25. +// SetGuardians is a paid mutator transaction binding the contract method 0xe94e9e99. // -// Solidity: function setGuardians(address[5] _guardians) returns() -func (_GuardianProver *GuardianProverTransactorSession) SetGuardians(_guardians [5]common.Address) (*types.Transaction, error) { - return _GuardianProver.Contract.SetGuardians(&_GuardianProver.TransactOpts, _guardians) +// Solidity: function setGuardians(address[] _guardians, uint8 _minGuardians) returns() +func (_GuardianProver *GuardianProverTransactorSession) SetGuardians(_guardians []common.Address, _minGuardians uint8) (*types.Transaction, error) { + return _GuardianProver.Contract.SetGuardians(&_GuardianProver.TransactOpts, _guardians, _minGuardians) } // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. @@ -719,6 +763,183 @@ func (_GuardianProver *GuardianProverTransactorSession) Unpause() (*types.Transa return _GuardianProver.Contract.Unpause(&_GuardianProver.TransactOpts) } +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address newImplementation) returns() +func (_GuardianProver *GuardianProverTransactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) { + return _GuardianProver.contract.Transact(opts, "upgradeTo", newImplementation) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address newImplementation) returns() +func (_GuardianProver *GuardianProverSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { + return _GuardianProver.Contract.UpgradeTo(&_GuardianProver.TransactOpts, newImplementation) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address newImplementation) returns() +func (_GuardianProver *GuardianProverTransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { + return _GuardianProver.Contract.UpgradeTo(&_GuardianProver.TransactOpts, newImplementation) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GuardianProver *GuardianProverTransactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GuardianProver.contract.Transact(opts, "upgradeToAndCall", newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GuardianProver *GuardianProverSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GuardianProver.Contract.UpgradeToAndCall(&_GuardianProver.TransactOpts, newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_GuardianProver *GuardianProverTransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _GuardianProver.Contract.UpgradeToAndCall(&_GuardianProver.TransactOpts, newImplementation, data) +} + +// GuardianProverAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the GuardianProver contract. +type GuardianProverAdminChangedIterator struct { + Event *GuardianProverAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GuardianProverAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GuardianProverAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GuardianProverAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GuardianProverAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GuardianProverAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GuardianProverAdminChanged represents a AdminChanged event raised by the GuardianProver contract. +type GuardianProverAdminChanged struct { + PreviousAdmin common.Address + NewAdmin common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_GuardianProver *GuardianProverFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*GuardianProverAdminChangedIterator, error) { + + logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return &GuardianProverAdminChangedIterator{contract: _GuardianProver.contract, event: "AdminChanged", logs: logs, sub: sub}, nil +} + +// WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_GuardianProver *GuardianProverFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *GuardianProverAdminChanged) (event.Subscription, error) { + + logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GuardianProverAdminChanged) + if err := _GuardianProver.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_GuardianProver *GuardianProverFilterer) ParseAdminChanged(log types.Log) (*GuardianProverAdminChanged, error) { + event := new(GuardianProverAdminChanged) + if err := _GuardianProver.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + // GuardianProverApprovedIterator is returned from FilterApproved and is used to iterate over the raw logs and unpacked data for Approved events raised by the GuardianProver contract. type GuardianProverApprovedIterator struct { Event *GuardianProverApproved // Event containing the contract specifics and raw log @@ -788,40 +1009,40 @@ func (it *GuardianProverApprovedIterator) Close() error { // GuardianProverApproved represents a Approved event raised by the GuardianProver contract. type GuardianProverApproved struct { - BlockId uint64 + OperationId *big.Int ApprovalBits *big.Int ProofSubmitted bool Raw types.Log // Blockchain specific contextual infos } -// FilterApproved is a free log retrieval operation binding the contract event 0x491ef33230925e6876158c5f7551d4f58c2c7d04e41546850b1009678c20816a. +// FilterApproved is a free log retrieval operation binding the contract event 0x344afde5e92a836ece804d851bb090d420129616171e9911ade0a3f4d785e311. // -// Solidity: event Approved(uint64 indexed blockId, uint256 approvalBits, bool proofSubmitted) -func (_GuardianProver *GuardianProverFilterer) FilterApproved(opts *bind.FilterOpts, blockId []uint64) (*GuardianProverApprovedIterator, error) { +// Solidity: event Approved(uint256 indexed operationId, uint256 approvalBits, bool proofSubmitted) +func (_GuardianProver *GuardianProverFilterer) FilterApproved(opts *bind.FilterOpts, operationId []*big.Int) (*GuardianProverApprovedIterator, error) { - var blockIdRule []interface{} - for _, blockIdItem := range blockId { - blockIdRule = append(blockIdRule, blockIdItem) + var operationIdRule []interface{} + for _, operationIdItem := range operationId { + operationIdRule = append(operationIdRule, operationIdItem) } - logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "Approved", blockIdRule) + logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "Approved", operationIdRule) if err != nil { return nil, err } return &GuardianProverApprovedIterator{contract: _GuardianProver.contract, event: "Approved", logs: logs, sub: sub}, nil } -// WatchApproved is a free log subscription operation binding the contract event 0x491ef33230925e6876158c5f7551d4f58c2c7d04e41546850b1009678c20816a. +// WatchApproved is a free log subscription operation binding the contract event 0x344afde5e92a836ece804d851bb090d420129616171e9911ade0a3f4d785e311. // -// Solidity: event Approved(uint64 indexed blockId, uint256 approvalBits, bool proofSubmitted) -func (_GuardianProver *GuardianProverFilterer) WatchApproved(opts *bind.WatchOpts, sink chan<- *GuardianProverApproved, blockId []uint64) (event.Subscription, error) { +// Solidity: event Approved(uint256 indexed operationId, uint256 approvalBits, bool proofSubmitted) +func (_GuardianProver *GuardianProverFilterer) WatchApproved(opts *bind.WatchOpts, sink chan<- *GuardianProverApproved, operationId []*big.Int) (event.Subscription, error) { - var blockIdRule []interface{} - for _, blockIdItem := range blockId { - blockIdRule = append(blockIdRule, blockIdItem) + var operationIdRule []interface{} + for _, operationIdItem := range operationId { + operationIdRule = append(operationIdRule, operationIdItem) } - logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "Approved", blockIdRule) + logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "Approved", operationIdRule) if err != nil { return nil, err } @@ -853,9 +1074,9 @@ func (_GuardianProver *GuardianProverFilterer) WatchApproved(opts *bind.WatchOpt }), nil } -// ParseApproved is a log parse operation binding the contract event 0x491ef33230925e6876158c5f7551d4f58c2c7d04e41546850b1009678c20816a. +// ParseApproved is a log parse operation binding the contract event 0x344afde5e92a836ece804d851bb090d420129616171e9911ade0a3f4d785e311. // -// Solidity: event Approved(uint64 indexed blockId, uint256 approvalBits, bool proofSubmitted) +// Solidity: event Approved(uint256 indexed operationId, uint256 approvalBits, bool proofSubmitted) func (_GuardianProver *GuardianProverFilterer) ParseApproved(log types.Log) (*GuardianProverApproved, error) { event := new(GuardianProverApproved) if err := _GuardianProver.contract.UnpackLog(event, "Approved", log); err != nil { @@ -865,9 +1086,9 @@ func (_GuardianProver *GuardianProverFilterer) ParseApproved(log types.Log) (*Gu return event, nil } -// GuardianProverGuardiansUpdatedIterator is returned from FilterGuardiansUpdated and is used to iterate over the raw logs and unpacked data for GuardiansUpdated events raised by the GuardianProver contract. -type GuardianProverGuardiansUpdatedIterator struct { - Event *GuardianProverGuardiansUpdated // Event containing the contract specifics and raw log +// GuardianProverBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the GuardianProver contract. +type GuardianProverBeaconUpgradedIterator struct { + Event *GuardianProverBeaconUpgraded // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -881,7 +1102,7 @@ type GuardianProverGuardiansUpdatedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *GuardianProverGuardiansUpdatedIterator) Next() bool { +func (it *GuardianProverBeaconUpgradedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -890,7 +1111,7 @@ func (it *GuardianProverGuardiansUpdatedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GuardianProverGuardiansUpdated) + it.Event = new(GuardianProverBeaconUpgraded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -905,7 +1126,7 @@ func (it *GuardianProverGuardiansUpdatedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GuardianProverGuardiansUpdated) + it.Event = new(GuardianProverBeaconUpgraded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -921,41 +1142,51 @@ func (it *GuardianProverGuardiansUpdatedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GuardianProverGuardiansUpdatedIterator) Error() error { +func (it *GuardianProverBeaconUpgradedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GuardianProverGuardiansUpdatedIterator) Close() error { +func (it *GuardianProverBeaconUpgradedIterator) Close() error { it.sub.Unsubscribe() return nil } -// GuardianProverGuardiansUpdated represents a GuardiansUpdated event raised by the GuardianProver contract. -type GuardianProverGuardiansUpdated struct { - Arg0 [5]common.Address - Raw types.Log // Blockchain specific contextual infos +// GuardianProverBeaconUpgraded represents a BeaconUpgraded event raised by the GuardianProver contract. +type GuardianProverBeaconUpgraded struct { + Beacon common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterGuardiansUpdated is a free log retrieval operation binding the contract event 0x9ce971150384a46b1b1f7cfdf16a84a1c346add127bf86ce2787fb41872b6fc9. +// FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. // -// Solidity: event GuardiansUpdated(address[5] arg0) -func (_GuardianProver *GuardianProverFilterer) FilterGuardiansUpdated(opts *bind.FilterOpts) (*GuardianProverGuardiansUpdatedIterator, error) { +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_GuardianProver *GuardianProverFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*GuardianProverBeaconUpgradedIterator, error) { - logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "GuardiansUpdated") + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) if err != nil { return nil, err } - return &GuardianProverGuardiansUpdatedIterator{contract: _GuardianProver.contract, event: "GuardiansUpdated", logs: logs, sub: sub}, nil + return &GuardianProverBeaconUpgradedIterator{contract: _GuardianProver.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil } -// WatchGuardiansUpdated is a free log subscription operation binding the contract event 0x9ce971150384a46b1b1f7cfdf16a84a1c346add127bf86ce2787fb41872b6fc9. +// WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. // -// Solidity: event GuardiansUpdated(address[5] arg0) -func (_GuardianProver *GuardianProverFilterer) WatchGuardiansUpdated(opts *bind.WatchOpts, sink chan<- *GuardianProverGuardiansUpdated) (event.Subscription, error) { +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_GuardianProver *GuardianProverFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *GuardianProverBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { - logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "GuardiansUpdated") + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule) if err != nil { return nil, err } @@ -965,8 +1196,8 @@ func (_GuardianProver *GuardianProverFilterer) WatchGuardiansUpdated(opts *bind. select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(GuardianProverGuardiansUpdated) - if err := _GuardianProver.contract.UnpackLog(event, "GuardiansUpdated", log); err != nil { + event := new(GuardianProverBeaconUpgraded) + if err := _GuardianProver.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { return err } event.Raw = log @@ -987,21 +1218,21 @@ func (_GuardianProver *GuardianProverFilterer) WatchGuardiansUpdated(opts *bind. }), nil } -// ParseGuardiansUpdated is a log parse operation binding the contract event 0x9ce971150384a46b1b1f7cfdf16a84a1c346add127bf86ce2787fb41872b6fc9. +// ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. // -// Solidity: event GuardiansUpdated(address[5] arg0) -func (_GuardianProver *GuardianProverFilterer) ParseGuardiansUpdated(log types.Log) (*GuardianProverGuardiansUpdated, error) { - event := new(GuardianProverGuardiansUpdated) - if err := _GuardianProver.contract.UnpackLog(event, "GuardiansUpdated", log); err != nil { +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_GuardianProver *GuardianProverFilterer) ParseBeaconUpgraded(log types.Log) (*GuardianProverBeaconUpgraded, error) { + event := new(GuardianProverBeaconUpgraded) + if err := _GuardianProver.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { return nil, err } event.Raw = log return event, nil } -// GuardianProverInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the GuardianProver contract. -type GuardianProverInitializedIterator struct { - Event *GuardianProverInitialized // Event containing the contract specifics and raw log +// GuardianProverGuardiansUpdatedIterator is returned from FilterGuardiansUpdated and is used to iterate over the raw logs and unpacked data for GuardiansUpdated events raised by the GuardianProver contract. +type GuardianProverGuardiansUpdatedIterator struct { + Event *GuardianProverGuardiansUpdated // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1015,7 +1246,7 @@ type GuardianProverInitializedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *GuardianProverInitializedIterator) Next() bool { +func (it *GuardianProverGuardiansUpdatedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1024,7 +1255,7 @@ func (it *GuardianProverInitializedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GuardianProverInitialized) + it.Event = new(GuardianProverGuardiansUpdated) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1039,7 +1270,7 @@ func (it *GuardianProverInitializedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GuardianProverInitialized) + it.Event = new(GuardianProverGuardiansUpdated) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1055,41 +1286,42 @@ func (it *GuardianProverInitializedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GuardianProverInitializedIterator) Error() error { +func (it *GuardianProverGuardiansUpdatedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GuardianProverInitializedIterator) Close() error { +func (it *GuardianProverGuardiansUpdatedIterator) Close() error { it.sub.Unsubscribe() return nil } -// GuardianProverInitialized represents a Initialized event raised by the GuardianProver contract. -type GuardianProverInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos +// GuardianProverGuardiansUpdated represents a GuardiansUpdated event raised by the GuardianProver contract. +type GuardianProverGuardiansUpdated struct { + Version uint32 + Guardians []common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// FilterGuardiansUpdated is a free log retrieval operation binding the contract event 0x5132e5b598a417dfc5c7488e5360aef3e865fe4b238cd5ea2a8282e0ca8d10ef. // -// Solidity: event Initialized(uint8 version) -func (_GuardianProver *GuardianProverFilterer) FilterInitialized(opts *bind.FilterOpts) (*GuardianProverInitializedIterator, error) { +// Solidity: event GuardiansUpdated(uint32 version, address[] guardians) +func (_GuardianProver *GuardianProverFilterer) FilterGuardiansUpdated(opts *bind.FilterOpts) (*GuardianProverGuardiansUpdatedIterator, error) { - logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "Initialized") + logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "GuardiansUpdated") if err != nil { return nil, err } - return &GuardianProverInitializedIterator{contract: _GuardianProver.contract, event: "Initialized", logs: logs, sub: sub}, nil + return &GuardianProverGuardiansUpdatedIterator{contract: _GuardianProver.contract, event: "GuardiansUpdated", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// WatchGuardiansUpdated is a free log subscription operation binding the contract event 0x5132e5b598a417dfc5c7488e5360aef3e865fe4b238cd5ea2a8282e0ca8d10ef. // -// Solidity: event Initialized(uint8 version) -func (_GuardianProver *GuardianProverFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *GuardianProverInitialized) (event.Subscription, error) { +// Solidity: event GuardiansUpdated(uint32 version, address[] guardians) +func (_GuardianProver *GuardianProverFilterer) WatchGuardiansUpdated(opts *bind.WatchOpts, sink chan<- *GuardianProverGuardiansUpdated) (event.Subscription, error) { - logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "Initialized") + logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "GuardiansUpdated") if err != nil { return nil, err } @@ -1099,8 +1331,8 @@ func (_GuardianProver *GuardianProverFilterer) WatchInitialized(opts *bind.Watch select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(GuardianProverInitialized) - if err := _GuardianProver.contract.UnpackLog(event, "Initialized", log); err != nil { + event := new(GuardianProverGuardiansUpdated) + if err := _GuardianProver.contract.UnpackLog(event, "GuardiansUpdated", log); err != nil { return err } event.Raw = log @@ -1121,21 +1353,21 @@ func (_GuardianProver *GuardianProverFilterer) WatchInitialized(opts *bind.Watch }), nil } -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// ParseGuardiansUpdated is a log parse operation binding the contract event 0x5132e5b598a417dfc5c7488e5360aef3e865fe4b238cd5ea2a8282e0ca8d10ef. // -// Solidity: event Initialized(uint8 version) -func (_GuardianProver *GuardianProverFilterer) ParseInitialized(log types.Log) (*GuardianProverInitialized, error) { - event := new(GuardianProverInitialized) - if err := _GuardianProver.contract.UnpackLog(event, "Initialized", log); err != nil { +// Solidity: event GuardiansUpdated(uint32 version, address[] guardians) +func (_GuardianProver *GuardianProverFilterer) ParseGuardiansUpdated(log types.Log) (*GuardianProverGuardiansUpdated, error) { + event := new(GuardianProverGuardiansUpdated) + if err := _GuardianProver.contract.UnpackLog(event, "GuardiansUpdated", log); err != nil { return nil, err } event.Raw = log return event, nil } -// GuardianProverOwnershipTransferStartedIterator is returned from FilterOwnershipTransferStarted and is used to iterate over the raw logs and unpacked data for OwnershipTransferStarted events raised by the GuardianProver contract. -type GuardianProverOwnershipTransferStartedIterator struct { - Event *GuardianProverOwnershipTransferStarted // Event containing the contract specifics and raw log +// GuardianProverInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the GuardianProver contract. +type GuardianProverInitializedIterator struct { + Event *GuardianProverInitialized // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1149,7 +1381,7 @@ type GuardianProverOwnershipTransferStartedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *GuardianProverOwnershipTransferStartedIterator) Next() bool { +func (it *GuardianProverInitializedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1158,7 +1390,7 @@ func (it *GuardianProverOwnershipTransferStartedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GuardianProverOwnershipTransferStarted) + it.Event = new(GuardianProverInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1173,7 +1405,7 @@ func (it *GuardianProverOwnershipTransferStartedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GuardianProverOwnershipTransferStarted) + it.Event = new(GuardianProverInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1189,60 +1421,41 @@ func (it *GuardianProverOwnershipTransferStartedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GuardianProverOwnershipTransferStartedIterator) Error() error { +func (it *GuardianProverInitializedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GuardianProverOwnershipTransferStartedIterator) Close() error { +func (it *GuardianProverInitializedIterator) Close() error { it.sub.Unsubscribe() return nil } -// GuardianProverOwnershipTransferStarted represents a OwnershipTransferStarted event raised by the GuardianProver contract. -type GuardianProverOwnershipTransferStarted struct { - PreviousOwner common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos +// GuardianProverInitialized represents a Initialized event raised by the GuardianProver contract. +type GuardianProverInitialized struct { + Version uint8 + Raw types.Log // Blockchain specific contextual infos } -// FilterOwnershipTransferStarted is a free log retrieval operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. // -// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) -func (_GuardianProver *GuardianProverFilterer) FilterOwnershipTransferStarted(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*GuardianProverOwnershipTransferStartedIterator, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } +// Solidity: event Initialized(uint8 version) +func (_GuardianProver *GuardianProverFilterer) FilterInitialized(opts *bind.FilterOpts) (*GuardianProverInitializedIterator, error) { - logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule) + logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "Initialized") if err != nil { return nil, err } - return &GuardianProverOwnershipTransferStartedIterator{contract: _GuardianProver.contract, event: "OwnershipTransferStarted", logs: logs, sub: sub}, nil + return &GuardianProverInitializedIterator{contract: _GuardianProver.contract, event: "Initialized", logs: logs, sub: sub}, nil } -// WatchOwnershipTransferStarted is a free log subscription operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. // -// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) -func (_GuardianProver *GuardianProverFilterer) WatchOwnershipTransferStarted(opts *bind.WatchOpts, sink chan<- *GuardianProverOwnershipTransferStarted, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } +// Solidity: event Initialized(uint8 version) +func (_GuardianProver *GuardianProverFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *GuardianProverInitialized) (event.Subscription, error) { - logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule) + logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "Initialized") if err != nil { return nil, err } @@ -1252,8 +1465,8 @@ func (_GuardianProver *GuardianProverFilterer) WatchOwnershipTransferStarted(opt select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(GuardianProverOwnershipTransferStarted) - if err := _GuardianProver.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil { + event := new(GuardianProverInitialized) + if err := _GuardianProver.contract.UnpackLog(event, "Initialized", log); err != nil { return err } event.Raw = log @@ -1274,12 +1487,12 @@ func (_GuardianProver *GuardianProverFilterer) WatchOwnershipTransferStarted(opt }), nil } -// ParseOwnershipTransferStarted is a log parse operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. // -// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) -func (_GuardianProver *GuardianProverFilterer) ParseOwnershipTransferStarted(log types.Log) (*GuardianProverOwnershipTransferStarted, error) { - event := new(GuardianProverOwnershipTransferStarted) - if err := _GuardianProver.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil { +// Solidity: event Initialized(uint8 version) +func (_GuardianProver *GuardianProverFilterer) ParseInitialized(log types.Log) (*GuardianProverInitialized, error) { + event := new(GuardianProverInitialized) + if err := _GuardianProver.contract.UnpackLog(event, "Initialized", log); err != nil { return nil, err } event.Raw = log @@ -1706,3 +1919,147 @@ func (_GuardianProver *GuardianProverFilterer) ParseUnpaused(log types.Log) (*Gu event.Raw = log return event, nil } + +// GuardianProverUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the GuardianProver contract. +type GuardianProverUpgradedIterator struct { + Event *GuardianProverUpgraded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GuardianProverUpgradedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GuardianProverUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GuardianProverUpgraded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GuardianProverUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GuardianProverUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GuardianProverUpgraded represents a Upgraded event raised by the GuardianProver contract. +type GuardianProverUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GuardianProver *GuardianProverFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*GuardianProverUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GuardianProver.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &GuardianProverUpgradedIterator{contract: _GuardianProver.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GuardianProver *GuardianProverFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *GuardianProverUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _GuardianProver.contract.WatchLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GuardianProverUpgraded) + if err := _GuardianProver.contract.UnpackLog(event, "Upgraded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_GuardianProver *GuardianProverFilterer) ParseUpgraded(log types.Log) (*GuardianProverUpgraded, error) { + event := new(GuardianProverUpgraded) + if err := _GuardianProver.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/packages/guardian-prover-health-check/generator/generator.go b/packages/guardian-prover-health-check/generator/generator.go index 24599218cb9..52cf5437590 100644 --- a/packages/guardian-prover-health-check/generator/generator.go +++ b/packages/guardian-prover-health-check/generator/generator.go @@ -2,6 +2,7 @@ package generator import ( "context" + "os" "time" "github.com/urfave/cli/v2" @@ -63,6 +64,8 @@ func (g *Generator) Start() error { return err } + os.Exit(0) + return nil } diff --git a/packages/guardian-prover-health-check/guardianprover.go b/packages/guardian-prover-health-check/guardianprover.go new file mode 100644 index 00000000000..d206ee42acb --- /dev/null +++ b/packages/guardian-prover-health-check/guardianprover.go @@ -0,0 +1,14 @@ +package guardianproverhealthcheck + +import ( + "math/big" + "net/url" + + "github.com/ethereum/go-ethereum/common" +) + +type GuardianProver struct { + Address common.Address + ID *big.Int + Endpoint *url.URL +} diff --git a/packages/guardian-prover-health-check/healthcheck.go b/packages/guardian-prover-health-check/healthcheck.go index 5e8353bd2cb..49f7ad94551 100644 --- a/packages/guardian-prover-health-check/healthcheck.go +++ b/packages/guardian-prover-health-check/healthcheck.go @@ -3,17 +3,19 @@ package guardianproverhealthcheck import ( "context" "net/http" + "time" "github.com/morkid/paginate" ) type HealthCheck struct { - ID int `json:"id"` - GuardianProverID uint64 `json:"guardianProverId"` - Alive bool `json:"alive"` - ExpectedAddress string `json:"expectedAddress"` - RecoveredAddress string `json:"recoveredAddress"` - SignedResponse string `json:"signedResponse"` + ID int `json:"id"` + GuardianProverID uint64 `json:"guardianProverId"` + Alive bool `json:"alive"` + ExpectedAddress string `json:"expectedAddress"` + RecoveredAddress string `json:"recoveredAddress"` + SignedResponse string `json:"signedResponse"` + CreatedAt time.Time `json:"createdAt"` } type SaveHealthCheckOpts struct { @@ -34,5 +36,10 @@ type HealthCheckRepository interface { req *http.Request, id int, ) (paginate.Page, error) + GetMostRecentByGuardianProverID( + ctx context.Context, + req *http.Request, + id int, + ) (*HealthCheck, error) Save(opts SaveHealthCheckOpts) error } diff --git a/packages/guardian-prover-health-check/healthchecker/healthchecker.go b/packages/guardian-prover-health-check/healthchecker/healthchecker.go index 68d42ec39a8..9d4c10a9314 100644 --- a/packages/guardian-prover-health-check/healthchecker/healthchecker.go +++ b/packages/guardian-prover-health-check/healthchecker/healthchecker.go @@ -29,12 +29,6 @@ var ( msg = crypto.Keccak256Hash([]byte("HEART_BEAT")).Bytes() ) -type guardianProver struct { - address common.Address - id *big.Int - endpoint *url.URL -} - type HealthChecker struct { ctx context.Context cancelCtx context.CancelFunc @@ -42,7 +36,7 @@ type HealthChecker struct { interval time.Duration guardianProverContract *guardianprover.GuardianProver numGuardians uint64 - guardianProvers []guardianProver + guardianProvers []guardianproverhealthcheck.GuardianProver httpSrv *hchttp.Server httpPort uint64 } @@ -84,6 +78,11 @@ func InitFromConfig(ctx context.Context, h *HealthChecker, cfg *Config) (err err return err } + statRepo, err := repo.NewStatRepository(db) + if err != nil { + return err + } + ethClient, err := ethclient.Dial(cfg.RPCUrl) if err != nil { return err @@ -97,12 +96,12 @@ func InitFromConfig(ctx context.Context, h *HealthChecker, cfg *Config) (err err return err } - numGuardians, err := guardianProverContract.NUMGUARDIANS(nil) + numGuardians, err := guardianProverContract.NumGuardians(nil) if err != nil { return err } - var guardianProvers []guardianProver + var guardianProvers []guardianproverhealthcheck.GuardianProver for i := 0; i < int(numGuardians.Uint64()); i++ { guardianAddress, err := guardianProverContract.Guardians(&bind.CallOpts{}, new(big.Int).SetInt64(int64(i))) @@ -120,16 +119,18 @@ func InitFromConfig(ctx context.Context, h *HealthChecker, cfg *Config) (err err return err } - guardianProvers = append(guardianProvers, guardianProver{ - address: guardianAddress, - id: guardianId, - endpoint: endpoint, + guardianProvers = append(guardianProvers, guardianproverhealthcheck.GuardianProver{ + Address: guardianAddress, + ID: guardianId, + Endpoint: endpoint, }) } h.httpSrv, err = hchttp.NewServer(hchttp.NewServerOpts{ Echo: echo.New(), HealthCheckRepo: healthCheckRepo, + StatRepo: statRepo, + GuardianProvers: guardianProvers, }) if err != nil { @@ -173,9 +174,9 @@ func (h *HealthChecker) checkGuardianProversOnInterval() { if err != nil { slog.Error( "error checking guardian prover endpoint", - "endpoint", g.endpoint, - "id", g.id, - "address", g.address.Hex(), + "endpoint", g.Endpoint, + "id", g.ID, + "address", g.Address.Hex(), "recoveredAddr", recoveredAddr, "error", err, ) @@ -189,9 +190,9 @@ func (h *HealthChecker) checkGuardianProversOnInterval() { err = h.healthCheckRepo.Save( guardianproverhealthcheck.SaveHealthCheckOpts{ - GuardianProverID: g.id.Uint64(), + GuardianProverID: g.ID.Uint64(), Alive: sig != "", - ExpectedAddress: g.address.Hex(), + ExpectedAddress: g.Address.Hex(), RecoveredAddress: recoveredAddr, SignedResponse: sig, }, @@ -199,18 +200,18 @@ func (h *HealthChecker) checkGuardianProversOnInterval() { if err != nil { slog.Error("error saving failed health check to database", - "endpoint", g.endpoint, - "id", g.id, - "address", g.address.Hex(), + "endpoint", g.Endpoint, + "id", g.ID, + "address", g.Address.Hex(), "recoveredAddr", recoveredAddr, "sig", sig, "error", err, ) } else { slog.Info("saved health check to database", - "endpoint", g.endpoint, - "id", g.id, - "address", g.address.Hex(), + "endpoint", g.Endpoint, + "id", g.ID, + "address", g.Address.Hex(), "recoveredAddr", recoveredAddr, "sig", sig, ) @@ -220,12 +221,14 @@ func (h *HealthChecker) checkGuardianProversOnInterval() { } } -func (h *HealthChecker) checkGuardianProver(g guardianProver) (*healthCheckResponse, string, error) { - slog.Info("checking guardian prover", "id", g.id, "endpoint", g.endpoint) +func (h *HealthChecker) checkGuardianProver( + g guardianproverhealthcheck.GuardianProver, +) (*healthCheckResponse, string, error) { + slog.Info("checking guardian prover", "id", g.ID, "endpoint", g.Endpoint) healthCheckResponse := &healthCheckResponse{} - resp, err := http.Get(g.endpoint.String() + "/status") + resp, err := http.Get(g.Endpoint.String() + "/status") if err != nil { // save fail to db return healthCheckResponse, "", err @@ -240,8 +243,8 @@ func (h *HealthChecker) checkGuardianProver(g guardianProver) (*healthCheckRespo return healthCheckResponse, "", err } - if g.address.Cmp(common.HexToAddress(healthCheckResponse.ProverAddress)) != 0 { - slog.Error("address mismatch", "expected", g.address.Hex(), "received", healthCheckResponse.ProverAddress) + if g.Address.Cmp(common.HexToAddress(healthCheckResponse.ProverAddress)) != 0 { + slog.Error("address mismatch", "expected", g.Address.Hex(), "received", healthCheckResponse.ProverAddress) return healthCheckResponse, "", errors.New("prover address provided was not the address expected") } diff --git a/packages/guardian-prover-health-check/http/get_blocks.go b/packages/guardian-prover-health-check/http/get_blocks.go new file mode 100644 index 00000000000..d11978a8fa8 --- /dev/null +++ b/packages/guardian-prover-health-check/http/get_blocks.go @@ -0,0 +1,90 @@ +package http + +import ( + "encoding/json" + "io" + "net/http" + + "github.com/ethereum/go-ethereum/common" + echo "github.com/labstack/echo/v4" +) + +type signedBlock struct { + BlockID uint64 `json:"blockID"` + BlockHash string `json:"blockHash"` + Signature string `json:"signature"` + Prover common.Address `json:"proverAddress"` +} + +type guardianProverInfo struct { + GuardianProverID uint64 `json:"guardianProverID"` + signedBlocks []signedBlock +} + +type block struct { + BlockHash string `json:"blockHash"` + Signature string `json:"signature"` + GuardianProverID uint64 `json:"guardianProverID"` +} + +// map of blockID to guardianProverInfo +type blockInfo map[uint64][]block + +// GetBlocks +// +// returns signed block data by each guardian prover. +// +// @Summary Get signed blocks +// @ID get-blocks +// @Accept json +// @Produce json +// @Success 200 {object} []guardianproverhealthcheck.GuardianProver +// @Router /blocks [get] + +func (srv *Server) GetBlocks(c echo.Context) error { + signedBlocks := []guardianProverInfo{} + // call each guardian prover and get their most recently signed blocks. + for _, g := range srv.guardianProvers { + r := []signedBlock{} + + resp, err := http.Get(g.Endpoint.String() + "/signedBlocks") + if err != nil { + return c.JSON(http.StatusBadRequest, err) + } + + b, err := io.ReadAll(resp.Body) + if err != nil { + return c.JSON(http.StatusBadRequest, err) + } + + if err := json.Unmarshal(b, &r); err != nil { + return c.JSON(http.StatusBadRequest, err) + } + + signedBlocks = append(signedBlocks, guardianProverInfo{ + GuardianProverID: g.ID.Uint64(), + signedBlocks: r, + }) + } + + blocks := make(blockInfo) + // then iterate over each one and create a more easily parsable api response + // for the frontend to consume. + for _, v := range signedBlocks { + for _, sb := range v.signedBlocks { + b := block{ + GuardianProverID: v.GuardianProverID, + BlockHash: sb.BlockHash, + Signature: sb.Signature, + } + + if _, ok := blocks[sb.BlockID]; !ok { + blocks[sb.BlockID] = make([]block, 0) + } + + blocks[sb.BlockID] = append(blocks[sb.BlockID], b) + } + } + + return c.JSON(http.StatusOK, blocks) +} diff --git a/packages/guardian-prover-health-check/http/get_most_recent_health_checks_by_guardian_prover_id.go b/packages/guardian-prover-health-check/http/get_most_recent_health_checks_by_guardian_prover_id.go new file mode 100644 index 00000000000..e1105a47f85 --- /dev/null +++ b/packages/guardian-prover-health-check/http/get_most_recent_health_checks_by_guardian_prover_id.go @@ -0,0 +1,41 @@ +package http + +import ( + "errors" + "net/http" + "strconv" + + echo "github.com/labstack/echo/v4" +) + +// GetMostRecentHealthCheckByGuardianProverID +// +// returns the health checks. +// +// @Summary GetMostRecentHealthCheckByGuardianProverID +// @ID get-most-recent-health-checks-by-guardian-prover-id +// @Accept json +// @Produce json +// @Success 200 {object} paginate.Page +// @Router /liveness [get] + +func (srv *Server) GetMostRecentHealthCheckByGuardianProverID( + c echo.Context, +) error { + idParam := c.Param("id") + if idParam == "" { + return c.JSON(http.StatusBadRequest, errors.New("no id provided")) + } + + id, err := strconv.Atoi(idParam) + if err != nil { + return c.JSON(http.StatusBadRequest, err) + } + + healthCheck, err := srv.healthCheckRepo.GetMostRecentByGuardianProverID(c.Request().Context(), c.Request(), id) + if err != nil { + return c.JSON(http.StatusBadRequest, err) + } + + return c.JSON(http.StatusOK, healthCheck) +} diff --git a/packages/guardian-prover-health-check/http/get_stats.go b/packages/guardian-prover-health-check/http/get_stats.go new file mode 100644 index 00000000000..c020d8ad0ef --- /dev/null +++ b/packages/guardian-prover-health-check/http/get_stats.go @@ -0,0 +1,27 @@ +package http + +import ( + "net/http" + + echo "github.com/labstack/echo/v4" +) + +// GetStats +// +// returns the stats +// +// @Summary Getstats +// @ID get-stats +// @Accept json +// @Produce json +// @Success 200 {object} paginate.Page +// @Router /stats [get] + +func (srv *Server) GetStats(c echo.Context) error { + page, err := srv.statRepo.Get(c.Request().Context(), c.Request()) + if err != nil { + return c.JSON(http.StatusBadRequest, err) + } + + return c.JSON(http.StatusOK, page) +} diff --git a/packages/guardian-prover-health-check/http/get_stats_by_guardian_prover_id.go b/packages/guardian-prover-health-check/http/get_stats_by_guardian_prover_id.go new file mode 100644 index 00000000000..495211a906c --- /dev/null +++ b/packages/guardian-prover-health-check/http/get_stats_by_guardian_prover_id.go @@ -0,0 +1,39 @@ +package http + +import ( + "errors" + "net/http" + "strconv" + + echo "github.com/labstack/echo/v4" +) + +// GetStats +// +// returns the stats +// +// @Summary Get stats by guardian prover id +// @ID get-stats-by-guardian-prover-id +// @Accept json +// @Produce json +// @Success 200 {object} paginate.Page +// @Router /stats/:id [get] + +func (srv *Server) GetStatsByGuardianProverID(c echo.Context) error { + idParam := c.Param("id") + if idParam == "" { + return c.JSON(http.StatusBadRequest, errors.New("no id provided")) + } + + id, err := strconv.Atoi(idParam) + if err != nil { + return c.JSON(http.StatusBadRequest, err) + } + + page, err := srv.statRepo.GetByGuardianProverID(c.Request().Context(), c.Request(), id) + if err != nil { + return c.JSON(http.StatusBadRequest, err) + } + + return c.JSON(http.StatusOK, page) +} diff --git a/packages/guardian-prover-health-check/http/get_stats_test.go b/packages/guardian-prover-health-check/http/get_stats_test.go new file mode 100644 index 00000000000..d2855b242ec --- /dev/null +++ b/packages/guardian-prover-health-check/http/get_stats_test.go @@ -0,0 +1,43 @@ +package http + +import ( + "net/http" + "net/http/httptest" + "testing" + + "github.com/cyberhorsey/webutils/testutils" + "github.com/labstack/echo/v4" +) + +func Test_GetStats(t *testing.T) { + srv := newTestServer("") + + tests := []struct { + name string + wantStatus int + wantBodyRegexpMatches []string + }{ + { + "success", + http.StatusOK, + // nolint: lll + []string{``}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + req := testutils.NewUnauthenticatedRequest( + echo.GET, + "/stats", + nil, + ) + + rec := httptest.NewRecorder() + + srv.ServeHTTP(rec, req) + + testutils.AssertStatusAndBody(t, rec, tt.wantStatus, tt.wantBodyRegexpMatches) + }) + } +} diff --git a/packages/guardian-prover-health-check/http/routes.go b/packages/guardian-prover-health-check/http/routes.go index b128d86fc5d..4148c8128c7 100644 --- a/packages/guardian-prover-health-check/http/routes.go +++ b/packages/guardian-prover-health-check/http/routes.go @@ -7,4 +7,12 @@ func (srv *Server) configureRoutes() { srv.echo.GET("/healthchecks", srv.GetHealthChecks) srv.echo.GET("/healthchecks/:id", srv.GetHealthChecksByGuardianProverID) + + srv.echo.GET("/liveness/:id", srv.GetMostRecentHealthCheckByGuardianProverID) + + srv.echo.GET("/stats", srv.GetStats) + + srv.echo.GET("/stats/:id", srv.GetStatsByGuardianProverID) + + srv.echo.GET("/signedBlocks", srv.GetBlocks) } diff --git a/packages/guardian-prover-health-check/http/server.go b/packages/guardian-prover-health-check/http/server.go index 01244e082d9..6da9945115e 100644 --- a/packages/guardian-prover-health-check/http/server.go +++ b/packages/guardian-prover-health-check/http/server.go @@ -26,18 +26,24 @@ import ( type Server struct { echo *echo.Echo healthCheckRepo guardianproverhealthcheck.HealthCheckRepository + statRepo guardianproverhealthcheck.StatRepository + guardianProvers []guardianproverhealthcheck.GuardianProver } type NewServerOpts struct { Echo *echo.Echo HealthCheckRepo guardianproverhealthcheck.HealthCheckRepository + StatRepo guardianproverhealthcheck.StatRepository CorsOrigins []string + GuardianProvers []guardianproverhealthcheck.GuardianProver } func NewServer(opts NewServerOpts) (*Server, error) { srv := &Server{ echo: opts.Echo, healthCheckRepo: opts.HealthCheckRepo, + statRepo: opts.StatRepo, + guardianProvers: opts.GuardianProvers, } corsOrigins := opts.CorsOrigins diff --git a/packages/guardian-prover-health-check/http/server_test.go b/packages/guardian-prover-health-check/http/server_test.go index 506607cbecf..564c131b2e5 100644 --- a/packages/guardian-prover-health-check/http/server_test.go +++ b/packages/guardian-prover-health-check/http/server_test.go @@ -9,6 +9,7 @@ import ( "github.com/joho/godotenv" echo "github.com/labstack/echo/v4" "github.com/stretchr/testify/assert" + guardianproverhealthcheck "github.com/taikoxyz/taiko-mono/packages/guardian-prover-health-check" "github.com/taikoxyz/taiko-mono/packages/guardian-prover-health-check/mock" ) @@ -18,6 +19,8 @@ func newTestServer(url string) *Server { srv := &Server{ echo: echo.New(), healthCheckRepo: mock.NewHealthCheckRepository(), + statRepo: mock.NewStatRepository(), + guardianProvers: make([]guardianproverhealthcheck.GuardianProver, 0), } srv.configureMiddleware([]string{"*"}) diff --git a/packages/guardian-prover-health-check/migrations/1666650599_create_health_checks_table.sql b/packages/guardian-prover-health-check/migrations/1666650599_create_health_checks_table.sql index f330cf20bd6..6a6e0be514a 100644 --- a/packages/guardian-prover-health-check/migrations/1666650599_create_health_checks_table.sql +++ b/packages/guardian-prover-health-check/migrations/1666650599_create_health_checks_table.sql @@ -15,4 +15,4 @@ CREATE TABLE IF NOT EXISTS health_checks ( -- +goose Down -- +goose StatementBegin DROP TABLE health_checks; --- +goose StatementEnd +-- +goose StatementEnd \ No newline at end of file diff --git a/packages/guardian-prover-health-check/migrations/1666651000_create_stats_table.sql b/packages/guardian-prover-health-check/migrations/1666651000_create_stats_table.sql index 0812d0799c9..5f0e76f8d8f 100644 --- a/packages/guardian-prover-health-check/migrations/1666651000_create_stats_table.sql +++ b/packages/guardian-prover-health-check/migrations/1666651000_create_stats_table.sql @@ -16,4 +16,4 @@ CREATE TABLE IF NOT EXISTS stats ( -- +goose Down -- +goose StatementBegin DROP TABLE stats; --- +goose StatementEnd +-- +goose StatementEnd \ No newline at end of file diff --git a/packages/guardian-prover-health-check/mock/health_check_repo.go b/packages/guardian-prover-health-check/mock/health_check_repo.go index 40051714329..4c47e0d3a55 100644 --- a/packages/guardian-prover-health-check/mock/health_check_repo.go +++ b/packages/guardian-prover-health-check/mock/health_check_repo.go @@ -27,6 +27,14 @@ func (h *HealthCheckRepo) GetByGuardianProverID( }, nil } +func (r *HealthCheckRepo) GetMostRecentByGuardianProverID( + ctx context.Context, + req *http.Request, + id int, +) (*guardianproverhealthcheck.HealthCheck, error) { + return &guardianproverhealthcheck.HealthCheck{}, nil +} + func (h *HealthCheckRepo) Get( ctx context.Context, req *http.Request, diff --git a/packages/guardian-prover-health-check/mock/stat_repo.go b/packages/guardian-prover-health-check/mock/stat_repo.go new file mode 100644 index 00000000000..83c95bcdbc4 --- /dev/null +++ b/packages/guardian-prover-health-check/mock/stat_repo.go @@ -0,0 +1,37 @@ +package mock + +import ( + "context" + "net/http" + + "github.com/morkid/paginate" + guardianproverhealthcheck "github.com/taikoxyz/taiko-mono/packages/guardian-prover-health-check" +) + +type StatRepo struct { + stats []*guardianproverhealthcheck.Stat +} + +func NewStatRepository() *StatRepo { + return &StatRepo{ + stats: make([]*guardianproverhealthcheck.Stat, 0), + } +} +func (s *StatRepo) GetByGuardianProverID( + ctx context.Context, + req *http.Request, + id int, +) (paginate.Page, error) { + return paginate.Page{ + Items: s.stats, + }, nil +} + +func (s *StatRepo) Get( + ctx context.Context, + req *http.Request, +) (paginate.Page, error) { + return paginate.Page{ + Items: s.stats, + }, nil +} diff --git a/packages/guardian-prover-health-check/repo/healthcheck.go b/packages/guardian-prover-health-check/repo/healthcheck.go index de90298557a..2ea8491dc4f 100644 --- a/packages/guardian-prover-health-check/repo/healthcheck.go +++ b/packages/guardian-prover-health-check/repo/healthcheck.go @@ -51,13 +51,30 @@ func (r *HealthCheckRepository) GetByGuardianProverID( DefaultSize: 100, }) - reqCtx := pg.With(r.startQuery().Where("guardian_prover_id = ?", id)) + reqCtx := pg.With(r.startQuery().Order("created_at desc"). + Where("guardian_prover_id = ?", id)) page := reqCtx.Request(req).Response(&[]guardianproverhealthcheck.HealthCheck{}) return page, nil } +func (r *HealthCheckRepository) GetMostRecentByGuardianProverID( + ctx context.Context, + req *http.Request, + id int, +) (*guardianproverhealthcheck.HealthCheck, error) { + hc := &guardianproverhealthcheck.HealthCheck{} + + if err := r.startQuery().Order("created_at desc"). + Where("guardian_prover_id = ?", id).Limit(1). + Scan(hc).Error; err != nil { + return nil, err + } + + return hc, nil +} + func (r *HealthCheckRepository) Save(opts guardianproverhealthcheck.SaveHealthCheckOpts) error { b := &guardianproverhealthcheck.HealthCheck{ Alive: opts.Alive, diff --git a/packages/guardian-prover-health-check/repo/healthcheck_test.go b/packages/guardian-prover-health-check/repo/healthcheck_test.go index 9e98dd968bf..3d057389cbf 100644 --- a/packages/guardian-prover-health-check/repo/healthcheck_test.go +++ b/packages/guardian-prover-health-check/repo/healthcheck_test.go @@ -72,7 +72,8 @@ func TestIntegration_HealthCheck_Save(t *testing.T) { page, err := healthCheckRepo.Get(context.Background(), req) assert.Equal(t, nil, err) - assert.Equal(t, page.Size, 1) + assert.Equal(t, page.Size, int64(100)) + assert.Equal(t, page.Total, int64(1)) }) } } diff --git a/packages/guardian-prover-health-check/repo/stat.go b/packages/guardian-prover-health-check/repo/stat.go new file mode 100644 index 00000000000..023d88017b6 --- /dev/null +++ b/packages/guardian-prover-health-check/repo/stat.go @@ -0,0 +1,60 @@ +package repo + +import ( + "context" + "net/http" + + "github.com/morkid/paginate" + guardianproverhealthcheck "github.com/taikoxyz/taiko-mono/packages/guardian-prover-health-check" + "gorm.io/gorm" +) + +type StatRepository struct { + db DB +} + +func NewStatRepository(db DB) (*StatRepository, error) { + if db == nil { + return nil, ErrNoDB + } + + return &StatRepository{ + db: db, + }, nil +} + +func (r *StatRepository) startQuery() *gorm.DB { + return r.db.GormDB().Table("stats") +} + +func (r *StatRepository) Get( + ctx context.Context, + req *http.Request, +) (paginate.Page, error) { + pg := paginate.New(&paginate.Config{ + DefaultSize: 100, + }) + + reqCtx := pg.With(r.startQuery()) + + page := reqCtx.Request(req).Response(&[]guardianproverhealthcheck.Stat{}) + + return page, nil +} + +func (r *StatRepository) GetByGuardianProverID( + ctx context.Context, + req *http.Request, + id int, +) (paginate.Page, error) { + pg := paginate.New(&paginate.Config{ + DefaultSize: 100, + }) + + reqCtx := pg.With(r.startQuery().Order("created_at desc"). + Where("guardian_prover_id = ?", id)) + + page := reqCtx.Request(req).Response(&[]guardianproverhealthcheck.Stat{}) + + return page, nil +} diff --git a/packages/guardian-prover-health-check/stat.go b/packages/guardian-prover-health-check/stat.go new file mode 100644 index 00000000000..e2fca975283 --- /dev/null +++ b/packages/guardian-prover-health-check/stat.go @@ -0,0 +1,30 @@ +package guardianproverhealthcheck + +import ( + "context" + "net/http" + "time" + + "github.com/morkid/paginate" +) + +type Stat struct { + GuardianProverID int `json:"guardianProverId"` + Date string `json:"date"` + Requests int `json:"requests"` + SuccessfulRequests int `json:"successfulRequests"` + Uptime float64 `json:"uptime"` + CreatedAt time.Time `json:"created_at"` +} + +type StatRepository interface { + Get( + ctx context.Context, + req *http.Request, + ) (paginate.Page, error) + GetByGuardianProverID( + ctx context.Context, + req *http.Request, + id int, + ) (paginate.Page, error) +} diff --git a/packages/protocol/contracts/4844/BlobHashReader.yulp b/packages/protocol/contracts/4844/BlobHashReader.yulp index 7490d5c1c8f..27fab8646ba 100644 --- a/packages/protocol/contracts/4844/BlobHashReader.yulp +++ b/packages/protocol/contracts/4844/BlobHashReader.yulp @@ -3,6 +3,14 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz // An implemenatation of IBlobHashReader object "BlobHashReader" { diff --git a/packages/protocol/contracts/4844/IBlobHashReader.sol b/packages/protocol/contracts/4844/IBlobHashReader.sol index eb88b6e1935..202c11bfe28 100644 --- a/packages/protocol/contracts/4844/IBlobHashReader.sol +++ b/packages/protocol/contracts/4844/IBlobHashReader.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title IBlobHashReader /// @dev Labeled in AddressResolver as "blob_hash_reader" diff --git a/packages/protocol/contracts/4844/Lib4844.sol b/packages/protocol/contracts/4844/Lib4844.sol index 64ae752c17f..a070f55858e 100644 --- a/packages/protocol/contracts/4844/Lib4844.sol +++ b/packages/protocol/contracts/4844/Lib4844.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title Lib4844 /// @notice A library for handling EIP-4844 blobs diff --git a/packages/protocol/contracts/L1/ITaikoL1.sol b/packages/protocol/contracts/L1/ITaikoL1.sol new file mode 100644 index 00000000000..46aac217bef --- /dev/null +++ b/packages/protocol/contracts/L1/ITaikoL1.sol @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: MIT +// _____ _ _ _ _ +// |_ _|_ _(_) |_____ | | __ _| |__ ___ +// | |/ _` | | / / _ \ | |__/ _` | '_ (_-< +// |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; + +import "./TaikoData.sol"; + +interface ITaikoL1 { + /// @notice Proposes a Taiko L2 block. + /// @param params Block parameters, currently an encoded BlockParams object. + /// @param txList txList data if calldata is used for DA. + /// @return meta The metadata of the proposed L2 block. + /// @return depositsProcessed The Ether deposits processed. + function proposeBlock( + bytes calldata params, + bytes calldata txList + ) + external + payable + returns ( + TaikoData.BlockMetadata memory meta, + TaikoData.EthDeposit[] memory depositsProcessed + ); + + /// @notice Proves or contests a block transition. + /// @param blockId The index of the block to prove. This is also used to + /// select the right implementation version. + /// @param input An abi-encoded (BlockMetadata, Transition, TierProof) + /// tuple. + function proveBlock(uint64 blockId, bytes calldata input) external; + + /// @notice Verifies up to a certain number of blocks. + /// @param maxBlocksToVerify Max number of blocks to verify. + function verifyBlocks(uint64 maxBlocksToVerify) external; +} diff --git a/packages/protocol/contracts/L1/TaikoData.sol b/packages/protocol/contracts/L1/TaikoData.sol index 5184e261a99..6877b7c11c0 100644 --- a/packages/protocol/contracts/L1/TaikoData.sol +++ b/packages/protocol/contracts/L1/TaikoData.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title TaikoData /// @notice This library defines various data structures used in the Taiko diff --git a/packages/protocol/contracts/L1/TaikoErrors.sol b/packages/protocol/contracts/L1/TaikoErrors.sol index 58c155dc4f2..52c6a25e53a 100644 --- a/packages/protocol/contracts/L1/TaikoErrors.sol +++ b/packages/protocol/contracts/L1/TaikoErrors.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title TaikoErrors /// @notice This abstract contract provides custom error declartions used in diff --git a/packages/protocol/contracts/L1/TaikoEvents.sol b/packages/protocol/contracts/L1/TaikoEvents.sol index bad23df0b40..4185e56a049 100644 --- a/packages/protocol/contracts/L1/TaikoEvents.sol +++ b/packages/protocol/contracts/L1/TaikoEvents.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "./TaikoData.sol"; diff --git a/packages/protocol/contracts/L1/TaikoL1.sol b/packages/protocol/contracts/L1/TaikoL1.sol index 9358ff93e95..948eb385547 100644 --- a/packages/protocol/contracts/L1/TaikoL1.sol +++ b/packages/protocol/contracts/L1/TaikoL1.sol @@ -3,14 +3,23 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../common/EssentialContract.sol"; import "./libs/LibDepositing.sol"; import "./libs/LibProposing.sol"; import "./libs/LibProving.sol"; import "./libs/LibVerifying.sol"; +import "./ITaikoL1.sol"; import "./TaikoErrors.sol"; import "./TaikoEvents.sol"; @@ -23,7 +32,14 @@ import "./TaikoEvents.sol"; /// layers"). The contract also handles the deposit and withdrawal of Taiko /// tokens and Ether. /// This contract doesn't hold any Ether. Ether deposited to L2 are held by the Bridge contract. -contract TaikoL1 is EssentialContract, ICrossChainSync, ITierProvider, TaikoEvents, TaikoErrors { +contract TaikoL1 is + EssentialContract, + ITaikoL1, + ICrossChainSync, + ITierProvider, + TaikoEvents, + TaikoErrors +{ TaikoData.State public state; uint256[100] private __gap; @@ -40,11 +56,7 @@ contract TaikoL1 is EssentialContract, ICrossChainSync, ITierProvider, TaikoEven LibVerifying.init(state, getConfig(), _genesisBlockHash); } - /// @notice Proposes a Taiko L2 block. - /// @param params Block parameters, currently an encoded BlockParams object. - /// @param txList txList data if calldata is used for DA. - /// @return meta The metadata of the proposed L2 block. - /// @return depositsProcessed The Ether deposits processed. + /// @inheritdoc ITaikoL1 function proposeBlock( bytes calldata params, bytes calldata txList @@ -70,11 +82,7 @@ contract TaikoL1 is EssentialContract, ICrossChainSync, ITierProvider, TaikoEven } } - /// @notice Proves or contests a block transition. - /// @param blockId The index of the block to prove. This is also used to - /// select the right implementation version. - /// @param input An abi-encoded (BlockMetadata, Transition, TierProof) - /// tuple. + /// @inheritdoc ITaikoL1 function proveBlock(uint64 blockId, bytes calldata input) external nonReentrant whenNotPaused { if (state.slotB.provingPaused) revert L1_PROVING_PAUSED(); @@ -96,8 +104,7 @@ contract TaikoL1 is EssentialContract, ICrossChainSync, ITierProvider, TaikoEven } } - /// @notice Verifies up to N blocks. - /// @param maxBlocksToVerify Max number of blocks to verify. + /// @inheritdoc ITaikoL1 function verifyBlocks(uint64 maxBlocksToVerify) external nonReentrant whenNotPaused { if (maxBlocksToVerify == 0) revert L1_INVALID_PARAM(); if (state.slotB.provingPaused) revert L1_PROVING_PAUSED(); @@ -200,7 +207,7 @@ contract TaikoL1 is EssentialContract, ICrossChainSync, ITierProvider, TaikoEven /// @return Config struct containing configuration parameters. function getConfig() public view virtual returns (TaikoData.Config memory) { // All hard-coded configurations: - // - treasury: 0xdf09A0afD09a63fb04ab3573922437e1e637dE8b + // - treasury: the actual TaikoL2 address. // - blockMaxTxs: 150 (limited by the PSE zkEVM circuits) // - anchorGasLimit: 250_000 (based on internal devnet, its ~220_000 // after 256 L2 blocks) diff --git a/packages/protocol/contracts/L1/TaikoToken.sol b/packages/protocol/contracts/L1/TaikoToken.sol index c2b4de3891e..5c06bc856b7 100644 --- a/packages/protocol/contracts/L1/TaikoToken.sol +++ b/packages/protocol/contracts/L1/TaikoToken.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol"; import @@ -20,7 +28,6 @@ import "../common/EssentialContract.sol"; /// precision. contract TaikoToken is EssentialContract, ERC20SnapshotUpgradeable, ERC20VotesUpgradeable { error TKO_INVALID_ADDR(); - error TKO_INVALID_PREMINT_PARAMS(); /// @notice Initializes the TaikoToken contract and mints initial tokens. /// @param _name The name of the token. diff --git a/packages/protocol/contracts/L1/gov/TaikoGovernor.sol b/packages/protocol/contracts/L1/gov/TaikoGovernor.sol index 88405915789..8688d42dfee 100644 --- a/packages/protocol/contracts/L1/gov/TaikoGovernor.sol +++ b/packages/protocol/contracts/L1/gov/TaikoGovernor.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/governance/GovernorUpgradeable.sol"; import diff --git a/packages/protocol/contracts/L1/gov/TaikoTimelockController.sol b/packages/protocol/contracts/L1/gov/TaikoTimelockController.sol index 84cd8bee348..e1457b55ea8 100644 --- a/packages/protocol/contracts/L1/gov/TaikoTimelockController.sol +++ b/packages/protocol/contracts/L1/gov/TaikoTimelockController.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/governance/TimelockControllerUpgradeable.sol"; diff --git a/packages/protocol/contracts/L1/hooks/AssignmentHook.sol b/packages/protocol/contracts/L1/hooks/AssignmentHook.sol index 693334e1e8a..4241a4c03df 100644 --- a/packages/protocol/contracts/L1/hooks/AssignmentHook.sol +++ b/packages/protocol/contracts/L1/hooks/AssignmentHook.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import "../../common/EssentialContract.sol"; diff --git a/packages/protocol/contracts/L1/hooks/IHook.sol b/packages/protocol/contracts/L1/hooks/IHook.sol index abe4539c6a2..d0c403e64c2 100644 --- a/packages/protocol/contracts/L1/hooks/IHook.sol +++ b/packages/protocol/contracts/L1/hooks/IHook.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoData.sol"; diff --git a/packages/protocol/contracts/L1/libs/LibDepositing.sol b/packages/protocol/contracts/L1/libs/LibDepositing.sol index 17192139267..5a933186970 100644 --- a/packages/protocol/contracts/L1/libs/LibDepositing.sol +++ b/packages/protocol/contracts/L1/libs/LibDepositing.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "../../common/AddressResolver.sol"; import "../../libs/LibAddress.sol"; diff --git a/packages/protocol/contracts/L1/libs/LibProposing.sol b/packages/protocol/contracts/L1/libs/LibProposing.sol index 8d87a9f688b..ada8cefa5a9 100644 --- a/packages/protocol/contracts/L1/libs/LibProposing.sol +++ b/packages/protocol/contracts/L1/libs/LibProposing.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import "../../4844/IBlobHashReader.sol"; diff --git a/packages/protocol/contracts/L1/libs/LibProving.sol b/packages/protocol/contracts/L1/libs/LibProving.sol index 3bec955ae9f..3303fa4d05e 100644 --- a/packages/protocol/contracts/L1/libs/LibProving.sol +++ b/packages/protocol/contracts/L1/libs/LibProving.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import "../../common/AddressResolver.sol"; @@ -48,7 +56,6 @@ library LibProving { error L1_INVALID_TIER(); error L1_INVALID_TRANSITION(); error L1_NOT_ASSIGNED_PROVER(); - error L1_PROVING_PAUSED(); error L1_UNEXPECTED_TRANSITION_TIER(); function pauseProving(TaikoData.State storage state, bool pause) external { diff --git a/packages/protocol/contracts/L1/libs/LibUtils.sol b/packages/protocol/contracts/L1/libs/LibUtils.sol index 5d7ad9c9343..9dc9d3ec5a6 100644 --- a/packages/protocol/contracts/L1/libs/LibUtils.sol +++ b/packages/protocol/contracts/L1/libs/LibUtils.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../../common/ICrossChainSync.sol"; import "../TaikoData.sol"; diff --git a/packages/protocol/contracts/L1/libs/LibVerifying.sol b/packages/protocol/contracts/L1/libs/LibVerifying.sol index 3c1c78afe52..255261dc2d5 100644 --- a/packages/protocol/contracts/L1/libs/LibVerifying.sol +++ b/packages/protocol/contracts/L1/libs/LibVerifying.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import "../../common/AddressResolver.sol"; diff --git a/packages/protocol/contracts/L1/provers/GuardianProver.sol b/packages/protocol/contracts/L1/provers/GuardianProver.sol index 4d49f127478..70db9454b04 100644 --- a/packages/protocol/contracts/L1/provers/GuardianProver.sol +++ b/packages/protocol/contracts/L1/provers/GuardianProver.sol @@ -3,10 +3,19 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../tiers/ITierProvider.sol"; +import "../ITaikoL1.sol"; import "./Guardians.sol"; /// @title GuardianProver @@ -36,10 +45,8 @@ contract GuardianProver is Guardians { if (approved) { deleteApproval(hash); - bytes memory data = abi.encodeWithSignature( - "proveBlock(uint64,bytes)", meta.id, abi.encode(meta, tran, proof) - ); - + bytes memory data = + abi.encodeCall(ITaikoL1.proveBlock, (meta.id, abi.encode(meta, tran, proof))); (bool success,) = resolve("taiko", false).call(data); if (!success) revert PROVING_FAILED(); } diff --git a/packages/protocol/contracts/L1/provers/Guardians.sol b/packages/protocol/contracts/L1/provers/Guardians.sol index 5976e665022..d9799f93cfe 100644 --- a/packages/protocol/contracts/L1/provers/Guardians.sol +++ b/packages/protocol/contracts/L1/provers/Guardians.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "../../common/EssentialContract.sol"; import "../TaikoData.sol"; diff --git a/packages/protocol/contracts/L1/tiers/ITierProvider.sol b/packages/protocol/contracts/L1/tiers/ITierProvider.sol index 3425380be67..baaf312dad3 100644 --- a/packages/protocol/contracts/L1/tiers/ITierProvider.sol +++ b/packages/protocol/contracts/L1/tiers/ITierProvider.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title ITierProvider /// @notice Defines interface to return tier configuration. diff --git a/packages/protocol/contracts/L1/tiers/TaikoA6TierProvider.sol b/packages/protocol/contracts/L1/tiers/TaikoA6TierProvider.sol index 66733440a90..e2dc81de045 100644 --- a/packages/protocol/contracts/L1/tiers/TaikoA6TierProvider.sol +++ b/packages/protocol/contracts/L1/tiers/TaikoA6TierProvider.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../../common/EssentialContract.sol"; import "./ITierProvider.sol"; diff --git a/packages/protocol/contracts/L1/verifiers/GuardianVerifier.sol b/packages/protocol/contracts/L1/verifiers/GuardianVerifier.sol index dc077e869d6..19278f452d7 100644 --- a/packages/protocol/contracts/L1/verifiers/GuardianVerifier.sol +++ b/packages/protocol/contracts/L1/verifiers/GuardianVerifier.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../../common/EssentialContract.sol"; import "../TaikoData.sol"; diff --git a/packages/protocol/contracts/L1/verifiers/IVerifier.sol b/packages/protocol/contracts/L1/verifiers/IVerifier.sol index 81cfa57b710..409f55914b1 100644 --- a/packages/protocol/contracts/L1/verifiers/IVerifier.sol +++ b/packages/protocol/contracts/L1/verifiers/IVerifier.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoData.sol"; diff --git a/packages/protocol/contracts/L1/verifiers/PlonkVerifier.yulp b/packages/protocol/contracts/L1/verifiers/PlonkVerifier.yulp index 570e425c7dc..4a916812db0 100644 --- a/packages/protocol/contracts/L1/verifiers/PlonkVerifier.yulp +++ b/packages/protocol/contracts/L1/verifiers/PlonkVerifier.yulp @@ -1,11 +1,19 @@ // Code generated - DO NOT EDIT. // Generated using https://github.com/privacy-scaling-explorations/snark-verifier + // SPDX-License-Identifier: MIT // _____ _ _ _ _ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz object "plonk_verifier" { code { function allocate(size) -> ptr { diff --git a/packages/protocol/contracts/L1/verifiers/PseZkVerifier.sol b/packages/protocol/contracts/L1/verifiers/PseZkVerifier.sol index 1cd78bfcde3..d7e6db3bbec 100644 --- a/packages/protocol/contracts/L1/verifiers/PseZkVerifier.sol +++ b/packages/protocol/contracts/L1/verifiers/PseZkVerifier.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../../4844/Lib4844.sol"; import "../../common/EssentialContract.sol"; @@ -131,7 +139,18 @@ contract PseZkVerifier is EssentialContract, IVerifier { pure returns (bytes32 instance) { - return keccak256(abi.encode(tran, prover, metaHash, txListHash, pointValue)); + return keccak256( + abi.encode( + tran.parentHash, + tran.blockHash, + tran.signalRoot, + tran.graffiti, + prover, + metaHash, + txListHash, + pointValue + ) + ); } function getVerifierName(uint16 id) public pure returns (bytes32) { diff --git a/packages/protocol/contracts/L1/verifiers/SgxAndZkVerifier.sol b/packages/protocol/contracts/L1/verifiers/SgxAndZkVerifier.sol index 5b50859b475..cc29915099e 100644 --- a/packages/protocol/contracts/L1/verifiers/SgxAndZkVerifier.sol +++ b/packages/protocol/contracts/L1/verifiers/SgxAndZkVerifier.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../../common/EssentialContract.sol"; import "../../thirdparty/LibBytesUtils.sol"; diff --git a/packages/protocol/contracts/L1/verifiers/SgxVerifier.sol b/packages/protocol/contracts/L1/verifiers/SgxVerifier.sol index 8553f212d11..8708a1aa930 100644 --- a/packages/protocol/contracts/L1/verifiers/SgxVerifier.sol +++ b/packages/protocol/contracts/L1/verifiers/SgxVerifier.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol"; import "../../common/EssentialContract.sol"; diff --git a/packages/protocol/contracts/L2/CrossChainOwned.sol b/packages/protocol/contracts/L2/CrossChainOwned.sol new file mode 100644 index 00000000000..d561fcc8cee --- /dev/null +++ b/packages/protocol/contracts/L2/CrossChainOwned.sol @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: MIT +// _____ _ _ _ _ +// |_ _|_ _(_) |_____ | | __ _| |__ ___ +// | |/ _` | | / / _ \ | |__/ _` | '_ (_-< +// |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; + +import "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; + +import "../common/EssentialContract.sol"; +import "../bridge/IBridge.sol"; + +/// @title CrossChainOwned +/// @notice This contract's owner can be a local address or one that lives on another chain and uses +/// signals for transaction approval. +/// @dev Notice that when send the message on the owner chain, the gas limit of the message must not +/// be zero, so on this chain, some EOA can help execute this transaction. +abstract contract CrossChainOwned is EssentialContract { + uint64 public ownerChainId; // slot 1 + uint64 public nextTxId; + uint256[49] private __gap; + + event TransactionExecuted(uint64 indexed txId, bytes4 indexed selector); + + error XCO_INVALID_TX_ID(); + error XCO_INVALID_OWNER_CHAINID(); + error XCO_PERMISSION_DENIED(); + error XCO_TX_REVERTED(); + + function executeCrossChainTransaction(uint64 txId, bytes calldata txdata) external { + if (txId != nextTxId) revert XCO_INVALID_TX_ID(); + + if (msg.sender != resolve("bridge", false)) revert XCO_PERMISSION_DENIED(); + + IBridge.Context memory ctx = IBridge(msg.sender).context(); + if (ctx.srcChainId != ownerChainId || ctx.from != owner()) { + revert XCO_PERMISSION_DENIED(); + } + + (bool success,) = address(this).call(txdata); + if (!success) revert XCO_TX_REVERTED(); + + emit TransactionExecuted(nextTxId++, bytes4(txdata)); + } + + /// @notice Initializes the contract. + /// @param _addressManager The address of the address manager. + /// @param _ownerChainId The owner's deployment chain ID. + // solhint-disable-next-line func-name-mixedcase + function __CrossChainOwned_init( + address _addressManager, + uint64 _ownerChainId + ) + internal + virtual + { + __Essential_init(_addressManager); + + if (_ownerChainId == 0 || _ownerChainId == block.chainid) { + revert XCO_INVALID_OWNER_CHAINID(); + } + ownerChainId = _ownerChainId; + } + + function _checkOwner() internal view virtual override { + if (msg.sender != owner() && msg.sender != address(this)) { + revert XCO_PERMISSION_DENIED(); + } + } +} diff --git a/packages/protocol/contracts/L2/Lib1559Math.sol b/packages/protocol/contracts/L2/Lib1559Math.sol index 71595c8173e..bc183f26830 100644 --- a/packages/protocol/contracts/L2/Lib1559Math.sol +++ b/packages/protocol/contracts/L2/Lib1559Math.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../thirdparty/LibFixedPointMath.sol"; diff --git a/packages/protocol/contracts/L2/TaikoL2.sol b/packages/protocol/contracts/L2/TaikoL2.sol index c38427f57c2..6e94d2b49fc 100644 --- a/packages/protocol/contracts/L2/TaikoL2.sol +++ b/packages/protocol/contracts/L2/TaikoL2.sol @@ -3,14 +3,25 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; + +import "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; -import "../common/EssentialContract.sol"; import "../common/ICrossChainSync.sol"; -import "../libs/LibMath.sol"; import "../signal/ISignalService.sol"; +import "../libs/LibAddress.sol"; +import "../libs/LibMath.sol"; import "./Lib1559Math.sol"; +import "./CrossChainOwned.sol"; import "./TaikoL2Signer.sol"; /// @title TaikoL2 @@ -19,7 +30,8 @@ import "./TaikoL2Signer.sol"; /// It is used to anchor the latest L1 block details to L2 for cross-layer /// communication, manage EIP-1559 parameters for gas pricing, and store /// verified L1 block information. -contract TaikoL2 is EssentialContract, TaikoL2Signer, ICrossChainSync { +contract TaikoL2 is CrossChainOwned, TaikoL2Signer, ICrossChainSync { + using LibAddress for address; using LibMath for uint256; struct Config { @@ -33,13 +45,11 @@ contract TaikoL2 is EssentialContract, TaikoL2Signer, ICrossChainSync { mapping(uint256 l1height => ICrossChainSync.Snippet) public snippets; // A hash to check the integrity of public inputs. - address public signalService; // slot 3 - bytes32 public publicInputHash; // slot 4 - - uint64 public gasExcess; // slot 5 + bytes32 public publicInputHash; // slot 3 + uint64 public gasExcess; // slot 4 uint64 public latestSyncedL1Height; - uint256[145] private __gap; + uint256[146] private __gap; event Anchored(bytes32 parentHash, uint64 gasExcess); @@ -51,13 +61,18 @@ contract TaikoL2 is EssentialContract, TaikoL2Signer, ICrossChainSync { error L2_TOO_LATE(); /// @notice Initializes the TaikoL2 contract. - /// @param _signalService Address of the {ISignalService} contract. + /// @param _addressManager Address of the AddressManager contract. + /// @param _l1ChainId The ID of the base layer. /// @param _gasExcess The initial gasExcess. - function init(address _signalService, uint64 _gasExcess) external initializer { - __Essential_init(); - - if (_signalService == address(0)) revert L2_INVALID_PARAM(); - signalService = _signalService; + function init( + address _addressManager, + uint64 _l1ChainId, + uint64 _gasExcess + ) + external + initializer + { + __CrossChainOwned_init(_addressManager, _l1ChainId); if (block.chainid <= 1 || block.chainid >= type(uint64).max) { revert L2_INVALID_CHAIN_ID(); @@ -121,7 +136,7 @@ contract TaikoL2 is EssentialContract, TaikoL2Signer, ICrossChainSync { // Store the L1's signal root as a signal to the local signal service to // allow for multi-hop bridging. - ISignalService(signalService).sendSignal(l1SignalRoot); + ISignalService(resolve("signal_service", false)).sendSignal(l1SignalRoot); emit CrossChainSynced(uint64(block.number), l1Height, l1BlockHash, l1SignalRoot); // Update state variables @@ -138,6 +153,17 @@ contract TaikoL2 is EssentialContract, TaikoL2Signer, ICrossChainSync { emit Anchored(blockhash(parentId), gasExcess); } + /// @notice Withdraw token or Ether from this address + function withdraw(address token, address to) external onlyOwner { + if (to == address(0)) revert L2_INVALID_PARAM(); + if (token == address(0)) { + to.sendEther(address(this).balance); + } else { + IERC20 t = IERC20(token); + t.transfer(to, t.balanceOf(address(this))); + } + } + /// @inheritdoc ICrossChainSync function getSyncedSnippet(uint64 blockId) public @@ -187,7 +213,9 @@ contract TaikoL2 is EssentialContract, TaikoL2Signer, ICrossChainSync { /// @notice Tells if we need to validate basefee (for simulation). /// @return Returns true to skip checking basefee mismatch. - function skipFeeCheck() public pure virtual returns (bool) { } + function skipFeeCheck() public pure virtual returns (bool) { + return false; + } function _calcPublicInputHash(uint256 blockId) private diff --git a/packages/protocol/contracts/L2/TaikoL2EIP1559Configurable.sol b/packages/protocol/contracts/L2/TaikoL2EIP1559Configurable.sol index 1d0b023af88..5f3dc7e7127 100644 --- a/packages/protocol/contracts/L2/TaikoL2EIP1559Configurable.sol +++ b/packages/protocol/contracts/L2/TaikoL2EIP1559Configurable.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "./TaikoL2.sol"; diff --git a/packages/protocol/contracts/L2/TaikoL2Signer.sol b/packages/protocol/contracts/L2/TaikoL2Signer.sol index 29b449a3a50..7a960a441a0 100644 --- a/packages/protocol/contracts/L2/TaikoL2Signer.sol +++ b/packages/protocol/contracts/L2/TaikoL2Signer.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "../thirdparty/LibUint512Math.sol"; diff --git a/packages/protocol/contracts/bridge/Bridge.sol b/packages/protocol/contracts/bridge/Bridge.sol index 01866378dbd..b3429bcfe3b 100644 --- a/packages/protocol/contracts/bridge/Bridge.sol +++ b/packages/protocol/contracts/bridge/Bridge.sol @@ -3,7 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "../common/EssentialContract.sol"; import "../libs/LibAddress.sol"; @@ -42,7 +51,6 @@ contract Bridge is EssentialContract, IBridge { error B_INVALID_CHAINID(); error B_INVALID_CONTEXT(); error B_INVALID_GAS_LIMIT(); - error B_INVALID_SIGNAL(); error B_INVALID_USER(); error B_INVALID_VALUE(); error B_NON_RETRIABLE(); diff --git a/packages/protocol/contracts/bridge/IBridge.sol b/packages/protocol/contracts/bridge/IBridge.sol index 3c96a0635a4..91a721a26d7 100644 --- a/packages/protocol/contracts/bridge/IBridge.sol +++ b/packages/protocol/contracts/bridge/IBridge.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title IBridge /// @notice The bridge used in conjunction with the {ISignalService}. diff --git a/packages/protocol/contracts/common/AddressManager.sol b/packages/protocol/contracts/common/AddressManager.sol index 79cbf3bc486..32511a4d7e2 100644 --- a/packages/protocol/contracts/common/AddressManager.sol +++ b/packages/protocol/contracts/common/AddressManager.sol @@ -3,14 +3,22 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "./OwnerUUPSUpgradable.sol"; + /// @title IAddressManager /// @notice Specifies methods to manage address mappings for given chainId-name /// pairs. - interface IAddressManager { /// @notice Gets the address mapped to a specific chainId-name pair. /// @dev Note that in production, this method shall be a pure function diff --git a/packages/protocol/contracts/common/AddressResolver.sol b/packages/protocol/contracts/common/AddressResolver.sol index 8c6a1dae0ad..df5e155dbfe 100644 --- a/packages/protocol/contracts/common/AddressResolver.sol +++ b/packages/protocol/contracts/common/AddressResolver.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/utils/Strings.sol"; import "./AddressManager.sol"; diff --git a/packages/protocol/contracts/common/AuthorizableContract.sol b/packages/protocol/contracts/common/AuthorizableContract.sol index 82e57a24be9..78615d9547e 100644 --- a/packages/protocol/contracts/common/AuthorizableContract.sol +++ b/packages/protocol/contracts/common/AuthorizableContract.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "../common/EssentialContract.sol"; diff --git a/packages/protocol/contracts/common/EssentialContract.sol b/packages/protocol/contracts/common/EssentialContract.sol index 4ba7b71a16f..bfdfd115e59 100644 --- a/packages/protocol/contracts/common/EssentialContract.sol +++ b/packages/protocol/contracts/common/EssentialContract.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "./AddressResolver.sol"; import "./OwnerUUPSUpgradable.sol"; diff --git a/packages/protocol/contracts/common/ICrossChainSync.sol b/packages/protocol/contracts/common/ICrossChainSync.sol index 87fdf59cf70..c6ecf8e0293 100644 --- a/packages/protocol/contracts/common/ICrossChainSync.sol +++ b/packages/protocol/contracts/common/ICrossChainSync.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title ICrossChainSync /// @dev This interface is implemented by both the TaikoL1 and TaikoL2 diff --git a/packages/protocol/contracts/common/OwnerUUPSUpgradable.sol b/packages/protocol/contracts/common/OwnerUUPSUpgradable.sol index f38f8aeb1f0..c67d4e3b8d2 100644 --- a/packages/protocol/contracts/common/OwnerUUPSUpgradable.sol +++ b/packages/protocol/contracts/common/OwnerUUPSUpgradable.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol"; import "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol"; diff --git a/packages/protocol/contracts/libs/LibAddress.sol b/packages/protocol/contracts/libs/LibAddress.sol index a865732508e..5e3ed81a4c8 100644 --- a/packages/protocol/contracts/libs/LibAddress.sol +++ b/packages/protocol/contracts/libs/LibAddress.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/utils/Address.sol"; import "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol"; diff --git a/packages/protocol/contracts/libs/LibDeploy.sol b/packages/protocol/contracts/libs/LibDeploy.sol index 98f2eceee8e..1a6158c13fa 100644 --- a/packages/protocol/contracts/libs/LibDeploy.sol +++ b/packages/protocol/contracts/libs/LibDeploy.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol"; diff --git a/packages/protocol/contracts/libs/LibMath.sol b/packages/protocol/contracts/libs/LibMath.sol index 1de714ba331..453d2868ffd 100644 --- a/packages/protocol/contracts/libs/LibMath.sol +++ b/packages/protocol/contracts/libs/LibMath.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title LibMath /// @dev This library offers additional math functions for uint256. diff --git a/packages/protocol/contracts/signal/ISignalService.sol b/packages/protocol/contracts/signal/ISignalService.sol index 8b7b54a4229..389c70113e8 100644 --- a/packages/protocol/contracts/signal/ISignalService.sol +++ b/packages/protocol/contracts/signal/ISignalService.sol @@ -5,7 +5,7 @@ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title ISignalService /// @notice The SignalService contract serves as a secure cross-chain message diff --git a/packages/protocol/contracts/signal/SignalService.sol b/packages/protocol/contracts/signal/SignalService.sol index 9ba3918e1e7..29083708bf5 100644 --- a/packages/protocol/contracts/signal/SignalService.sol +++ b/packages/protocol/contracts/signal/SignalService.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol"; import "../common/AuthorizableContract.sol"; @@ -157,5 +165,7 @@ contract SignalService is AuthorizableContract, ISignalService { /// @notice Tells if we need to check real proof or it is a test. /// @return Returns true to skip checking inclusion proofs. - function skipProofCheck() public pure virtual returns (bool) { } + function skipProofCheck() public pure virtual returns (bool) { + return false; + } } diff --git a/packages/protocol/contracts/team/TimelockTokenPool.sol b/packages/protocol/contracts/team/TimelockTokenPool.sol index e32463ae309..4ee73dd9f9d 100644 --- a/packages/protocol/contracts/team/TimelockTokenPool.sol +++ b/packages/protocol/contracts/team/TimelockTokenPool.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol"; import "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; diff --git a/packages/protocol/contracts/team/airdrop/ERC20Airdrop.sol b/packages/protocol/contracts/team/airdrop/ERC20Airdrop.sol index dfa35eb1305..89ccafec042 100644 --- a/packages/protocol/contracts/team/airdrop/ERC20Airdrop.sol +++ b/packages/protocol/contracts/team/airdrop/ERC20Airdrop.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol"; import "./MerkleClaimable.sol"; diff --git a/packages/protocol/contracts/team/airdrop/ERC20Airdrop2.sol b/packages/protocol/contracts/team/airdrop/ERC20Airdrop2.sol index 1a9f45a63f8..dcaeb0a9792 100644 --- a/packages/protocol/contracts/team/airdrop/ERC20Airdrop2.sol +++ b/packages/protocol/contracts/team/airdrop/ERC20Airdrop2.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol"; import "../../libs/LibMath.sol"; diff --git a/packages/protocol/contracts/team/airdrop/ERC721Airdrop.sol b/packages/protocol/contracts/team/airdrop/ERC721Airdrop.sol index aeda1c0a759..6e43dbba96a 100644 --- a/packages/protocol/contracts/team/airdrop/ERC721Airdrop.sol +++ b/packages/protocol/contracts/team/airdrop/ERC721Airdrop.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol"; import "./MerkleClaimable.sol"; diff --git a/packages/protocol/contracts/team/airdrop/MerkleClaimable.sol b/packages/protocol/contracts/team/airdrop/MerkleClaimable.sol index 02263b80ed4..56489811500 100644 --- a/packages/protocol/contracts/team/airdrop/MerkleClaimable.sol +++ b/packages/protocol/contracts/team/airdrop/MerkleClaimable.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import { MerkleProofUpgradeable } from "lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/MerkleProofUpgradeable.sol"; diff --git a/packages/protocol/contracts/test/erc20/FreeMintERC20.sol b/packages/protocol/contracts/test/erc20/FreeMintERC20.sol index 90c09e74208..38f7c080829 100644 --- a/packages/protocol/contracts/test/erc20/FreeMintERC20.sol +++ b/packages/protocol/contracts/test/erc20/FreeMintERC20.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; diff --git a/packages/protocol/contracts/test/erc20/MayFailFreeMintERC20.sol b/packages/protocol/contracts/test/erc20/MayFailFreeMintERC20.sol index 3883d0bd01c..c0427076219 100644 --- a/packages/protocol/contracts/test/erc20/MayFailFreeMintERC20.sol +++ b/packages/protocol/contracts/test/erc20/MayFailFreeMintERC20.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; diff --git a/packages/protocol/contracts/test/erc20/RegularERC20.sol b/packages/protocol/contracts/test/erc20/RegularERC20.sol index 086a787512c..3e057462ab5 100644 --- a/packages/protocol/contracts/test/erc20/RegularERC20.sol +++ b/packages/protocol/contracts/test/erc20/RegularERC20.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; diff --git a/packages/protocol/contracts/thirdparty/LibBytesUtils.sol b/packages/protocol/contracts/thirdparty/LibBytesUtils.sol index 24210d7c8fb..cad328022ca 100644 --- a/packages/protocol/contracts/thirdparty/LibBytesUtils.sol +++ b/packages/protocol/contracts/thirdparty/LibBytesUtils.sol @@ -25,7 +25,7 @@ // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /** * @title LibBytesUtils diff --git a/packages/protocol/contracts/thirdparty/LibFixedPointMath.sol b/packages/protocol/contracts/thirdparty/LibFixedPointMath.sol index f9862f5151b..943a0c8353c 100644 --- a/packages/protocol/contracts/thirdparty/LibFixedPointMath.sol +++ b/packages/protocol/contracts/thirdparty/LibFixedPointMath.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // Taken from the contract below, expWad() function tailored to Taiko's need // https://github.com/transmissions11/solmate/blob/v7/src/utils/FixedPointMathLib.sol -pragma solidity ^0.8.20; +pragma solidity 0.8.20; library LibFixedPointMath { uint128 public constant MAX_EXP_INPUT = 135_305_999_368_893_231_588; diff --git a/packages/protocol/contracts/thirdparty/LibMerkleTrie.sol b/packages/protocol/contracts/thirdparty/LibMerkleTrie.sol index 77cb64d991d..89f11f4de47 100644 --- a/packages/protocol/contracts/thirdparty/LibMerkleTrie.sol +++ b/packages/protocol/contracts/thirdparty/LibMerkleTrie.sol @@ -25,7 +25,7 @@ // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /* Library Imports */ import "./LibBytesUtils.sol"; diff --git a/packages/protocol/contracts/thirdparty/LibRLPReader.sol b/packages/protocol/contracts/thirdparty/LibRLPReader.sol index e1c367fb159..89b2eb0bc27 100644 --- a/packages/protocol/contracts/thirdparty/LibRLPReader.sol +++ b/packages/protocol/contracts/thirdparty/LibRLPReader.sol @@ -25,7 +25,7 @@ // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /** * @title LibRLPReader diff --git a/packages/protocol/contracts/thirdparty/LibSecureMerkleTrie.sol b/packages/protocol/contracts/thirdparty/LibSecureMerkleTrie.sol index bfefe125f0b..07e28bfc307 100644 --- a/packages/protocol/contracts/thirdparty/LibSecureMerkleTrie.sol +++ b/packages/protocol/contracts/thirdparty/LibSecureMerkleTrie.sol @@ -25,7 +25,7 @@ // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /* Library Imports */ import "./LibMerkleTrie.sol"; diff --git a/packages/protocol/contracts/thirdparty/LibUint512Math.sol b/packages/protocol/contracts/thirdparty/LibUint512Math.sol index 60eef4bc0a6..d22f06cdddb 100644 --- a/packages/protocol/contracts/thirdparty/LibUint512Math.sol +++ b/packages/protocol/contracts/thirdparty/LibUint512Math.sol @@ -23,7 +23,7 @@ // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title LibUint512Math library LibUint512Math { diff --git a/packages/protocol/contracts/tokenvault/BaseNFTVault.sol b/packages/protocol/contracts/tokenvault/BaseNFTVault.sol index c232545fa86..f4c06d88d22 100644 --- a/packages/protocol/contracts/tokenvault/BaseNFTVault.sol +++ b/packages/protocol/contracts/tokenvault/BaseNFTVault.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "./BaseVault.sol"; diff --git a/packages/protocol/contracts/tokenvault/BaseVault.sol b/packages/protocol/contracts/tokenvault/BaseVault.sol index 3fecdfbdd0c..84d6fb6fa5c 100644 --- a/packages/protocol/contracts/tokenvault/BaseVault.sol +++ b/packages/protocol/contracts/tokenvault/BaseVault.sol @@ -3,7 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol"; import "../bridge/IBridge.sol"; diff --git a/packages/protocol/contracts/tokenvault/BridgedERC1155.sol b/packages/protocol/contracts/tokenvault/BridgedERC1155.sol index 97425d5af36..4151f563e74 100644 --- a/packages/protocol/contracts/tokenvault/BridgedERC1155.sol +++ b/packages/protocol/contracts/tokenvault/BridgedERC1155.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/utils/Strings.sol"; import "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol"; diff --git a/packages/protocol/contracts/tokenvault/BridgedERC20.sol b/packages/protocol/contracts/tokenvault/BridgedERC20.sol index 683090bb574..eea58c1d2d6 100644 --- a/packages/protocol/contracts/tokenvault/BridgedERC20.sol +++ b/packages/protocol/contracts/tokenvault/BridgedERC20.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol"; diff --git a/packages/protocol/contracts/tokenvault/BridgedERC20Base.sol b/packages/protocol/contracts/tokenvault/BridgedERC20Base.sol index 28276fb29b1..2aeb37572f7 100644 --- a/packages/protocol/contracts/tokenvault/BridgedERC20Base.sol +++ b/packages/protocol/contracts/tokenvault/BridgedERC20Base.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol"; import "../common/EssentialContract.sol"; diff --git a/packages/protocol/contracts/tokenvault/BridgedERC721.sol b/packages/protocol/contracts/tokenvault/BridgedERC721.sol index 45262fa976a..98c065f6c11 100644 --- a/packages/protocol/contracts/tokenvault/BridgedERC721.sol +++ b/packages/protocol/contracts/tokenvault/BridgedERC721.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol"; import "lib/openzeppelin-contracts/contracts/utils/Strings.sol"; diff --git a/packages/protocol/contracts/tokenvault/ERC1155Vault.sol b/packages/protocol/contracts/tokenvault/ERC1155Vault.sol index 81bfc2fb1b9..d7328a26d47 100644 --- a/packages/protocol/contracts/tokenvault/ERC1155Vault.sol +++ b/packages/protocol/contracts/tokenvault/ERC1155Vault.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol"; import @@ -287,9 +295,7 @@ contract ERC1155Vault is BaseNFTVault, ERC1155ReceiverUpgradeable { } } } - msgData = abi.encodeWithSelector( - this.receiveToken.selector, nft, user, op.to, op.tokenIds, op.amounts - ); + msgData = abi.encodeCall(this.receiveToken, (nft, user, op.to, op.tokenIds, op.amounts)); } /// @dev Retrieve or deploy a bridged ERC1155 token contract. diff --git a/packages/protocol/contracts/tokenvault/ERC20Vault.sol b/packages/protocol/contracts/tokenvault/ERC20Vault.sol index 636f7d10944..1df70e35587 100644 --- a/packages/protocol/contracts/tokenvault/ERC20Vault.sol +++ b/packages/protocol/contracts/tokenvault/ERC20Vault.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; import "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol"; @@ -318,8 +326,7 @@ contract ERC20Vault is BaseVault { _balanceChange = t.balanceOf(address(this)) - _balance; } - msgData = - abi.encodeWithSelector(this.receiveToken.selector, ctoken, user, to, _balanceChange); + msgData = abi.encodeCall(this.receiveToken, (ctoken, user, to, _balanceChange)); } /// @dev Retrieve or deploy a bridged ERC20 token contract. diff --git a/packages/protocol/contracts/tokenvault/ERC721Vault.sol b/packages/protocol/contracts/tokenvault/ERC721Vault.sol index 2b952e7903c..08a72f70982 100644 --- a/packages/protocol/contracts/tokenvault/ERC721Vault.sol +++ b/packages/protocol/contracts/tokenvault/ERC721Vault.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol"; import @@ -231,7 +239,7 @@ contract ERC721Vault is BaseNFTVault, IERC721ReceiverUpgradeable { } } - msgData = abi.encodeWithSelector(this.receiveToken.selector, nft, user, op.to, op.tokenIds); + msgData = abi.encodeCall(this.receiveToken, (nft, user, op.to, op.tokenIds)); } /// @dev Retrieve or deploy a bridged ERC721 token contract. diff --git a/packages/protocol/contracts/tokenvault/IBridgedERC20.sol b/packages/protocol/contracts/tokenvault/IBridgedERC20.sol index aec9cd02d06..5c92e8e2fc0 100644 --- a/packages/protocol/contracts/tokenvault/IBridgedERC20.sol +++ b/packages/protocol/contracts/tokenvault/IBridgedERC20.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; /// @title IBridgedERC20 /// @notice Interface for all bridged tokens. diff --git a/packages/protocol/contracts/tokenvault/LibBridgedToken.sol b/packages/protocol/contracts/tokenvault/LibBridgedToken.sol index 3ca96871ae3..a8b0b422741 100644 --- a/packages/protocol/contracts/tokenvault/LibBridgedToken.sol +++ b/packages/protocol/contracts/tokenvault/LibBridgedToken.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/utils/Strings.sol"; diff --git a/packages/protocol/contracts/tokenvault/adaptors/USDCAdaptor.sol b/packages/protocol/contracts/tokenvault/adaptors/USDCAdaptor.sol index 9476286ffff..fa4851d7571 100644 --- a/packages/protocol/contracts/tokenvault/adaptors/USDCAdaptor.sol +++ b/packages/protocol/contracts/tokenvault/adaptors/USDCAdaptor.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../BridgedERC20Base.sol"; diff --git a/packages/protocol/genesis/GenerateGenesis.g.sol b/packages/protocol/genesis/GenerateGenesis.g.sol index efb5740eb99..ba0b6b05722 100644 --- a/packages/protocol/genesis/GenerateGenesis.g.sol +++ b/packages/protocol/genesis/GenerateGenesis.g.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "forge-std/console2.sol"; import "forge-std/StdJson.sol"; @@ -20,7 +20,9 @@ contract TestGenerateGenesis is Test, AddressResolver { vm.readFile(string.concat(vm.projectRoot(), "/deployments/genesis_config.json")); string private genesisAllocJSON = vm.readFile(string.concat(vm.projectRoot(), "/deployments/genesis_alloc.json")); - address private owner = configJSON.readAddress(".contractOwner"); + address private ownerTimelockController = configJSON.readAddress(".ownerTimelockController"); + address private ownerSecurityCouncil = configJSON.readAddress(".ownerSecurityCouncil"); + uint256 private ownerChainId = configJSON.readUint(".ownerChainId"); function testSharedContractsDeployment() public { assertEq(block.chainid, 167); @@ -59,7 +61,7 @@ contract TestGenerateGenesis is Test, AddressResolver { checkDeployedCode("RollupAddressManager"); // check proxy implementations - checkProxyImplementation("TaikoL2", "TaikoL2Impl"); + checkProxyImplementation("TaikoL2", "TaikoL2Impl", ownerTimelockController); checkProxyImplementation("RollupAddressManager", "RollupAddressManagerImpl"); // check proxies @@ -71,7 +73,7 @@ contract TestGenerateGenesis is Test, AddressResolver { AddressManager addressManagerProxy = AddressManager(getPredeployedContractAddress("SharedAddressManager")); - assertEq(owner, addressManagerProxy.owner()); + assertEq(ownerSecurityCouncil, addressManagerProxy.owner()); checkSavedAddress(addressManagerProxy, "Bridge", "bridge"); checkSavedAddress(addressManagerProxy, "ERC20Vault", "erc20_vault"); @@ -95,7 +97,7 @@ contract TestGenerateGenesis is Test, AddressResolver { AddressManager addressManagerProxy = AddressManager(getPredeployedContractAddress("RollupAddressManager")); - assertEq(owner, addressManagerProxy.owner()); + assertEq(ownerSecurityCouncil, addressManagerProxy.owner()); checkSavedAddress(addressManagerProxy, "TaikoL2", "taiko"); checkSavedAddress(addressManagerProxy, "SignalService", "signal_service"); @@ -115,6 +117,9 @@ contract TestGenerateGenesis is Test, AddressResolver { function testTaikoL2() public { TaikoL2 taikoL2Proxy = TaikoL2(getPredeployedContractAddress("TaikoL2")); + assertEq(ownerTimelockController, taikoL2Proxy.owner()); + assertEq(ownerChainId, taikoL2Proxy.ownerChainId()); + vm.startPrank(taikoL2Proxy.GOLDEN_TOUCH_ADDRESS()); for (uint32 i = 0; i < 300; ++i) { vm.roll(block.number + 1); @@ -152,7 +157,7 @@ contract TestGenerateGenesis is Test, AddressResolver { function testSingletonBridge() public { Bridge bridgeProxy = Bridge(payable(getPredeployedContractAddress("Bridge"))); - assertEq(owner, bridgeProxy.owner()); + assertEq(ownerSecurityCouncil, bridgeProxy.owner()); vm.expectRevert(Bridge.B_PERMISSION_DENIED.selector); bridgeProxy.processMessage( @@ -175,7 +180,7 @@ contract TestGenerateGenesis is Test, AddressResolver { assertEq(bridgeProxy.paused(), false); - vm.startPrank(owner); + vm.startPrank(ownerSecurityCouncil); bridgeProxy.pause(); assertEq(bridgeProxy.paused(), true); @@ -218,7 +223,7 @@ contract TestGenerateGenesis is Test, AddressResolver { AddressManager addressManager = AddressManager(getPredeployedContractAddress("SharedAddressManager")); - assertEq(owner, erc20VaultProxy.owner()); + assertEq(ownerSecurityCouncil, erc20VaultProxy.owner()); vm.startPrank(addressManager.owner()); addressManager.setAddress(1, "bridge", bridgeAddress); @@ -244,7 +249,7 @@ contract TestGenerateGenesis is Test, AddressResolver { AddressManager addressManager = AddressManager(getPredeployedContractAddress("SharedAddressManager")); - assertEq(owner, erc721VaultProxy.owner()); + assertEq(ownerSecurityCouncil, erc721VaultProxy.owner()); vm.startPrank(addressManager.owner()); addressManager.setAddress(1, "bridge", bridgeAddress); @@ -269,7 +274,7 @@ contract TestGenerateGenesis is Test, AddressResolver { AddressManager addressManager = AddressManager(getPredeployedContractAddress("SharedAddressManager")); - assertEq(owner, erc1155VaultProxy.owner()); + assertEq(ownerSecurityCouncil, erc1155VaultProxy.owner()); vm.startPrank(addressManager.owner()); addressManager.setAddress(1, "bridge", bridgeProxyAddress); @@ -293,7 +298,7 @@ contract TestGenerateGenesis is Test, AddressResolver { SignalService signalServiceProxy = SignalService(getPredeployedContractAddress("SignalService")); - assertEq(owner, signalServiceProxy.owner()); + assertEq(ownerSecurityCouncil, signalServiceProxy.owner()); signalServiceProxy.sendSignal(keccak256(abi.encodePacked(block.prevrandao))); @@ -304,7 +309,7 @@ contract TestGenerateGenesis is Test, AddressResolver { ) ); - vm.startPrank(owner); + vm.startPrank(ownerSecurityCouncil); SignalService signalService = SignalService(payable(getPredeployedContractAddress("SignalServiceImpl"))); @@ -335,11 +340,22 @@ contract TestGenerateGenesis is Test, AddressResolver { assertEq(address(contractAddress).code, vm.parseBytes(deployedCode)); } + function checkProxyImplementation( string memory proxyName, string memory contractName ) private + { + return checkProxyImplementation(proxyName, contractName, ownerSecurityCouncil); + } + + function checkProxyImplementation( + string memory proxyName, + string memory contractName, + address owner + ) + private { vm.startPrank(owner); address contractAddress = getPredeployedContractAddress(contractName); diff --git a/packages/protocol/genesis/test_config.js b/packages/protocol/genesis/test_config.js index abb25629703..aa65ccec1ce 100644 --- a/packages/protocol/genesis/test_config.js +++ b/packages/protocol/genesis/test_config.js @@ -2,7 +2,9 @@ const ADDRESS_LENGTH = 40; module.exports = { - contractOwner: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + ownerTimelockController: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + ownerSecurityCouncil: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", + ownerChainId: 1, chainId: 167, seedAccounts: [ { diff --git a/packages/protocol/script/AuthorizeRemoteTaikoProtocols.s.sol b/packages/protocol/script/AuthorizeRemoteTaikoProtocols.s.sol index 60969210076..0e2a77672fc 100644 --- a/packages/protocol/script/AuthorizeRemoteTaikoProtocols.s.sol +++ b/packages/protocol/script/AuthorizeRemoteTaikoProtocols.s.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "forge-std/Script.sol"; import "forge-std/console2.sol"; diff --git a/packages/protocol/script/DeployOnL1.s.sol b/packages/protocol/script/DeployOnL1.s.sol index 78deb5c54a1..d03af5af2ff 100644 --- a/packages/protocol/script/DeployOnL1.s.sol +++ b/packages/protocol/script/DeployOnL1.s.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/utils/Strings.sol"; @@ -145,21 +153,21 @@ contract DeployOnL1 is DeployCapability { timelock = deployProxy({ name: "timelock_controller", impl: address(new TaikoTimelockController()), - data: bytes.concat(TaikoTimelockController.init.selector, abi.encode(7 days)) + data: abi.encodeCall(TaikoTimelockController.init, (7 days)) }); sharedAddressManager = deployProxy({ name: "shared_address_manager", impl: address(new AddressManager()), - data: bytes.concat(AddressManager.init.selector) + data: abi.encodeCall(AddressManager.init, ()) }); address taikoToken = deployProxy({ name: "taiko_token", impl: address(new TaikoToken()), - data: bytes.concat( - TaikoToken.init.selector, - abi.encode( + data: abi.encodeCall( + TaikoToken.init, + ( vm.envString("TAIKO_TOKEN_NAME"), vm.envString("TAIKO_TOKEN_SYMBOL"), vm.envAddress("TAIKO_TOKEN_PREMINT_RECIPIENT") @@ -172,21 +180,26 @@ contract DeployOnL1 is DeployCapability { address governor = deployProxy({ name: "taiko_governor", impl: address(new TaikoGovernor()), - data: bytes.concat(TaikoGovernor.init.selector, abi.encode(taikoToken, timelock)), + data: abi.encodeCall( + TaikoGovernor.init, + (IVotesUpgradeable(taikoToken), TimelockControllerUpgradeable(payable(timelock))) + ), registerTo: address(0), owner: timelock }); // Setup time lock roles TaikoTimelockController _timelock = TaikoTimelockController(payable(timelock)); + // Only the governer can make proposals after holders voting. _timelock.grantRole(_timelock.PROPOSER_ROLE(), governor); _timelock.grantRole(_timelock.PROPOSER_ROLE(), securityCouncil); - _timelock.grantRole(_timelock.EXECUTOR_ROLE(), governor); - _timelock.grantRole(_timelock.EXECUTOR_ROLE(), securityCouncil); + // Granting address(0) the executor role to allow open executation. + _timelock.grantRole(_timelock.EXECUTOR_ROLE(), address(0)); - _timelock.grantRole(_timelock.CANCELLER_ROLE(), governor); - _timelock.grantRole(_timelock.CANCELLER_ROLE(), securityCouncil); + // Cancelling is not supported by the implementation by default, therefore, no need to set + // up this role. + // _timelock.grantRole(_timelock.CANCELLER_ROLE(), securityCouncil); _timelock.grantRole(_timelock.TIMELOCK_ADMIN_ROLE(), securityCouncil); _timelock.revokeRole(_timelock.TIMELOCK_ADMIN_ROLE(), address(this)); @@ -198,7 +211,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "signal_service", impl: address(new SignalService()), - data: bytes.concat(SignalService.init.selector), + data: abi.encodeCall(SignalService.init, ()), registerTo: sharedAddressManager, owner: address(0) }); @@ -206,7 +219,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "bridge", impl: address(new Bridge()), - data: bytes.concat(Bridge.init.selector, abi.encode(sharedAddressManager)), + data: abi.encodeCall(Bridge.init, (sharedAddressManager)), registerTo: sharedAddressManager, owner: timelock }); @@ -224,7 +237,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "erc20_vault", impl: address(new ERC20Vault()), - data: bytes.concat(BaseVault.init.selector, abi.encode(sharedAddressManager)), + data: abi.encodeCall(BaseVault.init, (sharedAddressManager)), registerTo: sharedAddressManager, owner: timelock }); @@ -232,7 +245,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "erc721_vault", impl: address(new ERC721Vault()), - data: bytes.concat(BaseVault.init.selector, abi.encode(sharedAddressManager)), + data: abi.encodeCall(BaseVault.init, (sharedAddressManager)), registerTo: sharedAddressManager, owner: timelock }); @@ -240,7 +253,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "erc1155_vault", impl: address(new ERC1155Vault()), - data: bytes.concat(BaseVault.init.selector, abi.encode(sharedAddressManager)), + data: abi.encodeCall(BaseVault.init, (sharedAddressManager)), registerTo: sharedAddressManager, owner: timelock }); @@ -279,16 +292,13 @@ contract DeployOnL1 is DeployCapability { rollupAddressManager = deployProxy({ name: "rollup_address_manager", impl: address(new AddressManager()), - data: bytes.concat(AddressManager.init.selector) + data: abi.encodeCall(AddressManager.init, ()) }); deployProxy({ name: "taiko", impl: address(new TaikoL1()), - data: bytes.concat( - TaikoL1.init.selector, - abi.encode(rollupAddressManager, vm.envBytes32("L2_GENESIS_HASH")) - ), + data: abi.encodeCall(TaikoL1.init, (rollupAddressManager, vm.envBytes32("L2_GENESIS_HASH"))), registerTo: rollupAddressManager, owner: timelock }); @@ -296,7 +306,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "assignment_hook", impl: address(new AssignmentHook()), - data: bytes.concat(AssignmentHook.init.selector, abi.encode(rollupAddressManager)), + data: abi.encodeCall(AssignmentHook.init, (rollupAddressManager)), registerTo: address(0), owner: timelock }); @@ -304,7 +314,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "tier_provider", impl: address(new TaikoA6TierProvider()), - data: bytes.concat(TaikoA6TierProvider.init.selector), + data: abi.encodeCall(TaikoA6TierProvider.init, ()), registerTo: rollupAddressManager, owner: timelock }); @@ -312,7 +322,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "tier_guardian", impl: address(new GuardianVerifier()), - data: bytes.concat(GuardianVerifier.init.selector, abi.encode(rollupAddressManager)), + data: abi.encodeCall(GuardianVerifier.init, (rollupAddressManager)), registerTo: rollupAddressManager, owner: timelock }); @@ -320,7 +330,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "tier_sgx", impl: address(new SgxVerifier()), - data: bytes.concat(SgxVerifier.init.selector, abi.encode(rollupAddressManager)), + data: abi.encodeCall(SgxVerifier.init, (rollupAddressManager)), registerTo: rollupAddressManager, owner: timelock }); @@ -328,7 +338,7 @@ contract DeployOnL1 is DeployCapability { deployProxy({ name: "tier_sgx_and_pse_zkevm", impl: address(new SgxAndZkVerifier()), - data: bytes.concat(SgxAndZkVerifier.init.selector, abi.encode(rollupAddressManager)), + data: abi.encodeCall(SgxAndZkVerifier.init, (rollupAddressManager)), registerTo: rollupAddressManager, owner: timelock }); @@ -336,7 +346,7 @@ contract DeployOnL1 is DeployCapability { address pseZkVerifier = deployProxy({ name: "tier_pse_zkevm", impl: address(new PseZkVerifier()), - data: bytes.concat(PseZkVerifier.init.selector, abi.encode(rollupAddressManager)), + data: abi.encodeCall(PseZkVerifier.init, (rollupAddressManager)), registerTo: rollupAddressManager, owner: timelock }); @@ -355,7 +365,7 @@ contract DeployOnL1 is DeployCapability { address guardianProver = deployProxy({ name: "guardian_prover", impl: address(new GuardianProver()), - data: bytes.concat(GuardianProver.init.selector, abi.encode(rollupAddressManager)), + data: abi.encodeCall(GuardianProver.init, (rollupAddressManager)), registerTo: rollupAddressManager, owner: address(0) }); diff --git a/packages/protocol/script/SetAddress.s.sol b/packages/protocol/script/SetAddress.s.sol index d16a533461e..568fbd7c317 100644 --- a/packages/protocol/script/SetAddress.s.sol +++ b/packages/protocol/script/SetAddress.s.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ - -pragma solidity ^0.8.20; +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz + +pragma solidity 0.8.20; import "forge-std/Script.sol"; import "forge-std/console2.sol"; diff --git a/packages/protocol/script/SetRemoteBridgeSuites.s.sol b/packages/protocol/script/SetRemoteBridgeSuites.s.sol index b1bc030b42c..750bfdbd719 100644 --- a/packages/protocol/script/SetRemoteBridgeSuites.s.sol +++ b/packages/protocol/script/SetRemoteBridgeSuites.s.sol @@ -3,8 +3,16 @@ // |_ _|_ _(_) |_____ | | __ _| |__ ___ // | |/ _` | | / / _ \ | |__/ _` | '_ (_-< // |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ +// +// Email: security@taiko.xyz +// Website: https://taiko.xyz +// GitHub: https://github.com/taikoxyz +// Discord: https://discord.gg/taikoxyz +// Twitter: https://twitter.com/taikoxyz +// Blog: https://mirror.xyz/labs.taiko.eth +// Youtube: https://www.youtube.com/@taikoxyz -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../test/DeployCapability.sol"; import "../contracts/L1/gov/TaikoTimelockController.sol"; @@ -73,12 +81,8 @@ contract SetRemoteBridgeSuites is DeployCapability { { bytes32 salt = bytes32(block.timestamp); - bytes memory payload = abi.encodeWithSelector( - bytes4(keccak256("setAddress(uint64,bytes32,address)")), - chainId, - bytes32(bytes(name)), - addr - ); + bytes memory payload = + abi.encodeCall(AddressManager.setAddress, (chainId, bytes32(bytes(name)), addr)); TaikoTimelockController timelock = TaikoTimelockController(payable(timelockAddress)); diff --git a/packages/protocol/contracts/L2/eip1559_util.py b/packages/protocol/script/eip1559_util.py similarity index 100% rename from packages/protocol/contracts/L2/eip1559_util.py rename to packages/protocol/script/eip1559_util.py diff --git a/packages/protocol/test/DeployCapability.sol b/packages/protocol/test/DeployCapability.sol index 74584e95bf3..a726337d38b 100644 --- a/packages/protocol/test/DeployCapability.sol +++ b/packages/protocol/test/DeployCapability.sol @@ -1,10 +1,6 @@ // SPDX-License-Identifier: MIT -// _____ _ _ _ _ -// |_ _|_ _(_) |_____ | | __ _| |__ ___ -// | |/ _` | | / / _ \ | |__/ _` | '_ (_-< -// |_|\__,_|_|_\_\___/ |____\__,_|_.__/__/ -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol"; diff --git a/packages/protocol/test/HelperContracts.sol b/packages/protocol/test/HelperContracts.sol index abd7c7a7a87..b027d4595e5 100644 --- a/packages/protocol/test/HelperContracts.sol +++ b/packages/protocol/test/HelperContracts.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../contracts/bridge/Bridge.sol"; import "../contracts/signal/SignalService.sol"; diff --git a/packages/protocol/test/L1/Guardians.t.sol b/packages/protocol/test/L1/Guardians.t.sol index e6ccb09c3a9..92e780ae195 100644 --- a/packages/protocol/test/L1/Guardians.t.sol +++ b/packages/protocol/test/L1/Guardians.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; @@ -31,7 +31,7 @@ contract TestSignalService is TaikoTest { deployProxy({ name: "guardians", impl: address(new DummyGuardians()), - data: bytes.concat(DummyGuardians.init.selector) + data: abi.encodeCall(DummyGuardians.init, ()) }) ); } diff --git a/packages/protocol/test/L1/SgxVerifier.t.sol b/packages/protocol/test/L1/SgxVerifier.t.sol index 3b086adaf06..90e71ab9186 100644 --- a/packages/protocol/test/L1/SgxVerifier.t.sol +++ b/packages/protocol/test/L1/SgxVerifier.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "./TaikoL1TestBase.sol"; diff --git a/packages/protocol/test/L1/TaikoL1.t.sol b/packages/protocol/test/L1/TaikoL1.t.sol index 52178454ddd..af11cdb9662 100644 --- a/packages/protocol/test/L1/TaikoL1.t.sol +++ b/packages/protocol/test/L1/TaikoL1.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "./TaikoL1TestBase.sol"; diff --git a/packages/protocol/test/L1/TaikoL1LibProvingWithTiers.t.sol b/packages/protocol/test/L1/TaikoL1LibProvingWithTiers.t.sol index eb548bc946c..cd29e0d5e34 100644 --- a/packages/protocol/test/L1/TaikoL1LibProvingWithTiers.t.sol +++ b/packages/protocol/test/L1/TaikoL1LibProvingWithTiers.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "./TaikoL1TestBase.sol"; diff --git a/packages/protocol/test/L1/TaikoL1TestBase.sol b/packages/protocol/test/L1/TaikoL1TestBase.sol index 4e8723876c8..900bae377ca 100644 --- a/packages/protocol/test/L1/TaikoL1TestBase.sol +++ b/packages/protocol/test/L1/TaikoL1TestBase.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; @@ -9,8 +9,6 @@ contract MockVerifier { } } -// TODO (dani): remove some code to sub-contracts, this one shall only contain -// shared logics and data. abstract contract TaikoL1TestBase is TaikoTest { AddressManager public addressManager; AssignmentHook public assignmentHook; diff --git a/packages/protocol/test/L2/Lib1559Math.t.sol b/packages/protocol/test/L2/Lib1559Math.t.sol index 474af869c00..fb24af5dba1 100644 --- a/packages/protocol/test/L2/Lib1559Math.t.sol +++ b/packages/protocol/test/L2/Lib1559Math.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; diff --git a/packages/protocol/test/L2/TaikoL2.t.sol b/packages/protocol/test/L2/TaikoL2.t.sol index e62b3fe2115..aa351aaa9ea 100644 --- a/packages/protocol/test/L2/TaikoL2.t.sol +++ b/packages/protocol/test/L2/TaikoL2.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; @@ -17,51 +17,51 @@ contract TestTaikoL2 is TaikoTest { // same as `block_gas_limit` in foundry.toml uint32 public constant BLOCK_GAS_LIMIT = 30_000_000; - AddressManager public addressManager; - SignalService public ss; + address public addressManager; TaikoL2EIP1559Configurable public L2; SkipBasefeeCheckL2 public L2skip; function setUp() public { - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: bytes.concat(AddressManager.init.selector) - }) - ); - - ss = SignalService( - deployProxy({ - name: "signal_service", - impl: address(new SignalService()), - data: bytes.concat(SignalService.init.selector), - registerTo: address(addressManager), - owner: address(0) - }) - ); + addressManager = deployProxy({ + name: "address_manager", + impl: address(new AddressManager()), + data: abi.encodeCall(AddressManager.init, ()) + }); + + deployProxy({ + name: "signal_service", + impl: address(new SignalService()), + data: abi.encodeCall(SignalService.init, ()), + registerTo: addressManager, + owner: address(0) + }); uint64 gasExcess = 0; uint8 quotient = 8; uint32 gasTarget = 60_000_000; + uint64 l1ChainId = 12_345; L2 = TaikoL2EIP1559Configurable( - deployProxy({ - name: "taiko_l2", - impl: address(new TaikoL2EIP1559Configurable()), - data: bytes.concat(TaikoL2.init.selector, abi.encode(address(ss), gasExcess)) - }) + payable( + deployProxy({ + name: "taiko_l2", + impl: address(new TaikoL2EIP1559Configurable()), + data: abi.encodeCall(TaikoL2.init, (addressManager, l1ChainId, gasExcess)) + }) + ) ); L2.setConfigAndExcess(TaikoL2.Config(gasTarget, quotient), gasExcess); gasExcess = 195_420_300_100; L2skip = SkipBasefeeCheckL2( - deployProxy({ - name: "taiko_l2", - impl: address(new SkipBasefeeCheckL2()), - data: bytes.concat(TaikoL2.init.selector, abi.encode(address(ss), gasExcess)) - }) + payable( + deployProxy({ + name: "taiko_l2", + impl: address(new SkipBasefeeCheckL2()), + data: abi.encodeCall(TaikoL2.init, (addressManager, l1ChainId, gasExcess)) + }) + ) ); L2skip.setConfigAndExcess(TaikoL2.Config(gasTarget, quotient), gasExcess); @@ -254,11 +254,6 @@ contract TestTaikoL2 is TaikoTest { L2skip.anchor(l1Hash, l1SignalRoot, l1Height, parentGasLimit); } - function registerAddress(bytes32 nameHash, address addr) internal { - addressManager.setAddress(uint64(block.chainid), nameHash, addr); - console2.log(block.chainid, uint256(nameHash), unicode"→", addr); - } - // Semi-random number generator function pickRandomNumber( uint256 randomNum, diff --git a/packages/protocol/test/TaikoTest.sol b/packages/protocol/test/TaikoTest.sol index 78683952499..4d5d591c47a 100644 --- a/packages/protocol/test/TaikoTest.sol +++ b/packages/protocol/test/TaikoTest.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "forge-std/Test.sol"; import "forge-std/console2.sol"; diff --git a/packages/protocol/test/bridge/Bridge.t.sol b/packages/protocol/test/bridge/Bridge.t.sol index b76a89293a1..2f48407adf3 100644 --- a/packages/protocol/test/bridge/Bridge.t.sol +++ b/packages/protocol/test/bridge/Bridge.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; @@ -38,7 +38,7 @@ contract BridgeTest is TaikoTest { deployProxy({ name: "address_manager", impl: address(new AddressManager()), - data: bytes.concat(AddressManager.init.selector) + data: abi.encodeCall(AddressManager.init, ()) }) ); @@ -47,7 +47,7 @@ contract BridgeTest is TaikoTest { deployProxy({ name: "bridge", impl: address(new Bridge()), - data: bytes.concat(Bridge.init.selector, abi.encode(addressManager)), + data: abi.encodeCall(Bridge.init, (address(addressManager))), registerTo: address(addressManager), owner: address(0) }) @@ -59,7 +59,7 @@ contract BridgeTest is TaikoTest { deployProxy({ name: "bridge", impl: address(new Bridge()), - data: bytes.concat(Bridge.init.selector, abi.encode(addressManager)) + data: abi.encodeCall(Bridge.init, (address(addressManager))) }) ) ); @@ -68,7 +68,7 @@ contract BridgeTest is TaikoTest { deployProxy({ name: "signal_service", impl: address(new SkipProofCheckSignal()), - data: bytes.concat(SignalService.init.selector), + data: abi.encodeCall(SignalService.init, ()), registerTo: address(addressManager), owner: address(0) }) @@ -78,7 +78,7 @@ contract BridgeTest is TaikoTest { deployProxy({ name: "signal_service", impl: address(new SignalService()), - data: bytes.concat(SignalService.init.selector) + data: abi.encodeCall(SignalService.init, ()) }) ); @@ -187,7 +187,7 @@ contract BridgeTest is TaikoTest { value: 1000, fee: 1000, gasLimit: 1_000_000, - data: abi.encodeWithSelector(GoodReceiver.forward.selector, Carol), + data: abi.encodeCall(GoodReceiver.forward, (Carol)), memo: "" }); // Mocking proof - but obviously it needs to be created in prod diff --git a/packages/protocol/test/common/EssentialContract.t.sol b/packages/protocol/test/common/EssentialContract.t.sol index ae8ed54bd7b..2b4d48ace6a 100644 --- a/packages/protocol/test/common/EssentialContract.t.sol +++ b/packages/protocol/test/common/EssentialContract.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; @@ -28,7 +28,7 @@ contract Target2 is Target1 { contract TestOwnerUUPSUpgradable is TaikoTest { function test_essential_behind_1967_proxy() external { - bytes memory data = bytes.concat(Target1.init.selector); + bytes memory data = abi.encodeCall(Target1.init, ()); vm.startPrank(Alice); ERC1967Proxy proxy = new ERC1967Proxy(address(new Target1()), data); Target1 target = Target1(address(proxy)); @@ -49,7 +49,7 @@ contract TestOwnerUUPSUpgradable is TaikoTest { target.adjust(); address v2 = address(new Target2()); - data = bytes.concat(Target2.update.selector); + data = abi.encodeCall(Target2.update, ()); vm.prank(Bob); vm.expectRevert(); @@ -67,7 +67,7 @@ contract TestOwnerUUPSUpgradable is TaikoTest { // This tests shows that the admin() and owner() cannot be the same, otherwise, // the owner cannot transact delegated functions on implementation. function test_essential_behind_transparent_proxy() external { - bytes memory data = bytes.concat(Target1.init.selector); + bytes memory data = abi.encodeCall(Target1.init, ()); vm.startPrank(Alice); TransparentUpgradeableProxy proxy = new TransparentUpgradeableProxy(address(new Target1()), Bob, data); diff --git a/packages/protocol/test/signal/SignalService.t.sol b/packages/protocol/test/signal/SignalService.t.sol index 40c62f1b52c..dc8b97db94d 100644 --- a/packages/protocol/test/signal/SignalService.t.sol +++ b/packages/protocol/test/signal/SignalService.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; @@ -19,7 +19,7 @@ contract TestSignalService is TaikoTest { deployProxy({ name: "address_manager", impl: address(new AddressManager()), - data: bytes.concat(AddressManager.init.selector), + data: abi.encodeCall(AddressManager.init, ()), registerTo: address(addressManager), owner: address(0) }) @@ -29,7 +29,7 @@ contract TestSignalService is TaikoTest { deployProxy({ name: "signal_service", impl: address(new SignalService()), - data: bytes.concat(SignalService.init.selector) + data: abi.encodeCall(SignalService.init, ()) }) ); @@ -37,7 +37,7 @@ contract TestSignalService is TaikoTest { deployProxy({ name: "signal_service", impl: address(new SignalService()), - data: bytes.concat(SignalService.init.selector) + data: abi.encodeCall(SignalService.init, ()) }) ); diff --git a/packages/protocol/test/team/TimelockTokenPool.t.sol b/packages/protocol/test/team/TimelockTokenPool.t.sol index 1ba0300ff5f..4b658ad3419 100644 --- a/packages/protocol/test/team/TimelockTokenPool.t.sol +++ b/packages/protocol/test/team/TimelockTokenPool.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; @@ -20,7 +20,7 @@ contract TestTimelockTokenPool is TaikoTest { deployProxy({ name: "time_lock_token_pool", impl: address(new TimelockTokenPool()), - data: bytes.concat(TimelockTokenPool.init.selector, abi.encode(address(tko), Vault)) + data: abi.encodeCall(TimelockTokenPool.init, (address(tko), Vault)) }) ); } diff --git a/packages/protocol/test/team/airdrop/MerkleClaimable.t.sol b/packages/protocol/test/team/airdrop/MerkleClaimable.t.sol index 44fba698018..a7afe7e11bf 100644 --- a/packages/protocol/test/team/airdrop/MerkleClaimable.t.sol +++ b/packages/protocol/test/team/airdrop/MerkleClaimable.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../../TaikoTest.sol"; @@ -27,9 +27,7 @@ contract TestERC20Airdrop is TaikoTest { deployProxy({ name: "airdrop", impl: address(new ERC20Airdrop()), - data: bytes.concat( - ERC20Airdrop.init.selector, abi.encode(0, 0, merkleRoot, address(token), owner) - ) + data: abi.encodeCall(ERC20Airdrop.init, (0, 0, merkleRoot, address(token), owner)) }) ); @@ -39,9 +37,8 @@ contract TestERC20Airdrop is TaikoTest { deployProxy({ name: "airdrop", impl: address(new ERC20Airdrop2()), - data: bytes.concat( - ERC20Airdrop2.init.selector, - abi.encode(0, 0, merkleRoot, address(token), owner, 10 days) + data: abi.encodeCall( + ERC20Airdrop2.init, (0, 0, merkleRoot, address(token), owner, 10 days) ) }) ); diff --git a/packages/protocol/test/tokenvault/BridgedERC20.t.sol b/packages/protocol/test/tokenvault/BridgedERC20.t.sol index 2999a88806b..3162437cd63 100644 --- a/packages/protocol/test/tokenvault/BridgedERC20.t.sol +++ b/packages/protocol/test/tokenvault/BridgedERC20.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; @@ -12,7 +12,7 @@ contract TestBridgedERC20 is TaikoTest { manager = deployProxy({ name: "address_manager", impl: address(new AddressManager()), - data: bytes.concat(AddressManager.init.selector) + data: abi.encodeCall(AddressManager.init, ()) }); register(manager, "erc20_vault", vault); @@ -130,9 +130,8 @@ contract TestBridgedERC20 is TaikoTest { deployProxy({ name: "bridged_token1", impl: address(new BridgedERC20()), - data: bytes.concat( - BridgedERC20.init.selector, - abi.encode(address(manager), srcToken, srcChainId, srcDecimals, name, name) + data: abi.encodeCall( + BridgedERC20.init, (address(manager), srcToken, srcChainId, srcDecimals, name, name) ), registerTo: manager, owner: owner diff --git a/packages/protocol/test/tokenvault/ERC1155Vault.t.sol b/packages/protocol/test/tokenvault/ERC1155Vault.t.sol index 33513d1a4c1..8e1f2623c98 100644 --- a/packages/protocol/test/tokenvault/ERC1155Vault.t.sol +++ b/packages/protocol/test/tokenvault/ERC1155Vault.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol"; import "../TaikoTest.sol"; @@ -111,7 +111,7 @@ contract ERC1155VaultTest is TaikoTest { deployProxy({ name: "address_manager", impl: address(new AddressManager()), - data: bytes.concat(AddressManager.init.selector) + data: abi.encodeCall(AddressManager.init, ()) }) ); @@ -120,7 +120,7 @@ contract ERC1155VaultTest is TaikoTest { deployProxy({ name: "bridge", impl: address(new Bridge()), - data: bytes.concat(Bridge.init.selector, abi.encode(addressManager)), + data: abi.encodeCall(Bridge.init, (address(addressManager))), registerTo: address(addressManager), owner: address(0) }) @@ -132,7 +132,7 @@ contract ERC1155VaultTest is TaikoTest { deployProxy({ name: "bridge", impl: address(new Bridge()), - data: bytes.concat(Bridge.init.selector, abi.encode(addressManager)), + data: abi.encodeCall(Bridge.init, (address(addressManager))), registerTo: address(addressManager), owner: address(0) }) @@ -143,7 +143,7 @@ contract ERC1155VaultTest is TaikoTest { deployProxy({ name: "signal_service", impl: address(new SignalService()), - data: bytes.concat(SignalService.init.selector) + data: abi.encodeCall(SignalService.init, ()) }) ); @@ -151,7 +151,7 @@ contract ERC1155VaultTest is TaikoTest { deployProxy({ name: "erc1155_vault", impl: address(new ERC1155Vault()), - data: bytes.concat(BaseVault.init.selector, abi.encode(address(addressManager))) + data: abi.encodeCall(BaseVault.init, (address(addressManager))) }) ); @@ -159,7 +159,7 @@ contract ERC1155VaultTest is TaikoTest { deployProxy({ name: "erc1155_vault", impl: address(new ERC1155Vault()), - data: bytes.concat(BaseVault.init.selector, abi.encode(address(addressManager))) + data: abi.encodeCall(BaseVault.init, (address(addressManager))) }) ); @@ -170,7 +170,7 @@ contract ERC1155VaultTest is TaikoTest { deployProxy({ name: "signal_service", impl: address(new SkipProofCheckSignal()), - data: bytes.concat(SignalService.init.selector) + data: abi.encodeCall(SignalService.init, ()) }) ); diff --git a/packages/protocol/test/tokenvault/ERC20Vault.t.sol b/packages/protocol/test/tokenvault/ERC20Vault.t.sol index 8440cb695cd..44b0ac7603f 100644 --- a/packages/protocol/test/tokenvault/ERC20Vault.t.sol +++ b/packages/protocol/test/tokenvault/ERC20Vault.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "../TaikoTest.sol"; @@ -89,9 +89,7 @@ contract TestERC20Vault is TaikoTest { deployProxy({ name: "taiko_token", impl: address(new TaikoToken()), - data: bytes.concat( - TaikoToken.init.selector, abi.encode("Taiko Token", "TTKOk", address(this)) - ) + data: abi.encodeCall(TaikoToken.init, ("Taiko Token", "TTKOk", address(this))) }) ); @@ -99,7 +97,7 @@ contract TestERC20Vault is TaikoTest { deployProxy({ name: "address_manager", impl: address(new AddressManager()), - data: bytes.concat(AddressManager.init.selector) + data: abi.encodeCall(AddressManager.init, ()) }) ); @@ -109,7 +107,7 @@ contract TestERC20Vault is TaikoTest { deployProxy({ name: "erc20_vault", impl: address(new ERC20Vault()), - data: bytes.concat(BaseVault.init.selector, abi.encode(address(addressManager))) + data: abi.encodeCall(BaseVault.init, (address(addressManager))) }) ); @@ -117,7 +115,7 @@ contract TestERC20Vault is TaikoTest { deployProxy({ name: "erc20_vault", impl: address(new ERC20Vault()), - data: bytes.concat(BaseVault.init.selector, abi.encode(address(addressManager))) + data: abi.encodeCall(BaseVault.init, (address(addressManager))) }) ); @@ -129,7 +127,7 @@ contract TestERC20Vault is TaikoTest { deployProxy({ name: "bridge", impl: address(new Bridge()), - data: bytes.concat(Bridge.init.selector, abi.encode(addressManager)), + data: abi.encodeCall(Bridge.init, (address(addressManager))), registerTo: address(addressManager), owner: address(0) }) @@ -143,7 +141,7 @@ contract TestERC20Vault is TaikoTest { deployProxy({ name: "signal_service", impl: address(new SignalService()), - data: bytes.concat(SignalService.init.selector), + data: abi.encodeCall(SignalService.init, ()), registerTo: address(0), owner: address(0) }) diff --git a/packages/protocol/test/tokenvault/ERC721Vault.t.sol b/packages/protocol/test/tokenvault/ERC721Vault.t.sol index 4e74d25f2ce..dc25777b94c 100644 --- a/packages/protocol/test/tokenvault/ERC721Vault.t.sol +++ b/packages/protocol/test/tokenvault/ERC721Vault.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity 0.8.20; import "lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol"; import "../TaikoTest.sol"; @@ -127,7 +127,7 @@ contract ERC721VaultTest is TaikoTest { deployProxy({ name: "address_manager", impl: address(new AddressManager()), - data: bytes.concat(AddressManager.init.selector) + data: abi.encodeCall(AddressManager.init, ()) }) ); @@ -136,7 +136,7 @@ contract ERC721VaultTest is TaikoTest { deployProxy({ name: "bridge", impl: address(new Bridge()), - data: bytes.concat(Bridge.init.selector, abi.encode(addressManager)), + data: abi.encodeCall(Bridge.init, (address(addressManager))), registerTo: address(addressManager), owner: address(0) }) @@ -148,7 +148,7 @@ contract ERC721VaultTest is TaikoTest { deployProxy({ name: "bridge", impl: address(new Bridge()), - data: bytes.concat(Bridge.init.selector, abi.encode(addressManager)), + data: abi.encodeCall(Bridge.init, (address(addressManager))), registerTo: address(addressManager), owner: address(0) }) @@ -159,7 +159,7 @@ contract ERC721VaultTest is TaikoTest { deployProxy({ name: "signal_service", impl: address(new SignalService()), - data: bytes.concat(SignalService.init.selector) + data: abi.encodeCall(SignalService.init, ()) }) ); @@ -167,7 +167,7 @@ contract ERC721VaultTest is TaikoTest { deployProxy({ name: "erc721_vault", impl: address(new ERC721Vault()), - data: bytes.concat(BaseVault.init.selector, abi.encode(address(addressManager))) + data: abi.encodeCall(BaseVault.init, (address(addressManager))) }) ); @@ -175,7 +175,7 @@ contract ERC721VaultTest is TaikoTest { deployProxy({ name: "erc721_vault", impl: address(new ERC721Vault()), - data: bytes.concat(BaseVault.init.selector, abi.encode(address(addressManager))) + data: abi.encodeCall(BaseVault.init, (address(addressManager))) }) ); @@ -186,7 +186,7 @@ contract ERC721VaultTest is TaikoTest { deployProxy({ name: "signal_service", impl: address(new SkipProofCheckSignal()), - data: bytes.concat(SignalService.init.selector) + data: abi.encodeCall(SignalService.init, ()) }) ); diff --git a/packages/protocol/utils/generate_genesis/interface.ts b/packages/protocol/utils/generate_genesis/interface.ts index 054b7837f3f..36759d1b462 100644 --- a/packages/protocol/utils/generate_genesis/interface.ts +++ b/packages/protocol/utils/generate_genesis/interface.ts @@ -1,6 +1,7 @@ export interface Config { - contractOwner: string; - contractAdmin: string; + ownerTimelockController: string; + ownerSecurityCouncil: string; + ownerChainId: number; chainId: number; seedAccounts: Array<{ [key: string]: number; diff --git a/packages/protocol/utils/generate_genesis/main.ts b/packages/protocol/utils/generate_genesis/main.ts index a792c95a1c5..d50bd9d9f0e 100644 --- a/packages/protocol/utils/generate_genesis/main.ts +++ b/packages/protocol/utils/generate_genesis/main.ts @@ -18,13 +18,15 @@ async function main() { : path.join(process.cwd(), process.argv[2]), ); - const contractOwner = config.contractOwner; + const ownerTimelockController = config.ownerTimelockController; + const ownerSecurityCouncil = config.ownerSecurityCouncil; const chainId = config.chainId; const seedAccounts = config.seedAccounts; const predeployERC20 = config.predeployERC20; if ( - !ethers.utils.isAddress(contractOwner) || + !ethers.utils.isAddress(ownerTimelockController) || + !ethers.utils.isAddress(ownerSecurityCouncil) || !Number.isInteger(chainId) || !Array.isArray(seedAccounts) || !seedAccounts.every((seedAccount) => { @@ -38,7 +40,8 @@ async function main() { ) { throw new Error( `invalid input: ${JSON.stringify({ - contractOwner, + ownerTimelockController, + ownerSecurityCouncil, chainId, seedAccounts, })}`, diff --git a/packages/protocol/utils/generate_genesis/taikoL2.ts b/packages/protocol/utils/generate_genesis/taikoL2.ts index 39d1e9d4ed5..b7e33c9a0c1 100644 --- a/packages/protocol/utils/generate_genesis/taikoL2.ts +++ b/packages/protocol/utils/generate_genesis/taikoL2.ts @@ -17,7 +17,13 @@ export async function deployTaikoL2( config: Config, result: Result, ): Promise { - const { contractOwner, chainId, seedAccounts } = config; + const { + ownerTimelockController, + ownerSecurityCouncil, + ownerChainId, + chainId, + seedAccounts, + } = config; const alloc: any = {}; @@ -42,7 +48,9 @@ export async function deployTaikoL2( console.log("\n"); const contractConfigs: any = await generateContractConfigs( - contractOwner, + ownerTimelockController, + ownerSecurityCouncil, + ownerChainId, chainId, config.contractAddresses, config.param1559, @@ -112,7 +120,9 @@ export async function deployTaikoL2( // generateContractConfigs returns all L2 contracts address, deployedBytecode, // and initialized variables. async function generateContractConfigs( - contractOwner: string, + ownerTimelockController: string, + ownerSecurityCouncil: string, + ownerChainId: number, chainId: number, hardCodedAddresses: any, param1559: any, @@ -192,7 +202,7 @@ async function generateContractConfigs( addressMap[contractName] = hardCodedAddresses[contractName]; } else { addressMap[contractName] = ethers.utils.getCreate2Address( - contractOwner, + ownerSecurityCouncil, ethers.utils.keccak256( ethers.utils.toUtf8Bytes(`${chainId}${contractName}`), ), @@ -212,7 +222,7 @@ async function generateContractConfigs( contractArtifacts.SharedAddressManagerImpl.deployedBytecode .object, variables: { - _owner: contractOwner, + _owner: ownerSecurityCouncil, }, }, SharedAddressManager: { @@ -224,7 +234,7 @@ async function generateContractConfigs( _initialized: 1, _initializing: false, // Ownable2Upgradeable - _owner: contractOwner, + _owner: ownerSecurityCouncil, // AddressManager addresses: { [chainId]: { @@ -267,7 +277,7 @@ async function generateContractConfigs( addressMap, ), variables: { - _owner: contractOwner, + _owner: ownerSecurityCouncil, }, }, Bridge: { @@ -281,7 +291,7 @@ async function generateContractConfigs( _reentry: 1, // _FALSE _paused: 1, // _FALSE // Ownable2Upgradeable - _owner: contractOwner, + _owner: ownerSecurityCouncil, // AddressResolver addressManager: addressMap.SharedAddressManager, }, @@ -297,7 +307,7 @@ async function generateContractConfigs( addressMap, ), variables: { - _owner: contractOwner, + _owner: ownerSecurityCouncil, }, }, ERC20Vault: { @@ -312,7 +322,7 @@ async function generateContractConfigs( _reentry: 1, // _FALSE _paused: 1, // _FALSE // Ownable2Upgradeable - _owner: contractOwner, + _owner: ownerSecurityCouncil, // AddressResolver addressManager: addressMap.SharedAddressManager, }, @@ -328,7 +338,7 @@ async function generateContractConfigs( addressMap, ), variables: { - _owner: contractOwner, + _owner: ownerSecurityCouncil, }, }, ERC721Vault: { @@ -343,7 +353,7 @@ async function generateContractConfigs( _reentry: 1, // _FALSE _paused: 1, // _FALSE // Ownable2Upgradeable - _owner: contractOwner, + _owner: ownerSecurityCouncil, // AddressResolver addressManager: addressMap.SharedAddressManager, }, @@ -359,7 +369,7 @@ async function generateContractConfigs( addressMap, ), variables: { - _owner: contractOwner, + _owner: ownerSecurityCouncil, }, }, ERC1155Vault: { @@ -374,7 +384,7 @@ async function generateContractConfigs( _reentry: 1, // _FALSE _paused: 1, // _FALSE // Ownable2Upgradeable - _owner: contractOwner, + _owner: ownerSecurityCouncil, // AddressResolver addressManager: addressMap.SharedAddressManager, }, @@ -405,7 +415,7 @@ async function generateContractConfigs( addressMap, ), variables: { - _owner: contractOwner, + _owner: ownerSecurityCouncil, }, }, SignalService: { @@ -420,7 +430,7 @@ async function generateContractConfigs( _reentry: 1, // _FALSE _paused: 1, // _FALSE // Ownable2Upgradeable - _owner: contractOwner, + _owner: ownerSecurityCouncil, authorizedAddresses: { [addressMap.TaikoL2]: ethers.utils.hexZeroPad( ethers.utils.hexlify(chainId), @@ -441,7 +451,7 @@ async function generateContractConfigs( addressMap, ), variables: { - _owner: contractOwner, + _owner: ownerTimelockController, }, }, TaikoL2: { @@ -450,8 +460,9 @@ async function generateContractConfigs( variables: { // TaikoL2 // Ownable2Upgradeable - _owner: contractOwner, - signalService: addressMap.SignalService, + _owner: ownerTimelockController, + addressManager: addressMap.RollupAddressManager, + ownerChainId, gasExcess: param1559.gasExcess, // keccak256(abi.encodePacked(block.chainid, basefee, ancestors)) publicInputHash: `${ethers.utils.solidityKeccak256( @@ -479,7 +490,7 @@ async function generateContractConfigs( contractArtifacts.RollupAddressManagerImpl.deployedBytecode .object, variables: { - _owner: contractOwner, + _owner: ownerSecurityCouncil, }, }, RollupAddressManager: { @@ -491,13 +502,16 @@ async function generateContractConfigs( _initialized: 1, _initializing: false, // Ownable2Upgradeable - _owner: contractOwner, + _owner: ownerSecurityCouncil, // AddressManager addresses: { [chainId]: { [ethers.utils.hexlify( ethers.utils.toUtf8Bytes("taiko"), )]: addressMap.TaikoL2, + [ethers.utils.hexlify( + ethers.utils.toUtf8Bytes("bridge"), + )]: addressMap.Bridge, [ethers.utils.hexlify( ethers.utils.toUtf8Bytes("signal_service"), )]: addressMap.SignalService, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 454d8ae7fac..787b0203e43 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,10 +10,10 @@ importers: devDependencies: lefthook: specifier: ^1.5.2 - version: 1.5.2 + version: 1.5.5 prettier: specifier: ^3.0.3 - version: 3.0.3 + version: 3.1.0 packages/branding: {} @@ -21,19 +21,19 @@ importers: dependencies: '@wagmi/core': specifier: ^1.4.6 - version: 1.4.6(lokijs@1.5.12)(react@18.2.0)(typescript@5.2.2)(viem@1.18.9) + version: 1.4.10(react@18.2.0)(typescript@5.3.3)(viem@1.19.11) '@web3modal/ethereum': specifier: ^2.7.1 - version: 2.7.1(@wagmi/core@1.4.6)(viem@1.18.9) + version: 2.7.1(@wagmi/core@1.4.10)(viem@1.19.11) '@web3modal/html': specifier: ^2.7.1 version: 2.7.1(react@18.2.0) '@zerodevx/svelte-toast': specifier: ^0.9.5 - version: 0.9.5(svelte@4.2.3) + version: 0.9.5(svelte@4.2.8) axios: specifier: ^1.6.1 - version: 1.6.1(debug@4.3.4) + version: 1.6.2(debug@4.3.4) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -48,23 +48,23 @@ importers: version: 3.0.0 svelte-i18n: specifier: ^3.7.4 - version: 3.7.4(svelte@4.2.3) + version: 3.7.4(svelte@4.2.8) viem: specifier: ^1.18.9 - version: 1.18.9(typescript@5.2.2)(zod@3.22.4) + version: 1.19.11(typescript@5.3.3)(zod@3.22.4) devDependencies: '@playwright/test': specifier: ^1.39.0 - version: 1.39.0 + version: 1.40.1 '@sveltejs/adapter-auto': specifier: ^2.1.1 - version: 2.1.1(@sveltejs/kit@1.27.4) + version: 2.1.1(@sveltejs/kit@1.27.7) '@sveltejs/adapter-static': specifier: ^2.0.3 - version: 2.0.3(@sveltejs/kit@1.27.4) + version: 2.0.3(@sveltejs/kit@1.27.7) '@sveltejs/kit': specifier: ^1.27.4 - version: 1.27.4(svelte@4.2.3)(vite@4.5.0) + version: 1.27.7(svelte@4.2.8)(vite@4.5.1) '@types/debug': specifier: ^4.1.12 version: 4.1.12 @@ -72,44 +72,44 @@ importers: specifier: ^3.0.6 version: 3.0.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.10.0 - version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) + specifier: ^6.13.2 + version: 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.10.0 - version: 6.10.0(eslint@8.53.0)(typescript@5.2.2) + specifier: ^6.13.2 + version: 6.13.2(eslint@8.55.0)(typescript@5.3.3) '@vitest/coverage-v8': specifier: ^0.33.0 version: 0.33.0(vitest@0.32.4) '@wagmi/cli': specifier: ^1.5.2 - version: 1.5.2(@wagmi/core@1.4.6)(typescript@5.2.2) + version: 1.5.2(@wagmi/core@1.4.10)(typescript@5.3.3) abitype: specifier: ^0.8.11 - version: 0.8.11(typescript@5.2.2) + version: 0.8.11(typescript@5.3.3) ajv: specifier: ^8.12.0 version: 8.12.0 autoprefixer: specifier: ^10.4.16 - version: 10.4.16(postcss@8.4.31) + version: 10.4.16(postcss@8.4.32) daisyui: specifier: 3.1.7 - version: 3.1.7(postcss@8.4.31) + version: 3.1.7(postcss@8.4.32) dotenv: specifier: ^16.3.1 version: 16.3.1 eslint: specifier: ^8.53.0 - version: 8.53.0 + version: 8.55.0 eslint-config-prettier: specifier: ^8.10.0 - version: 8.10.0(eslint@8.53.0) + version: 8.10.0(eslint@8.55.0) eslint-plugin-simple-import-sort: specifier: ^10.0.0 - version: 10.0.0(eslint@8.53.0) + version: 10.0.0(eslint@8.55.0) eslint-plugin-svelte: specifier: ^2.35.0 - version: 2.35.0(eslint@8.53.0)(svelte@4.2.3) + version: 2.35.1(eslint@8.55.0)(svelte@4.2.8) ethereum-address: specifier: ^0.0.4 version: 0.0.4 @@ -121,22 +121,22 @@ importers: version: 1.5.12 postcss: specifier: ^8.4.31 - version: 8.4.31 + version: 8.4.32 prettier: specifier: ^3.0.3 - version: 3.0.3 + version: 3.1.0 prettier-plugin-svelte: specifier: ^3.1.0 - version: 3.1.0(prettier@3.0.3)(svelte@4.2.3) + version: 3.1.2(prettier@3.1.0)(svelte@4.2.8) svelte: specifier: ^4.2.3 - version: 4.2.3 + version: 4.2.8 svelte-check: specifier: ^3.6.0 - version: 3.6.0(postcss@8.4.31)(svelte@4.2.3) + version: 3.6.2(postcss@8.4.32)(svelte@4.2.8) tailwindcss: specifier: ^3.3.5 - version: 3.3.5 + version: 3.3.6 ts-morph: specifier: ^19.0.0 version: 19.0.0 @@ -145,13 +145,13 @@ importers: version: 2.6.2 typescript: specifier: ^5.2.2 - version: 5.2.2 + version: 5.3.3 vite: specifier: ^4.5.0 - version: 4.5.0(@types/node@20.9.0) + version: 4.5.1(@types/node@20.10.4) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.2.1(typescript@5.2.2)(vite@4.5.0) + version: 4.2.2(typescript@5.3.3)(vite@4.5.1) vitest: specifier: ^0.32.4 version: 0.32.4(jsdom@22.1.0) @@ -165,6 +165,55 @@ importers: packages/guardian-prover-health-check: {} + packages/guardian-prover-health-check-ui: + dependencies: + axios: + specifier: ^1.6.2 + version: 1.6.2(debug@4.3.4) + ethers: + specifier: ^5.0.0 + version: 5.7.2 + svelte-spa-router: + specifier: ^3.3.0 + version: 3.3.0 + devDependencies: + '@sveltejs/vite-plugin-svelte': + specifier: ^1.1.0 + version: 1.4.0(svelte@3.59.2)(vite@3.2.7) + '@tsconfig/svelte': + specifier: ^3.0.0 + version: 3.0.0 + autoprefixer: + specifier: ^10.4.16 + version: 10.4.16(postcss@8.4.32) + daisyui: + specifier: ^3.9.4 + version: 3.9.4 + postcss: + specifier: ^8.4.32 + version: 8.4.32 + svelte: + specifier: ^3.52.0 + version: 3.59.2 + svelte-check: + specifier: ^2.9.2 + version: 2.10.3(@babel/core@7.23.5)(node-sass@7.0.3)(postcss@8.4.32)(svelte@3.59.2) + svelte-preprocess: + specifier: ^4.10.7 + version: 4.10.7(@babel/core@7.23.5)(node-sass@7.0.3)(postcss@8.4.32)(svelte@3.59.2)(typescript@4.9.5) + tailwindcss: + specifier: ^3.3.6 + version: 3.3.6 + tslib: + specifier: ^2.4.0 + version: 2.6.2 + typescript: + specifier: ^4.6.4 + version: 4.9.5 + vite: + specifier: ^3.2.3 + version: 3.2.7 + packages/protocol: dependencies: merkletreejs: @@ -173,37 +222,37 @@ importers: devDependencies: '@defi-wonderland/smock': specifier: ^2.3.4 - version: 2.3.5(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3)(ethers@5.7.2)(hardhat@2.18.2) + version: 2.3.5(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3)(ethers@5.7.2)(hardhat@2.19.2) '@foundry-rs/hardhat-forge': specifier: ^0.1.17 - version: 0.1.17(@nomiclabs/hardhat-ethers@2.2.3)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.18.2) + version: 0.1.17(@nomiclabs/hardhat-ethers@2.2.3)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.19.2) '@nomicfoundation/hardhat-foundry': specifier: ^1.1.1 - version: 1.1.1(hardhat@2.18.2) + version: 1.1.1(hardhat@2.19.2) '@nomicfoundation/hardhat-network-helpers': specifier: ^1.0.9 - version: 1.0.9(hardhat@2.18.2) + version: 1.0.10(hardhat@2.19.2) '@nomiclabs/hardhat-ethers': specifier: ^2.2.3 - version: 2.2.3(ethers@5.7.2)(hardhat@2.18.2) + version: 2.2.3(ethers@5.7.2)(hardhat@2.19.2) '@nomiclabs/hardhat-etherscan': specifier: ^3.1.7 - version: 3.1.7(hardhat@2.18.2) + version: 3.1.8(hardhat@2.19.2) '@nomiclabs/hardhat-waffle': specifier: ^2.0.6 - version: 2.0.6(@nomiclabs/hardhat-ethers@2.2.3)(@types/sinon-chai@3.2.12)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.18.2) + version: 2.0.6(@nomiclabs/hardhat-ethers@2.2.3)(@types/sinon-chai@3.2.12)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.19.2) '@openzeppelin/hardhat-upgrades': specifier: ^2.3.3 - version: 2.4.3(@nomicfoundation/hardhat-ethers@3.0.5)(ethers@5.7.2)(hardhat@2.18.2) + version: 2.5.0(@nomicfoundation/hardhat-ethers@3.0.5)(ethers@5.7.2)(hardhat@2.19.2) '@typechain/ethers-v5': specifier: ^11.1.2 - version: 11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.3.2)(typescript@5.2.2) + version: 11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.3.2)(typescript@5.3.3) '@typechain/hardhat': specifier: ^9.1.0 - version: 9.1.0(@typechain/ethers-v6@0.5.1)(ethers@5.7.2)(hardhat@2.18.2)(typechain@8.3.2) + version: 9.1.0(@typechain/ethers-v6@0.5.1)(ethers@5.7.2)(hardhat@2.19.2)(typechain@8.3.2) '@types/chai': specifier: ^4.3.8 - version: 4.3.10 + version: 4.3.11 '@types/glob': specifier: ^8.1.0 version: 8.1.0 @@ -212,13 +261,13 @@ importers: version: 10.0.6 '@types/node': specifier: ^20.8.6 - version: 20.9.0 + version: 20.10.4 '@typescript-eslint/eslint-plugin': specifier: ^6.7.5 - version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) + version: 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: ^6.7.5 - version: 6.10.0(eslint@8.53.0)(typescript@5.2.2) + version: 6.13.2(eslint@8.55.0)(typescript@5.3.3) chai: specifier: ^4.3.10 version: 4.3.10 @@ -230,25 +279,25 @@ importers: version: 16.3.1 eslint: specifier: ^8.51.0 - version: 8.53.0 + version: 8.55.0 eslint-config-prettier: specifier: ^9.0.0 - version: 9.0.0(eslint@8.53.0) + version: 9.1.0(eslint@8.55.0) eslint-config-standard: specifier: ^17.1.0 - version: 17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.53.0) + version: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) eslint-plugin-import: specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@6.10.0)(eslint@8.53.0) + version: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@8.53.0) + version: 11.1.0(eslint@8.55.0) eslint-plugin-prettier: specifier: ^5.0.1 - version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3) + version: 5.0.1(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0) eslint-plugin-promise: specifier: ^6.1.1 - version: 6.1.1(eslint@8.53.0) + version: 6.1.1(eslint@8.55.0) ethers: specifier: ^5.7.2 version: 5.7.2 @@ -257,49 +306,49 @@ importers: version: 10.3.10 hardhat: specifier: ^2.18.1 - version: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + version: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) hardhat-abi-exporter: specifier: ^2.10.1 - version: 2.10.1(hardhat@2.18.2) + version: 2.10.1(hardhat@2.19.2) hardhat-contract-sizer: specifier: ^2.10.0 - version: 2.10.0(hardhat@2.18.2) + version: 2.10.0(hardhat@2.19.2) hardhat-docgen: specifier: ^1.3.0 - version: 1.3.0(hardhat@2.18.2)(prettier@3.0.3) + version: 1.3.0(hardhat@2.19.2)(prettier@3.1.0) hardhat-gas-reporter: specifier: ^1.0.9 - version: 1.0.9(hardhat@2.18.2) + version: 1.0.9(hardhat@2.19.2) hardhat-preprocessor: specifier: ^0.1.5 - version: 0.1.5(hardhat@2.18.2) + version: 0.1.5(hardhat@2.19.2) merkle-patricia-tree: specifier: ^4.2.4 version: 4.2.4 prettier: specifier: ^3.0.3 - version: 3.0.3 + version: 3.1.0 rlp: specifier: ^3.0.0 version: 3.0.0 solhint: specifier: ^3.6.2 - version: 3.6.2(typescript@5.2.2) + version: 3.6.2(typescript@5.3.3) solidity-coverage: specifier: github:taikoxyz/solidity-coverage - version: github.com/taikoxyz/solidity-coverage/ceb49fd1f6041e4fcd26079dfb0d3b0f58c812e5(hardhat@2.18.2) + version: github.com/taikoxyz/solidity-coverage/ceb49fd1f6041e4fcd26079dfb0d3b0f58c812e5(hardhat@2.19.2) solidity-docgen: specifier: 0.6.0-beta.36 - version: 0.6.0-beta.36(hardhat@2.18.2) + version: 0.6.0-beta.36(hardhat@2.19.2) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.9.0)(typescript@5.2.2) + version: 10.9.1(@types/node@20.10.4)(typescript@5.3.3) typechain: specifier: ^8.3.2 - version: 8.3.2(typescript@5.2.2) + version: 8.3.2(typescript@5.3.3) typescript: specifier: ^5.2.2 - version: 5.2.2 + version: 5.3.3 packages/relayer: {} @@ -325,7 +374,7 @@ importers: version: 0.8.19(@coinbase/wallet-sdk@3.7.2)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.5) axios: specifier: ^1.2.0 - version: 1.5.1 + version: 1.6.2(debug@4.3.4) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -344,7 +393,7 @@ importers: devDependencies: '@babel/preset-env': specifier: ^7.16.0 - version: 7.23.2(@babel/core@7.23.3) + version: 7.23.5(@babel/core@7.23.5) '@sveltejs/vite-plugin-svelte': specifier: ^1.0.1 version: 1.4.0(svelte@3.59.2)(vite@3.2.7) @@ -353,7 +402,7 @@ importers: version: 5.0.2 '@types/eslint': specifier: ^8.2.1 - version: 8.44.6 + version: 8.44.8 '@types/estree': specifier: ^0.0.50 version: 0.0.50 @@ -362,25 +411,25 @@ importers: version: 27.5.2 '@types/mixpanel': specifier: ^2.14.3 - version: 2.14.7 + version: 2.14.8 '@types/sanitize-html': specifier: ^2.6.2 - version: 2.9.3 + version: 2.9.5 '@typescript-eslint/eslint-plugin': specifier: ^6.6.0 - version: 6.8.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@4.9.5) + version: 6.13.2(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^5.16.0 - version: 5.62.0(eslint@8.53.0)(typescript@4.9.5) + version: 5.62.0(eslint@8.55.0)(typescript@4.9.5) '@zerodevx/svelte-toast': specifier: ^0.6.3 version: 0.6.3 autoprefixer: specifier: ^10.4.13 - version: 10.4.16(postcss@8.4.31) + version: 10.4.16(postcss@8.4.32) babel-jest: specifier: ^27.3.1 - version: 27.5.1(@babel/core@7.23.3) + version: 27.5.1(@babel/core@7.23.5) babel-plugin-transform-es2015-modules-commonjs: specifier: ^6.26.2 version: 6.26.2 @@ -395,13 +444,13 @@ importers: version: 7.0.3 postcss: specifier: ^8.4.19 - version: 8.4.31 + version: 8.4.32 postcss-cli: specifier: ^7.1.2 version: 7.1.2 postcss-loader: specifier: ^7.3.3 - version: 7.3.3(postcss@8.4.31)(typescript@4.9.5)(webpack@5.89.0) + version: 7.3.3(postcss@8.4.32)(typescript@4.9.5)(webpack@5.89.0) prettier: specifier: 2.7.1 version: 2.7.1 @@ -416,7 +465,7 @@ importers: version: 3.59.2 svelte-check: specifier: ^2.8.0 - version: 2.10.3(@babel/core@7.23.3)(node-sass@7.0.3)(postcss@8.4.31)(svelte@3.59.2) + version: 2.10.3(@babel/core@7.23.5)(node-sass@7.0.3)(postcss@8.4.32)(svelte@3.59.2) svelte-heros-v2: specifier: ^0.3.10 version: 0.3.21(svelte@3.59.2) @@ -428,22 +477,22 @@ importers: version: 3.1.9(svelte@3.59.2) svelte-preprocess: specifier: ^4.10.7 - version: 4.10.7(@babel/core@7.23.3)(node-sass@7.0.3)(postcss@8.4.31)(svelte@3.59.2)(typescript@4.9.5) + version: 4.10.7(@babel/core@7.23.5)(node-sass@7.0.3)(postcss@8.4.32)(svelte@3.59.2)(typescript@4.9.5) tailwindcss: specifier: ^3.2.4 - version: 3.3.3 + version: 3.3.6 theme-change: specifier: ^2.2.0 version: 2.5.0 ts-jest: specifier: ^27.0.7 - version: 27.1.5(@babel/core@7.23.3)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5) + version: 27.1.5(@babel/core@7.23.5)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5) ts-jest-mock-import-meta: specifier: ^0.12.0 version: 0.12.0(ts-jest@27.1.5) ts-loader: specifier: ^9.2.6 - version: 9.5.0(typescript@4.9.5)(webpack@5.89.0) + version: 9.5.1(typescript@4.9.5)(webpack@5.89.0) tslib: specifier: ^2.4.0 version: 2.6.2 @@ -479,7 +528,7 @@ importers: version: 0.8.19(@coinbase/wallet-sdk@3.7.2)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.5) axios: specifier: ^1.2.0 - version: 1.5.1 + version: 1.6.2(debug@4.3.4) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -498,7 +547,7 @@ importers: devDependencies: '@babel/preset-env': specifier: ^7.16.0 - version: 7.23.2(@babel/core@7.23.3) + version: 7.23.5(@babel/core@7.23.5) '@sveltejs/vite-plugin-svelte': specifier: ^1.0.1 version: 1.4.0(svelte@3.59.2)(vite@3.2.7) @@ -507,7 +556,7 @@ importers: version: 5.0.2 '@types/eslint': specifier: ^8.2.1 - version: 8.44.6 + version: 8.44.8 '@types/estree': specifier: ^0.0.50 version: 0.0.50 @@ -516,25 +565,25 @@ importers: version: 27.5.2 '@types/mixpanel': specifier: ^2.14.3 - version: 2.14.7 + version: 2.14.8 '@types/sanitize-html': specifier: ^2.6.2 - version: 2.9.3 + version: 2.9.5 '@typescript-eslint/eslint-plugin': specifier: ^6.6.0 - version: 6.8.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@4.9.5) + version: 6.13.2(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^5.16.0 - version: 5.62.0(eslint@8.53.0)(typescript@4.9.5) + version: 5.62.0(eslint@8.55.0)(typescript@4.9.5) '@zerodevx/svelte-toast': specifier: ^0.6.3 version: 0.6.3 autoprefixer: specifier: ^10.4.13 - version: 10.4.16(postcss@8.4.31) + version: 10.4.16(postcss@8.4.32) babel-jest: specifier: ^27.3.1 - version: 27.5.1(@babel/core@7.23.3) + version: 27.5.1(@babel/core@7.23.5) babel-plugin-transform-es2015-modules-commonjs: specifier: ^6.26.2 version: 6.26.2 @@ -549,13 +598,13 @@ importers: version: 7.0.3 postcss: specifier: ^8.4.19 - version: 8.4.31 + version: 8.4.32 postcss-cli: specifier: ^7.1.2 version: 7.1.2 postcss-loader: specifier: ^7.3.3 - version: 7.3.3(postcss@8.4.31)(typescript@4.9.5)(webpack@5.89.0) + version: 7.3.3(postcss@8.4.32)(typescript@4.9.5)(webpack@5.89.0) prettier: specifier: 2.7.1 version: 2.7.1 @@ -570,7 +619,7 @@ importers: version: 3.59.2 svelte-check: specifier: ^2.8.0 - version: 2.10.3(@babel/core@7.23.3)(node-sass@7.0.3)(postcss@8.4.31)(svelte@3.59.2) + version: 2.10.3(@babel/core@7.23.5)(node-sass@7.0.3)(postcss@8.4.32)(svelte@3.59.2) svelte-heros-v2: specifier: ^0.3.10 version: 0.3.21(svelte@3.59.2) @@ -582,22 +631,22 @@ importers: version: 3.1.9(svelte@3.59.2) svelte-preprocess: specifier: ^4.10.7 - version: 4.10.7(@babel/core@7.23.3)(node-sass@7.0.3)(postcss@8.4.31)(svelte@3.59.2)(typescript@4.9.5) + version: 4.10.7(@babel/core@7.23.5)(node-sass@7.0.3)(postcss@8.4.32)(svelte@3.59.2)(typescript@4.9.5) tailwindcss: specifier: ^3.2.4 - version: 3.3.3 + version: 3.3.6 theme-change: specifier: ^2.2.0 version: 2.5.0 ts-jest: specifier: ^27.0.7 - version: 27.1.5(@babel/core@7.23.3)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5) + version: 27.1.5(@babel/core@7.23.5)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5) ts-jest-mock-import-meta: specifier: ^0.12.0 version: 0.12.0(ts-jest@27.1.5) ts-loader: specifier: ^9.2.6 - version: 9.5.0(typescript@4.9.5)(webpack@5.89.0) + version: 9.5.1(typescript@4.9.5)(webpack@5.89.0) tslib: specifier: ^2.4.0 version: 2.6.2 @@ -618,8 +667,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@adraffy/ens-normalize@1.9.4: - resolution: {integrity: sha512-UK0bHA7hh9cR39V+4gl2/NnBBjoXIxkuWAPCaY4X7fbH4L/azIi7ilWOCjMUYfpJgraLUAqkRi2BqrjME8Rynw==} + /@adraffy/ens-normalize@1.10.0: + resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==} /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} @@ -637,23 +686,23 @@ packages: resolution: {integrity: sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g==} dependencies: '@aws-crypto/util': 1.2.2 - '@aws-sdk/types': 3.433.0 + '@aws-sdk/types': 3.468.0 tslib: 1.14.1 dev: true /@aws-crypto/util@1.2.2: resolution: {integrity: sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg==} dependencies: - '@aws-sdk/types': 3.433.0 + '@aws-sdk/types': 3.468.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 dev: true - /@aws-sdk/types@3.433.0: - resolution: {integrity: sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==} + /@aws-sdk/types@3.468.0: + resolution: {integrity: sha512-rx/9uHI4inRbp2tw3Y4Ih4PNZkVj32h7WneSg3MVgVjAoVD5Zti9KhS5hkvsBxfgmQmg0AQbE+b1sy5WGAgntA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.7.0 tslib: 2.6.2 dev: true @@ -663,56 +712,33 @@ packages: tslib: 2.6.2 dev: true - /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.20 + '@babel/highlight': 7.23.4 chalk: 2.4.2 dev: true - /@babel/compat-data@7.23.2: - resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/core@7.23.2: - resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) - '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.0 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 - convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color dev: true - /@babel/core@7.23.3: - resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} + /@babel/core@7.23.5: + resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/helpers': 7.23.5 + '@babel/parser': 7.23.5 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -722,21 +748,11 @@ packages: - supports-color dev: true - /@babel/generator@7.23.0: - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + /@babel/generator@7.23.5: + resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - jsesc: 2.5.2 - dev: true - - /@babel/generator@7.23.3: - resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 @@ -746,63 +762,63 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.2 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} + /@babel/helper-create-class-features-plugin@7.23.5(@babel/core@7.23.5): + resolution: {integrity: sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.5): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.3): + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.5): resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) @@ -822,65 +838,37 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 - dev: true - - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - dev: true - - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.3): - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/types': 7.23.5 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -892,7 +880,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -900,25 +888,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.3): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.5): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.5): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -928,25 +916,25 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} dev: true @@ -955,8 +943,8 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} dev: true @@ -966,22 +954,22 @@ packages: dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true - /@babel/helpers@7.23.2: - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + /@babel/helpers@7.23.5: + resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -989,981 +977,875 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.0 - dev: true - - /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + /@babel/parser@7.23.5: + resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.3) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - dev: true - - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.23.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.5): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.5): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.5): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.5): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.2(@babel/core@7.23.3): - resolution: {integrity: sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==} + /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.3): - resolution: {integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==} + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.23.3): - resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==} + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==} + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.5): + resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.3): - resolution: {integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==} + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.23.3): - resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==} + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.23.3): - resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==} + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==} + /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.23.3): - resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==} + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.23.3): - resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==} + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.3): - resolution: {integrity: sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==} + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.3): - resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.3): - resolution: {integrity: sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==} + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.3) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.3): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.5): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.23.3): - resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==} + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.23.3): - resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==} + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==} + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.3 + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.23.3): - resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==} + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-optional-chaining@7.23.0(@babel/core@7.23.3): - resolution: {integrity: sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==} + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==} + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.23.3): - resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==} + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.5): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) dev: true - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.23.3): - resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.23.3): - resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.23.3): - resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.2(@babel/core@7.23.3): - resolution: {integrity: sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==} + /@babel/preset-env@7.23.5(@babel/core@7.23.5): + resolution: {integrity: sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.3 + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.5 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.23.3) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.23.3) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-async-generator-functions': 7.23.2(@babel/core@7.23.3) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.3) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.23.3) - '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.3) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.3) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.23.3) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.23.3) - '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.3) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.23.3) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.23.3) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-modules-amd': 7.23.0(@babel/core@7.23.3) - '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.3) - '@babel/plugin-transform-modules-systemjs': 7.23.0(@babel/core@7.23.3) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.23.3) - '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.23.3) - '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.23.3) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.23.3) - '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.3) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.23.3) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.23.3) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.3) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.3) - '@babel/types': 7.23.0 - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) - babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.3) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) - core-js-compat: 3.33.1 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.5) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.5) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.5) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.5) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.5) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.5) + babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.5) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.5) + core-js-compat: 3.34.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.5): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 esutils: 2.0.3 dev: true @@ -1971,8 +1853,8 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime@7.23.2: - resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} + /@babel/runtime@7.23.5: + resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 @@ -1981,61 +1863,34 @@ packages: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 dev: true - /@babel/traverse@7.23.2: - resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + /@babel/traverse@7.23.5: + resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/traverse@7.23.3: - resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} + /@babel/types@7.23.5: + resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 - debug: 4.3.4(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types@7.23.0: - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - dev: true - - /@babel/types@7.23.3: - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 + '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -2080,7 +1935,7 @@ packages: engines: {node: '>= 10.0.0'} dependencies: '@metamask/safe-event-emitter': 2.0.0 - '@solana/web3.js': 1.87.2 + '@solana/web3.js': 1.87.6 bind-decorator: 1.0.11 bn.js: 5.2.1 buffer: 6.0.3 @@ -2090,7 +1945,7 @@ packages: eth-rpc-errors: 4.0.2 json-rpc-engine: 6.1.0 keccak: 3.0.4 - preact: 10.18.1 + preact: 10.19.2 qs: 6.11.2 rxjs: 6.6.7 sha.js: 2.4.11 @@ -2116,7 +1971,7 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@defi-wonderland/smock@2.3.5(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3)(ethers@5.7.2)(hardhat@2.18.2): + /@defi-wonderland/smock@2.3.5(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3)(ethers@5.7.2)(hardhat@2.19.2): resolution: {integrity: sha512-klANj1hUpc3cd2ShXdVH/bEGwxJd+LxOngkF5gLcIbg6b37RCgMPMmR/94/hgL62F8bfWtuNKsQD7K+c6M5fWQ==} peerDependencies: '@ethersproject/abi': ^5 @@ -2132,10 +1987,10 @@ packages: '@nomicfoundation/ethereumjs-evm': 1.3.2 '@nomicfoundation/ethereumjs-util': 8.0.6 '@nomicfoundation/ethereumjs-vm': 6.4.2 - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.18.2) + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.19.2) diff: 5.1.0 ethers: 5.7.2 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) lodash.isequal: 4.5.0 lodash.isequalwith: 4.4.0 rxjs: 7.8.1 @@ -2178,8 +2033,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.19.5: - resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} + /@esbuild/android-arm64@0.19.8: + resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -2214,8 +2069,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.5: - resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} + /@esbuild/android-arm@0.19.8: + resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -2241,8 +2096,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.19.5: - resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} + /@esbuild/android-x64@0.19.8: + resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -2268,8 +2123,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.5: - resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} + /@esbuild/darwin-arm64@0.19.8: + resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -2295,8 +2150,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.19.5: - resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} + /@esbuild/darwin-x64@0.19.8: + resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -2322,8 +2177,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.19.5: - resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} + /@esbuild/freebsd-arm64@0.19.8: + resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -2349,8 +2204,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.19.5: - resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} + /@esbuild/freebsd-x64@0.19.8: + resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -2376,8 +2231,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.5: - resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} + /@esbuild/linux-arm64@0.19.8: + resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -2403,8 +2258,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.19.5: - resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} + /@esbuild/linux-arm@0.19.8: + resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -2430,8 +2285,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.19.5: - resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} + /@esbuild/linux-ia32@0.19.8: + resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -2466,8 +2321,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.19.5: - resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} + /@esbuild/linux-loong64@0.19.8: + resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -2493,8 +2348,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.5: - resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} + /@esbuild/linux-mips64el@0.19.8: + resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -2520,8 +2375,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.19.5: - resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} + /@esbuild/linux-ppc64@0.19.8: + resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -2547,8 +2402,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.5: - resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} + /@esbuild/linux-riscv64@0.19.8: + resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -2574,8 +2429,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.19.5: - resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} + /@esbuild/linux-s390x@0.19.8: + resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -2601,8 +2456,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.5: - resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} + /@esbuild/linux-x64@0.19.8: + resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -2628,8 +2483,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.5: - resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} + /@esbuild/netbsd-x64@0.19.8: + resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -2655,8 +2510,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.19.5: - resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} + /@esbuild/openbsd-x64@0.19.8: + resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -2682,8 +2537,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.5: - resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} + /@esbuild/sunos-x64@0.19.8: + resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -2709,8 +2564,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.5: - resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} + /@esbuild/win32-arm64@0.19.8: + resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -2736,8 +2591,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.19.5: - resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} + /@esbuild/win32-ia32@0.19.8: + resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -2763,8 +2618,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.19.5: - resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} + /@esbuild/win32-x64@0.19.8: + resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -2772,13 +2627,13 @@ packages: dev: false optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.53.0 + eslint: 8.55.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2787,20 +2642,15 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint-community/regexpp@4.9.1: - resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - - /@eslint/eslintrc@2.1.3: - resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.23.0 - ignore: 5.2.4 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -2809,8 +2659,8 @@ packages: - supports-color dev: true - /@eslint/js@8.53.0: - resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} + /@eslint/js@8.55.0: + resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -2827,7 +2677,7 @@ packages: - utf-8-validate dev: true - /@ethereum-waffle/compiler@3.4.4(typescript@5.2.2): + /@ethereum-waffle/compiler@3.4.4(typescript@5.3.3): resolution: {integrity: sha512-RUK3axJ8IkD5xpWjWoJgyHclOeEzDLQFga6gKpeGxiS/zBu+HB0W2FvsrrLalTFIaPw/CGYACRBSIxqiCqwqTQ==} engines: {node: '>=10.0'} dependencies: @@ -2841,7 +2691,7 @@ packages: node-fetch: 2.7.0 solc: 0.6.12 ts-generator: 0.1.1 - typechain: 3.0.0(typescript@5.2.2) + typechain: 3.0.0(typescript@5.3.3) transitivePeerDependencies: - bufferutil - encoding @@ -3214,8 +3064,8 @@ packages: '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 - /@fastify/busboy@2.0.0: - resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} + /@fastify/busboy@2.1.0: + resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} engines: {node: '>=14'} dev: true @@ -3260,7 +3110,7 @@ packages: ts-interface-checker: 0.1.13 dev: true - /@foundry-rs/hardhat-forge@0.1.17(@nomiclabs/hardhat-ethers@2.2.3)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.18.2): + /@foundry-rs/hardhat-forge@0.1.17(@nomiclabs/hardhat-ethers@2.2.3)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.19.2): resolution: {integrity: sha512-2wxzxA12CQmT11PH/KigyVTNm/4vzsVtzVZow6gwCbC41fTyf73a5qbggHZFRR74JXfmvVSkX1BJitTmdzQvxw==} peerDependencies: '@nomiclabs/hardhat-ethers': ^2.0.0 @@ -3269,17 +3119,17 @@ packages: hardhat: ^2.0.0 dependencies: '@foundry-rs/easy-foundryup': 0.1.3 - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.18.2) - '@nomiclabs/hardhat-waffle': 2.0.6(@nomiclabs/hardhat-ethers@2.2.3)(@types/sinon-chai@3.2.11)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.18.2) - '@types/sinon-chai': 3.2.11 + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.19.2) + '@nomiclabs/hardhat-waffle': 2.0.6(@nomiclabs/hardhat-ethers@2.2.3)(@types/sinon-chai@3.2.12)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.19.2) + '@types/sinon-chai': 3.2.12 '@types/web3': 1.0.19 camelcase-keys: 7.0.2 debug: 4.3.4(supports-color@8.1.1) - ethereum-waffle: 3.4.4(typescript@5.2.2) + ethereum-waffle: 3.4.4(typescript@5.3.3) ethers: 5.7.2 fs-extra: 10.1.0 glob: 7.2.3 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) true-case-path: 2.2.1 ts-interface-checker: 0.1.13 transitivePeerDependencies: @@ -3310,6 +3160,9 @@ packages: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true + /@ioredis/commands@1.2.0: + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -3343,7 +3196,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -3364,7 +3217,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -3401,7 +3254,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 jest-mock: 27.5.1 dev: true @@ -3411,7 +3264,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 20.9.0 + '@types/node': 20.10.4 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -3440,13 +3293,13 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 5.2.1 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 @@ -3486,7 +3339,7 @@ packages: dependencies: '@jest/console': 27.5.1 '@jest/types': 27.5.1 - '@types/istanbul-lib-coverage': 2.0.5 + '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 dev: true @@ -3506,7 +3359,7 @@ packages: resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -3529,10 +3382,10 @@ packages: resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/istanbul-lib-coverage': 2.0.5 - '@types/istanbul-reports': 3.0.3 - '@types/node': 20.9.0 - '@types/yargs': 16.0.7 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.10.4 + '@types/yargs': 16.0.9 chalk: 4.1.2 dev: true @@ -3878,7 +3731,7 @@ packages: dependencies: '@nomicfoundation/ethereumjs-common': 3.1.2 '@nomicfoundation/ethereumjs-util': 8.0.6 - '@types/async-eventemitter': 0.2.3 + '@types/async-eventemitter': 0.2.4 async-eventemitter: 0.2.4 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 @@ -4023,7 +3876,7 @@ packages: '@nomicfoundation/ethereumjs-trie': 5.0.5 '@nomicfoundation/ethereumjs-tx': 4.1.2 '@nomicfoundation/ethereumjs-util': 8.0.6 - '@types/async-eventemitter': 0.2.3 + '@types/async-eventemitter': 0.2.4 async-eventemitter: 0.2.4 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 @@ -4057,7 +3910,7 @@ packages: - utf-8-validate dev: true - /@nomicfoundation/hardhat-ethers@3.0.5(ethers@5.7.2)(hardhat@2.18.2): + /@nomicfoundation/hardhat-ethers@3.0.5(ethers@5.7.2)(hardhat@2.19.2): resolution: {integrity: sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==} peerDependencies: ethers: ^6.1.0 @@ -4065,28 +3918,28 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) ethers: 5.7.2 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color dev: true - /@nomicfoundation/hardhat-foundry@1.1.1(hardhat@2.18.2): + /@nomicfoundation/hardhat-foundry@1.1.1(hardhat@2.19.2): resolution: {integrity: sha512-cXGCBHAiXas9Pg9MhMOpBVQCkWRYoRFG7GJJAph+sdQsfd22iRs5U5Vs9XmpGEQd1yEvYISQZMeE68Nxj65iUQ==} peerDependencies: hardhat: ^2.17.2 dependencies: chalk: 2.4.2 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) dev: true - /@nomicfoundation/hardhat-network-helpers@1.0.9(hardhat@2.18.2): - resolution: {integrity: sha512-OXWCv0cHpwLUO2u7bFxBna6dQtCC2Gg/aN/KtJLO7gmuuA28vgmVKYFRCDUqrbjujzgfwQ2aKyZ9Y3vSmDqS7Q==} + /@nomicfoundation/hardhat-network-helpers@1.0.10(hardhat@2.19.2): + resolution: {integrity: sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==} peerDependencies: hardhat: ^2.9.5 dependencies: ethereumjs-util: 7.1.5 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) dev: true /@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1: @@ -4195,18 +4048,19 @@ packages: '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.1 dev: true - /@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.18.2): + /@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.19.2): resolution: {integrity: sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==} peerDependencies: ethers: ^5.0.0 hardhat: ^2.0.0 dependencies: ethers: 5.7.2 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) dev: true - /@nomiclabs/hardhat-etherscan@3.1.7(hardhat@2.18.2): - resolution: {integrity: sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==} + /@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.19.2): + resolution: {integrity: sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ==} + deprecated: The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead peerDependencies: hardhat: ^2.0.4 dependencies: @@ -4216,32 +4070,16 @@ packages: chalk: 2.4.2 debug: 4.3.4(supports-color@8.1.1) fs-extra: 7.0.1 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) lodash: 4.17.21 semver: 6.3.1 table: 6.8.1 - undici: 5.26.4 + undici: 5.28.2 transitivePeerDependencies: - supports-color dev: true - /@nomiclabs/hardhat-waffle@2.0.6(@nomiclabs/hardhat-ethers@2.2.3)(@types/sinon-chai@3.2.11)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.18.2): - resolution: {integrity: sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg==} - peerDependencies: - '@nomiclabs/hardhat-ethers': ^2.0.0 - '@types/sinon-chai': ^3.2.3 - ethereum-waffle: '*' - ethers: ^5.0.0 - hardhat: ^2.0.0 - dependencies: - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.18.2) - '@types/sinon-chai': 3.2.11 - ethereum-waffle: 3.4.4(typescript@5.2.2) - ethers: 5.7.2 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) - dev: true - - /@nomiclabs/hardhat-waffle@2.0.6(@nomiclabs/hardhat-ethers@2.2.3)(@types/sinon-chai@3.2.12)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.18.2): + /@nomiclabs/hardhat-waffle@2.0.6(@nomiclabs/hardhat-ethers@2.2.3)(@types/sinon-chai@3.2.12)(ethereum-waffle@3.4.4)(ethers@5.7.2)(hardhat@2.19.2): resolution: {integrity: sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg==} peerDependencies: '@nomiclabs/hardhat-ethers': ^2.0.0 @@ -4250,11 +4088,11 @@ packages: ethers: ^5.0.0 hardhat: ^2.0.0 dependencies: - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.18.2) + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.19.2) '@types/sinon-chai': 3.2.12 - ethereum-waffle: 3.4.4(typescript@5.2.2) + ethereum-waffle: 3.4.4(typescript@5.3.3) ethers: 5.7.2 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) dev: true /@npmcli/fs@1.1.1: @@ -4277,7 +4115,7 @@ packages: resolution: {integrity: sha512-CKs5mMLL7+nXyugsHaAw0aPfLwFNA+vq7ftuJ3sWUKdbQRZsJ+/189HAwp2/BJC64yUbarEeWqOh3jNpaKRJLw==} dependencies: '@openzeppelin/defender-base-client': 1.52.0(debug@4.3.4) - axios: 1.6.1(debug@4.3.4) + axios: 1.6.2(debug@4.3.4) ethers: 5.7.2 lodash: 4.17.21 node-fetch: 2.7.0 @@ -4291,9 +4129,9 @@ packages: /@openzeppelin/defender-base-client@1.52.0(debug@4.3.4): resolution: {integrity: sha512-VFNu/pjVpAnFKIfuKT1cn9dRpbcO8FO8EAmVZ2XrrAsKXEWDZ3TNBtACxmj7fAu0ad/TzRkb66o5rMts7Fv7jw==} dependencies: - amazon-cognito-identity-js: 6.3.6 + amazon-cognito-identity-js: 6.3.7 async-retry: 1.3.3 - axios: 1.6.1(debug@4.3.4) + axios: 1.6.2(debug@4.3.4) lodash: 4.17.21 node-fetch: 2.7.0 transitivePeerDependencies: @@ -4304,7 +4142,7 @@ packages: /@openzeppelin/defender-sdk-base-client@1.6.0: resolution: {integrity: sha512-LUhSVdmN4XapWzrfdl5+38IOtwVoBQL+9Nq/4bLfx7IwTDB9fwGYSGhGTDETkVQPN4zqJ7m8I7CNowilL4Ta6A==} dependencies: - amazon-cognito-identity-js: 6.3.6 + amazon-cognito-identity-js: 6.3.7 async-retry: 1.3.3 transitivePeerDependencies: - encoding @@ -4315,15 +4153,15 @@ packages: dependencies: '@ethersproject/abi': 5.7.0 '@openzeppelin/defender-sdk-base-client': 1.6.0 - axios: 1.6.1(debug@4.3.4) + axios: 1.6.2(debug@4.3.4) lodash: 4.17.21 transitivePeerDependencies: - debug - encoding dev: true - /@openzeppelin/hardhat-upgrades@2.4.3(@nomicfoundation/hardhat-ethers@3.0.5)(ethers@5.7.2)(hardhat@2.18.2): - resolution: {integrity: sha512-MYLbG6E3llFOOfphDSrFtjGmSRelfWc1hW0wcK1ANR2t0ZEetahGx4dAARPKev5R4WsckKT1wlxb8pmabczc2Q==} + /@openzeppelin/hardhat-upgrades@2.5.0(@nomicfoundation/hardhat-ethers@3.0.5)(ethers@5.7.2)(hardhat@2.19.2): + resolution: {integrity: sha512-pRsqyRbp8LX9sTSMbL7jx4NjqjN/4PlKngmuAyRQIheYTGbRIs3FW3WyLuiCjkDlTETfmOsmzrnZxJmxDmxZIA==} hasBin: true peerDependencies: '@nomicfoundation/hardhat-ethers': ^3.0.0 @@ -4334,7 +4172,7 @@ packages: '@nomicfoundation/hardhat-verify': optional: true dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@5.7.2)(hardhat@2.18.2) + '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@5.7.2)(hardhat@2.19.2) '@openzeppelin/defender-admin-client': 1.52.0(debug@4.3.4) '@openzeppelin/defender-base-client': 1.52.0(debug@4.3.4) '@openzeppelin/defender-sdk-base-client': 1.6.0 @@ -4344,9 +4182,9 @@ packages: debug: 4.3.4(supports-color@8.1.1) ethereumjs-util: 7.1.5 ethers: 5.7.2 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) proper-lockfile: 4.1.2 - undici: 5.26.5 + undici: 5.28.2 transitivePeerDependencies: - bufferutil - encoding @@ -4365,11 +4203,139 @@ packages: ethereumjs-util: 7.1.5 minimist: 1.2.8 proper-lockfile: 4.1.2 - solidity-ast: 0.4.52 + solidity-ast: 0.4.55 transitivePeerDependencies: - supports-color dev: true + /@parcel/watcher-android-arm64@2.3.0: + resolution: {integrity: sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@parcel/watcher-darwin-arm64@2.3.0: + resolution: {integrity: sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@parcel/watcher-darwin-x64@2.3.0: + resolution: {integrity: sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@parcel/watcher-freebsd-x64@2.3.0: + resolution: {integrity: sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-arm-glibc@2.3.0: + resolution: {integrity: sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-arm64-glibc@2.3.0: + resolution: {integrity: sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-arm64-musl@2.3.0: + resolution: {integrity: sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-x64-glibc@2.3.0: + resolution: {integrity: sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-x64-musl@2.3.0: + resolution: {integrity: sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-wasm@2.3.0: + resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} + engines: {node: '>= 10.0.0'} + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.5 + napi-wasm: 1.1.0 + bundledDependencies: + - napi-wasm + + /@parcel/watcher-win32-arm64@2.3.0: + resolution: {integrity: sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@parcel/watcher-win32-ia32@2.3.0: + resolution: {integrity: sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@parcel/watcher-win32-x64@2.3.0: + resolution: {integrity: sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@parcel/watcher@2.3.0: + resolution: {integrity: sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==} + engines: {node: '>= 10.0.0'} + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.5 + node-addon-api: 7.0.0 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.3.0 + '@parcel/watcher-darwin-arm64': 2.3.0 + '@parcel/watcher-darwin-x64': 2.3.0 + '@parcel/watcher-freebsd-x64': 2.3.0 + '@parcel/watcher-linux-arm-glibc': 2.3.0 + '@parcel/watcher-linux-arm64-glibc': 2.3.0 + '@parcel/watcher-linux-arm64-musl': 2.3.0 + '@parcel/watcher-linux-x64-glibc': 2.3.0 + '@parcel/watcher-linux-x64-musl': 2.3.0 + '@parcel/watcher-win32-arm64': 2.3.0 + '@parcel/watcher-win32-ia32': 2.3.0 + '@parcel/watcher-win32-x64': 2.3.0 + /@pedrouid/environment@1.0.1: resolution: {integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==} dev: false @@ -4393,16 +4359,16 @@ packages: tslib: 2.6.2 dev: true - /@playwright/test@1.39.0: - resolution: {integrity: sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==} + /@playwright/test@1.40.1: + resolution: {integrity: sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==} engines: {node: '>=16'} hasBin: true dependencies: - playwright: 1.39.0 + playwright: 1.40.1 dev: true - /@polka/url@1.0.0-next.23: - resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} + /@polka/url@1.0.0-next.24: + resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} dev: true /@resolver-engine/core@0.3.3: @@ -4469,10 +4435,10 @@ packages: rollup: 2.79.1 dev: true - /@safe-global/safe-apps-provider@0.17.1(typescript@5.2.2): + /@safe-global/safe-apps-provider@0.17.1(typescript@5.3.3): resolution: {integrity: sha512-lYfRqrbbK1aKU1/UGkYWc/X7PgySYcumXKc5FB2uuwAs2Ghj8uETuW5BrwPqyjBknRxutFbTv+gth/JzjxAhdQ==} dependencies: - '@safe-global/safe-apps-sdk': 8.0.0(typescript@5.2.2) + '@safe-global/safe-apps-sdk': 8.0.0(typescript@5.3.3) events: 3.3.0 transitivePeerDependencies: - bufferutil @@ -4480,22 +4446,22 @@ packages: - utf-8-validate - zod - /@safe-global/safe-apps-sdk@8.0.0(typescript@5.2.2): + /@safe-global/safe-apps-sdk@8.0.0(typescript@5.3.3): resolution: {integrity: sha512-gYw0ki/EAuV1oSyMxpqandHjnthZjYYy+YWpTAzf8BqfXM3ItcZLpjxfg+3+mXW8HIO+3jw6T9iiqEXsqHaMMw==} dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.13.2 - viem: 1.18.9(typescript@5.2.2)(zod@3.22.4) + viem: 1.19.11(typescript@5.3.3)(zod@3.22.4) transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - zod - /@safe-global/safe-apps-sdk@8.1.0(typescript@5.2.2): + /@safe-global/safe-apps-sdk@8.1.0(typescript@5.3.3): resolution: {integrity: sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==} dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.13.2 - viem: 1.18.9(typescript@5.2.2)(zod@3.22.4) + viem: 1.19.11(typescript@5.3.3)(zod@3.22.4) transitivePeerDependencies: - bufferutil - typescript @@ -4644,8 +4610,8 @@ packages: '@sinonjs/commons': 1.8.6 dev: true - /@smithy/types@2.4.0: - resolution: {integrity: sha512-iH1Xz68FWlmBJ9vvYeHifVMWJf82ONx+OybPW8ZGf5wnEv2S0UXcU4zwlwJkRXuLKpcSLHrraHbn2ucdVXLb4g==} + /@smithy/types@2.7.0: + resolution: {integrity: sha512-1OIFyhK+vOkMbu4aN2HZz/MomREkrAC/HqY5mlJMUJfGrPRwijJDTeiN8Rnj9zUaB8ogXAfIOtZrrgqZ4w7Wnw==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 @@ -4657,10 +4623,10 @@ packages: dependencies: buffer: 6.0.3 - /@solana/web3.js@1.87.2: - resolution: {integrity: sha512-TZNhS+tvJbYjm0LAvIkUy/3Aqgt2l6/3X6XsVUpvj5MGOl2Q6Ch8hYSxcUUtMbAFNN3sUXmV8NhhMLNJEvI6TA==} + /@solana/web3.js@1.87.6: + resolution: {integrity: sha512-LkqsEBgTZztFiccZZXnawWa8qNCATEqE97/d0vIwjTclmVlc8pBpD1DmjfVHtZ1HS5fZorFlVhXfpwnCNDZfyg==} dependencies: - '@babel/runtime': 7.23.2 + '@babel/runtime': 7.23.5 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.2 '@solana/buffer-layout': 4.0.1 @@ -4673,7 +4639,7 @@ packages: fast-stable-stringify: 1.0.0 jayson: 4.1.0 node-fetch: 2.7.0 - rpc-websockets: 7.6.1 + rpc-websockets: 7.8.0 superstruct: 0.14.2 transitivePeerDependencies: - bufferutil @@ -4692,8 +4658,8 @@ packages: antlr4ts: 0.5.0-alpha.4 dev: true - /@solidity-parser/parser@0.16.1: - resolution: {integrity: sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==} + /@solidity-parser/parser@0.16.2: + resolution: {integrity: sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==} dependencies: antlr4ts: 0.5.0-alpha.4 dev: true @@ -4796,25 +4762,25 @@ packages: '@stablelib/random': 1.0.2 '@stablelib/wipe': 1.0.1 - /@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@1.27.4): + /@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@1.27.7): resolution: {integrity: sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==} peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.27.4(svelte@4.2.3)(vite@4.5.0) + '@sveltejs/kit': 1.27.7(svelte@4.2.8)(vite@4.5.1) import-meta-resolve: 4.0.0 dev: true - /@sveltejs/adapter-static@2.0.3(@sveltejs/kit@1.27.4): + /@sveltejs/adapter-static@2.0.3(@sveltejs/kit@1.27.7): resolution: {integrity: sha512-VUqTfXsxYGugCpMqQv1U0LIdbR3S5nBkMMDmpjGVJyM6Q2jHVMFtdWJCkeHMySc6mZxJ+0eZK3T7IgmUCDrcUQ==} peerDependencies: '@sveltejs/kit': ^1.5.0 dependencies: - '@sveltejs/kit': 1.27.4(svelte@4.2.3)(vite@4.5.0) + '@sveltejs/kit': 1.27.7(svelte@4.2.8)(vite@4.5.1) dev: true - /@sveltejs/kit@1.27.4(svelte@4.2.3)(vite@4.5.0): - resolution: {integrity: sha512-Vxl8Jf0C1+/8i/slsxFOnwJntCBDLueO/O6GJ0390KUnyW3Zs+4ZiIinD+cEcYnJPQQ9CRzVSr9Bn6DbmTn4Dw==} + /@sveltejs/kit@1.27.7(svelte@4.2.8)(vite@4.5.1): + resolution: {integrity: sha512-AzXYDoYt42clCBwLF9GTHsXyg2DFR31Ncyt8yxu8Aw4tgB433V+w+hcr1RTfAN9zKW2J2PY9FMQ8FoX/4Vw8CA==} engines: {node: ^16.14 || >=18} hasBin: true requiresBuild: true @@ -4822,7 +4788,7 @@ packages: svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.2(svelte@4.2.3)(vite@4.5.0) + '@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.8)(vite@4.5.1) '@types/cookie': 0.5.4 cookie: 0.5.0 devalue: 4.3.2 @@ -4833,15 +4799,15 @@ packages: sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.3 - svelte: 4.2.3 + svelte: 4.2.8 tiny-glob: 0.2.9 undici: 5.26.5 - vite: 4.5.0(@types/node@20.9.0) + vite: 4.5.1(@types/node@20.10.4) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.2)(svelte@4.2.3)(vite@4.5.0): + /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.3)(svelte@4.2.8)(vite@4.5.1): resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -4849,10 +4815,10 @@ packages: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.2(svelte@4.2.3)(vite@4.5.0) + '@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.8)(vite@4.5.1) debug: 4.3.4(supports-color@8.1.1) - svelte: 4.2.3 - vite: 4.5.0(@types/node@20.9.0) + svelte: 4.2.8 + vite: 4.5.1(@types/node@20.10.4) transitivePeerDependencies: - supports-color dev: true @@ -4876,22 +4842,22 @@ packages: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@2.5.2(svelte@4.2.3)(vite@4.5.0): - resolution: {integrity: sha512-Dfy0Rbl+IctOVfJvWGxrX/3m6vxPLH8o0x+8FA5QEyMUQMo4kGOVIojjryU7YomBAexOTAuYf1RT7809yDziaA==} + /@sveltejs/vite-plugin-svelte@2.5.3(svelte@4.2.8)(vite@4.5.1): + resolution: {integrity: sha512-erhNtXxE5/6xGZz/M9eXsmI7Pxa6MS7jyTy06zN3Ck++ldrppOnOlJwHHTsMC7DHDQdgUp4NAc4cDNQ9eGdB/w==} engines: {node: ^14.18.0 || >= 16} peerDependencies: svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.2)(svelte@4.2.3)(vite@4.5.0) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.3)(svelte@4.2.8)(vite@4.5.1) debug: 4.3.4(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 - svelte: 4.2.3 - svelte-hmr: 0.15.3(svelte@4.2.3) - vite: 4.5.0(@types/node@20.9.0) - vitefu: 0.2.5(vite@4.5.0) + svelte: 4.2.8 + svelte-hmr: 0.15.3(svelte@4.2.8) + vite: 4.5.1(@types/node@20.10.4) + vitefu: 0.2.5(vite@4.5.1) transitivePeerDependencies: - supports-color dev: true @@ -4958,11 +4924,15 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true + /@tsconfig/svelte@3.0.0: + resolution: {integrity: sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==} + dev: true + /@tsconfig/svelte@5.0.2: resolution: {integrity: sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA==} dev: true - /@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.3.2)(typescript@5.2.2): + /@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.3.2)(typescript@5.3.3): resolution: {integrity: sha512-ID6pqWkao54EuUQa0P5RgjvfA3MYqxUQKpbGKERbsjBW5Ra7EIXvbMlPp2pcP5IAdUkyMCFYsP2SN5q7mPdLDQ==} peerDependencies: '@ethersproject/abi': ^5.0.0 @@ -4975,9 +4945,9 @@ packages: '@ethersproject/providers': 5.7.2 ethers: 5.7.2 lodash: 4.17.21 - ts-essentials: 7.0.3(typescript@5.2.2) - typechain: 8.3.2(typescript@5.2.2) - typescript: 5.2.2 + ts-essentials: 7.0.3(typescript@5.3.3) + typechain: 8.3.2(typescript@5.3.3) + typescript: 5.3.3 dev: true /@typechain/ethers-v5@2.0.0(ethers@5.7.2)(typechain@3.0.0): @@ -4987,10 +4957,10 @@ packages: typechain: ^3.0.0 dependencies: ethers: 5.7.2 - typechain: 3.0.0(typescript@5.2.2) + typechain: 3.0.0(typescript@5.3.3) dev: true - /@typechain/ethers-v6@0.5.1(ethers@5.7.2)(typechain@8.3.2)(typescript@5.2.2): + /@typechain/ethers-v6@0.5.1(ethers@5.7.2)(typechain@8.3.2)(typescript@5.3.3): resolution: {integrity: sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==} peerDependencies: ethers: 6.x @@ -4999,12 +4969,12 @@ packages: dependencies: ethers: 5.7.2 lodash: 4.17.21 - ts-essentials: 7.0.3(typescript@5.2.2) - typechain: 8.3.2(typescript@5.2.2) - typescript: 5.2.2 + ts-essentials: 7.0.3(typescript@5.3.3) + typechain: 8.3.2(typescript@5.3.3) + typescript: 5.3.3 dev: true - /@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1)(ethers@5.7.2)(hardhat@2.18.2)(typechain@8.3.2): + /@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1)(ethers@5.7.2)(hardhat@2.19.2)(typechain@8.3.2): resolution: {integrity: sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==} peerDependencies: '@typechain/ethers-v6': ^0.5.1 @@ -5012,62 +4982,62 @@ packages: hardhat: ^2.9.9 typechain: ^8.3.2 dependencies: - '@typechain/ethers-v6': 0.5.1(ethers@5.7.2)(typechain@8.3.2)(typescript@5.2.2) + '@typechain/ethers-v6': 0.5.1(ethers@5.7.2)(typechain@8.3.2)(typescript@5.3.3) ethers: 5.7.2 fs-extra: 9.1.0 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) - typechain: 8.3.2(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) + typechain: 8.3.2(typescript@5.3.3) dev: true - /@types/abstract-leveldown@7.2.4: - resolution: {integrity: sha512-ygy0hYyHdKnAtvCGUFEFvr3YV7Y6Q4akyRkZpM3RSUMYGSr35ZGRCT9Div+la4DpRUiwYUhJ6l75JBz6EORmpg==} + /@types/abstract-leveldown@7.2.5: + resolution: {integrity: sha512-/2B0nQF4UdupuxeKTJA2+Rj1D+uDemo6P4kMwKCpbfpnzeVaWSELTsAw4Lxn3VJD6APtRrZOCuYo+4nHUQfTfg==} dev: true - /@types/async-eventemitter@0.2.3: - resolution: {integrity: sha512-QHcih+LsYHY+ODMMTh1BoBC2f95HqkFzf7aEnre9xxkroCglpix7ZGKZI56AnwAipNoHLbIs4Ft9xTB5LFYslQ==} + /@types/async-eventemitter@0.2.4: + resolution: {integrity: sha512-2Bq61VD01kgLf1XkK2xPtoBcu7fgn/km5JyEX9v0BlG5VQBzA+BlF9umFk+8gR8S4+eK7MgDY2oyVZCu6ar3Jw==} dependencies: - '@types/events': 3.0.2 + '@types/events': 3.0.3 dev: true - /@types/babel__core@7.20.3: - resolution: {integrity: sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==} + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - '@types/babel__generator': 7.6.6 - '@types/babel__template': 7.4.3 - '@types/babel__traverse': 7.20.3 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 + '@types/babel__generator': 7.6.7 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.4 dev: true - /@types/babel__generator@7.6.6: - resolution: {integrity: sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==} + /@types/babel__generator@7.6.7: + resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true - /@types/babel__template@7.4.3: - resolution: {integrity: sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==} + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 dev: true - /@types/babel__traverse@7.20.3: - resolution: {integrity: sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==} + /@types/babel__traverse@7.20.4: + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.5 dev: true /@types/bn.js@4.11.6: resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true - /@types/bn.js@5.1.3: - resolution: {integrity: sha512-wT1B4iIO82ecXkdN6waCK8Ou7E71WU+mP1osDA5Q8c6Ur+ozU2vIKUIhSpUr6uE5L2YHocKS1Z2jG2fBC1YVeg==} + /@types/bn.js@5.1.5: + resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true /@types/cacheable-request@6.0.3: @@ -5076,7 +5046,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.9.0 + '@types/node': 20.10.4 '@types/responselike': 1.0.3 dev: true optional: true @@ -5084,23 +5054,23 @@ packages: /@types/chai-subset@1.3.5: resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} dependencies: - '@types/chai': 4.3.10 + '@types/chai': 4.3.11 dev: true - /@types/chai@4.3.10: - resolution: {integrity: sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==} + /@types/chai@4.3.11: + resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} dev: true /@types/concat-stream@1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true - /@types/connect@3.4.37: - resolution: {integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==} + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 /@types/cookie@0.5.4: resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} @@ -5111,18 +5081,18 @@ packages: dependencies: '@types/ms': 0.7.34 - /@types/eslint-scope@3.7.6: - resolution: {integrity: sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ==} + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: - '@types/eslint': 8.44.6 - '@types/estree': 0.0.50 + '@types/eslint': 8.44.8 + '@types/estree': 1.0.5 dev: true - /@types/eslint@8.44.6: - resolution: {integrity: sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==} + /@types/eslint@8.44.8: + resolution: {integrity: sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==} dependencies: '@types/estree': 0.0.50 - '@types/json-schema': 7.0.14 + '@types/json-schema': 7.0.15 dev: true /@types/estree@0.0.39: @@ -5131,41 +5101,39 @@ packages: /@types/estree@0.0.50: resolution: {integrity: sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==} - - /@types/estree@1.0.3: - resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==} + dev: true /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - /@types/events@3.0.2: - resolution: {integrity: sha512-v4Mr60wJuF069iZZCdY5DKhfj0l6eXNJtbSM/oMDNdRLoBEUsktmKnswkz0X3OAic5W8Qy/YU6owKE4A66Y46A==} + /@types/events@3.0.3: + resolution: {integrity: sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==} dev: true /@types/form-data@0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true /@types/glob@7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true /@types/glob@8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true - /@types/graceful-fs@4.1.8: - resolution: {integrity: sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==} + /@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true /@types/html-minifier-terser@6.1.0: @@ -5178,24 +5146,20 @@ packages: dev: true optional: true - /@types/istanbul-lib-coverage@2.0.5: - resolution: {integrity: sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==} - dev: true - /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} dev: true - /@types/istanbul-lib-report@3.0.2: - resolution: {integrity: sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==} + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: - '@types/istanbul-lib-coverage': 2.0.5 + '@types/istanbul-lib-coverage': 2.0.6 dev: true - /@types/istanbul-reports@3.0.3: - resolution: {integrity: sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==} + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: - '@types/istanbul-lib-report': 3.0.2 + '@types/istanbul-lib-report': 3.0.3 dev: true /@types/jest@27.5.2: @@ -5205,10 +5169,6 @@ packages: pretty-format: 27.5.1 dev: true - /@types/json-schema@7.0.14: - resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} - dev: true - /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true @@ -5221,20 +5181,20 @@ packages: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} requiresBuild: true dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true optional: true - /@types/level-errors@3.0.1: - resolution: {integrity: sha512-eFJZWaOUhgjSqgEsPKJZrqXS9aEDUQh/5F9saFhhkR5uEVKlYb4GSG8XyoVC7APklcQKPGDVenTointTZBGIQg==} + /@types/level-errors@3.0.2: + resolution: {integrity: sha512-gyZHbcQ2X5hNXf/9KS2qGEmgDe9EN2WDM3rJ5Ele467C0nA1sLhtmv1bZiPMDYfAYCfPWft0uQIaTvXbASSTRA==} dev: true /@types/levelup@4.3.3: resolution: {integrity: sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==} dependencies: - '@types/abstract-leveldown': 7.2.4 - '@types/level-errors': 3.0.1 - '@types/node': 20.9.0 + '@types/abstract-leveldown': 7.2.5 + '@types/level-errors': 3.0.2 + '@types/node': 20.10.4 dev: true /@types/lru-cache@5.1.1: @@ -5245,18 +5205,18 @@ packages: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/minimist@1.2.4: - resolution: {integrity: sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==} + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true - /@types/mixpanel@2.14.7: - resolution: {integrity: sha512-cpAqrEGvVGO0AV5iKp2AxLnV60OAuFsOF8N3x0SpUIkg6cWjiqjBRmIvO3DXnFPMBo3wBegFNpYshyh8PhKrxw==} + /@types/mixpanel@2.14.8: + resolution: {integrity: sha512-rWDZESfhXO9ST7piwTO9VAtEVRMvxQFWgvDZv3B+dd0+gNz847Cf55rHPmGZTTMAkgsOLeqNyxbqJmcZbJLsxw==} dev: true /@types/mkdirp@0.5.2: resolution: {integrity: sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true /@types/mocha@10.0.6: @@ -5269,7 +5229,7 @@ packages: /@types/node-fetch@2.6.9: resolution: {integrity: sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 form-data: 4.0.0 dev: true @@ -5280,8 +5240,8 @@ packages: /@types/node@12.20.55: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - /@types/node@20.9.0: - resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} + /@types/node@20.10.4: + resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} dependencies: undici-types: 5.26.5 @@ -5289,59 +5249,55 @@ packages: resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} dev: true - /@types/normalize-package-data@2.4.3: - resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true /@types/object-hash@3.0.6: resolution: {integrity: sha512-fOBV8C1FIu2ELinoILQ+ApxcUKz4ngq+IWUYrxSGjXzzjUALijilampwkMgEtJ+h2njAW3pi853QpzNVCHB73w==} dev: true - /@types/pbkdf2@3.1.1: - resolution: {integrity: sha512-4HCoGwR3221nOc7G0Z/6KgTNGgaaFGkbGrtUJsB+zlKX2LBVjFHHIUkieMBgHHXgBH5Gq6dZHJKdBYdtlhBQvw==} + /@types/pbkdf2@3.1.2: + resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true /@types/prettier@2.7.3: resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} dev: true - /@types/pug@2.0.8: - resolution: {integrity: sha512-QzhsZ1dMGyJbn/D9V80zp4GIA4J4rfAjCCxc3MP+new0E8dyVdSkR735Lx+n3LIaHNFcjHL5+TbziccuT+fdoQ==} - dev: true - - /@types/pug@2.0.9: - resolution: {integrity: sha512-Yg4LkgFYvn1faISbDNWmcAC1XoDT8IoMUFspp5mnagKk+UvD2N0IWt5A7GRdMubsNWqgCLmrkf8rXkzNqb4szA==} + /@types/pug@2.0.10: + resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} dev: true - /@types/qs@6.9.9: - resolution: {integrity: sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==} + /@types/qs@6.9.10: + resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} dev: true /@types/readable-stream@2.3.15: resolution: {integrity: sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 safe-buffer: 5.1.2 dev: true /@types/resolve@0.0.8: resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} requiresBuild: true dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true optional: true - /@types/sanitize-html@2.9.3: - resolution: {integrity: sha512-1rsSdEJLV7utAG+Fms2uP+nSmmYmOhUUSSZvUz4wF2wlA0M5/A/gVgnpWZ7EKaPWsrrxWiSuNJqSBW8dh2isBA==} + /@types/sanitize-html@2.9.5: + resolution: {integrity: sha512-2Sr1vd8Dw+ypsg/oDDfZ57OMSG2Befs+l2CMyCC5bVSK3CpE7lTB2aNlbbWzazgVA+Qqfuholwom6x/mWd1qmw==} dependencies: htmlparser2: 8.0.2 dev: true @@ -5350,92 +5306,71 @@ packages: resolution: {integrity: sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA==} deprecated: This is a stub types definition. sass provides its own type definitions, so you do not need this installed. dependencies: - sass: 1.69.4 + sass: 1.69.5 dev: true - /@types/secp256k1@4.0.5: - resolution: {integrity: sha512-aIonTBMErtE3T9MxDvTZRzcrT/mCqpEZBw3CCY/i+oG9n57N/+7obBkhFgavUAIrX21bU0LHg1XRgtaLdelBhA==} + /@types/secp256k1@4.0.6: + resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true - /@types/semver@7.5.4: - resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} - dev: true - - /@types/semver@7.5.5: - resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} - dev: true - - /@types/sinon-chai@3.2.11: - resolution: {integrity: sha512-1C5SBFzwn9hjiMr1xfqbULcSI9qXVpkGZT/LYbbd3jWiTo2MSvA+iFfwODlSoAXGeCgBw6S509dxy8zSIacr3Q==} - dependencies: - '@types/chai': 4.3.10 - '@types/sinon': 10.0.20 + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true /@types/sinon-chai@3.2.12: resolution: {integrity: sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==} dependencies: - '@types/chai': 4.3.10 - '@types/sinon': 17.0.1 - dev: true - - /@types/sinon@10.0.20: - resolution: {integrity: sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==} - dependencies: - '@types/sinonjs__fake-timers': 8.1.4 + '@types/chai': 4.3.11 + '@types/sinon': 17.0.2 dev: true - /@types/sinon@17.0.1: - resolution: {integrity: sha512-Q2Go6TJetYn5Za1+RJA1Aik61Oa2FS8SuJ0juIqUuJ5dZR4wvhKfmSdIqWtQ3P6gljKWjW0/R7FZkA4oXVL6OA==} + /@types/sinon@17.0.2: + resolution: {integrity: sha512-Zt6heIGsdqERkxctIpvN5Pv3edgBrhoeb3yHyxffd4InN0AX2SVNKSrhdDZKGQICVOxWP/q4DyhpfPNMSrpIiA==} dependencies: '@types/sinonjs__fake-timers': 8.1.5 dev: true - /@types/sinonjs__fake-timers@8.1.4: - resolution: {integrity: sha512-GDV68H0mBSN449sa5HEj51E0wfpVQb8xNSMzxf/PrypMFcLTMwJMOM/cgXiv71Mq5drkOQmUGvL1okOZcu6RrQ==} - dev: true - /@types/sinonjs__fake-timers@8.1.5: resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} dev: true - /@types/stack-utils@2.0.2: - resolution: {integrity: sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==} + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} dev: true - /@types/trusted-types@2.0.5: - resolution: {integrity: sha512-I3pkr8j/6tmQtKV/ZzHtuaqYSQvyjGRKH4go60Rr0IDLlFxuRT5V32uvB1mecM5G1EVAUyF/4r4QZ1GHgz+mxA==} + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - /@types/underscore@1.11.12: - resolution: {integrity: sha512-beX81q12OQo809WJ/UYCvUDvJR3YQ4wtehYYQ6eNw5VLyd+KUNBRV4FgzZCHBmACbdPulH9F9ifhxzFFU9TWvQ==} + /@types/underscore@1.11.15: + resolution: {integrity: sha512-HP38xE+GuWGlbSRq9WrZkousaQ7dragtZCruBVMi0oX1migFZavZ3OROKHSkNp/9ouq82zrWtZpg18jFnVN96g==} dev: true /@types/web3@1.0.19: resolution: {integrity: sha512-fhZ9DyvDYDwHZUp5/STa9XW2re0E8GxoioYJ4pEUZ13YHpApSagixj7IAdoYH5uAK+UalGq6Ml8LYzmgRA/q+A==} dependencies: - '@types/bn.js': 5.1.3 - '@types/underscore': 1.11.12 + '@types/bn.js': 5.1.5 + '@types/underscore': 1.11.15 dev: true /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 - /@types/yargs-parser@21.0.2: - resolution: {integrity: sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==} + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} dev: true - /@types/yargs@16.0.7: - resolution: {integrity: sha512-lQcYmxWuOfJq4IncK88/nwud9rwr1F04CFc5xzk0k4oKVyz/AI35TfsXmhjf6t8zp8mpCOi17BfvuNWx+zrYkg==} + /@types/yargs@16.0.9: + resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==} dependencies: - '@types/yargs-parser': 21.0.2 + '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==} + /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@4.9.5): + resolution: {integrity: sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -5446,25 +5381,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/type-utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.55.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/type-utils': 6.13.2(eslint@8.55.0)(typescript@4.9.5) + '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 + eslint: 8.55.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.3(typescript@4.9.5) + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/eslint-plugin@6.8.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@4.9.5): - resolution: {integrity: sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==} + /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -5474,25 +5409,25 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@4.9.5) - '@typescript-eslint/scope-manager': 6.8.0 - '@typescript-eslint/type-utils': 6.8.0(eslint@8.53.0)(typescript@4.9.5) - '@typescript-eslint/utils': 6.8.0(eslint@8.53.0)(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 6.8.0 + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/type-utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 + eslint: 8.55.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@4.9.5): + /@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@4.9.5): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5506,14 +5441,14 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 + eslint: 8.55.0 typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==} + /@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -5522,13 +5457,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - typescript: 5.2.2 + eslint: 8.55.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -5541,24 +5476,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.10.0: - resolution: {integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/visitor-keys': 6.10.0 - dev: true - - /@typescript-eslint/scope-manager@6.8.0: - resolution: {integrity: sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==} + /@typescript-eslint/scope-manager@6.13.2: + resolution: {integrity: sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/visitor-keys': 6.8.0 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/visitor-keys': 6.13.2 dev: true - /@typescript-eslint/type-utils@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==} + /@typescript-eslint/type-utils@6.13.2(eslint@8.55.0)(typescript@4.9.5): + resolution: {integrity: sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -5567,18 +5494,18 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.13.2(typescript@4.9.5) + '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@4.9.5) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 + eslint: 8.55.0 + ts-api-utils: 1.0.3(typescript@4.9.5) + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/type-utils@6.8.0(eslint@8.53.0)(typescript@4.9.5): - resolution: {integrity: sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==} + /@typescript-eslint/type-utils@6.13.2(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -5587,12 +5514,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.8.0(typescript@4.9.5) - '@typescript-eslint/utils': 6.8.0(eslint@8.53.0)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) + '@typescript-eslint/utils': 6.13.2(eslint@8.55.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 + eslint: 8.55.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -5602,13 +5529,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.10.0: - resolution: {integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/types@6.8.0: - resolution: {integrity: sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==} + /@typescript-eslint/types@6.13.2: + resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -5633,8 +5555,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.10.0(typescript@5.2.2): - resolution: {integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==} + /@typescript-eslint/typescript-estree@6.13.2(typescript@4.9.5): + resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -5642,20 +5564,20 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/visitor-keys': 6.10.0 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.3(typescript@4.9.5) + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.8.0(typescript@4.9.5): - resolution: {integrity: sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==} + /@typescript-eslint/typescript-estree@6.13.2(typescript@5.3.3): + resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -5663,50 +5585,50 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/visitor-keys': 6.8.0 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==} + /@typescript-eslint/utils@6.13.2(eslint@8.55.0)(typescript@4.9.5): + resolution: {integrity: sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - eslint: 8.53.0 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/typescript-estree': 6.13.2(typescript@4.9.5) + eslint: 8.55.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils@6.8.0(eslint@8.53.0)(typescript@4.9.5): - resolution: {integrity: sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==} + /@typescript-eslint/utils@6.13.2(eslint@8.55.0)(typescript@5.3.3): + resolution: {integrity: sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 - '@typescript-eslint/scope-manager': 6.8.0 - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/typescript-estree': 6.8.0(typescript@4.9.5) - eslint: 8.53.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.3.3) + eslint: 8.55.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -5721,19 +5643,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.10.0: - resolution: {integrity: sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.10.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@typescript-eslint/visitor-keys@6.8.0: - resolution: {integrity: sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==} + /@typescript-eslint/visitor-keys@6.13.2: + resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/types': 6.13.2 eslint-visitor-keys: 3.4.3 dev: true @@ -5754,9 +5668,9 @@ packages: istanbul-reports: 3.1.6 magic-string: 0.30.5 picocolors: 1.0.0 - std-env: 3.4.3 + std-env: 3.6.0 test-exclude: 6.0.0 - v8-to-istanbul: 9.1.3 + v8-to-istanbul: 9.2.0 vitest: 0.32.4(jsdom@22.1.0) transitivePeerDependencies: - supports-color @@ -5800,11 +5714,11 @@ packages: pretty-format: 29.7.0 dev: true - /@vue/compiler-sfc@2.7.14: - resolution: {integrity: sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==} + /@vue/compiler-sfc@2.7.15: + resolution: {integrity: sha512-FCvIEevPmgCgqFBH7wD+3B97y7u7oj/Wr69zADBf403Tui377bThTjBvekaZvlRr4IwUAu3M6hYZeULZFJbdYg==} dependencies: - '@babel/parser': 7.23.0 - postcss: 8.4.31 + '@babel/parser': 7.23.5 + postcss: 8.4.32 source-map: 0.6.1 dev: true @@ -5881,7 +5795,7 @@ packages: resolution: {integrity: sha512-hSzb6Ni/PejVzliKkc5T3ehzRJxr5k4fZMGYuouqwArWQ8z7R4jrIlm2j2nNOD7Epz6ZucdiVluU1YH0d/EEyw==} dev: false - /@wagmi/cli@1.5.2(@wagmi/core@1.4.6)(typescript@5.2.2): + /@wagmi/cli@1.5.2(@wagmi/core@1.4.10)(typescript@5.3.3): resolution: {integrity: sha512-UfLMYhW6mQBCjR8A5s01Chf9GpHzdpcuuBuzJ36QGXcMSJAxylz5ImVZWfCRV0ct1UruydjKVSW1QSI6azNxRQ==} engines: {node: '>=14'} hasBin: true @@ -5897,8 +5811,8 @@ packages: wagmi: optional: true dependencies: - '@wagmi/core': 1.4.6(lokijs@1.5.12)(react@18.2.0)(typescript@5.2.2)(viem@1.18.9) - abitype: 0.8.7(typescript@5.2.2)(zod@3.22.4) + '@wagmi/core': 1.4.10(react@18.2.0)(typescript@5.3.3)(viem@1.19.11) + abitype: 0.8.7(typescript@5.3.3)(zod@3.22.4) abort-controller: 3.0.0 bundle-require: 3.1.2(esbuild@0.16.17) cac: 6.7.14 @@ -5918,8 +5832,8 @@ packages: pathe: 1.1.1 picocolors: 1.0.0 prettier: 2.8.8 - typescript: 5.2.2 - viem: 1.18.9(typescript@5.2.2)(zod@3.22.4) + typescript: 5.3.3 + viem: 1.19.11(typescript@5.3.3)(zod@3.22.4) zod: 3.22.4 transitivePeerDependencies: - bufferutil @@ -5939,23 +5853,33 @@ packages: '@ledgerhq/connect-kit-loader': 1.1.2 '@wagmi/core': 0.8.19(@coinbase/wallet-sdk@3.7.2)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.5) '@walletconnect/ethereum-provider': 1.8.0 - '@walletconnect/universal-provider': 2.10.2(lokijs@1.5.12) + '@walletconnect/universal-provider': 2.10.6 '@web3modal/standalone': 2.4.3(react@18.2.0) ethers: 5.7.2 eventemitter3: 4.0.7 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' - bufferutil - debug - encoding - - lokijs - react - supports-color - utf-8-validate dev: false - /@wagmi/connectors@3.1.4(lokijs@1.5.12)(react@18.2.0)(typescript@5.2.2)(viem@1.18.9): - resolution: {integrity: sha512-DrYPXByoP9o+xko9R6whKz1cjaJ7HZ+9P27WkW7bhYUWU/sPeDZAvWiLmPwNAhQy8U7A/teAxyUtbExaOdc8zw==} + /@wagmi/connectors@3.1.8(react@18.2.0)(typescript@5.3.3)(viem@1.19.11): + resolution: {integrity: sha512-J6m8xWFw/Qb4V6VeERazEgfXPztx7wDWCfmUSrfSM54SSjdaFprAOZlcAMqBtibqH8HgnPvbdFA0DEOHbeX2ag==} peerDependencies: typescript: '>=5.0.4' viem: '>=0.3.35' @@ -5965,22 +5889,32 @@ packages: dependencies: '@coinbase/wallet-sdk': 3.7.2 '@ledgerhq/connect-kit-loader': 1.1.2 - '@safe-global/safe-apps-provider': 0.17.1(typescript@5.2.2) - '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.2.2) - '@walletconnect/ethereum-provider': 2.10.2(@walletconnect/modal@2.6.2)(lokijs@1.5.12) + '@safe-global/safe-apps-provider': 0.17.1(typescript@5.3.3) + '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.3.3) + '@walletconnect/ethereum-provider': 2.10.6(react@18.2.0) '@walletconnect/legacy-provider': 2.0.0 '@walletconnect/modal': 2.6.2(react@18.2.0) - '@walletconnect/utils': 2.10.2(lokijs@1.5.12) - abitype: 0.8.7(typescript@5.2.2)(zod@3.22.4) + '@walletconnect/utils': 2.10.2 + abitype: 0.8.7(typescript@5.3.3)(zod@3.22.4) eventemitter3: 4.0.7 - typescript: 5.2.2 - viem: 1.18.9(typescript@5.2.2)(zod@3.22.4) + typescript: 5.3.3 + viem: 1.19.11(typescript@5.3.3)(zod@3.22.4) transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' - '@types/react' + - '@upstash/redis' + - '@vercel/kv' - bufferutil - encoding - - lokijs - react - supports-color - utf-8-validate @@ -6004,15 +5938,25 @@ packages: abitype: 0.2.5(typescript@4.9.5) ethers: 5.7.2 eventemitter3: 4.0.7 - zustand: 4.4.4(react@18.2.0) + zustand: 4.4.7(react@18.2.0) transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' - '@types/react' + - '@upstash/redis' + - '@vercel/kv' - bufferutil - debug - encoding - immer - - lokijs - react - supports-color - typescript @@ -6020,8 +5964,8 @@ packages: - zod dev: false - /@wagmi/core@1.4.6(lokijs@1.5.12)(react@18.2.0)(typescript@5.2.2)(viem@1.18.9): - resolution: {integrity: sha512-6SYcRZulzVNXCZ77EtJ7WfqirmMR+Svb5H/3Lqh0sDGwuW9kdH9G3hBDLf8LMJ1ImiWFsSDR5cl2qo7ZreYllA==} + /@wagmi/core@1.4.10(react@18.2.0)(typescript@5.3.3)(viem@1.19.11): + resolution: {integrity: sha512-XJ5iSWZKOZSgQP3LFn/QHJqLGoX53SiBKc0/6s7KkVc68VmFenrZymNRg3fSwBsINlZgRVWpSj2lAVsl8IjSgw==} peerDependencies: typescript: '>=5.0.4' viem: '>=0.3.35' @@ -6029,19 +5973,29 @@ packages: typescript: optional: true dependencies: - '@wagmi/connectors': 3.1.4(lokijs@1.5.12)(react@18.2.0)(typescript@5.2.2)(viem@1.18.9) - abitype: 0.8.7(typescript@5.2.2)(zod@3.22.4) + '@wagmi/connectors': 3.1.8(react@18.2.0)(typescript@5.3.3)(viem@1.19.11) + abitype: 0.8.7(typescript@5.3.3)(zod@3.22.4) eventemitter3: 4.0.7 - typescript: 5.2.2 - viem: 1.18.9(typescript@5.2.2)(zod@3.22.4) - zustand: 4.4.6(react@18.2.0) + typescript: 5.3.3 + viem: 1.19.11(typescript@5.3.3)(zod@3.22.4) + zustand: 4.4.7(react@18.2.0) transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' - '@types/react' + - '@upstash/redis' + - '@vercel/kv' - bufferutil - encoding - immer - - lokijs - react - supports-color - utf-8-validate @@ -6081,29 +6035,40 @@ packages: - utf-8-validate dev: false - /@walletconnect/core@2.10.2(lokijs@1.5.12): - resolution: {integrity: sha512-JQz/xp3SLEpTeRQctdck2ugSBVEpMxoSE+lFi2voJkZop1hv6P+uqr6E4PzjFluAjeAnKlT1xvra0aFWjPWVcw==} + /@walletconnect/core@2.10.6: + resolution: {integrity: sha512-Z4vh4ZdfcoQjgPEOxeuF9HUZCVLtV3MgRbS/awLIj/omDrFnOwlBhxi5Syr4Y8muVGC0ocRetQYHae0/gX5crQ==} dependencies: '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.13 - '@walletconnect/keyvaluestorage': 1.0.2(lokijs@1.5.12) + '@walletconnect/jsonrpc-ws-connection': 1.0.14 + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.0.1 '@walletconnect/relay-api': 1.0.9 '@walletconnect/relay-auth': 1.0.4 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.10.2(lokijs@1.5.12) - '@walletconnect/utils': 2.10.2(lokijs@1.5.12) + '@walletconnect/types': 2.10.6 + '@walletconnect/utils': 2.10.6 events: 3.3.0 lodash.isequal: 4.5.0 uint8arrays: 3.1.1 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' - bufferutil - - lokijs + - supports-color - utf-8-validate /@walletconnect/crypto@1.0.3: @@ -6147,29 +6112,37 @@ packages: - utf-8-validate dev: false - /@walletconnect/ethereum-provider@2.10.2(@walletconnect/modal@2.6.2)(lokijs@1.5.12): - resolution: {integrity: sha512-QMYFZ6+rVq2CJLdIPdKK0j1Qm66UA27oQU5V2SrL8EVwl7wFfm0Bq7fnL+qAWeDpn612dNeNErpk/ROa1zWlWg==} - peerDependencies: - '@walletconnect/modal': '>=2' - peerDependenciesMeta: - '@walletconnect/modal': - optional: true + /@walletconnect/ethereum-provider@2.10.6(react@18.2.0): + resolution: {integrity: sha512-bBQ+yUfxLv8VxNttgNKY7nED35gSVayO/BnLHbNKvyV1gpvSCla5mWB9MsXuQs70MK0g+/qtgRVSrOtdSubaNQ==} dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.7 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/modal': 2.6.2(react@18.2.0) - '@walletconnect/sign-client': 2.10.2(lokijs@1.5.12) - '@walletconnect/types': 2.10.2(lokijs@1.5.12) - '@walletconnect/universal-provider': 2.10.2(lokijs@1.5.12) - '@walletconnect/utils': 2.10.2(lokijs@1.5.12) + '@walletconnect/sign-client': 2.10.6 + '@walletconnect/types': 2.10.6 + '@walletconnect/universal-provider': 2.10.6 + '@walletconnect/utils': 2.10.6 events: 3.3.0 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' - bufferutil - encoding - - lokijs + - react + - supports-color - utf-8-validate /@walletconnect/events@1.0.1: @@ -6223,32 +6196,41 @@ packages: '@walletconnect/jsonrpc-types': 1.0.3 tslib: 1.14.1 - /@walletconnect/jsonrpc-ws-connection@1.0.13: - resolution: {integrity: sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg==} + /@walletconnect/jsonrpc-ws-connection@1.0.14: + resolution: {integrity: sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==} dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 events: 3.3.0 - tslib: 1.14.1 ws: 7.5.9 transitivePeerDependencies: - bufferutil - utf-8-validate - /@walletconnect/keyvaluestorage@1.0.2(lokijs@1.5.12): - resolution: {integrity: sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==} + /@walletconnect/keyvaluestorage@1.1.1: + resolution: {integrity: sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==} peerDependencies: '@react-native-async-storage/async-storage': 1.x - lokijs: 1.x peerDependenciesMeta: '@react-native-async-storage/async-storage': optional: true - lokijs: - optional: true dependencies: - lokijs: 1.5.12 - safe-json-utils: 1.1.1 - tslib: 1.14.1 + '@walletconnect/safe-json': 1.0.2 + idb-keyval: 6.2.1 + unstorage: 1.10.1(idb-keyval@6.2.1) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - supports-color /@walletconnect/legacy-client@2.0.0: resolution: {integrity: sha512-v5L7rYk9loVnfvUf0mF+76bUPFaU5/Vh7mzL6/950CD/yoGdzYZ3Kj+L7mkC6HPMEGeQsBP1+sqBuiVGZ/aODA==} @@ -6270,7 +6252,7 @@ packages: '@walletconnect/legacy-types': 2.0.0 '@walletconnect/legacy-utils': 2.0.0 copy-to-clipboard: 3.3.3 - preact: 10.19.0 + preact: 10.19.2 qrcode: 1.5.3 /@walletconnect/legacy-provider@2.0.0: @@ -6386,22 +6368,33 @@ packages: dependencies: tslib: 1.14.1 - /@walletconnect/sign-client@2.10.2(lokijs@1.5.12): - resolution: {integrity: sha512-vviSLV3f92I0bReX+OLr1HmbH0uIzYEQQFd1MzIfDk9PkfFT/LLAHhUnDaIAMkIdippqDcJia+5QEtT4JihL3Q==} + /@walletconnect/sign-client@2.10.6: + resolution: {integrity: sha512-EvUWjaZBQu2yKnH5/5F2qzbuiIuUN9ZgrNKgvXkw5z1Dq5RJCks0S9/MFlKH/ZSGqXnLl7uAzBXtoX4sMgbCMA==} dependencies: - '@walletconnect/core': 2.10.2(lokijs@1.5.12) + '@walletconnect/core': 2.10.6 '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.0.1 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.10.2(lokijs@1.5.12) - '@walletconnect/utils': 2.10.2(lokijs@1.5.12) + '@walletconnect/types': 2.10.6 + '@walletconnect/utils': 2.10.6 events: 3.3.0 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' - bufferutil - - lokijs + - supports-color - utf-8-validate /@walletconnect/signer-connection@1.8.0: @@ -6439,36 +6432,82 @@ packages: deprecated: 'WalletConnect''s v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/' dev: false - /@walletconnect/types@2.10.2(lokijs@1.5.12): + /@walletconnect/types@2.10.2: resolution: {integrity: sha512-luNV+07Wdla4STi9AejseCQY31tzWKQ5a7C3zZZaRK/di+rFaAAb7YW04OP4klE7tw/mJRGPTlekZElmHxO8kQ==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/keyvaluestorage': 1.0.2(lokijs@1.5.12) + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.0.1 events: 3.3.0 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' - - lokijs + - '@upstash/redis' + - '@vercel/kv' + - supports-color - /@walletconnect/universal-provider@2.10.2(lokijs@1.5.12): - resolution: {integrity: sha512-wFgI0LbQ3D56sgaUMsgOHCM5m8WLxiC71BGuCKQfApgsbNMVKugYVy2zWHyUyi8sqTQHI+uSaVpDev4UHq9LEw==} + /@walletconnect/types@2.10.6: + resolution: {integrity: sha512-WgHfiTG1yakmxheaBRiXhUdEmgxwrvsAdOIWaMf/spvrzVKYh6sHI3oyEEky5qj5jjiMiyQBeB57QamzCotbcQ==} + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.0.1 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - supports-color + + /@walletconnect/universal-provider@2.10.6: + resolution: {integrity: sha512-CEivusqqoD31BhCTKp08DnrccfGjwD9MFjZs5BNRorDteRFE8zVm9LmP6DSiNJCw82ZajGlZThggLQ/BAATfwA==} dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.7 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.0.1 - '@walletconnect/sign-client': 2.10.2(lokijs@1.5.12) - '@walletconnect/types': 2.10.2(lokijs@1.5.12) - '@walletconnect/utils': 2.10.2(lokijs@1.5.12) + '@walletconnect/sign-client': 2.10.6 + '@walletconnect/types': 2.10.6 + '@walletconnect/utils': 2.10.6 events: 3.3.0 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' - bufferutil - encoding - - lokijs + - supports-color - utf-8-validate /@walletconnect/utils@1.8.0: @@ -6483,7 +6522,7 @@ packages: query-string: 6.13.5 dev: false - /@walletconnect/utils@2.10.2(lokijs@1.5.12): + /@walletconnect/utils@2.10.2: resolution: {integrity: sha512-syxXRpc2yhSknMu3IfiBGobxOY7fLfLTJuw+ppKaeO6WUdZpIit3wfuGOcc0Ms3ZPFCrGfyGOoZsCvgdXtptRg==} dependencies: '@stablelib/chacha20poly1305': 1.0.1 @@ -6494,15 +6533,58 @@ packages: '@walletconnect/relay-api': 1.0.9 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.10.2(lokijs@1.5.12) + '@walletconnect/types': 2.10.2 '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 query-string: 7.1.3 uint8arrays: 3.1.1 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' - '@react-native-async-storage/async-storage' - - lokijs + - '@upstash/redis' + - '@vercel/kv' + - supports-color + + /@walletconnect/utils@2.10.6: + resolution: {integrity: sha512-oRsWWhN2+hi3aiDXrQEOfysz6FHQJGXLsNQPVt+WIBJplO6Szmdau9dbleD88u1iiT4GKPqE0R9FOYvvPm1H/w==} + dependencies: + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.10.6 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - supports-color /@walletconnect/window-getters@1.0.0: resolution: {integrity: sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==} @@ -6542,15 +6624,15 @@ packages: - react dev: false - /@web3modal/ethereum@2.7.1(@wagmi/core@1.4.6)(viem@1.18.9): + /@web3modal/ethereum@2.7.1(@wagmi/core@1.4.10)(viem@1.19.11): resolution: {integrity: sha512-1x3qhYh9qgtvw1MDQD4VeDf2ZOsVANKRPtUty4lF+N4L8xnAIwvNKUAMA4j6T5xSsjqUfq5Tdy5mYsNxLmsWMA==} deprecated: Please use new @web3modal/wagmi package peerDependencies: '@wagmi/core': '>=1' viem: '>=1' dependencies: - '@wagmi/core': 1.4.6(lokijs@1.5.12)(react@18.2.0)(typescript@5.2.2)(viem@1.18.9) - viem: 1.18.9(typescript@5.2.2)(zod@3.22.4) + '@wagmi/core': 1.4.10(react@18.2.0)(typescript@5.3.3)(viem@1.19.11) + viem: 1.19.11(typescript@5.3.3)(zod@3.22.4) dev: false /@web3modal/html@2.7.1(react@18.2.0): @@ -6717,12 +6799,12 @@ packages: resolution: {integrity: sha512-k0W1JFoqHIcIQaP9ij99+Rv0ugaQSSNwOuNwwmTGRjWtIqrQr+ExLDE8LQGXLlJIprqDyMWB4lJkUql/r0RAtA==} dev: true - /@zerodevx/svelte-toast@0.9.5(svelte@4.2.3): + /@zerodevx/svelte-toast@0.9.5(svelte@4.2.8): resolution: {integrity: sha512-JLeB/oRdJfT+dz9A5bgd3Z7TuQnBQbeUtXrGIrNWMGqWbabpepBF2KxtWVhL2qtxpRqhae2f6NAOzH7xs4jUSw==} peerDependencies: svelte: ^3.57.0 || ^4.0.0 dependencies: - svelte: 4.2.3 + svelte: 4.2.8 dev: false /JSONStream@1.3.5: @@ -6734,6 +6816,7 @@ packages: /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead dev: true /abbrev@1.0.9: @@ -6757,7 +6840,7 @@ packages: typescript: 4.9.5 dev: false - /abitype@0.8.11(typescript@5.2.2): + /abitype@0.8.11(typescript@5.3.3): resolution: {integrity: sha512-bM4v2dKvX08sZ9IU38IN5BKmN+ZkOSd2oI4a9f0ejHYZQYV6cDr7j+d95ga0z2XHG36Y4jzoG5Z7qDqxp7fi/A==} peerDependencies: typescript: '>=5.0.4' @@ -6766,10 +6849,10 @@ packages: zod: optional: true dependencies: - typescript: 5.2.2 + typescript: 5.3.3 dev: true - /abitype@0.8.7(typescript@5.2.2)(zod@3.22.4): + /abitype@0.8.7(typescript@5.3.3)(zod@3.22.4): resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==} peerDependencies: typescript: '>=5.0.4' @@ -6778,10 +6861,10 @@ packages: zod: optional: true dependencies: - typescript: 5.2.2 + typescript: 5.3.3 zod: 3.22.4 - /abitype@0.9.8(typescript@5.2.2)(zod@3.22.4): + /abitype@0.9.8(typescript@5.3.3)(zod@3.22.4): resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} peerDependencies: typescript: '>=5.0.4' @@ -6792,7 +6875,7 @@ packages: zod: optional: true dependencies: - typescript: 5.2.2 + typescript: 5.3.3 zod: 3.22.4 /abort-controller@3.0.0: @@ -6886,12 +6969,12 @@ packages: acorn-walk: 7.2.0 dev: true - /acorn-import-assertions@1.9.0(acorn@8.10.0): + /acorn-import-assertions@1.9.0(acorn@8.11.2): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.10.0 + acorn: 8.11.2 dev: true /acorn-jsx@5.3.2(acorn@8.11.2): @@ -6907,13 +6990,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn-walk@8.3.0: - resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + /acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} engines: {node: '>=0.4.0'} dev: true @@ -6923,12 +7001,6 @@ packages: hasBin: true dev: true - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn@8.11.2: resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} @@ -6999,8 +7071,8 @@ packages: uri-js: 4.4.1 dev: true - /amazon-cognito-identity-js@6.3.6: - resolution: {integrity: sha512-kBq+GE6OkLrxtFj3ZduIOlKBFYeOqZK3EhxbDBkv476UTvy+uwfR0tlriTq2QzNdnvlQAjBIXnXuOM7DwR1UEQ==} + /amazon-cognito-identity-js@6.3.7: + resolution: {integrity: sha512-tSjnM7KyAeOZ7UMah+oOZ6cW4Gf64FFcc7BE2l7MTcp7ekAPrXaCbpcW2xEpH1EiDS4cPcAouHzmCuc2tr72vQ==} dependencies: '@aws-crypto/sha256-js': 1.2.2 buffer: 4.9.2 @@ -7109,12 +7181,14 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} dev: true + /arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + /are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} @@ -7404,19 +7478,19 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} - /autoprefixer@10.4.16(postcss@8.4.31): + /autoprefixer@10.4.16(postcss@8.4.32): resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.22.1 - caniuse-lite: 1.0.30001561 + browserslist: 4.22.2 + caniuse-lite: 1.0.30001566 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.31 + postcss: 8.4.32 postcss-value-parser: 4.2.0 dev: true @@ -7440,18 +7514,8 @@ packages: - debug dev: false - /axios@1.5.1: - resolution: {integrity: sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==} - dependencies: - follow-redirects: 1.15.3(debug@4.3.4) - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: false - - /axios@1.6.1(debug@4.3.4): - resolution: {integrity: sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==} + /axios@1.6.2(debug@4.3.4): + resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} dependencies: follow-redirects: 1.15.3(debug@4.3.4) form-data: 4.0.0 @@ -7628,37 +7692,18 @@ packages: - supports-color dev: true - /babel-jest@27.5.1(@babel/core@7.23.2): + /babel-jest@27.5.1(@babel/core@7.23.5): resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/babel__core': 7.20.3 + '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1(@babel/core@7.23.2) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-jest@27.5.1(@babel/core@7.23.3): - resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.23.3 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/babel__core': 7.20.3 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1(@babel/core@7.23.3) + babel-preset-jest: 27.5.1(@babel/core@7.23.5) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -7696,43 +7741,43 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.0 - '@types/babel__core': 7.20.3 - '@types/babel__traverse': 7.20.3 + '@babel/types': 7.23.5 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.4 dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.3): + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.5): resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.5 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.3): - resolution: {integrity: sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==} + /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.5): + resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) - core-js-compat: 3.33.1 + '@babel/core': 7.23.5 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + core-js-compat: 3.34.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.3): + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.5): resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) transitivePeerDependencies: - supports-color dev: true @@ -7970,44 +8015,24 @@ packages: babel-types: 6.26.0 dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.2): - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) - dev: true - - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.5): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) + '@babel/core': 7.23.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) dev: true /babel-preset-env@1.7.0: @@ -8047,26 +8072,15 @@ packages: - supports-color dev: true - /babel-preset-jest@27.5.1(@babel/core@7.23.2): + /babel-preset-jest@27.5.1(@babel/core@7.23.5): resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) - dev: true - - /babel-preset-jest@27.5.1(@babel/core@7.23.3): - resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) dev: true /babel-register@6.26.0: @@ -8166,7 +8180,7 @@ packages: dependencies: cache-base: 1.0.1 class-utils: 0.3.6 - component-emitter: 1.3.0 + component-emitter: 1.3.1 define-property: 1.0.0 isobject: 3.0.1 mixin-deep: 1.3.2 @@ -8205,12 +8219,10 @@ packages: /bignumber.js@9.1.2: resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} - requiresBuild: true /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true /bind-decorator@1.0.11: resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==} @@ -8363,7 +8375,6 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true /brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} @@ -8428,8 +8439,9 @@ packages: randombytes: 2.1.0 dev: true - /browserify-sign@4.2.1: - resolution: {integrity: sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==} + /browserify-sign@4.2.2: + resolution: {integrity: sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==} + engines: {node: '>= 4'} dependencies: bn.js: 5.2.1 browserify-rsa: 4.1.0 @@ -8446,19 +8458,19 @@ packages: resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==} hasBin: true dependencies: - caniuse-lite: 1.0.30001561 - electron-to-chromium: 1.4.581 + caniuse-lite: 1.0.30001566 + electron-to-chromium: 1.4.607 dev: true - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001553 - electron-to-chromium: 1.4.563 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) + caniuse-lite: 1.0.30001566 + electron-to-chromium: 1.4.607 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true /bs-logger@0.2.6: @@ -8558,7 +8570,7 @@ packages: engines: {node: '>=6.14.2'} requiresBuild: true dependencies: - node-gyp-build: 4.6.1 + node-gyp-build: 4.7.1 /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} @@ -8642,7 +8654,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: collection-visit: 1.0.0 - component-emitter: 1.3.0 + component-emitter: 1.3.1 get-value: 2.0.6 has-value: 1.0.0 isobject: 3.0.1 @@ -8772,12 +8784,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001553: - resolution: {integrity: sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==} - dev: true - - /caniuse-lite@1.0.30001561: - resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} + /caniuse-lite@1.0.30001566: + resolution: {integrity: sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==} dev: true /capital-case@1.0.4: @@ -8928,7 +8936,6 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: true /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -8976,6 +8983,11 @@ packages: safe-buffer: 5.2.1 dev: true + /citty@0.1.5: + resolution: {integrity: sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==} + dependencies: + consola: 3.2.3 + /cjs-module-lexer@1.2.3: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: true @@ -9005,11 +9017,11 @@ packages: catering: 2.1.1 module-error: 1.0.2 napi-macros: 2.2.2 - node-gyp-build: 4.6.1 + node-gyp-build: 4.7.1 dev: true - /clean-css@5.3.2: - resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} + /clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} engines: {node: '>= 10.0'} dependencies: source-map: 0.6.1 @@ -9038,8 +9050,8 @@ packages: restore-cursor: 4.0.0 dev: true - /cli-spinners@2.9.1: - resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} dev: true @@ -9062,6 +9074,14 @@ packages: '@colors/colors': 1.5.0 dev: true + /clipboardy@3.0.0: + resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + arch: 2.2.0 + execa: 5.1.1 + is-wsl: 2.2.0 + /cliui@3.2.0: resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==} dependencies: @@ -9127,6 +9147,10 @@ packages: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} + /cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + /co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -9258,8 +9282,8 @@ packages: resolution: {integrity: sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==} dev: true - /component-emitter@1.3.0: - resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} dev: true /concat-map@0.0.1: @@ -9276,6 +9300,10 @@ packages: typedarray: 0.0.6 dev: true + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: true @@ -9491,6 +9519,9 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true + /cookie-es@1.0.0: + resolution: {integrity: sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==} + /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} requiresBuild: true @@ -9523,14 +9554,14 @@ packages: dependencies: toggle-selection: 1.0.6 - /core-js-compat@3.33.1: - resolution: {integrity: sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==} + /core-js-compat@3.34.0: + resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} dependencies: - browserslist: 4.22.1 + browserslist: 4.22.2 dev: true - /core-js-pure@3.33.2: - resolution: {integrity: sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q==} + /core-js-pure@3.34.0: + resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} requiresBuild: true dev: true @@ -9584,7 +9615,7 @@ packages: typescript: 4.9.5 dev: true - /cosmiconfig@8.3.6(typescript@5.2.2): + /cosmiconfig@8.3.6(typescript@5.3.3): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -9597,7 +9628,7 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.2.2 + typescript: 5.3.3 dev: true /crc-32@1.2.2: @@ -9672,7 +9703,6 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true /crypt@0.0.2: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} @@ -9682,7 +9712,7 @@ packages: resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} dependencies: browserify-cipher: 1.0.1 - browserify-sign: 4.2.1 + browserify-sign: 4.2.2 create-ecdh: 4.0.4 create-hash: 1.2.0 create-hmac: 1.1.7 @@ -9708,12 +9738,12 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.31) - postcss: 8.4.31 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) - postcss-modules-scope: 3.0.0(postcss@8.4.31) - postcss-modules-values: 4.0.0(postcss@8.4.31) + icss-utils: 5.1.0(postcss@8.4.32) + postcss: 8.4.32 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.32) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.32) + postcss-modules-scope: 3.0.0(postcss@8.4.32) + postcss-modules-values: 4.0.0(postcss@8.4.32) postcss-value-parser: 4.2.0 semver: 7.5.4 webpack: 5.89.0 @@ -9776,8 +9806,8 @@ packages: rrweb-cssom: 0.6.0 dev: true - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} dev: true /d@1.0.1: @@ -9790,7 +9820,7 @@ packages: resolution: {integrity: sha512-kso740gqMVVqritCQliQCpfPwos9lxp7/TEiEev4w6GGQyLNRyfriWY+DWxfawMY/DwGDzBl2DZtekCMf73bzw==} dev: true - /daisyui@3.1.7(postcss@8.4.31): + /daisyui@3.1.7(postcss@8.4.32): resolution: {integrity: sha512-VQhaunQlB7Buo+AbE+S3i6H/eYknKEuKVHG67y7sbG58uEjeLK6n2rojG3YE7fwoOss6ldbUL8Oy0MyoJi0CHw==} engines: {node: '>=16.9.0'} peerDependencies: @@ -9798,9 +9828,22 @@ packages: dependencies: colord: 2.9.3 css-selector-tokenizer: 0.8.0 - postcss: 8.4.31 - postcss-js: 4.0.1(postcss@8.4.31) - tailwindcss: 3.3.5 + postcss: 8.4.32 + postcss-js: 4.0.1(postcss@8.4.32) + tailwindcss: 3.3.6 + transitivePeerDependencies: + - ts-node + dev: true + + /daisyui@3.9.4: + resolution: {integrity: sha512-fvi2RGH4YV617/6DntOVGcOugOPym9jTGWW2XySb5ZpvdWO4L7bEG77VHirrnbRUEWvIEVXkBpxUz2KFj0rVnA==} + engines: {node: '>=16.9.0'} + dependencies: + colord: 2.9.3 + css-selector-tokenizer: 0.8.0 + postcss: 8.4.32 + postcss-js: 4.0.1(postcss@8.4.32) + tailwindcss: 3.3.6 transitivePeerDependencies: - ts-node dev: true @@ -9875,7 +9918,7 @@ packages: supports-color: optional: true dependencies: - ms: 2.1.3 + ms: 2.1.2 dev: true /debug@4.3.4(supports-color@8.1.1): @@ -10082,6 +10125,9 @@ packages: resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} dev: true + /defu@6.1.3: + resolution: {integrity: sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==} + /delay@5.0.0: resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} engines: {node: '>=10'} @@ -10105,6 +10151,10 @@ packages: rimraf: 2.7.1 dev: true + /denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -10126,6 +10176,9 @@ packages: minimalistic-assert: 1.0.1 dev: true + /destr@2.0.2: + resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} + /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -10152,6 +10205,11 @@ packages: engines: {node: '>=8'} dev: true + /detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -10287,6 +10345,7 @@ packages: /domexception@2.0.1: resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} engines: {node: '>=8'} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 5.0.0 dev: true @@ -10294,6 +10353,7 @@ packages: /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 7.0.0 dev: true @@ -10385,7 +10445,6 @@ packages: /eip1193-provider@1.0.1: resolution: {integrity: sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@json-rpc-tools/provider': 1.7.6 transitivePeerDependencies: @@ -10394,12 +10453,8 @@ packages: - utf-8-validate dev: false - /electron-to-chromium@1.4.563: - resolution: {integrity: sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==} - dev: true - - /electron-to-chromium@1.4.581: - resolution: {integrity: sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==} + /electron-to-chromium@1.4.607: + resolution: {integrity: sha512-YUlnPwE6eYxzwBnFmawA8LiLRfm70R2aJRIUv0n03uHt/cUzzYACOogmvk8M2+hVzt/kB80KJXx7d5f5JofPvQ==} dev: true /elliptic@6.5.4: @@ -10552,7 +10607,7 @@ packages: is-weakref: 1.0.2 object-inspect: 1.13.1 object-keys: 1.1.1 - object.assign: 4.1.4 + object.assign: 4.1.5 regexp.prototype.flags: 1.5.1 safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 @@ -10571,8 +10626,8 @@ packages: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: true - /es-module-lexer@1.3.1: - resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} + /es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} dev: true /es-set-tostringtag@2.0.2: @@ -10912,34 +10967,34 @@ packages: '@esbuild/win32-x64': 0.18.20 dev: true - /esbuild@0.19.5: - resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} + /esbuild@0.19.8: + resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.19.5 - '@esbuild/android-arm64': 0.19.5 - '@esbuild/android-x64': 0.19.5 - '@esbuild/darwin-arm64': 0.19.5 - '@esbuild/darwin-x64': 0.19.5 - '@esbuild/freebsd-arm64': 0.19.5 - '@esbuild/freebsd-x64': 0.19.5 - '@esbuild/linux-arm': 0.19.5 - '@esbuild/linux-arm64': 0.19.5 - '@esbuild/linux-ia32': 0.19.5 - '@esbuild/linux-loong64': 0.19.5 - '@esbuild/linux-mips64el': 0.19.5 - '@esbuild/linux-ppc64': 0.19.5 - '@esbuild/linux-riscv64': 0.19.5 - '@esbuild/linux-s390x': 0.19.5 - '@esbuild/linux-x64': 0.19.5 - '@esbuild/netbsd-x64': 0.19.5 - '@esbuild/openbsd-x64': 0.19.5 - '@esbuild/sunos-x64': 0.19.5 - '@esbuild/win32-arm64': 0.19.5 - '@esbuild/win32-ia32': 0.19.5 - '@esbuild/win32-x64': 0.19.5 + '@esbuild/android-arm': 0.19.8 + '@esbuild/android-arm64': 0.19.8 + '@esbuild/android-x64': 0.19.8 + '@esbuild/darwin-arm64': 0.19.8 + '@esbuild/darwin-x64': 0.19.8 + '@esbuild/freebsd-arm64': 0.19.8 + '@esbuild/freebsd-x64': 0.19.8 + '@esbuild/linux-arm': 0.19.8 + '@esbuild/linux-arm64': 0.19.8 + '@esbuild/linux-ia32': 0.19.8 + '@esbuild/linux-loong64': 0.19.8 + '@esbuild/linux-mips64el': 0.19.8 + '@esbuild/linux-ppc64': 0.19.8 + '@esbuild/linux-riscv64': 0.19.8 + '@esbuild/linux-s390x': 0.19.8 + '@esbuild/linux-x64': 0.19.8 + '@esbuild/netbsd-x64': 0.19.8 + '@esbuild/openbsd-x64': 0.19.8 + '@esbuild/sunos-x64': 0.19.8 + '@esbuild/win32-arm64': 0.19.8 + '@esbuild/win32-ia32': 0.19.8 + '@esbuild/win32-x64': 0.19.8 dev: false /escalade@3.1.1: @@ -10993,34 +11048,34 @@ packages: source-map: 0.6.1 dev: true - /eslint-compat-utils@0.1.2(eslint@8.53.0): + /eslint-compat-utils@0.1.2(eslint@8.55.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.53.0 + eslint: 8.55.0 dev: true - /eslint-config-prettier@8.10.0(eslint@8.53.0): + /eslint-config-prettier@8.10.0(eslint@8.55.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.53.0 + eslint: 8.55.0 dev: true - /eslint-config-prettier@9.0.0(eslint@8.53.0): - resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + /eslint-config-prettier@9.1.0(eslint@8.55.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.53.0 + eslint: 8.55.0 dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.53.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -11029,10 +11084,10 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.53.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.10.0)(eslint@8.53.0) - eslint-plugin-n: 16.3.1(eslint@8.53.0) - eslint-plugin-promise: 6.1.1(eslint@8.53.0) + eslint: 8.55.0 + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0) + eslint-plugin-n: 16.3.1(eslint@8.55.0) + eslint-plugin-promise: 6.1.1(eslint@8.55.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -11045,7 +11100,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -11066,39 +11121,39 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.53.0 + eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.53.0): + /eslint-plugin-es-x@7.5.0(eslint@8.55.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.53.0 - eslint-compat-utils: 0.1.2(eslint@8.53.0) + eslint: 8.55.0 + eslint-compat-utils: 0.1.2(eslint@8.55.0) dev: true - /eslint-plugin-es@3.0.1(eslint@8.53.0): + /eslint-plugin-es@3.0.1(eslint@8.55.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.53.0 + eslint: 8.55.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.10.0)(eslint@8.53.0): - resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.55.0): + resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -11107,17 +11162,17 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.53.0 + eslint: 8.55.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0) - has: 1.0.4 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 @@ -11132,18 +11187,18 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.3.1(eslint@8.53.0): + /eslint-plugin-n@16.3.1(eslint@8.55.0): resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) builtins: 5.0.1 - eslint: 8.53.0 - eslint-plugin-es-x: 7.5.0(eslint@8.53.0) + eslint: 8.55.0 + eslint-plugin-es-x: 7.5.0(eslint@8.55.0) get-tsconfig: 4.7.2 - ignore: 5.2.4 + ignore: 5.3.0 is-builtin-module: 3.2.1 is-core-module: 2.13.1 minimatch: 3.1.2 @@ -11151,22 +11206,22 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-node@11.1.0(eslint@8.53.0): + /eslint-plugin-node@11.1.0(eslint@8.55.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.53.0 - eslint-plugin-es: 3.0.1(eslint@8.53.0) + eslint: 8.55.0 + eslint-plugin-es: 3.0.1(eslint@8.55.0) eslint-utils: 2.1.0 - ignore: 5.2.4 + ignore: 5.3.0 minimatch: 3.1.2 resolve: 1.22.8 semver: 6.3.1 dev: true - /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3): + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -11180,32 +11235,32 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.53.0 - eslint-config-prettier: 9.0.0(eslint@8.53.0) - prettier: 3.0.3 + eslint: 8.55.0 + eslint-config-prettier: 9.1.0(eslint@8.55.0) + prettier: 3.1.0 prettier-linter-helpers: 1.0.0 - synckit: 0.8.5 + synckit: 0.8.6 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.53.0): + /eslint-plugin-promise@6.1.1(eslint@8.55.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.53.0 + eslint: 8.55.0 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.53.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.55.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.53.0 + eslint: 8.55.0 dev: true - /eslint-plugin-svelte@2.35.0(eslint@8.53.0)(svelte@4.2.3): - resolution: {integrity: sha512-3WDFxNrkXaMlpqoNo3M1ZOQuoFLMO9+bdnN6oVVXaydXC7nzCJuGy9a0zqoNDHMSRPYt0Rqo6hIdHMEaI5sQnw==} + /eslint-plugin-svelte@2.35.1(eslint@8.55.0)(svelte@4.2.8): + resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 @@ -11214,20 +11269,20 @@ packages: svelte: optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.53.0 - eslint-compat-utils: 0.1.2(eslint@8.53.0) + eslint: 8.55.0 + eslint-compat-utils: 0.1.2(eslint@8.55.0) esutils: 2.0.3 known-css-properties: 0.29.0 - postcss: 8.4.31 - postcss-load-config: 3.1.4(postcss@8.4.31) - postcss-safe-parser: 6.0.0(postcss@8.4.31) + postcss: 8.4.32 + postcss-load-config: 3.1.4(postcss@8.4.32) + postcss-safe-parser: 6.0.0(postcss@8.4.32) postcss-selector-parser: 6.0.13 semver: 7.5.4 - svelte: 4.2.3 - svelte-eslint-parser: 0.33.1(svelte@4.2.3) + svelte: 4.2.8 + svelte-eslint-parser: 0.33.1(svelte@4.2.8) transitivePeerDependencies: - supports-color - ts-node @@ -11266,15 +11321,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.53.0: - resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} + /eslint@8.55.0: + resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.53.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.55.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -11296,7 +11351,7 @@ packages: glob-parent: 6.0.2 globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -11377,7 +11432,7 @@ packages: /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@types/estree': 1.0.3 + '@types/estree': 1.0.5 /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -11432,7 +11487,7 @@ packages: optional: true dependencies: '@solidity-parser/parser': 0.14.5 - axios: 1.6.1(debug@4.3.4) + axios: 1.6.2(debug@4.3.4) cli-table3: 0.5.1 colors: 1.4.0 ethereum-cryptography: 1.2.0 @@ -11486,7 +11541,7 @@ packages: fetch-ponyfill: 4.1.0 json-rpc-engine: 3.8.0 json-rpc-error: 2.0.0 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 promise-to-callback: 1.0.0 tape: 4.17.0 transitivePeerDependencies: @@ -11599,8 +11654,8 @@ packages: /ethereum-cryptography@0.1.3: resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} dependencies: - '@types/pbkdf2': 3.1.1 - '@types/secp256k1': 4.0.5 + '@types/pbkdf2': 3.1.2 + '@types/secp256k1': 4.0.6 blakejs: 1.2.1 browserify-aes: 1.2.0 bs58check: 2.1.2 @@ -11633,13 +11688,13 @@ packages: '@scure/bip32': 1.3.1 '@scure/bip39': 1.2.1 - /ethereum-waffle@3.4.4(typescript@5.2.2): + /ethereum-waffle@3.4.4(typescript@5.3.3): resolution: {integrity: sha512-PA9+jCjw4WC3Oc5ocSMBj5sXvueWQeAbvCA+hUlb6oFgwwKyq5ka3bWQ7QZcjzIX+TdFkxP4IbFmoY2D8Dkj9Q==} engines: {node: '>=10.0'} hasBin: true dependencies: '@ethereum-waffle/chai': 3.4.4 - '@ethereum-waffle/compiler': 3.4.4(typescript@5.2.2) + '@ethereum-waffle/compiler': 3.4.4(typescript@5.3.3) '@ethereum-waffle/mock-contract': 3.4.4 '@ethereum-waffle/provider': 3.4.4 ethers: 5.7.2 @@ -11779,7 +11834,7 @@ packages: resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} engines: {node: '>=10.0.0'} dependencies: - '@types/bn.js': 5.1.3 + '@types/bn.js': 5.1.5 bn.js: 5.2.1 create-hash: 1.2.0 ethereum-cryptography: 0.1.3 @@ -11809,7 +11864,7 @@ packages: dependencies: async: 2.6.4 async-eventemitter: 0.2.4 - core-js-pure: 3.33.2 + core-js-pure: 3.34.0 ethereumjs-account: 3.0.0 ethereumjs-block: 2.2.2 ethereumjs-blockchain: 4.0.4 @@ -11937,7 +11992,6 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true /execa@6.1.0: resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} @@ -12107,17 +12161,6 @@ packages: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -12181,7 +12224,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.1.1 + flat-cache: 3.2.0 dev: true /file-uri-to-path@1.0.0: @@ -12202,7 +12245,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /filter-obj@1.1.0: resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} @@ -12299,9 +12341,9 @@ packages: micromatch: 4.0.5 dev: true - /flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.2.9 keyv: 4.5.4 @@ -12380,15 +12422,6 @@ packages: mime-types: 2.1.35 dev: true - /form-data@2.5.1: - resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} - engines: {node: '>= 0.12'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /form-data@3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} @@ -12542,7 +12575,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind@1.1.2: @@ -12682,6 +12714,9 @@ packages: engines: {node: '>=8.0.0'} dev: true + /get-port-please@3.1.1: + resolution: {integrity: sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA==} + /get-port@3.2.0: resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} engines: {node: '>=4'} @@ -12718,7 +12753,6 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dev: true /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} @@ -12758,7 +12792,6 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -12779,7 +12812,7 @@ packages: foreground-child: 3.1.1 jackspeak: 2.3.6 minimatch: 9.0.3 - minipass: 5.0.0 + minipass: 7.0.4 path-scurry: 1.10.1 dev: true @@ -12855,7 +12888,7 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.1.6 + minimatch: 5.0.1 once: 1.4.0 dev: true @@ -12918,7 +12951,7 @@ packages: dir-glob: 3.0.1 fast-glob: 3.3.2 glob: 7.2.3 - ignore: 5.2.4 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -12930,7 +12963,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.2.4 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -12941,7 +12974,7 @@ packages: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.2.4 + ignore: 5.3.0 merge2: 1.4.1 slash: 4.0.0 dev: true @@ -12955,7 +12988,7 @@ packages: dependencies: glob: 7.1.7 lodash: 4.17.21 - minimatch: 3.0.8 + minimatch: 3.0.4 dev: true /gopd@1.0.1: @@ -13016,6 +13049,18 @@ packages: engines: {node: '>=4.x'} dev: true + /h3@1.9.0: + resolution: {integrity: sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA==} + dependencies: + cookie-es: 1.0.0 + defu: 6.1.3 + destr: 2.0.2 + iron-webcrypto: 1.0.0 + radix3: 1.1.0 + ufo: 1.3.2 + uncrypto: 0.1.3 + unenv: 1.8.0 + /handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -13048,7 +13093,7 @@ packages: engines: {node: '>=6'} dev: true - /hardhat-abi-exporter@2.10.1(hardhat@2.18.2): + /hardhat-abi-exporter@2.10.1(hardhat@2.19.2): resolution: {integrity: sha512-X8GRxUTtebMAd2k4fcPyVnCdPa6dYK4lBsrwzKP5yiSq4i+WadWPIumaLfce53TUf/o2TnLpLOduyO1ylE2NHQ==} engines: {node: '>=14.14.0'} peerDependencies: @@ -13056,33 +13101,33 @@ packages: dependencies: '@ethersproject/abi': 5.7.0 delete-empty: 3.0.0 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) dev: true - /hardhat-contract-sizer@2.10.0(hardhat@2.18.2): + /hardhat-contract-sizer@2.10.0(hardhat@2.19.2): resolution: {integrity: sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA==} peerDependencies: hardhat: ^2.0.0 dependencies: chalk: 4.1.2 cli-table3: 0.6.3 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) strip-ansi: 6.0.1 dev: true - /hardhat-docgen@1.3.0(hardhat@2.18.2)(prettier@3.0.3): + /hardhat-docgen@1.3.0(hardhat@2.19.2)(prettier@3.1.0): resolution: {integrity: sha512-paaiOHjJFLCLz2/qM1TQ7ZEG+Vy+LBvJL+SW4A64ZhBnVnyoZ/zv9DvEuawaWhqP5P7AOM6r22reVz4ecWgW7A==} engines: {node: '>=14.14.0'} peerDependencies: hardhat: ^2.0.0 dependencies: css-loader: 6.8.1(webpack@5.89.0) - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) - html-webpack-plugin: 5.5.3(webpack@5.89.0) - vue: 2.7.14 - vue-loader: 15.11.1(css-loader@6.8.1)(prettier@3.0.3)(vue-template-compiler@2.7.14)(webpack@5.89.0) - vue-router: 3.6.5(vue@2.7.14) - vue-template-compiler: 2.7.14 + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) + html-webpack-plugin: 5.5.4(webpack@5.89.0) + vue: 2.7.15 + vue-loader: 15.11.1(css-loader@6.8.1)(prettier@3.1.0)(vue-template-compiler@2.7.15)(webpack@5.89.0) + vue-router: 3.6.5(vue@2.7.15) + vue-template-compiler: 2.7.15 webpack: 5.89.0 transitivePeerDependencies: - '@swc/core' @@ -13147,14 +13192,14 @@ packages: - whiskers dev: true - /hardhat-gas-reporter@1.0.9(hardhat@2.18.2): + /hardhat-gas-reporter@1.0.9(hardhat@2.19.2): resolution: {integrity: sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==} peerDependencies: hardhat: ^2.0.2 dependencies: array-uniq: 1.0.3 eth-gas-reporter: 0.2.27 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) sha1: 1.1.1 transitivePeerDependencies: - '@codechecks/client' @@ -13163,17 +13208,17 @@ packages: - utf-8-validate dev: true - /hardhat-preprocessor@0.1.5(hardhat@2.18.2): + /hardhat-preprocessor@0.1.5(hardhat@2.19.2): resolution: {integrity: sha512-j8m44mmPxpxAAd0G8fPHRHOas/INZdzptSur0TNJvMEGcFdLDhbHHxBcqZVQ/bmiW42q4gC60AP4CXn9EF018g==} peerDependencies: hardhat: ^2.0.5 dependencies: - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) murmur-128: 0.2.1 dev: true - /hardhat@2.18.2(ts-node@10.9.1)(typescript@5.2.2): - resolution: {integrity: sha512-lUVmJg7DsKcUCDpqv57CJl6vHqo/1PeHSfM3+WIa8UtRKmXyVTj1qQK01TDiuetkZBVg9Dn52qU+ZwaJQynaKA==} + /hardhat@2.19.2(ts-node@10.9.1)(typescript@5.3.3): + resolution: {integrity: sha512-CRU3+0Cc8Qh9UpxKd8cLADDPes7ZDtKj4dTK+ERtLBomEzhRPLWklJn4VKOwjre9/k8GNd/e9DYxpfuzcxbXPQ==} hasBin: true peerDependencies: ts-node: '*' @@ -13198,7 +13243,7 @@ packages: '@nomicfoundation/ethereumjs-vm': 7.0.2 '@nomicfoundation/solidity-analyzer': 0.1.1 '@sentry/node': 5.30.0 - '@types/bn.js': 5.1.3 + '@types/bn.js': 5.1.5 '@types/lru-cache': 5.1.1 adm-zip: 0.4.16 aggregate-error: 3.1.0 @@ -13228,10 +13273,10 @@ packages: solc: 0.7.3(debug@4.3.4) source-map-support: 0.5.21 stacktrace-parser: 0.1.10 - ts-node: 10.9.1(@types/node@20.9.0)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.10.4)(typescript@5.3.3) tsort: 0.0.1 - typescript: 5.2.2 - undici: 5.26.5 + typescript: 5.3.3 + undici: 5.28.2 uuid: 8.3.2 ws: 7.5.9 transitivePeerDependencies: @@ -13422,16 +13467,16 @@ packages: hasBin: true dependencies: camel-case: 4.1.2 - clean-css: 5.3.2 + clean-css: 5.3.3 commander: 8.3.0 he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.22.0 + terser: 5.26.0 dev: true - /html-webpack-plugin@5.5.3(webpack@5.89.0): - resolution: {integrity: sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==} + /html-webpack-plugin@5.5.4(webpack@5.89.0): + resolution: {integrity: sha512-3wNSaVVxdxcu0jd4FpQFoICdqgxs4zIQQvj+2yQKFfBOnLETQ6X5CDWdeasuGlSsooFlMkEioWDTqBv1wvw5Iw==} engines: {node: '>=10.13.0'} peerDependencies: webpack: ^5.20.0 @@ -13521,6 +13566,10 @@ packages: '@types/node': 10.17.60 dev: true + /http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + /http-signature@1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} @@ -13553,7 +13602,6 @@ packages: /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - dev: true /human-signals@3.0.1: resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} @@ -13584,15 +13632,18 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils@5.1.0(postcss@8.4.31): + /icss-utils@5.1.0(postcss@8.4.32): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 dev: true + /idb-keyval@6.2.1: + resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} + /idb-wrapper@1.7.2: resolution: {integrity: sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==} dev: true @@ -13604,7 +13655,6 @@ packages: /idna-uts46-hx@2.3.1: resolution: {integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==} engines: {node: '>=4.0.0'} - requiresBuild: true dependencies: punycode: 2.1.0 dev: true @@ -13612,8 +13662,8 @@ packages: /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} dev: true @@ -13749,6 +13799,22 @@ packages: fp-ts: 1.19.3 dev: true + /ioredis@5.3.2: + resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==} + engines: {node: '>=12.22.0'} + dependencies: + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.2 + debug: 4.3.4(supports-color@8.1.1) + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} dev: true @@ -13760,6 +13826,9 @@ packages: dev: true optional: true + /iron-webcrypto@1.0.0: + resolution: {integrity: sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg==} + /is-accessor-descriptor@1.0.1: resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} engines: {node: '>= 0.10'} @@ -13797,7 +13866,6 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -13879,7 +13947,6 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true - dev: true /is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} @@ -13902,7 +13969,6 @@ packages: /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true /is-finite@1.1.0: resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} @@ -13949,7 +14015,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true /is-hex-prefixed@1.0.0: resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} @@ -13994,7 +14059,6 @@ packages: /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-object@0.1.2: resolution: {integrity: sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==} @@ -14033,7 +14097,7 @@ packages: /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: - '@types/estree': 0.0.50 + '@types/estree': 1.0.5 /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -14057,7 +14121,6 @@ packages: /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: true /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} @@ -14121,7 +14184,6 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 - dev: true /is@0.2.7: resolution: {integrity: sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==} @@ -14144,7 +14206,6 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true /isobject@2.1.0: resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} @@ -14185,11 +14246,6 @@ packages: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true - /istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} - engines: {node: '>=8'} - dev: true - /istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -14199,10 +14255,10 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.2 - '@babel/parser': 7.23.0 + '@babel/core': 7.23.5 + '@babel/parser': 7.23.5 '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -14212,7 +14268,7 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 dev: true @@ -14222,7 +14278,7 @@ packages: engines: {node: '>=10'} dependencies: debug: 4.3.4(supports-color@8.1.1) - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -14250,7 +14306,7 @@ packages: engines: {node: '>=8'} hasBin: true dependencies: - '@types/connect': 3.4.37 + '@types/connect': 3.4.38 '@types/node': 12.20.55 '@types/ws': 7.4.7 JSONStream: 1.3.5 @@ -14282,7 +14338,7 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -14341,10 +14397,10 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.5 '@jest/test-sequencer': 27.5.1 '@jest/types': 27.5.1 - babel-jest: 27.5.1(@babel/core@7.23.2) + babel-jest: 27.5.1(@babel/core@7.23.5) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -14407,7 +14463,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -14425,7 +14481,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 jest-mock: 27.5.1 jest-util: 27.5.1 dev: true @@ -14440,8 +14496,8 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/graceful-fs': 4.1.8 - '@types/node': 20.9.0 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.10.4 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14463,7 +14519,7 @@ packages: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -14502,9 +14558,9 @@ packages: resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 '@jest/types': 27.5.1 - '@types/stack-utils': 2.0.2 + '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.5 @@ -14518,7 +14574,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 dev: true /jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): @@ -14574,7 +14630,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.11 @@ -14631,7 +14687,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 graceful-fs: 4.2.11 dev: true @@ -14639,16 +14695,16 @@ packages: resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.23.2 - '@babel/generator': 7.23.0 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/core': 7.23.5 + '@babel/generator': 7.23.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5) + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/babel__traverse': 7.20.3 + '@types/babel__traverse': 7.20.4 '@types/prettier': 2.7.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.5) chalk: 4.1.2 expect: 27.5.1 graceful-fs: 4.2.11 @@ -14670,7 +14726,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -14695,7 +14751,7 @@ packages: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.9.0 + '@types/node': 20.10.4 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -14706,7 +14762,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -14732,15 +14788,9 @@ packages: - utf-8-validate dev: true - /jiti@1.20.0: - resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} - hasBin: true - dev: true - /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true - dev: true /js-base64@2.6.4: resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} @@ -14756,7 +14806,6 @@ packages: /js-sha3@0.5.7: resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} - requiresBuild: true dev: true /js-sha3@0.8.0: @@ -14955,10 +15004,14 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stable-stringify@1.0.2: - resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} + /json-stable-stringify@1.1.0: + resolution: {integrity: sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA==} + engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.5 + isarray: 2.0.5 jsonify: 0.0.1 + object-keys: 1.1.1 dev: true /json-stringify-safe@5.0.1: @@ -14984,7 +15037,6 @@ packages: /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true /jsonfile@2.4.0: resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==} @@ -15034,7 +15086,7 @@ packages: requiresBuild: true dependencies: node-addon-api: 2.0.2 - node-gyp-build: 4.6.1 + node-gyp-build: 4.7.1 readable-stream: 3.6.2 /keyv@3.1.0: @@ -15106,83 +15158,83 @@ packages: invert-kv: 1.0.0 dev: true - /lefthook-darwin-arm64@1.5.2: - resolution: {integrity: sha512-uyYEgj4GTytw3g2mMkPBoGAxSYscEqm6yQVuYDcuwE2Ns6+E997KMxVhFXIg+w76zIVmwfBc3ZwP0Ga9Xr1TJQ==} + /lefthook-darwin-arm64@1.5.5: + resolution: {integrity: sha512-IkEPhY34dsjch1vB/NQXaLd8d9Y9K6iYzgFHq8Bb7tecYQ1FxGddrdGrRESuYgan3HORpcpV9R+JSaY+j0o/sQ==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /lefthook-darwin-x64@1.5.2: - resolution: {integrity: sha512-7l6mZ9TGbkLxozN0XHn+io4c9TQIUwT7hOJFAEW7sjKtrmPNLaf+xnATiqSD2DEbG6y6x4n8WF/j95FqkjcZLg==} + /lefthook-darwin-x64@1.5.5: + resolution: {integrity: sha512-lWpfj2QFfkJrI4gwVJIfdQ5e0bDtsptvJPAt61ZY9pOo97fRc7EmnQQqmy821dIVgmKtKKCUIs308272CrqNJw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /lefthook-freebsd-arm64@1.5.2: - resolution: {integrity: sha512-7CqflCMajTEo//gUbwjNpxZYeT+BhPW65RosKfGyOG4jRq1aqW8AoLutu+vx0wsFn/M+S7lcnyxmGWtXur6+mw==} + /lefthook-freebsd-arm64@1.5.5: + resolution: {integrity: sha512-E3U+PIdyt67UAPhW8ByXj7FWIRP1746DiMX8nIdSlkw4+zbNKcNKSlPhvexP/R2AuZ4cdXdg6j/MvDOWFxg3YA==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /lefthook-freebsd-x64@1.5.2: - resolution: {integrity: sha512-D6bEvOqipu/NyTTHvjnwGw/2Y03SQhWqs/pUwJOKrb/Za4T91i3fu8ULn4jyafn7Svm1iI/l8EpGPFuzbiaFvQ==} + /lefthook-freebsd-x64@1.5.5: + resolution: {integrity: sha512-WvV8lneJcWKkDzzgz2kwXYjCGUL7A7oYgo4OWixjnwdl5zSNfYbdxOrz+j1PtKSP9kNp1AARDf1sXdMHoA9jfA==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /lefthook-linux-arm64@1.5.2: - resolution: {integrity: sha512-tCfF92enT/RwfWVYxhlCxSnutGuqOkIM0XqoPcQEHJuWIEvaFgZ2VgNnfBTusOffVMGd1Ue2ouU4Z77ZZ8TH0Q==} + /lefthook-linux-arm64@1.5.5: + resolution: {integrity: sha512-+Mru3ssBbeUDM4zYvn8/791t0YCYGkLJJKtBTwKv65/mDEglDOTOX1uN+d/WQ24761LXyVKnUAFXa+PIyexTzw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /lefthook-linux-x64@1.5.2: - resolution: {integrity: sha512-rZeYS7LcLRJAYZsYzS7/uKCQwnNf7clyhpWADIyyIXj73SX3QoF0wBrCMHUMa72zpRsbIu5Sz/SYiTKCcUGU0w==} + /lefthook-linux-x64@1.5.5: + resolution: {integrity: sha512-p8Ts8SE1p34Bh4qu8Fx1IOObZnp6JxaV6Y3H2vVfyq8tUj3xYxvSht2P3sJOrkQNvyEEcPQhxfZ761TlLfxSaw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /lefthook-windows-arm64@1.5.2: - resolution: {integrity: sha512-jT8Nc5eOfsf1uGYjodODtIEEOEOxvu6GnOPwpvlWwAG693abA+eocdjRB855sa1RR4CekmcKXi7/1E6iVHzY5A==} + /lefthook-windows-arm64@1.5.5: + resolution: {integrity: sha512-ofuBiOIdEdpXJyU4fb9m3rVj93Rmlj/XdyhcjE2SOQAZe3Sso+uFr0hQ2x8UEM7fLRQLuhUuLMYwEWFmg+aTAQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /lefthook-windows-x64@1.5.2: - resolution: {integrity: sha512-tPN0957RhpPC74aUTDk6+wYcU46K2js6oQcLipurQJvD5LAsS8h2HcXePBnsiLQjpOcRt0aLWHQnNS7ilTxVPw==} + /lefthook-windows-x64@1.5.5: + resolution: {integrity: sha512-bMq/MDRHeN+IOsw7UgKEdSxQmQ+p5S1mTUqnDxsVsgMFYSuxApelXhNGLs50MRAI/IeZGwBL/4JJCuN1RJFW+w==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /lefthook@1.5.2: - resolution: {integrity: sha512-pksQpriXJArZ5AsSztkFbBVHyttGgQ1tqiUkAWlLKBwqSV/KJdOkS+c/yWo75QB88TgvWyypYWvpUgpqUKlBKQ==} + /lefthook@1.5.5: + resolution: {integrity: sha512-bq1GfvldJWwALkOufR5mIZhxxKcNmjzg8Ve1zANMgpXteuF13k1y2FeMeYuvwzzzRk+URcsiVh0dfMPA4/6wjg==} hasBin: true requiresBuild: true optionalDependencies: - lefthook-darwin-arm64: 1.5.2 - lefthook-darwin-x64: 1.5.2 - lefthook-freebsd-arm64: 1.5.2 - lefthook-freebsd-x64: 1.5.2 - lefthook-linux-arm64: 1.5.2 - lefthook-linux-x64: 1.5.2 - lefthook-windows-arm64: 1.5.2 - lefthook-windows-x64: 1.5.2 + lefthook-darwin-arm64: 1.5.5 + lefthook-darwin-x64: 1.5.5 + lefthook-freebsd-arm64: 1.5.5 + lefthook-freebsd-x64: 1.5.5 + lefthook-linux-arm64: 1.5.5 + lefthook-linux-x64: 1.5.5 + lefthook-windows-arm64: 1.5.5 + lefthook-windows-x64: 1.5.5 dev: true /level-blobs@0.1.7: @@ -15491,10 +15543,37 @@ packages: engines: {node: '>=10'} dev: true + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: true + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true + /listhen@1.5.5: + resolution: {integrity: sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA==} + hasBin: true + dependencies: + '@parcel/watcher': 2.3.0 + '@parcel/watcher-wasm': 2.3.0 + citty: 0.1.5 + clipboardy: 3.0.0 + consola: 3.2.3 + defu: 6.1.3 + get-port-please: 3.1.1 + h3: 1.9.0 + http-shutdown: 1.2.2 + jiti: 1.21.0 + mlly: 1.4.2 + node-forge: 1.3.1 + pathe: 1.1.1 + std-env: 3.6.0 + ufo: 1.3.2 + untun: 0.1.2 + uqr: 0.1.2 + /lit-element@3.3.3: resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} dependencies: @@ -15505,7 +15584,7 @@ packages: /lit-html@2.8.0: resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==} dependencies: - '@types/trusted-types': 2.0.5 + '@types/trusted-types': 2.0.7 /lit@2.7.5: resolution: {integrity: sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ==} @@ -15624,6 +15703,12 @@ packages: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: true + /lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + /lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + /lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} @@ -15683,6 +15768,7 @@ packages: /lokijs@1.5.12: resolution: {integrity: sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==} + dev: true /looper@2.0.0: resolution: {integrity: sha512-6DzMHJcjbQX/UPHc1rRCBfKlLwDkvuGZ715cIR36wSdYqWXFT35uLXq5P/2orl3tz+t+VOVPxw4yPinQlUDGDQ==} @@ -15731,7 +15817,6 @@ packages: /lru-cache@10.1.0: resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} engines: {node: 14 || >=16.14} - dev: true /lru-cache@3.2.0: resolution: {integrity: sha512-91gyOKTc2k66UG6kHiH4h3S2eltcPwE1STVfMYC/NG+nZwf8IIuiamfmpGZjpbbxzSyEJaLC0tNSmhjlQUTJow==} @@ -15959,7 +16044,7 @@ packages: resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} engines: {node: '>=10'} dependencies: - '@types/minimist': 1.2.4 + '@types/minimist': 1.2.5 camelcase-keys: 6.2.2 decamelize: 1.2.0 decamelize-keys: 1.1.1 @@ -15987,7 +16072,6 @@ packages: /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -16078,7 +16162,6 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true /miller-rabin@4.0.1: resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} @@ -16106,10 +16189,14 @@ packages: dev: true optional: true + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - dev: true /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} @@ -16153,12 +16240,6 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} - dependencies: - brace-expansion: 1.1.11 - dev: true - /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -16172,13 +16253,6 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@7.4.6: resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} engines: {node: '>=10'} @@ -16266,6 +16340,11 @@ packages: engines: {node: '>=8'} dev: true + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /minizlib@1.3.3: resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} requiresBuild: true @@ -16296,7 +16375,7 @@ packages: deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that. requiresBuild: true dependencies: - mkdirp: 3.0.1 + mkdirp: 2.1.6 dev: true optional: true @@ -16326,22 +16405,13 @@ packages: hasBin: true dev: true - /mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - requiresBuild: true - dev: true - optional: true - /mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: acorn: 8.11.2 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.3.1 - dev: true + ufo: 1.3.2 /mnemonist@0.38.5: resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} @@ -16577,6 +16647,9 @@ packages: resolution: {integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==} dev: true + /napi-wasm@1.1.0: + resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -16607,6 +16680,9 @@ packages: /node-addon-api@2.0.2: resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + /node-addon-api@7.0.0: + resolution: {integrity: sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==} + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -16625,6 +16701,9 @@ packages: semver: 5.7.2 dev: true + /node-fetch-native@1.4.1: + resolution: {integrity: sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==} + /node-fetch@1.7.3: resolution: {integrity: sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==} dependencies: @@ -16652,8 +16731,12 @@ packages: formdata-polyfill: 4.0.10 dev: true - /node-gyp-build@4.6.1: - resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==} + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + /node-gyp-build@4.7.1: + resolution: {integrity: sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==} hasBin: true /node-gyp@8.4.1: @@ -16680,8 +16763,8 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true /node-sass@7.0.3: @@ -16752,7 +16835,6 @@ packages: /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true /normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} @@ -16778,7 +16860,6 @@ packages: engines: {node: '>=8'} dependencies: path-key: 3.1.1 - dev: true /npm-run-path@5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} @@ -16900,8 +16981,8 @@ packages: object-keys: 1.1.1 dev: true - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 @@ -16971,6 +17052,13 @@ packages: resolution: {integrity: sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==} dev: true + /ofetch@1.3.3: + resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} + dependencies: + destr: 2.0.2 + node-fetch-native: 1.4.1 + ufo: 1.3.2 + /on-exit-leak-free@0.2.0: resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} @@ -16993,7 +17081,6 @@ packages: engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - dev: true /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} @@ -17050,7 +17137,7 @@ packages: dependencies: chalk: 5.3.0 cli-cursor: 4.0.0 - cli-spinners: 2.9.1 + cli-spinners: 2.9.2 is-interactive: 2.0.0 is-unicode-supported: 1.3.0 log-symbols: 5.1.0 @@ -17217,7 +17304,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -17338,7 +17425,6 @@ packages: /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - dev: true /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} @@ -17354,7 +17440,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.1.0 - minipass: 5.0.0 + minipass: 7.0.4 dev: true /path-starts-with@2.0.1: @@ -17384,7 +17470,6 @@ packages: /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: true /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -17408,7 +17493,7 @@ packages: /periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: - '@types/estree': 1.0.3 + '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 @@ -17423,7 +17508,6 @@ packages: /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} @@ -17498,20 +17582,19 @@ packages: jsonc-parser: 3.2.0 mlly: 1.4.2 pathe: 1.1.1 - dev: true - /playwright-core@1.39.0: - resolution: {integrity: sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==} + /playwright-core@1.40.1: + resolution: {integrity: sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==} engines: {node: '>=16'} hasBin: true dev: true - /playwright@1.39.0: - resolution: {integrity: sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==} + /playwright@1.40.1: + resolution: {integrity: sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==} engines: {node: '>=16'} hasBin: true dependencies: - playwright-core: 1.39.0 + playwright-core: 1.40.1 optionalDependencies: fsevents: 2.3.2 dev: true @@ -17554,26 +17637,26 @@ packages: yargs: 15.4.1 dev: true - /postcss-import@15.1.0(postcss@8.4.31): + /postcss-import@15.1.0(postcss@8.4.32): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 dev: true - /postcss-js@4.0.1(postcss@8.4.31): + /postcss-js@4.0.1(postcss@8.4.32): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.31 + postcss: 8.4.32 dev: true /postcss-load-config@2.1.2: @@ -17584,7 +17667,7 @@ packages: import-cwd: 2.1.0 dev: true - /postcss-load-config@3.1.4(postcss@8.4.31): + /postcss-load-config@3.1.4(postcss@8.4.32): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -17597,12 +17680,12 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.31 + postcss: 8.4.32 yaml: 1.10.2 dev: true - /postcss-load-config@4.0.1(postcss@8.4.31): - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + /postcss-load-config@4.0.2(postcss@8.4.32): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' @@ -17613,12 +17696,12 @@ packages: ts-node: optional: true dependencies: - lilconfig: 2.1.0 - postcss: 8.4.31 - yaml: 2.3.3 + lilconfig: 3.0.0 + postcss: 8.4.32 + yaml: 2.3.4 dev: true - /postcss-loader@7.3.3(postcss@8.4.31)(typescript@4.9.5)(webpack@5.89.0): + /postcss-loader@7.3.3(postcss@8.4.32)(typescript@4.9.5)(webpack@5.89.0): resolution: {integrity: sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -17626,62 +17709,62 @@ packages: webpack: ^5.0.0 dependencies: cosmiconfig: 8.3.6(typescript@4.9.5) - jiti: 1.20.0 - postcss: 8.4.31 + jiti: 1.21.0 + postcss: 8.4.32 semver: 7.5.4 webpack: 5.89.0 transitivePeerDependencies: - typescript dev: true - /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.32): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 dev: true - /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): + /postcss-modules-local-by-default@4.0.3(postcss@8.4.32): resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.31) - postcss: 8.4.31 + icss-utils: 5.1.0(postcss@8.4.32) + postcss: 8.4.32 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope@3.0.0(postcss@8.4.31): + /postcss-modules-scope@3.0.0(postcss@8.4.32): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.31): + /postcss-modules-values@4.0.0(postcss@8.4.32): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.31) - postcss: 8.4.31 + icss-utils: 5.1.0(postcss@8.4.32) + postcss: 8.4.32 dev: true - /postcss-nested@6.0.1(postcss@8.4.31): + /postcss-nested@6.0.1(postcss@8.4.32): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 postcss-selector-parser: 6.0.13 dev: true @@ -17695,22 +17778,22 @@ packages: postcss: 7.0.39 dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.31): + /postcss-safe-parser@6.0.0(postcss@8.4.32): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 dev: true - /postcss-scss@4.0.9(postcss@8.4.31): + /postcss-scss@4.0.9(postcss@8.4.32): resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 dev: true /postcss-selector-parser@6.0.13: @@ -17733,8 +17816,8 @@ packages: source-map: 0.6.1 dev: true - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -17747,11 +17830,8 @@ packages: requiresBuild: true dev: true - /preact@10.18.1: - resolution: {integrity: sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==} - - /preact@10.19.0: - resolution: {integrity: sha512-klJSys/ljj/Z97DrYogoUE2R2qQCtHQD9kJAEDzn/sTDx7dXAfGEbGKvLLVLs2Mhy3t5RDRGrDcWPNAky6KsUw==} + /preact@10.19.2: + resolution: {integrity: sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg==} /preact@10.4.1: resolution: {integrity: sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==} @@ -17786,14 +17866,14 @@ packages: fast-diff: 1.3.0 dev: true - /prettier-plugin-svelte@3.1.0(prettier@3.0.3)(svelte@4.2.3): - resolution: {integrity: sha512-96+AZxs2ESqIFA9j+o+DHqY+BsUglezfl553LQd6VOtTyJq5GPuBEb3ElxF2cerFzKlYKttlH/VcVmRNj5oc3A==} + /prettier-plugin-svelte@3.1.2(prettier@3.1.0)(svelte@4.2.8): + resolution: {integrity: sha512-7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 dependencies: - prettier: 3.0.3 - svelte: 4.2.3 + prettier: 3.1.0 + svelte: 4.2.8 dev: true /prettier@2.7.1: @@ -17808,8 +17888,8 @@ packages: hasBin: true dev: true - /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} engines: {node: '>=14'} hasBin: true dev: true @@ -18012,12 +18092,6 @@ packages: /punycode@2.1.0: resolution: {integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==} engines: {node: '>=6'} - requiresBuild: true - dev: true - - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} dev: true /punycode@2.3.1: @@ -18128,6 +18202,9 @@ packages: engines: {node: '>=10'} dev: true + /radix3@1.1.0: + resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} + /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -18219,7 +18296,7 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: - '@types/normalize-package-data': 2.4.3 + '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 @@ -18275,7 +18352,6 @@ packages: engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true /real-require@0.1.0: resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} @@ -18303,6 +18379,16 @@ packages: strip-indent: 3.0.0 dev: true + /redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + /redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + dependencies: + redis-errors: 1.2.0 + /reduce-flatten@2.0.0: resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} engines: {node: '>=6'} @@ -18337,7 +18423,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.23.2 + '@babel/runtime': 7.23.5 dev: true /regex-not@1.0.2: @@ -18675,10 +18761,10 @@ packages: fsevents: 2.3.3 dev: true - /rpc-websockets@7.6.1: - resolution: {integrity: sha512-MmRGaJJvxTHSRxYPjJJqcj2zWnCetw7YbYbKlD0Yc7qVw6PsZhRJg1MI3mpWlpBs+4zO+urlNfLl9zLsdOD/gA==} + /rpc-websockets@7.8.0: + resolution: {integrity: sha512-AStkq6KDvSAmA4WiwlK1pDvj/33BWmExTATUokC0v+NhWekXSTNzXS5OGXeYwq501/pj6lBZMofg/h4dx4/tCg==} dependencies: - '@babel/runtime': 7.23.2 + '@babel/runtime': 7.23.5 eventemitter3: 4.0.7 uuid: 8.3.2 ws: 8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -18757,6 +18843,7 @@ packages: /safe-json-utils@1.1.1: resolution: {integrity: sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==} + dev: false /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} @@ -18800,8 +18887,8 @@ packages: yargs: 17.7.2 dev: true - /sass@1.69.4: - resolution: {integrity: sha512-+qEreVhqAy8o++aQfCJwp0sklr2xyEzkm9Pp/Igu9wNPoe7EZEQ8X/MBvvXggI2ql607cxKg/RKOwDj6pp2XDA==} + /sass@1.69.5: + resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -18848,7 +18935,7 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/json-schema': 7.0.14 + '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) dev: true @@ -18878,7 +18965,7 @@ packages: dependencies: elliptic: 6.5.4 node-addon-api: 2.0.2 - node-gyp-build: 4.6.1 + node-gyp-build: 4.7.1 dev: true /seedrandom@3.0.1: @@ -19068,7 +19155,6 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - dev: true /shebang-regex@1.0.0: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} @@ -19078,7 +19164,6 @@ packages: /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - dev: true /shelljs@0.8.5: resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} @@ -19103,7 +19188,6 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} @@ -19130,7 +19214,7 @@ packages: resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} engines: {node: '>= 10'} dependencies: - '@polka/url': 1.0.0-next.23 + '@polka/url': 1.0.0-next.24 mrmime: 1.0.1 totalist: 3.0.1 dev: true @@ -19275,20 +19359,20 @@ packages: - debug dev: true - /solhint@3.6.2(typescript@5.2.2): + /solhint@3.6.2(typescript@5.3.3): resolution: {integrity: sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==} hasBin: true dependencies: - '@solidity-parser/parser': 0.16.1 + '@solidity-parser/parser': 0.16.2 ajv: 6.12.6 antlr4: 4.13.1 ast-parents: 0.0.1 chalk: 4.1.2 commander: 10.0.1 - cosmiconfig: 8.3.6(typescript@5.2.2) + cosmiconfig: 8.3.6(typescript@5.3.3) fast-diff: 1.3.0 glob: 8.1.0 - ignore: 5.2.4 + ignore: 5.3.0 js-yaml: 4.1.0 lodash: 4.17.21 pluralize: 8.0.0 @@ -19302,20 +19386,20 @@ packages: - typescript dev: true - /solidity-ast@0.4.52: - resolution: {integrity: sha512-iOya9BSiB9jhM8Vf40n8lGELGzwrUc57rl5BhfNtJ5cvAaMvRcNlHeAMNvqJJyjoUnczqRbHqdivEqK89du3Cw==} + /solidity-ast@0.4.55: + resolution: {integrity: sha512-qeEU/r/K+V5lrAw8iswf2/yfWAnSGs3WKPHI+zAFKFjX0dIBVXEU/swQ8eJQYHf6PJWUZFO2uWV4V1wEOkeQbA==} dependencies: array.prototype.findlast: 1.2.3 dev: true - /solidity-docgen@0.6.0-beta.36(hardhat@2.18.2): + /solidity-docgen@0.6.0-beta.36(hardhat@2.19.2): resolution: {integrity: sha512-f/I5G2iJgU1h0XrrjRD0hHMr7C10u276vYvm//rw1TzFcYQ4xTOyAoi9oNAHRU0JU4mY9eTuxdVc2zahdMuhaQ==} peerDependencies: hardhat: ^2.8.0 dependencies: handlebars: 4.7.8 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) - solidity-ast: 0.4.52 + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) + solidity-ast: 0.4.55 dev: true /sonic-boom@2.8.0: @@ -19494,6 +19578,9 @@ packages: type-fest: 0.7.1 dev: true + /standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + /static-extend@0.1.2: resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} engines: {node: '>=0.10.0'} @@ -19507,9 +19594,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /std-env@3.4.3: - resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} - dev: true + /std-env@3.6.0: + resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} /stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} @@ -19702,7 +19788,6 @@ packages: /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - dev: true /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} @@ -19811,7 +19896,7 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@2.10.3(@babel/core@7.23.3)(node-sass@7.0.3)(postcss@8.4.31)(svelte@3.59.2): + /svelte-check@2.10.3(@babel/core@7.23.5)(node-sass@7.0.3)(postcss@8.4.32)(svelte@3.59.2): resolution: {integrity: sha512-Nt1aWHTOKFReBpmJ1vPug0aGysqPwJh2seM1OvICfM2oeyaA62mOiy5EvkXhltGfhCcIQcq2LoE0l1CwcWPjlw==} hasBin: true peerDependencies: @@ -19819,13 +19904,13 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.20 chokidar: 3.5.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 svelte: 3.59.2 - svelte-preprocess: 4.10.7(@babel/core@7.23.3)(node-sass@7.0.3)(postcss@8.4.31)(svelte@3.59.2)(typescript@5.2.2) - typescript: 5.2.2 + svelte-preprocess: 4.10.7(@babel/core@7.23.5)(node-sass@7.0.3)(postcss@8.4.32)(svelte@3.59.2)(typescript@4.9.5) + typescript: 4.9.5 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -19839,8 +19924,8 @@ packages: - sugarss dev: true - /svelte-check@3.6.0(postcss@8.4.31)(svelte@4.2.3): - resolution: {integrity: sha512-8VfqhfuRJ1sKW+o8isH2kPi0RhjXH1nNsIbCFGyoUHG+ZxVxHYRKcb+S8eaL/1tyj3VGvWYx3Y5+oCUsJgnzcw==} + /svelte-check@3.6.2(postcss@8.4.32)(svelte@4.2.8): + resolution: {integrity: sha512-E6iFh4aUCGJLRz6QZXH3gcN/VFfkzwtruWSRmlKrLWQTiO6VzLsivR6q02WYLGNAGecV3EocqZuCDrC2uttZ0g==} hasBin: true peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 @@ -19851,9 +19936,9 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.3 - svelte-preprocess: 5.1.0(postcss@8.4.31)(svelte@4.2.3)(typescript@5.2.2) - typescript: 5.2.2 + svelte: 4.2.8 + svelte-preprocess: 5.1.1(postcss@8.4.32)(svelte@4.2.8)(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -19870,7 +19955,7 @@ packages: resolution: {integrity: sha512-oU+Xv7Dl4kRU2kdFjsoPLfJfnt5hUhsFUZtuzI3Ku/f2iAFZqBoEuXOqK3N9ngD4dxQOmN4OKWPHVi3NeAeAfQ==} dev: true - /svelte-eslint-parser@0.33.1(svelte@4.2.3): + /svelte-eslint-parser@0.33.1(svelte@4.2.8): resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -19882,9 +19967,9 @@ packages: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.31 - postcss-scss: 4.0.9(postcss@8.4.31) - svelte: 4.2.3 + postcss: 8.4.32 + postcss-scss: 4.0.9(postcss@8.4.32) + svelte: 4.2.8 dev: true /svelte-heros-v2@0.3.21(svelte@3.59.2): @@ -19913,13 +19998,13 @@ packages: svelte: 3.59.2 dev: true - /svelte-hmr@0.15.3(svelte@4.2.3): + /svelte-hmr@0.15.3(svelte@4.2.8): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 4.2.3 + svelte: 4.2.8 dev: true /svelte-i18n@3.7.4(svelte@3.59.2): @@ -19931,7 +20016,7 @@ packages: dependencies: cli-color: 2.0.3 deepmerge: 4.3.1 - esbuild: 0.19.5 + esbuild: 0.19.8 estree-walker: 2.0.2 intl-messageformat: 9.13.0 sade: 1.8.1 @@ -19939,7 +20024,7 @@ packages: tiny-glob: 0.2.9 dev: false - /svelte-i18n@3.7.4(svelte@4.2.3): + /svelte-i18n@3.7.4(svelte@4.2.8): resolution: {integrity: sha512-yGRCNo+eBT4cPuU7IVsYTYjxB7I2V8qgUZPlHnNctJj5IgbJgV78flsRzpjZ/8iUYZrS49oCt7uxlU3AZv/N5Q==} engines: {node: '>= 16'} hasBin: true @@ -19948,11 +20033,11 @@ packages: dependencies: cli-color: 2.0.3 deepmerge: 4.3.1 - esbuild: 0.19.5 + esbuild: 0.19.8 estree-walker: 2.0.2 intl-messageformat: 9.13.0 sade: 1.8.1 - svelte: 4.2.3 + svelte: 4.2.8 tiny-glob: 0.2.9 dev: false @@ -19978,7 +20063,7 @@ packages: svelte-hmr: 0.14.12(svelte@3.59.2) dev: true - /svelte-preprocess@4.10.7(@babel/core@7.23.3)(node-sass@7.0.3)(postcss@8.4.31)(svelte@3.59.2)(typescript@4.9.5): + /svelte-preprocess@4.10.7(@babel/core@7.23.5)(node-sass@7.0.3)(postcss@8.4.32)(svelte@3.59.2)(typescript@4.9.5): resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} engines: {node: '>= 9.11.2'} requiresBuild: true @@ -20019,75 +20104,21 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.23.3 - '@types/pug': 2.0.8 + '@babel/core': 7.23.5 + '@types/pug': 2.0.10 '@types/sass': 1.45.0 detect-indent: 6.1.0 magic-string: 0.25.9 node-sass: 7.0.3 - postcss: 8.4.31 + postcss: 8.4.32 sorcery: 0.10.0 strip-indent: 3.0.0 svelte: 3.59.2 typescript: 4.9.5 dev: true - /svelte-preprocess@4.10.7(@babel/core@7.23.3)(node-sass@7.0.3)(postcss@8.4.31)(svelte@3.59.2)(typescript@5.2.2): - resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} - engines: {node: '>= 9.11.2'} - requiresBuild: true - peerDependencies: - '@babel/core': ^7.10.2 - coffeescript: ^2.5.1 - less: ^3.11.3 || ^4.0.0 - node-sass: '*' - postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 - pug: ^3.0.0 - sass: ^1.26.8 - stylus: ^0.55.0 - sugarss: ^2.0.0 - svelte: ^3.23.0 - typescript: ^3.9.5 || ^4.0.0 - peerDependenciesMeta: - '@babel/core': - optional: true - coffeescript: - optional: true - less: - optional: true - node-sass: - optional: true - postcss: - optional: true - postcss-load-config: - optional: true - pug: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - typescript: - optional: true - dependencies: - '@babel/core': 7.23.3 - '@types/pug': 2.0.8 - '@types/sass': 1.45.0 - detect-indent: 6.1.0 - magic-string: 0.25.9 - node-sass: 7.0.3 - postcss: 8.4.31 - sorcery: 0.10.0 - strip-indent: 3.0.0 - svelte: 3.59.2 - typescript: 5.2.2 - dev: true - - /svelte-preprocess@5.1.0(postcss@8.4.31)(svelte@4.2.3)(typescript@5.2.2): - resolution: {integrity: sha512-EkErPiDzHAc0k2MF5m6vBNmRUh338h2myhinUw/xaqsLs7/ZvsgREiLGj03VrSzbY/TB5ZXgBOsKraFee5yceA==} + /svelte-preprocess@5.1.1(postcss@8.4.32)(svelte@4.2.8)(typescript@5.3.3): + resolution: {integrity: sha512-p/Dp4hmrBW5mrCCq29lEMFpIJT2FZsRlouxEc5qpbOmXRbaFs7clLs8oKPwD3xCFyZfv1bIhvOzpQkhMEVQdMw==} engines: {node: '>= 14.10.0'} requiresBuild: true peerDependencies: @@ -20124,14 +20155,14 @@ packages: typescript: optional: true dependencies: - '@types/pug': 2.0.9 + '@types/pug': 2.0.10 detect-indent: 6.1.0 magic-string: 0.27.0 - postcss: 8.4.31 + postcss: 8.4.32 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.3 - typescript: 5.2.2 + svelte: 4.2.8 + typescript: 5.3.3 dev: true /svelte-spa-router@3.3.0: @@ -20144,8 +20175,8 @@ packages: resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==} engines: {node: '>= 8'} - /svelte@4.2.3: - resolution: {integrity: sha512-sqmG9KC6uUc7fb3ZuWoxXvqk6MI9Uu4ABA1M0fYDgTlFYu1k02xp96u6U9+yJZiVm84m9zge7rrA/BNZdFpOKw==} + /svelte@4.2.8: + resolution: {integrity: sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==} engines: {node: '>=16'} dependencies: '@ampproject/remapping': 2.2.1 @@ -20203,8 +20234,8 @@ packages: get-port: 3.2.0 dev: true - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + /synckit@0.8.6: + resolution: {integrity: sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.4.2 @@ -20232,39 +20263,8 @@ packages: strip-ansi: 6.0.1 dev: true - /tailwindcss@3.3.3: - resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.5.3 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.1 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.20.0 - lilconfig: 2.1.0 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.31 - postcss-import: 15.1.0(postcss@8.4.31) - postcss-js: 4.0.1(postcss@8.4.31) - postcss-load-config: 4.0.1(postcss@8.4.31) - postcss-nested: 6.0.1(postcss@8.4.31) - postcss-selector-parser: 6.0.13 - resolve: 1.22.8 - sucrase: 3.34.0 - transitivePeerDependencies: - - ts-node - dev: true - - /tailwindcss@3.3.5: - resolution: {integrity: sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==} + /tailwindcss@3.3.6: + resolution: {integrity: sha512-AKjF7qbbLvLaPieoKeTjG1+FyNZT6KaJMJPFeQyLfIp7l82ggH1fbHJSsYIvnbTFQOlkh+gBYpyby5GT1LIdLw==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -20282,11 +20282,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.31 - postcss-import: 15.1.0(postcss@8.4.31) - postcss-js: 4.0.1(postcss@8.4.31) - postcss-load-config: 4.0.1(postcss@8.4.31) - postcss-nested: 6.0.1(postcss@8.4.31) + postcss: 8.4.32 + postcss-import: 15.1.0(postcss@8.4.32) + postcss-js: 4.0.1(postcss@8.4.32) + postcss-load-config: 4.0.2(postcss@8.4.32) + postcss-nested: 6.0.1(postcss@8.4.32) postcss-selector-parser: 6.0.13 resolve: 1.22.8 sucrase: 3.34.0 @@ -20376,17 +20376,17 @@ packages: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 - terser: 5.22.0 + terser: 5.26.0 webpack: 5.89.0 dev: true - /terser@5.22.0: - resolution: {integrity: sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==} + /terser@5.26.0: + resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.5 - acorn: 8.10.0 + acorn: 8.11.2 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -20431,10 +20431,10 @@ packages: '@types/concat-stream': 1.6.1 '@types/form-data': 0.0.33 '@types/node': 8.10.66 - '@types/qs': 6.9.9 + '@types/qs': 6.9.10 caseless: 0.12.0 concat-stream: 1.6.2 - form-data: 2.5.1 + form-data: 2.3.3 http-basic: 8.1.3 http-response-object: 3.0.2 promise: 8.3.0 @@ -20567,7 +20567,6 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true /to-regex@3.0.2: resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} @@ -20597,7 +20596,7 @@ packages: engines: {node: '>=0.8'} dependencies: psl: 1.9.0 - punycode: 2.3.0 + punycode: 2.3.1 dev: true /tough-cookie@4.1.3: @@ -20605,7 +20604,7 @@ packages: engines: {node: '>=6'} dependencies: psl: 1.9.0 - punycode: 2.3.0 + punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 dev: true @@ -20617,7 +20616,7 @@ packages: resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} engines: {node: '>=8'} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /tr46@4.1.1: @@ -20661,13 +20660,13 @@ packages: typescript: 4.9.5 dev: true - /ts-api-utils@1.0.3(typescript@5.2.2): + /ts-api-utils@1.0.3(typescript@5.3.3): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.2.2 + typescript: 5.3.3 dev: true /ts-command-line-args@2.5.1: @@ -20684,20 +20683,20 @@ packages: resolution: {integrity: sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==} dev: true - /ts-essentials@6.0.7(typescript@5.2.2): + /ts-essentials@6.0.7(typescript@5.3.3): resolution: {integrity: sha512-2E4HIIj4tQJlIHuATRHayv0EfMGK3ris/GRk1E3CFnsZzeNV+hUmelbaTZHLtXaZppM5oLhHRtO04gINC4Jusw==} peerDependencies: typescript: '>=3.7.0' dependencies: - typescript: 5.2.2 + typescript: 5.3.3 dev: true - /ts-essentials@7.0.3(typescript@5.2.2): + /ts-essentials@7.0.3(typescript@5.3.3): resolution: {integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==} peerDependencies: typescript: '>=3.7.0' dependencies: - typescript: 5.2.2 + typescript: 5.3.3 dev: true /ts-generator@0.1.1: @@ -20724,10 +20723,10 @@ packages: peerDependencies: ts-jest: '>=20.0.0' dependencies: - ts-jest: 27.1.5(@babel/core@7.23.3)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5) + ts-jest: 27.1.5(@babel/core@7.23.5)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5) dev: true - /ts-jest@27.1.5(@babel/core@7.23.3)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5): + /ts-jest@27.1.5(@babel/core@7.23.5)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5): resolution: {integrity: sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} hasBin: true @@ -20748,9 +20747,9 @@ packages: esbuild: optional: true dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@types/jest': 27.5.2 - babel-jest: 27.5.1(@babel/core@7.23.3) + babel-jest: 27.5.1(@babel/core@7.23.5) bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 jest: 27.5.1 @@ -20763,8 +20762,8 @@ packages: yargs-parser: 20.2.9 dev: true - /ts-loader@9.5.0(typescript@4.9.5)(webpack@5.89.0): - resolution: {integrity: sha512-LLlB/pkB4q9mW2yLdFMnK3dEHbrBjeZTYguaaIfusyojBgAGf5kF+O6KcWqiGzWqHk0LBsoolrp4VftEURhybg==} + /ts-loader@9.5.1(typescript@4.9.5)(webpack@5.89.0): + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} engines: {node: '>=12.0.0'} peerDependencies: typescript: '*' @@ -20786,7 +20785,7 @@ packages: code-block-writer: 12.0.0 dev: true - /ts-node@10.9.1(@types/node@20.9.0)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.10.4)(typescript@5.3.3): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -20805,19 +20804,19 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.9.0 - acorn: 8.10.0 - acorn-walk: 8.2.0 + '@types/node': 20.10.4 + acorn: 8.11.2 + acorn-walk: 8.3.1 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.2.2 + typescript: 5.3.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /tsconfck@2.1.2(typescript@5.2.2): + /tsconfck@2.1.2(typescript@5.3.3): resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==} engines: {node: ^14.13.1 || ^16 || >=18} hasBin: true @@ -20827,7 +20826,7 @@ packages: typescript: optional: true dependencies: - typescript: 5.2.2 + typescript: 5.3.3 dev: true /tsconfig-paths@3.14.2: @@ -20947,7 +20946,7 @@ packages: /type@2.7.2: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - /typechain@3.0.0(typescript@5.2.2): + /typechain@3.0.0(typescript@5.3.3): resolution: {integrity: sha512-ft4KVmiN3zH4JUFu2WJBrwfHeDf772Tt2d8bssDTo/YcckKW2D+OwFrHXRC6hJvO3mHjFQTihoMV6fJOi0Hngg==} hasBin: true dependencies: @@ -20956,14 +20955,14 @@ packages: fs-extra: 7.0.1 js-sha3: 0.8.0 lodash: 4.17.21 - ts-essentials: 6.0.7(typescript@5.2.2) + ts-essentials: 6.0.7(typescript@5.3.3) ts-generator: 0.1.1 transitivePeerDependencies: - supports-color - typescript dev: true - /typechain@8.3.2(typescript@5.2.2): + /typechain@8.3.2(typescript@5.3.3): resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==} hasBin: true peerDependencies: @@ -20976,10 +20975,10 @@ packages: js-sha3: 0.8.0 lodash: 4.17.21 mkdirp: 1.0.4 - prettier: 2.7.1 + prettier: 2.8.8 ts-command-line-args: 2.5.1 - ts-essentials: 7.0.3(typescript@5.2.2) - typescript: 5.2.2 + ts-essentials: 7.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -21040,8 +21039,8 @@ packages: engines: {node: '>=4.2.0'} hasBin: true - /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true @@ -21073,9 +21072,8 @@ packages: engines: {node: '>=8'} dev: true - /ufo@1.3.1: - resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} - dev: true + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} @@ -21105,6 +21103,9 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + /underscore@1.9.1: resolution: {integrity: sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==} requiresBuild: true @@ -21114,20 +21115,29 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici@5.26.4: - resolution: {integrity: sha512-OG+QOf0fTLtazL9P9X7yqWxQ+Z0395Wk6DSkyTxtaq3wQEjIroVe7Y4asCX/vcCxYpNGMnwz8F0qbRYUoaQVMw==} + /undici@5.26.5: + resolution: {integrity: sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==} engines: {node: '>=14.0'} dependencies: - '@fastify/busboy': 2.0.0 + '@fastify/busboy': 2.1.0 dev: true - /undici@5.26.5: - resolution: {integrity: sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==} + /undici@5.28.2: + resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} engines: {node: '>=14.0'} dependencies: - '@fastify/busboy': 2.0.0 + '@fastify/busboy': 2.1.0 dev: true + /unenv@1.8.0: + resolution: {integrity: sha512-uIGbdCWZfhRRmyKj1UioCepQ0jpq638j/Cf0xFTn4zD1nGJ2lSdzYHLzfdXN791oo/0juUiSWW1fBklXMTsuqg==} + dependencies: + consola: 3.2.3 + defu: 6.1.3 + mime: 3.0.0 + node-fetch-native: 1.4.1 + pathe: 1.1.1 + /unfetch@4.2.0: resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} dev: true @@ -21210,18 +21220,82 @@ packages: isobject: 3.0.1 dev: true + /unstorage@1.10.1(idb-keyval@6.2.1): + resolution: {integrity: sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw==} + peerDependencies: + '@azure/app-configuration': ^1.4.1 + '@azure/cosmos': ^4.0.0 + '@azure/data-tables': ^13.2.2 + '@azure/identity': ^3.3.2 + '@azure/keyvault-secrets': ^4.7.0 + '@azure/storage-blob': ^12.16.0 + '@capacitor/preferences': ^5.0.6 + '@netlify/blobs': ^6.2.0 + '@planetscale/database': ^1.11.0 + '@upstash/redis': ^1.23.4 + '@vercel/kv': ^0.2.3 + idb-keyval: ^6.2.1 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/kv': + optional: true + idb-keyval: + optional: true + dependencies: + anymatch: 3.1.3 + chokidar: 3.5.3 + destr: 2.0.2 + h3: 1.9.0 + idb-keyval: 6.2.1 + ioredis: 5.3.2 + listhen: 1.5.5 + lru-cache: 10.1.0 + mri: 1.2.0 + node-fetch-native: 1.4.1 + ofetch: 1.3.3 + ufo: 1.3.2 + transitivePeerDependencies: + - supports-color + /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): + /untun@0.1.2: + resolution: {integrity: sha512-wLAMWvxfqyTiBODA1lg3IXHQtjggYLeTK7RnSfqtOXixWJ3bAa2kK/HHmOOg19upteqO3muLvN6O/icbyQY33Q==} + hasBin: true + dependencies: + citty: 0.1.5 + consola: 3.2.3 + pathe: 1.1.1 + + /update-browserslist-db@1.0.13(browserslist@4.22.2): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.1 + browserslist: 4.22.2 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -21238,10 +21312,13 @@ packages: tslib: 2.6.2 dev: true + /uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /urix@0.1.0: @@ -21295,7 +21372,7 @@ packages: engines: {node: '>=6.14.2'} requiresBuild: true dependencies: - node-gyp-build: 4.6.1 + node-gyp-build: 4.7.1 /utf8@3.0.0: resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} @@ -21361,13 +21438,13 @@ packages: resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} engines: {node: '>=10.12.0'} dependencies: - '@types/istanbul-lib-coverage': 2.0.5 + '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 1.9.0 source-map: 0.7.4 dev: true - /v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.20 @@ -21448,29 +21525,29 @@ packages: extsprintf: 1.3.0 dev: true - /viem@1.18.9(typescript@5.2.2)(zod@3.22.4): - resolution: {integrity: sha512-eAXtoTwAFA3YEgjTYMb5ZTQrDC0UPx5qyZ4sv90TirVKepcM9mBPksTkC1SSWya0UdxhBmhEBL/CiYMjmGCTWg==} + /viem@1.19.11(typescript@5.3.3)(zod@3.22.4): + resolution: {integrity: sha512-dbsXEWDBZkByuzJXAs/e01j7dpUJ5ICF5WcyntFwf8Y97n5vnC/91lAleSa6DA5V4WJvYZbhDpYeTctsMAQnhA==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true dependencies: - '@adraffy/ens-normalize': 1.9.4 + '@adraffy/ens-normalize': 1.10.0 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.2 '@scure/bip32': 1.3.2 '@scure/bip39': 1.2.1 - abitype: 0.9.8(typescript@5.2.2)(zod@3.22.4) + abitype: 0.9.8(typescript@5.3.3)(zod@3.22.4) isows: 1.0.3(ws@8.13.0) - typescript: 5.2.2 + typescript: 5.3.3 ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate - zod - /vite-node@0.32.4(@types/node@20.9.0): + /vite-node@0.32.4(@types/node@20.10.4): resolution: {integrity: sha512-L2gIw+dCxO0LK14QnUMoqSYpa9XRGnTTTDjW2h19Mr+GR0EFj4vx52W41gFXfMLqpA00eK4ZjOVYo1Xk//LFEw==} engines: {node: '>=v14.18.0'} hasBin: true @@ -21480,7 +21557,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.5.0(@types/node@20.9.0) + vite: 4.5.1(@types/node@20.10.4) transitivePeerDependencies: - '@types/node' - less @@ -21499,14 +21576,14 @@ packages: vite: ^3.0.0 dependencies: chokidar: 3.5.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 fs-extra: 10.1.0 picocolors: 1.0.0 vite: 3.2.7 dev: true - /vite-tsconfig-paths@4.2.1(typescript@5.2.2)(vite@4.5.0): - resolution: {integrity: sha512-GNUI6ZgPqT3oervkvzU+qtys83+75N/OuDaQl7HmOqFTb0pjZsuARrRipsyJhJ3enqV8beI1xhGbToR4o78nSQ==} + /vite-tsconfig-paths@4.2.2(typescript@5.3.3)(vite@4.5.1): + resolution: {integrity: sha512-dq0FjyxHHDnp0uS3P12WEOX2W7NeuLzX9AWP38D7Zw2CTbFErapwQVlCiT5DMJcVWKQ1MMdTe92PZl/rBQ7qcw==} peerDependencies: vite: '*' peerDependenciesMeta: @@ -21515,8 +21592,8 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) globrex: 0.1.2 - tsconfck: 2.1.2(typescript@5.2.2) - vite: 4.5.0(@types/node@20.9.0) + tsconfck: 2.1.2(typescript@5.3.3) + vite: 4.5.1(@types/node@20.10.4) transitivePeerDependencies: - supports-color - typescript @@ -21548,15 +21625,15 @@ packages: optional: true dependencies: esbuild: 0.15.18 - postcss: 8.4.31 + postcss: 8.4.32 resolve: 1.22.8 rollup: 2.79.1 optionalDependencies: fsevents: 2.3.3 dev: true - /vite@4.5.0(@types/node@20.9.0): - resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} + /vite@4.5.1(@types/node@20.10.4): + resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -21583,9 +21660,9 @@ packages: terser: optional: true dependencies: - '@types/node': 20.9.0 + '@types/node': 20.10.4 esbuild: 0.18.20 - postcss: 8.4.31 + postcss: 8.4.32 rollup: 3.29.4 optionalDependencies: fsevents: 2.3.3 @@ -21602,7 +21679,7 @@ packages: vite: 3.2.7 dev: true - /vitefu@0.2.5(vite@4.5.0): + /vitefu@0.2.5(vite@4.5.1): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -21610,7 +21687,7 @@ packages: vite: optional: true dependencies: - vite: 4.5.0(@types/node@20.9.0) + vite: 4.5.1(@types/node@20.10.4) dev: true /vitest-fetch-mock@0.2.2(vitest@0.32.4): @@ -21656,16 +21733,16 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.10 + '@types/chai': 4.3.11 '@types/chai-subset': 1.3.5 - '@types/node': 20.9.0 + '@types/node': 20.10.4 '@vitest/expect': 0.32.4 '@vitest/runner': 0.32.4 '@vitest/snapshot': 0.32.4 '@vitest/spy': 0.32.4 '@vitest/utils': 0.32.4 acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn-walk: 8.3.1 cac: 6.7.14 chai: 4.3.10 debug: 4.3.4(supports-color@8.1.1) @@ -21674,12 +21751,12 @@ packages: magic-string: 0.30.5 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.4.3 + std-env: 3.6.0 strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.5.0 - vite: 4.5.0(@types/node@20.9.0) - vite-node: 0.32.4(@types/node@20.9.0) + vite: 4.5.1(@types/node@20.10.4) + vite-node: 0.32.4(@types/node@20.10.4) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -21695,7 +21772,7 @@ packages: resolution: {integrity: sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==} dev: true - /vue-loader@15.11.1(css-loader@6.8.1)(prettier@3.0.3)(vue-template-compiler@2.7.14)(webpack@5.89.0): + /vue-loader@15.11.1(css-loader@6.8.1)(prettier@3.1.0)(vue-template-compiler@2.7.15)(webpack@5.89.0): resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==} peerDependencies: '@vue/compiler-sfc': ^3.0.8 @@ -21718,10 +21795,10 @@ packages: css-loader: 6.8.1(webpack@5.89.0) hash-sum: 1.0.2 loader-utils: 1.4.2 - prettier: 3.0.3 + prettier: 3.1.0 vue-hot-reload-api: 2.3.4 vue-style-loader: 4.1.3 - vue-template-compiler: 2.7.14 + vue-template-compiler: 2.7.15 webpack: 5.89.0 transitivePeerDependencies: - arc-templates @@ -21779,12 +21856,12 @@ packages: - whiskers dev: true - /vue-router@3.6.5(vue@2.7.14): + /vue-router@3.6.5(vue@2.7.15): resolution: {integrity: sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==} peerDependencies: vue: ^2 dependencies: - vue: 2.7.14 + vue: 2.7.15 dev: true /vue-style-loader@4.1.3: @@ -21794,8 +21871,8 @@ packages: loader-utils: 1.4.2 dev: true - /vue-template-compiler@2.7.14: - resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} + /vue-template-compiler@2.7.15: + resolution: {integrity: sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==} dependencies: de-indent: 1.0.2 he: 1.2.0 @@ -21805,11 +21882,11 @@ packages: resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==} dev: true - /vue@2.7.14: - resolution: {integrity: sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==} + /vue@2.7.15: + resolution: {integrity: sha512-a29fsXd2G0KMRqIFTpRgpSbWaNBK3lpCTOLuGLEDnlHWdjB8fwl6zyYZ8xCrqkJdatwZb4mGHiEfJjnw0Q6AwQ==} dependencies: - '@vue/compiler-sfc': 2.7.14 - csstype: 3.1.2 + '@vue/compiler-sfc': 2.7.15 + csstype: 3.1.3 dev: true /w3c-hr-time@1.0.2: @@ -22098,7 +22175,7 @@ packages: ethereumjs-util: 5.2.1 ethereumjs-vm: 2.6.0 json-rpc-error: 2.0.0 - json-stable-stringify: 1.0.2 + json-stable-stringify: 1.1.0 promise-to-callback: 1.0.0 readable-stream: 2.3.8 request: 2.88.2 @@ -22243,17 +22320,17 @@ packages: webpack-cli: optional: true dependencies: - '@types/eslint-scope': 3.7.6 - '@types/estree': 1.0.3 + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.11.6 '@webassemblyjs/wasm-edit': 1.11.6 '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.10.0 - acorn-import-assertions: 1.9.0(acorn@8.10.0) - browserslist: 4.22.1 + acorn: 8.11.2 + acorn-import-assertions: 1.9.0(acorn@8.11.2) + browserslist: 4.22.2 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 - es-module-lexer: 1.3.1 + es-module-lexer: 1.4.1 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -22376,7 +22453,6 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true /why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} @@ -22690,8 +22766,8 @@ packages: engines: {node: '>= 6'} dev: true - /yaml@2.3.3: - resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} dev: true @@ -22789,7 +22865,7 @@ packages: require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.9 + yargs-parser: 20.2.4 dev: true /yargs@17.7.2: @@ -22842,27 +22918,8 @@ packages: /zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - /zustand@4.4.4(react@18.2.0): - resolution: {integrity: sha512-5UTUIAiHMNf5+mFp7/AnzJXS7+XxktULFN0+D1sCiZWyX7ZG+AQpqs2qpYrynRij4QvoDdCD+U+bmg/cG3Ucxw==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - dependencies: - react: 18.2.0 - use-sync-external-store: 1.2.0(react@18.2.0) - dev: false - - /zustand@4.4.6(react@18.2.0): - resolution: {integrity: sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg==} + /zustand@4.4.7(react@18.2.0): + resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==} engines: {node: '>=12.7.0'} peerDependencies: '@types/react': '>=16.8' @@ -22888,7 +22945,7 @@ packages: ethereumjs-util: 6.2.1 dev: true - github.com/taikoxyz/solidity-coverage/ceb49fd1f6041e4fcd26079dfb0d3b0f58c812e5(hardhat@2.18.2): + github.com/taikoxyz/solidity-coverage/ceb49fd1f6041e4fcd26079dfb0d3b0f58c812e5(hardhat@2.19.2): resolution: {tarball: https://codeload.github.com/taikoxyz/solidity-coverage/tar.gz/ceb49fd1f6041e4fcd26079dfb0d3b0f58c812e5} id: github.com/taikoxyz/solidity-coverage/ceb49fd1f6041e4fcd26079dfb0d3b0f58c812e5 name: solidity-coverage @@ -22907,7 +22964,7 @@ packages: ghost-testrpc: 0.0.2 global-modules: 2.0.0 globby: 10.0.2 - hardhat: 2.18.2(ts-node@10.9.1)(typescript@5.2.2) + hardhat: 2.19.2(ts-node@10.9.1)(typescript@5.3.3) jsonschema: 1.4.1 lodash: 4.17.21 mocha: 7.1.2