From 9c1335ec3086aa170a53e372896af25d8a2c7e72 Mon Sep 17 00:00:00 2001 From: hazim Date: Thu, 4 Apr 2024 18:50:42 +1100 Subject: [PATCH] v0.4.0-beta.1 Release (#123) --- .eslintignore | 11 - .eslintrc.json | 28 - .github/workflows/pipeline.yml | 37 +- .npmignore | 5 +- .prettierignore | 4 + .prettierrc.json | 4 +- README.md | 3 + abi/BarzAccountFacet.json | 269 -- abi/BarzDefaultFallbackHandler.json | 156 -- abi/BarzFactory.json | 158 -- abi/BarzSecp256r1VerificationFacet.json | 251 -- abi/ECDSAKernelFactory.json | 112 - abi/ECDSAValidator.json | 184 -- abi/EntryPoint.json | 1311 ---------- abi/Kernel.json | 581 ----- abi/KernelFactory.json | 143 -- abi/Multisend.json | 22 - abi/SimpleAccount.json | 526 ---- abi/SimpleAccountFactory.json | 76 - eslint.config.js | 12 + package.json | 46 +- src/builder.test.ts | 457 ---- src/builder.ts | 224 -- src/client.ts | 97 - src/constants/barz.ts | 6 - src/constants/erc4337.ts | 6 - src/constants/index.ts | 4 - src/constants/kernel.ts | 10 - src/constants/safe.ts | 125 - src/context.ts | 61 - src/index.ts | 9 +- src/preset/builder/barz.ts | 120 - src/preset/builder/index.ts | 3 - src/preset/builder/kernel.ts | 174 -- src/preset/builder/simpleAccount.ts | 121 - src/preset/index.ts | 3 - src/preset/middleware/gasLimit.ts | 30 - src/preset/middleware/gasPrice.ts | 56 - src/preset/middleware/index.ts | 4 - src/preset/middleware/paymaster.ts | 31 - src/preset/middleware/signature.ts | 21 - src/preset/signers/barzSecp256r1.ts | 54 - src/preset/signers/index.ts | 2 - src/preset/signers/remoteEOA.ts | 28 - src/provider.ts | 27 - src/test/helpers.ts | 46 + src/test/v06/account.constants.ts | 124 + src/test/v06/account.test.ts | 186 ++ src/typechain/BarzAccountFacet.ts | 428 --- src/typechain/BarzDefaultFallbackHandler.ts | 242 -- src/typechain/BarzFactory.ts | 337 --- .../BarzSecp256r1VerificationFacet.ts | 427 --- src/typechain/ECDSAKernelFactory.ts | 204 -- src/typechain/ECDSAValidator.ts | 316 --- src/typechain/EntryPoint.ts | 1171 --------- src/typechain/Kernel.ts | 883 ------- src/typechain/KernelFactory.ts | 254 -- src/typechain/Multisend.ts | 101 - src/typechain/SimpleAccount.ts | 830 ------ src/typechain/SimpleAccountFactory.ts | 172 -- src/typechain/common.ts | 44 - .../factories/BarzAccountFacet__factory.ts | 361 --- .../BarzDefaultFallbackHandler__factory.ts | 190 -- .../factories/BarzFactory__factory.ts | 229 -- ...BarzSecp256r1VerificationFacet__factory.ts | 375 --- .../factories/ECDSAKernelFactory__factory.ts | 134 - .../factories/ECDSAValidator__factory.ts | 206 -- .../factories/KernelFactory__factory.ts | 162 -- src/typechain/factories/Kernel__factory.ts | 597 ----- src/typechain/factories/Multisend__factory.ts | 41 - .../SimpleAccountFactory__factory.ts | 102 - src/typechain/factories/index.ts | 15 - src/typechain/index.ts | 28 - src/types.ts | 76 - src/utils/index.ts | 1 - src/utils/json.ts | 20 - .../commonConfigs/abi/simpleAccount.ts} | 96 +- src/v06/account/commonConfigs/index.ts | 1 + .../account/commonConfigs/simpleAccount.ts | 22 + src/v06/account/hooks/index.ts | 5 + .../account/hooks/requestGasPrice/common.ts | 42 + .../account/hooks/requestGasPrice/index.ts | 1 + .../account/hooks/requestGasValues/common.ts | 47 + .../account/hooks/requestGasValues/index.ts | 1 + .../account/hooks/requestPaymaster/common.ts | 37 + .../account/hooks/requestPaymaster/index.ts | 2 + .../account/hooks/requestPaymaster/types.ts | 33 + .../account/hooks/requestSignature/ethers.ts | 18 + .../account/hooks/requestSignature/index.ts | 2 + .../account/hooks/requestSignature/viem.ts | 30 + src/v06/account/hooks/types.ts | 46 + src/v06/account/index.ts | 4 + src/v06/account/instance.ts | 329 +++ src/v06/account/types.ts | 51 + src/v06/bundler/common.ts | 32 + src/v06/bundler/index.ts | 2 + src/v06/bundler/types.ts | 14 + .../entryPoint/abi/EntryPoint.ts} | 23 +- src/v06/entryPoint/abi/index.ts | 1 + src/v06/entryPoint/constants.ts | 19 + src/v06/entryPoint/index.ts | 3 + src/v06/entryPoint/types.ts | 29 + src/v06/entryPoint/utils.ts | 55 + src/v06/index.ts | 3 + tsconfig.json | 4 +- yarn.lock | 2288 ++++++++--------- 106 files changed, 2392 insertions(+), 14762 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.json create mode 100644 .prettierignore delete mode 100644 abi/BarzAccountFacet.json delete mode 100644 abi/BarzDefaultFallbackHandler.json delete mode 100644 abi/BarzFactory.json delete mode 100644 abi/BarzSecp256r1VerificationFacet.json delete mode 100644 abi/ECDSAKernelFactory.json delete mode 100644 abi/ECDSAValidator.json delete mode 100644 abi/EntryPoint.json delete mode 100644 abi/Kernel.json delete mode 100644 abi/KernelFactory.json delete mode 100644 abi/Multisend.json delete mode 100644 abi/SimpleAccount.json delete mode 100644 abi/SimpleAccountFactory.json create mode 100644 eslint.config.js delete mode 100644 src/builder.test.ts delete mode 100644 src/builder.ts delete mode 100644 src/client.ts delete mode 100644 src/constants/barz.ts delete mode 100644 src/constants/erc4337.ts delete mode 100644 src/constants/index.ts delete mode 100644 src/constants/kernel.ts delete mode 100644 src/constants/safe.ts delete mode 100644 src/context.ts delete mode 100644 src/preset/builder/barz.ts delete mode 100644 src/preset/builder/index.ts delete mode 100644 src/preset/builder/kernel.ts delete mode 100644 src/preset/builder/simpleAccount.ts delete mode 100644 src/preset/index.ts delete mode 100644 src/preset/middleware/gasLimit.ts delete mode 100644 src/preset/middleware/gasPrice.ts delete mode 100644 src/preset/middleware/index.ts delete mode 100644 src/preset/middleware/paymaster.ts delete mode 100644 src/preset/middleware/signature.ts delete mode 100644 src/preset/signers/barzSecp256r1.ts delete mode 100644 src/preset/signers/index.ts delete mode 100644 src/preset/signers/remoteEOA.ts delete mode 100644 src/provider.ts create mode 100644 src/test/helpers.ts create mode 100644 src/test/v06/account.constants.ts create mode 100644 src/test/v06/account.test.ts delete mode 100644 src/typechain/BarzAccountFacet.ts delete mode 100644 src/typechain/BarzDefaultFallbackHandler.ts delete mode 100644 src/typechain/BarzFactory.ts delete mode 100644 src/typechain/BarzSecp256r1VerificationFacet.ts delete mode 100644 src/typechain/ECDSAKernelFactory.ts delete mode 100644 src/typechain/ECDSAValidator.ts delete mode 100644 src/typechain/EntryPoint.ts delete mode 100644 src/typechain/Kernel.ts delete mode 100644 src/typechain/KernelFactory.ts delete mode 100644 src/typechain/Multisend.ts delete mode 100644 src/typechain/SimpleAccount.ts delete mode 100644 src/typechain/SimpleAccountFactory.ts delete mode 100644 src/typechain/common.ts delete mode 100644 src/typechain/factories/BarzAccountFacet__factory.ts delete mode 100644 src/typechain/factories/BarzDefaultFallbackHandler__factory.ts delete mode 100644 src/typechain/factories/BarzFactory__factory.ts delete mode 100644 src/typechain/factories/BarzSecp256r1VerificationFacet__factory.ts delete mode 100644 src/typechain/factories/ECDSAKernelFactory__factory.ts delete mode 100644 src/typechain/factories/ECDSAValidator__factory.ts delete mode 100644 src/typechain/factories/KernelFactory__factory.ts delete mode 100644 src/typechain/factories/Kernel__factory.ts delete mode 100644 src/typechain/factories/Multisend__factory.ts delete mode 100644 src/typechain/factories/SimpleAccountFactory__factory.ts delete mode 100644 src/typechain/factories/index.ts delete mode 100644 src/typechain/index.ts delete mode 100644 src/types.ts delete mode 100644 src/utils/index.ts delete mode 100644 src/utils/json.ts rename src/{typechain/factories/SimpleAccount__factory.ts => v06/account/commonConfigs/abi/simpleAccount.ts} (87%) create mode 100644 src/v06/account/commonConfigs/index.ts create mode 100644 src/v06/account/commonConfigs/simpleAccount.ts create mode 100644 src/v06/account/hooks/index.ts create mode 100644 src/v06/account/hooks/requestGasPrice/common.ts create mode 100644 src/v06/account/hooks/requestGasPrice/index.ts create mode 100644 src/v06/account/hooks/requestGasValues/common.ts create mode 100644 src/v06/account/hooks/requestGasValues/index.ts create mode 100644 src/v06/account/hooks/requestPaymaster/common.ts create mode 100644 src/v06/account/hooks/requestPaymaster/index.ts create mode 100644 src/v06/account/hooks/requestPaymaster/types.ts create mode 100644 src/v06/account/hooks/requestSignature/ethers.ts create mode 100644 src/v06/account/hooks/requestSignature/index.ts create mode 100644 src/v06/account/hooks/requestSignature/viem.ts create mode 100644 src/v06/account/hooks/types.ts create mode 100644 src/v06/account/index.ts create mode 100644 src/v06/account/instance.ts create mode 100644 src/v06/account/types.ts create mode 100644 src/v06/bundler/common.ts create mode 100644 src/v06/bundler/index.ts create mode 100644 src/v06/bundler/types.ts rename src/{typechain/factories/EntryPoint__factory.ts => v06/entryPoint/abi/EntryPoint.ts} (97%) create mode 100644 src/v06/entryPoint/abi/index.ts create mode 100644 src/v06/entryPoint/constants.ts create mode 100644 src/v06/entryPoint/index.ts create mode 100644 src/v06/entryPoint/types.ts create mode 100644 src/v06/entryPoint/utils.ts create mode 100644 src/v06/index.ts diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index d88bf4a..0000000 --- a/.eslintignore +++ /dev/null @@ -1,11 +0,0 @@ -node_modules -.gitkeep -.gitignore -.eslintignore -.npmignore -jest.config.js -dist -LICENSE -yarn.lock -patches -src/typechain diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 986be35..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint", "unused-imports"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "prettier" - ], - "overrides": [ - { - "files": ["*.ts"], - "rules": { - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-shadow": ["error"], - "@typescript-eslint/no-unused-vars": [ - "error", - { "ignoreRestSiblings": true } - ], - "no-shadow": "off", - "no-undef": "off", - "unused-imports/no-unused-imports": "error", - "@typescript-eslint/ban-ts-comment": "off" - } - } - ], - "ignorePatterns": ["build"] -} diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index 7fe11e6..e9bd9bb 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -7,7 +7,7 @@ on: branches: [main] jobs: - checks: + test: runs-on: ubuntu-latest strategy: @@ -25,14 +25,39 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile + - name: Checkout erc-4337-devnet + uses: actions/checkout@v3 + with: + repository: stackup-wallet/erc-4337-devnet + path: ./erc-4337-devnet + + - name: Deploy ERC-4337 devnet + working-directory: ./erc-4337-devnet + run: docker-compose up -d --build + - name: Test - run: yarn run test + run: make -C ./erc-4337-devnet wait && yarn run test + + lint: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x] + + steps: + - uses: actions/checkout@v3 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: yarn install --frozen-lockfile - name: Lint run: yarn run lint - - name: Code format + - name: Format run: yarn run prettier - - - name: build - run: yarn run build diff --git a/.npmignore b/.npmignore index 2589658..1b76488 100644 --- a/.npmignore +++ b/.npmignore @@ -1,9 +1,8 @@ .github src -tests -.eslintignore -.eslintrc.json .gitignore +.prettierignore .prettierrc.json +eslint.config.js jest.config.js tsconfig.json diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..0972d88 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +.prettierignore +.gitignore +.npmignore +yarn.lock diff --git a/.prettierrc.json b/.prettierrc.json index 0967ef4..bf357fb 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1 +1,3 @@ -{} +{ + "trailingComma": "all" +} diff --git a/README.md b/README.md index a349a36..fcc9464 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,12 @@ See the `userop` documentation at [docs.stackup.sh](https://docs.stackup.sh/docs # Contributing +Steps for setting up a local dev environment for contributing to userop.js. + ## Prerequisites - Node 16 or later +- [ERC-4337 Devnet](https://github.com/stackup-wallet/erc-4337-devnet) running ## Setup diff --git a/abi/BarzAccountFacet.json b/abi/BarzAccountFacet.json deleted file mode 100644 index a6a7228..0000000 --- a/abi/BarzAccountFacet.json +++ /dev/null @@ -1,269 +0,0 @@ -{ - "abi": [ - { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, - { - "inputs": [], - "name": "AccountFacet__CallNotSuccessful", - "type": "error" - }, - { - "inputs": [], - "name": "AccountFacet__InitializationFailure", - "type": "error" - }, - { - "inputs": [], - "name": "AccountFacet__InvalidArrayLength", - "type": "error" - }, - { - "inputs": [], - "name": "AccountFacet__NonExistentVerificationFacet", - "type": "error" - }, - { - "inputs": [], - "name": "AccountFacet__RestrictionsFailure", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_initializationContractAddress", - "type": "address" - }, - { "internalType": "bytes", "name": "_calldata", "type": "bytes" } - ], - "name": "InitializationFunctionReverted", - "type": "error" - }, - { - "inputs": [], - "name": "LibAppStorage__AccountMustBeUninitialized", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IEntryPoint", - "name": "entryPoint", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes", - "name": "ownerPublicKey", - "type": "bytes" - } - ], - "name": "AccountInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "enum IDiamondCut.FacetCutAction", - "name": "action", - "type": "uint8" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "indexed": false, - "internalType": "struct IDiamondCut.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" - }, - { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } - ], - "name": "DiamondCut", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "VerificationFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "VerificationSuccess", - "type": "event" - }, - { - "inputs": [], - "name": "entryPoint", - "outputs": [ - { - "internalType": "contract IEntryPoint", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_dest", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_func", "type": "bytes" } - ], - "name": "execute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address[]", "name": "_dest", "type": "address[]" }, - { "internalType": "uint256[]", "name": "_value", "type": "uint256[]" }, - { "internalType": "bytes[]", "name": "_func", "type": "bytes[]" } - ], - "name": "executeBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getNonce", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_verificationFacet", - "type": "address" - }, - { - "internalType": "address", - "name": "_anEntryPoint", - "type": "address" - }, - { - "internalType": "address", - "name": "_facetRegistry", - "type": "address" - }, - { - "internalType": "address", - "name": "_defaultFallBackHandler", - "type": "address" - }, - { "internalType": "bytes", "name": "_ownerPublicKey", "type": "bytes" } - ], - "name": "initialize", - "outputs": [ - { "internalType": "uint256", "name": "initSuccess", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "uint256", "name": "nonce", "type": "uint256" }, - { "internalType": "bytes", "name": "initCode", "type": "bytes" }, - { "internalType": "bytes", "name": "callData", "type": "bytes" }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { "internalType": "bytes", "name": "signature", "type": "bytes" } - ], - "internalType": "struct UserOperation", - "name": "userOp", - "type": "tuple" - }, - { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, - { - "internalType": "uint256", - "name": "missingAccountFunds", - "type": "uint256" - } - ], - "name": "validateUserOp", - "outputs": [ - { - "internalType": "uint256", - "name": "validationData", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/abi/BarzDefaultFallbackHandler.json b/abi/BarzDefaultFallbackHandler.json deleted file mode 100644 index 4595ef8..0000000 --- a/abi/BarzDefaultFallbackHandler.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_diamondCutFacet", - "type": "address" - }, - { - "internalType": "address", - "name": "_accountFacet", - "type": "address" - }, - { - "internalType": "address", - "name": "_tokenReceiverFacet", - "type": "address" - }, - { - "internalType": "address", - "name": "_diamondLoupeFacet", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_initializationContractAddress", - "type": "address" - }, - { "internalType": "bytes", "name": "_calldata", "type": "bytes" } - ], - "name": "InitializationFunctionReverted", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "enum IDiamondCut.FacetCutAction", - "name": "action", - "type": "uint8" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "indexed": false, - "internalType": "struct IDiamondCut.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" - }, - { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } - ], - "name": "DiamondCut", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_functionSelector", - "type": "bytes4" - } - ], - "name": "facetAddress", - "outputs": [ - { - "internalType": "address", - "name": "facetAddress_", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facetAddresses", - "outputs": [ - { - "internalType": "address[]", - "name": "facetAddresses_", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_facet", "type": "address" } - ], - "name": "facetFunctionSelectors", - "outputs": [ - { - "internalType": "bytes4[]", - "name": "facetFunctionSelectors_", - "type": "bytes4[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facets", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "internalType": "struct IDiamondLoupe.Facet[]", - "name": "facets_", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/abi/BarzFactory.json b/abi/BarzFactory.json deleted file mode 100644 index d86396e..0000000 --- a/abi/BarzFactory.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_accountFacet", - "type": "address" - }, - { - "internalType": "address", - "name": "_entryPoint", - "type": "address" - }, - { - "internalType": "address", - "name": "_facetRegistry", - "type": "address" - }, - { - "internalType": "address", - "name": "_defaultFallback", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "BarzDeployed", - "type": "event" - }, - { - "inputs": [], - "name": "accountFacet", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_verificationFacet", - "type": "address" - }, - { "internalType": "bytes", "name": "_owner", "type": "bytes" }, - { "internalType": "uint256", "name": "_salt", "type": "uint256" } - ], - "name": "createAccount", - "outputs": [ - { "internalType": "contract Barz", "name": "barz", "type": "address" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "defaultFallback", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "entryPoint", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facetRegistry", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_verificationFacet", - "type": "address" - }, - { "internalType": "bytes", "name": "_owner", "type": "bytes" }, - { "internalType": "uint256", "name": "_salt", "type": "uint256" } - ], - "name": "getAddress", - "outputs": [ - { - "internalType": "address", - "name": "barzAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_accountFacet", - "type": "address" - }, - { - "internalType": "address", - "name": "_verificationFacet", - "type": "address" - }, - { - "internalType": "address", - "name": "_entryPoint", - "type": "address" - }, - { - "internalType": "address", - "name": "_facetRegistry", - "type": "address" - }, - { - "internalType": "address", - "name": "_defaultFallback", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_ownerPublicKey", - "type": "bytes" - } - ], - "name": "getBytecode", - "outputs": [ - { "internalType": "bytes", "name": "barzBytecode", "type": "bytes" } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getCreationCode", - "outputs": [ - { "internalType": "bytes", "name": "creationCode", "type": "bytes" } - ], - "stateMutability": "pure", - "type": "function" - } - ] -} diff --git a/abi/BarzSecp256r1VerificationFacet.json b/abi/BarzSecp256r1VerificationFacet.json deleted file mode 100644 index 7284b56..0000000 --- a/abi/BarzSecp256r1VerificationFacet.json +++ /dev/null @@ -1,251 +0,0 @@ -{ - "abi": [ - { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, - { - "inputs": [], - "name": "LibAppStorage__AccountMustBeUninitialized", - "type": "error" - }, - { - "inputs": [], - "name": "LibAppStorage__SignerAlreadyUninitialized", - "type": "error" - }, - { - "inputs": [], - "name": "LibAppStorage__SignerMustBeUninitialized", - "type": "error" - }, - { - "inputs": [], - "name": "Secp256r1VerificationFacet__InvalidSignerLength", - "type": "error" - }, - { - "inputs": [], - "name": "VerificationFacet__InitializationFailure", - "type": "error" - }, - { - "inputs": [], - "name": "VerificationFacet__InvalidFacetMapping", - "type": "error" - }, - { - "inputs": [], - "name": "VerificationFacet__ValidateOwnerSignatureSelectorAlreadySet", - "type": "error" - }, - { - "inputs": [], - "name": "VerificationFacet__ValidateOwnerSignatureSelectorNotSet", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "SignerInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "SignerUninitialized", - "type": "event" - }, - { - "inputs": [ - { "internalType": "bytes", "name": "_publicKey", "type": "bytes" } - ], - "name": "initializeSigner", - "outputs": [ - { "internalType": "uint256", "name": "initSuccess", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "bytes", "name": "_publicKey", "type": "bytes" } - ], - "name": "isValidKeyType", - "outputs": [ - { "internalType": "bool", "name": "isValid", "type": "bool" } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { "internalType": "bytes32", "name": "_hash", "type": "bytes32" }, - { "internalType": "bytes", "name": "_signature", "type": "bytes" } - ], - "name": "isValidSignature", - "outputs": [ - { "internalType": "bytes4", "name": "magicValue", "type": "bytes4" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { "internalType": "bytes", "name": "signer", "type": "bytes" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "self", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "uninitializeSigner", - "outputs": [ - { - "internalType": "uint256", - "name": "uninitSuccess", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "uint256", "name": "nonce", "type": "uint256" }, - { "internalType": "bytes", "name": "initCode", "type": "bytes" }, - { "internalType": "bytes", "name": "callData", "type": "bytes" }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { "internalType": "bytes", "name": "signature", "type": "bytes" } - ], - "internalType": "struct UserOperation", - "name": "userOp", - "type": "tuple" - }, - { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" } - ], - "name": "validateOwnerSignature", - "outputs": [ - { - "internalType": "uint256", - "name": "validationData", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "validateOwnerSignatureSelector", - "outputs": [ - { - "internalType": "bytes4", - "name": "ownerSignatureValidatorSelector", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "uint256", "name": "nonce", "type": "uint256" }, - { "internalType": "bytes", "name": "initCode", "type": "bytes" }, - { "internalType": "bytes", "name": "callData", "type": "bytes" }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { "internalType": "bytes", "name": "signature", "type": "bytes" } - ], - "internalType": "struct UserOperation", - "name": "userOp", - "type": "tuple" - }, - { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, - { "internalType": "uint256[2]", "name": "q", "type": "uint256[2]" } - ], - "name": "validateSignature", - "outputs": [ - { "internalType": "uint256", "name": "isValid", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/abi/ECDSAKernelFactory.json b/abi/ECDSAKernelFactory.json deleted file mode 100644 index 333d2f8..0000000 --- a/abi/ECDSAKernelFactory.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "contract KernelFactory", - "name": "_singletonFactory", - "type": "address" - }, - { - "internalType": "contract ECDSAValidator", - "name": "_validator", - "type": "address" - }, - { - "internalType": "contract IEntryPoint", - "name": "_entryPoint", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "createAccount", - "outputs": [ - { - "internalType": "contract EIP1967Proxy", - "name": "proxy", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "entryPoint", - "outputs": [ - { - "internalType": "contract IEntryPoint", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "getAccountAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "singletonFactory", - "outputs": [ - { - "internalType": "contract KernelFactory", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "validator", - "outputs": [ - { - "internalType": "contract ECDSAValidator", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/abi/ECDSAValidator.json b/abi/ECDSAValidator.json deleted file mode 100644 index 70bf1f1..0000000 --- a/abi/ECDSAValidator.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "kernel", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "oldOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnerChanged", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "disable", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "ecdsaValidatorStorage", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "enable", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "hash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "validateSignature", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct UserOperation", - "name": "_userOp", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_userOpHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "validateUserOp", - "outputs": [ - { - "internalType": "uint256", - "name": "validationData", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/abi/EntryPoint.json b/abi/EntryPoint.json deleted file mode 100644 index fe25119..0000000 --- a/abi/EntryPoint.json +++ /dev/null @@ -1,1311 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "preOpGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paid", - "type": "uint256" - }, - { - "internalType": "uint48", - "name": "validAfter", - "type": "uint48" - }, - { - "internalType": "uint48", - "name": "validUntil", - "type": "uint48" - }, - { - "internalType": "bool", - "name": "targetSuccess", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "targetResult", - "type": "bytes" - } - ], - "name": "ExecutionResult", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "opIndex", - "type": "uint256" - }, - { - "internalType": "string", - "name": "reason", - "type": "string" - } - ], - "name": "FailedOp", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "SenderAddressResult", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "aggregator", - "type": "address" - } - ], - "name": "SignatureValidationFailed", - "type": "error" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "preOpGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "prefund", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "sigFailed", - "type": "bool" - }, - { - "internalType": "uint48", - "name": "validAfter", - "type": "uint48" - }, - { - "internalType": "uint48", - "name": "validUntil", - "type": "uint48" - }, - { - "internalType": "bytes", - "name": "paymasterContext", - "type": "bytes" - } - ], - "internalType": "struct IEntryPoint.ReturnInfo", - "name": "returnInfo", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "unstakeDelaySec", - "type": "uint256" - } - ], - "internalType": "struct IStakeManager.StakeInfo", - "name": "senderInfo", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "unstakeDelaySec", - "type": "uint256" - } - ], - "internalType": "struct IStakeManager.StakeInfo", - "name": "factoryInfo", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "unstakeDelaySec", - "type": "uint256" - } - ], - "internalType": "struct IStakeManager.StakeInfo", - "name": "paymasterInfo", - "type": "tuple" - } - ], - "name": "ValidationResult", - "type": "error" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "preOpGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "prefund", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "sigFailed", - "type": "bool" - }, - { - "internalType": "uint48", - "name": "validAfter", - "type": "uint48" - }, - { - "internalType": "uint48", - "name": "validUntil", - "type": "uint48" - }, - { - "internalType": "bytes", - "name": "paymasterContext", - "type": "bytes" - } - ], - "internalType": "struct IEntryPoint.ReturnInfo", - "name": "returnInfo", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "unstakeDelaySec", - "type": "uint256" - } - ], - "internalType": "struct IStakeManager.StakeInfo", - "name": "senderInfo", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "unstakeDelaySec", - "type": "uint256" - } - ], - "internalType": "struct IStakeManager.StakeInfo", - "name": "factoryInfo", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "unstakeDelaySec", - "type": "uint256" - } - ], - "internalType": "struct IStakeManager.StakeInfo", - "name": "paymasterInfo", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "aggregator", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "unstakeDelaySec", - "type": "uint256" - } - ], - "internalType": "struct IStakeManager.StakeInfo", - "name": "stakeInfo", - "type": "tuple" - } - ], - "internalType": "struct IEntryPoint.AggregatorStakeInfo", - "name": "aggregatorInfo", - "type": "tuple" - } - ], - "name": "ValidationResultWithAggregation", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "userOpHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "factory", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "paymaster", - "type": "address" - } - ], - "name": "AccountDeployed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "BeforeExecution", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "totalDeposit", - "type": "uint256" - } - ], - "name": "Deposited", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "aggregator", - "type": "address" - } - ], - "name": "SignatureAggregatorChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "totalStaked", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "unstakeDelaySec", - "type": "uint256" - } - ], - "name": "StakeLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "withdrawTime", - "type": "uint256" - } - ], - "name": "StakeUnlocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "withdrawAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "StakeWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "userOpHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "paymaster", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "actualGasCost", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "actualGasUsed", - "type": "uint256" - } - ], - "name": "UserOperationEvent", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "userOpHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "revertReason", - "type": "bytes" - } - ], - "name": "UserOperationRevertReason", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "withdrawAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Withdrawn", - "type": "event" - }, - { - "inputs": [], - "name": "SIG_VALIDATION_FAILED", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - } - ], - "name": "_validateSenderAndPaymaster", - "outputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "unstakeDelaySec", - "type": "uint32" - } - ], - "name": "addStake", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "depositTo", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "deposits", - "outputs": [ - { - "internalType": "uint112", - "name": "deposit", - "type": "uint112" - }, - { - "internalType": "bool", - "name": "staked", - "type": "bool" - }, - { - "internalType": "uint112", - "name": "stake", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "unstakeDelaySec", - "type": "uint32" - }, - { - "internalType": "uint48", - "name": "withdrawTime", - "type": "uint48" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getDepositInfo", - "outputs": [ - { - "components": [ - { - "internalType": "uint112", - "name": "deposit", - "type": "uint112" - }, - { - "internalType": "bool", - "name": "staked", - "type": "bool" - }, - { - "internalType": "uint112", - "name": "stake", - "type": "uint112" - }, - { - "internalType": "uint32", - "name": "unstakeDelaySec", - "type": "uint32" - }, - { - "internalType": "uint48", - "name": "withdrawTime", - "type": "uint48" - } - ], - "internalType": "struct IStakeManager.DepositInfo", - "name": "info", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint192", - "name": "key", - "type": "uint192" - } - ], - "name": "getNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - } - ], - "name": "getSenderAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct UserOperation", - "name": "userOp", - "type": "tuple" - } - ], - "name": "getUserOpHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct UserOperation[]", - "name": "userOps", - "type": "tuple[]" - }, - { - "internalType": "contract IAggregator", - "name": "aggregator", - "type": "address" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct IEntryPoint.UserOpsPerAggregator[]", - "name": "opsPerAggregator", - "type": "tuple[]" - }, - { - "internalType": "address payable", - "name": "beneficiary", - "type": "address" - } - ], - "name": "handleAggregatedOps", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct UserOperation[]", - "name": "ops", - "type": "tuple[]" - }, - { - "internalType": "address payable", - "name": "beneficiary", - "type": "address" - } - ], - "name": "handleOps", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint192", - "name": "key", - "type": "uint192" - } - ], - "name": "incrementNonce", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - }, - { - "components": [ - { - "components": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "address", - "name": "paymaster", - "type": "address" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - } - ], - "internalType": "struct EntryPoint.MemoryUserOp", - "name": "mUserOp", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "userOpHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "prefund", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "contextOffset", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preOpGas", - "type": "uint256" - } - ], - "internalType": "struct EntryPoint.UserOpInfo", - "name": "opInfo", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "context", - "type": "bytes" - } - ], - "name": "innerHandleOp", - "outputs": [ - { - "internalType": "uint256", - "name": "actualGasCost", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint192", - "name": "", - "type": "uint192" - } - ], - "name": "nonceSequenceNumber", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct UserOperation", - "name": "op", - "type": "tuple" - }, - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "targetCallData", - "type": "bytes" - } - ], - "name": "simulateHandleOp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct UserOperation", - "name": "userOp", - "type": "tuple" - } - ], - "name": "simulateValidation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unlockStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable", - "name": "withdrawAddress", - "type": "address" - } - ], - "name": "withdrawStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable", - "name": "withdrawAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "withdrawAmount", - "type": "uint256" - } - ], - "name": "withdrawTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ] -} diff --git a/abi/Kernel.json b/abi/Kernel.json deleted file mode 100644 index 67ea32f..0000000 --- a/abi/Kernel.json +++ /dev/null @@ -1,581 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "contract IEntryPoint", - "name": "_entryPoint", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldValidator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newValidator", - "type": "address" - } - ], - "name": "DefaultValidatorChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes4", - "name": "selector", - "type": "bytes4" - }, - { - "indexed": true, - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "validator", - "type": "address" - } - ], - "name": "ExecutionChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_disableFlag", - "type": "bytes4" - } - ], - "name": "disableMode", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "entryPoint", - "outputs": [ - { - "internalType": "contract IEntryPoint", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "execute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDefaultValidator", - "outputs": [ - { - "internalType": "contract IKernelValidator", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDisabledMode", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_selector", - "type": "bytes4" - } - ], - "name": "getExecution", - "outputs": [ - { - "components": [ - { - "internalType": "uint48", - "name": "validUntil", - "type": "uint48" - }, - { - "internalType": "uint48", - "name": "validAfter", - "type": "uint48" - }, - { - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "internalType": "contract IKernelValidator", - "name": "validator", - "type": "address" - } - ], - "internalType": "struct ExecutionDetail", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getLastDisabledTime", - "outputs": [ - { - "internalType": "uint48", - "name": "", - "type": "uint48" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint192", - "name": "key", - "type": "uint192" - } - ], - "name": "getNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IKernelValidator", - "name": "_defaultValidator", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "hash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IKernelValidator", - "name": "_defaultValidator", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "setDefaultValidator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_selector", - "type": "bytes4" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "contract IKernelValidator", - "name": "_validator", - "type": "address" - }, - { - "internalType": "uint48", - "name": "_validUntil", - "type": "uint48" - }, - { - "internalType": "uint48", - "name": "_validAfter", - "type": "uint48" - }, - { - "internalType": "bytes", - "name": "_enableData", - "type": "bytes" - } - ], - "name": "setExecution", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct UserOperation", - "name": "userOp", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "userOpHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "missingAccountFunds", - "type": "uint256" - } - ], - "name": "validateUserOp", - "outputs": [ - { - "internalType": "uint256", - "name": "validationData", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ] -} diff --git a/abi/KernelFactory.json b/abi/KernelFactory.json deleted file mode 100644 index 4b44648..0000000 --- a/abi/KernelFactory.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "contract IEntryPoint", - "name": "_entryPoint", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "validator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "AccountCreated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IKernelValidator", - "name": "_validator", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "createAccount", - "outputs": [ - { - "internalType": "contract EIP1967Proxy", - "name": "proxy", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "entryPoint", - "outputs": [ - { - "internalType": "contract IEntryPoint", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IKernelValidator", - "name": "_validator", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "getAccountAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "kernelTemplate", - "outputs": [ - { - "internalType": "contract TempKernel", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "nextTemplate", - "outputs": [ - { - "internalType": "contract Kernel", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/abi/Multisend.json b/abi/Multisend.json deleted file mode 100644 index 958e6cd..0000000 --- a/abi/Multisend.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "transactions", - "type": "bytes" - } - ], - "name": "multiSend", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ] -} diff --git a/abi/SimpleAccount.json b/abi/SimpleAccount.json deleted file mode 100644 index 210e605..0000000 --- a/abi/SimpleAccount.json +++ /dev/null @@ -1,526 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "contract IEntryPoint", - "name": "anEntryPoint", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "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": "address", - "name": "beacon", - "type": "address" - } - ], - "name": "BeaconUpgraded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IEntryPoint", - "name": "entryPoint", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "SimpleAccountInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "inputs": [], - "name": "addDeposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "entryPoint", - "outputs": [ - { - "internalType": "contract IEntryPoint", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dest", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "func", - "type": "bytes" - } - ], - "name": "execute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "dest", - "type": "address[]" - }, - { - "internalType": "bytes[]", - "name": "func", - "type": "bytes[]" - } - ], - "name": "executeBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "anOwner", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "proxiableUUID", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "tokensReceived", - "outputs": [], - "stateMutability": "pure", - "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": [ - { - "components": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "initCode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "callGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "verificationGasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preVerificationGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "paymasterAndData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct UserOperation", - "name": "userOp", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "userOpHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "missingAccountFunds", - "type": "uint256" - } - ], - "name": "validateUserOp", - "outputs": [ - { - "internalType": "uint256", - "name": "validationData", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable", - "name": "withdrawAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "withdrawDepositTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ] -} diff --git a/abi/SimpleAccountFactory.json b/abi/SimpleAccountFactory.json deleted file mode 100644 index e3b550a..0000000 --- a/abi/SimpleAccountFactory.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "contract IEntryPoint", - "name": "_entryPoint", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "accountImplementation", - "outputs": [ - { - "internalType": "contract SimpleAccount", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "salt", - "type": "uint256" - } - ], - "name": "createAccount", - "outputs": [ - { - "internalType": "contract SimpleAccount", - "name": "ret", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "salt", - "type": "uint256" - } - ], - "name": "getAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..5a2888f --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,12 @@ +// @ts-check + +const eslint = require("@eslint/js"); +const tseslint = require("typescript-eslint"); +const prettierConfig = require("eslint-config-prettier"); + +module.exports = [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + prettierConfig, + { ignores: ["dist", "jest.config.js", "eslint.config.js"] }, +]; diff --git a/package.json b/package.json index 35f8902..3f7f9e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "userop", - "version": "0.3.8", + "version": "0.4.0-beta.1", "description": "A simple JS library for building ERC-4337 UserOperations.", "types": "./dist/index.d.ts", "main": "./dist/index.js", @@ -8,38 +8,32 @@ "author": "stackup-wallet", "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" }, "scripts": { "clean": "rimraf dist", - "gen:types": "typechain --target=ethers-v5 --out-dir=src/typechain 'abi/*.json'", - "build": "yarn clean && yarn gen:types && tsc", + "build": "yarn clean && tsc", "test": "jest", - "lint": "eslint . --ignore-path .eslintignore && tsc --noEmit", - "lint:fix": "eslint . --ignore-path .eslintignore --fix", - "prettier": "prettier --check --ignore-path .eslintignore '**'", - "prettier:fix": "prettier --write --ignore-path .eslintignore '**'" + "lint": "eslint . && tsc --noEmit", + "lint:fix": "eslint . --fix", + "prettier": "prettier --check '**'", + "prettier:fix": "prettier --write '**'" }, "devDependencies": { - "@faker-js/faker": "^8.0.2", - "@typechain/ethers-v5": "^11.0.0", - "@types/elliptic": "^6.4.16", - "@types/jest": "^29.5.2", - "@typescript-eslint/eslint-plugin": "^5.59.9", - "@typescript-eslint/parser": "^5.59.9", - "eslint": "^8.42.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-unused-imports": "^2.0.0", - "jest": "^29.5.0", - "prettier": "^2.8.8", - "rimraf": "^5.0.1", - "ts-jest": "^29.1.0", - "typechain": "^8.2.0", - "typescript": "^5.1.3" + "@types/jest": "^29.5.12", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "jest": "^29.7.0", + "nock": "^13.5.4", + "prettier": "3.2.5", + "rimraf": "^5.0.5", + "ts-jest": "^29.1.2", + "typescript": "^5.4.2", + "typescript-eslint": "^7.3.1" }, "dependencies": { - "elliptic": "^6.5.4", - "ethers": "^5.7.2", - "js-base64": "^3.7.5" + "abitype": "^1.0.0", + "ethers": "^6.11.1", + "viem": "^2.7.19" } } diff --git a/src/builder.test.ts b/src/builder.test.ts deleted file mode 100644 index 51d9528..0000000 --- a/src/builder.test.ts +++ /dev/null @@ -1,457 +0,0 @@ -import { ethers } from "ethers"; -import { faker } from "@faker-js/faker"; -import { - UserOperationBuilder, - DEFAULT_CALL_GAS_LIMIT, - DEFAULT_VERIFICATION_GAS_LIMIT, - DEFAULT_PRE_VERIFICATION_GAS, - DEFAULT_USER_OP, - UserOperationMiddlewareFn, -} from "."; -import { OpToJSON } from "./utils"; - -const MOCK_BYTES_1 = "0xdead"; -const MOCK_BYTES_2 = "0xbeef"; - -describe("UserOperationBuilder", () => { - test("Should initialize correctly", () => { - const builder = new UserOperationBuilder(); - - expect(builder.getOp()).toStrictEqual(DEFAULT_USER_OP); - }); - - describe("Fields", () => { - describe("Sender", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - const mockValue = faker.finance.ethereumAddress(); - - expect(builder.getSender()).toStrictEqual(ethers.constants.AddressZero); - expect(builder.setSender(mockValue).getSender()).toStrictEqual( - ethers.utils.getAddress(mockValue) - ); - }); - - test("Updates via partial with good values", () => { - const mockValue = faker.finance.ethereumAddress(); - - expect( - builder.setPartial({ sender: mockValue }).getSender() - ).toStrictEqual(ethers.utils.getAddress(mockValue)); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = "0xdead"; - - expect(() => builder.setSender(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = "0xdead"; - - expect(() => builder.setPartial({ sender: mockValue })).toThrow(); - }); - }); - - describe("Nonce", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - const mockValue = "0x1"; - - expect(builder.getNonce()).toStrictEqual(ethers.constants.Zero); - expect(builder.setNonce(mockValue).getNonce()).toStrictEqual( - ethers.BigNumber.from(mockValue) - ); - }); - - test("Updates via partial with good values", () => { - const mockValue = "0x2"; - - expect( - builder.setPartial({ nonce: mockValue }).getNonce() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = "NaN"; - - expect(() => builder.setNonce(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = "NaN"; - - expect(() => builder.setPartial({ nonce: mockValue })).toThrow(); - }); - }); - - describe("InitCode", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - expect(builder.getInitCode()).toStrictEqual("0x"); - expect(builder.setInitCode(MOCK_BYTES_1).getInitCode()).toStrictEqual( - MOCK_BYTES_1 - ); - }); - - test("Updates via partial with good values", () => { - expect( - builder.setPartial({ initCode: MOCK_BYTES_2 }).getInitCode() - ).toStrictEqual(MOCK_BYTES_2); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = ""; - - expect(() => builder.setInitCode(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = ""; - - expect(() => builder.setPartial({ initCode: mockValue })).toThrow(); - }); - }); - - describe("CallData", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - expect(builder.getCallData()).toStrictEqual("0x"); - expect(builder.setCallData(MOCK_BYTES_1).getCallData()).toStrictEqual( - MOCK_BYTES_1 - ); - }); - - test("Updates via partial with good values", () => { - expect( - builder.setPartial({ callData: MOCK_BYTES_2 }).getCallData() - ).toStrictEqual(MOCK_BYTES_2); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = ""; - - expect(() => builder.setCallData(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = ""; - - expect(() => builder.setPartial({ callData: mockValue })).toThrow(); - }); - }); - - describe("CallGasLimit", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - const mockValue = "0x1"; - - expect(builder.getCallGasLimit()).toStrictEqual(DEFAULT_CALL_GAS_LIMIT); - expect( - builder.setCallGasLimit(mockValue).getCallGasLimit() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Updates via partial with good values", () => { - const mockValue = "0x2"; - - expect( - builder.setPartial({ callGasLimit: mockValue }).getCallGasLimit() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = "NaN"; - - expect(() => builder.setCallGasLimit(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = "NaN"; - - expect(() => builder.setPartial({ callGasLimit: mockValue })).toThrow(); - }); - }); - - describe("VerificationGasLimit", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - const mockValue = "0x1"; - - expect(builder.getVerificationGasLimit()).toStrictEqual( - DEFAULT_VERIFICATION_GAS_LIMIT - ); - expect( - builder.setVerificationGasLimit(mockValue).getVerificationGasLimit() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Updates via partial with good values", () => { - const mockValue = "0x2"; - - expect( - builder - .setPartial({ verificationGasLimit: mockValue }) - .getVerificationGasLimit() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = "NaN"; - - expect(() => builder.setVerificationGasLimit(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = "NaN"; - - expect(() => - builder.setPartial({ verificationGasLimit: mockValue }) - ).toThrow(); - }); - }); - - describe("PreVerificationGas", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - const mockValue = "0x1"; - - expect(builder.getPreVerificationGas()).toStrictEqual( - DEFAULT_PRE_VERIFICATION_GAS - ); - expect( - builder.setPreVerificationGas(mockValue).getPreVerificationGas() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Updates via partial with good values", () => { - const mockValue = "0x2"; - - expect( - builder - .setPartial({ preVerificationGas: mockValue }) - .getPreVerificationGas() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = "NaN"; - - expect(() => builder.setPreVerificationGas(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = "NaN"; - - expect(() => - builder.setPartial({ preVerificationGas: mockValue }) - ).toThrow(); - }); - }); - - describe("MaxFeePerGas", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - const mockValue = "0x1"; - - expect(builder.getMaxFeePerGas()).toStrictEqual(ethers.constants.Zero); - expect( - builder.setMaxFeePerGas(mockValue).getMaxFeePerGas() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Updates via partial with good values", () => { - const mockValue = "0x2"; - - expect( - builder.setPartial({ maxFeePerGas: mockValue }).getMaxFeePerGas() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = "NaN"; - - expect(() => builder.setMaxFeePerGas(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = "NaN"; - - expect(() => builder.setPartial({ maxFeePerGas: mockValue })).toThrow(); - }); - }); - - describe("MaxPriorityFeePerGas", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - const mockValue = "0x1"; - - expect(builder.getMaxPriorityFeePerGas()).toStrictEqual( - ethers.constants.Zero - ); - expect( - builder.setMaxPriorityFeePerGas(mockValue).getMaxPriorityFeePerGas() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Updates via partial with good values", () => { - const mockValue = "0x2"; - - expect( - builder - .setPartial({ maxPriorityFeePerGas: mockValue }) - .getMaxPriorityFeePerGas() - ).toStrictEqual(ethers.BigNumber.from(mockValue)); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = "NaN"; - - expect(() => builder.setMaxPriorityFeePerGas(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = "NaN"; - - expect(() => - builder.setPartial({ maxPriorityFeePerGas: mockValue }) - ).toThrow(); - }); - }); - - describe("PaymasterAndData", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - expect(builder.getPaymasterAndData()).toStrictEqual("0x"); - expect( - builder.setPaymasterAndData(MOCK_BYTES_1).getPaymasterAndData() - ).toStrictEqual(MOCK_BYTES_1); - }); - - test("Updates via partial with good values", () => { - expect( - builder - .setPartial({ paymasterAndData: MOCK_BYTES_2 }) - .getPaymasterAndData() - ).toStrictEqual(MOCK_BYTES_2); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = ""; - - expect(() => builder.setPaymasterAndData(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = ""; - - expect(() => - builder.setPartial({ paymasterAndData: mockValue }) - ).toThrow(); - }); - }); - - describe("Signature", () => { - const builder = new UserOperationBuilder(); - - test("Updates via setter with good values", () => { - expect(builder.getSignature()).toStrictEqual("0x"); - expect(builder.setSignature(MOCK_BYTES_1).getSignature()).toStrictEqual( - MOCK_BYTES_1 - ); - }); - - test("Updates via partial with good values", () => { - expect( - builder.setPartial({ signature: MOCK_BYTES_2 }).getSignature() - ).toStrictEqual(MOCK_BYTES_2); - }); - - test("Throws error via setter on bad values", () => { - const mockValue = ""; - - expect(() => builder.setSignature(mockValue)).toThrow(); - }); - - test("Throws error via partial on bad values", () => { - const mockValue = ""; - - expect(() => builder.setPartial({ signature: mockValue })).toThrow(); - }); - }); - }); - - describe("Defaults", () => { - test("Should not wipe after a reset", () => { - const mockValue = faker.finance.ethereumAddress(); - const builder = new UserOperationBuilder().useDefaults({ - sender: mockValue, - }); - - expect(builder.resetOp().getSender()).toStrictEqual( - ethers.utils.getAddress(mockValue) - ); - }); - - test("Should forget defaults on resetDefault", () => { - const mockValue = faker.finance.ethereumAddress(); - const builder = new UserOperationBuilder().useDefaults({ - sender: mockValue, - }); - - expect(builder.resetDefaults().resetOp().getSender()).toStrictEqual( - ethers.constants.AddressZero - ); - }); - }); - - describe("BuildOp", () => { - const mockMaxFeePerGas = "0x1"; - const mockMaxPriorityFeePerGas = "0x2"; - const mockMW1: UserOperationMiddlewareFn = async (ctx) => { - ctx.op.paymasterAndData = MOCK_BYTES_1; - }; - const mockMW2: UserOperationMiddlewareFn = async (ctx) => { - ctx.op.maxFeePerGas = mockMaxFeePerGas; - ctx.op.maxPriorityFeePerGas = mockMaxPriorityFeePerGas; - }; - - test("Should apply all changes from middleware functions", async () => { - const builder = new UserOperationBuilder() - .useMiddleware(mockMW1) - .useMiddleware(mockMW2); - - expect( - await builder.buildOp(faker.finance.ethereumAddress(), "0x1") - ).toStrictEqual( - OpToJSON({ - ...DEFAULT_USER_OP, - paymasterAndData: MOCK_BYTES_1, - maxFeePerGas: ethers.BigNumber.from(mockMaxFeePerGas), - maxPriorityFeePerGas: ethers.BigNumber.from(mockMaxPriorityFeePerGas), - }) - ); - }); - - test("Should forget middleware on resetMiddleware", async () => { - const builder = new UserOperationBuilder() - .useMiddleware(mockMW1) - .useMiddleware(mockMW2) - .resetMiddleware(); - - expect( - await builder.buildOp(faker.finance.ethereumAddress(), "0x1") - ).toStrictEqual(OpToJSON({ ...DEFAULT_USER_OP })); - }); - }); -}); diff --git a/src/builder.ts b/src/builder.ts deleted file mode 100644 index eab1565..0000000 --- a/src/builder.ts +++ /dev/null @@ -1,224 +0,0 @@ -import { BigNumberish, BytesLike, ethers } from "ethers"; -import { OpToJSON } from "./utils"; -import { UserOperationMiddlewareCtx } from "./context"; -import { - IUserOperation, - StateOverrideSet, - UserOperationMiddlewareFn, -} from "./types"; - -export const DEFAULT_VERIFICATION_GAS_LIMIT = ethers.BigNumber.from(70000); -export const DEFAULT_CALL_GAS_LIMIT = ethers.BigNumber.from(35000); -export const DEFAULT_PRE_VERIFICATION_GAS = ethers.BigNumber.from(21000); - -export const DEFAULT_USER_OP: IUserOperation = { - sender: ethers.constants.AddressZero, - nonce: ethers.constants.Zero, - initCode: ethers.utils.hexlify("0x"), - callData: ethers.utils.hexlify("0x"), - callGasLimit: DEFAULT_CALL_GAS_LIMIT, - verificationGasLimit: DEFAULT_VERIFICATION_GAS_LIMIT, - preVerificationGas: DEFAULT_PRE_VERIFICATION_GAS, - maxFeePerGas: ethers.constants.Zero, - maxPriorityFeePerGas: ethers.constants.Zero, - paymasterAndData: ethers.utils.hexlify("0x"), - signature: ethers.utils.hexlify("0x"), -}; - -export class UserOperationBuilder { - private defaultOp: IUserOperation; - private currOp: IUserOperation; - private middlewareStack: Array; - - constructor() { - this.defaultOp = { ...DEFAULT_USER_OP }; - this.currOp = { ...this.defaultOp }; - this.middlewareStack = []; - } - - private resolveFields(op: Partial): Partial { - const obj = { - sender: - op.sender !== undefined - ? ethers.utils.getAddress(op.sender) - : undefined, - nonce: - op.nonce !== undefined ? ethers.BigNumber.from(op.nonce) : undefined, - initCode: - op.initCode !== undefined - ? ethers.utils.hexlify(op.initCode) - : undefined, - callData: - op.callData !== undefined - ? ethers.utils.hexlify(op.callData) - : undefined, - callGasLimit: - op.callGasLimit !== undefined - ? ethers.BigNumber.from(op.callGasLimit) - : undefined, - verificationGasLimit: - op.verificationGasLimit !== undefined - ? ethers.BigNumber.from(op.verificationGasLimit) - : undefined, - preVerificationGas: - op.preVerificationGas !== undefined - ? ethers.BigNumber.from(op.preVerificationGas) - : undefined, - maxFeePerGas: - op.maxFeePerGas !== undefined - ? ethers.BigNumber.from(op.maxFeePerGas) - : undefined, - maxPriorityFeePerGas: - op.maxPriorityFeePerGas !== undefined - ? ethers.BigNumber.from(op.maxPriorityFeePerGas) - : undefined, - paymasterAndData: - op.paymasterAndData !== undefined - ? ethers.utils.hexlify(op.paymasterAndData) - : undefined, - signature: - op.signature !== undefined - ? ethers.utils.hexlify(op.signature) - : undefined, - }; - return Object.keys(obj).reduce( - (prev, curr) => - (obj as any)[curr] !== undefined - ? { ...prev, [curr]: (obj as any)[curr] } - : prev, - {} - ); - } - - getSender() { - return this.currOp.sender; - } - getNonce() { - return this.currOp.nonce; - } - getInitCode() { - return this.currOp.initCode; - } - getCallData() { - return this.currOp.callData; - } - getCallGasLimit() { - return this.currOp.callGasLimit; - } - getVerificationGasLimit() { - return this.currOp.verificationGasLimit; - } - getPreVerificationGas() { - return this.currOp.preVerificationGas; - } - getMaxFeePerGas() { - return this.currOp.maxFeePerGas; - } - getMaxPriorityFeePerGas() { - return this.currOp.maxPriorityFeePerGas; - } - getPaymasterAndData() { - return this.currOp.paymasterAndData; - } - getSignature() { - return this.currOp.signature; - } - getOp() { - return this.currOp; - } - - setSender(val: string) { - this.currOp.sender = ethers.utils.getAddress(val); - return this; - } - setNonce(val: BigNumberish) { - this.currOp.nonce = ethers.BigNumber.from(val); - return this; - } - setInitCode(val: BytesLike) { - this.currOp.initCode = ethers.utils.hexlify(val); - return this; - } - setCallData(val: BytesLike) { - this.currOp.callData = ethers.utils.hexlify(val); - return this; - } - setCallGasLimit(val: BigNumberish) { - this.currOp.callGasLimit = ethers.BigNumber.from(val); - return this; - } - setVerificationGasLimit(val: BigNumberish) { - this.currOp.verificationGasLimit = ethers.BigNumber.from(val); - return this; - } - setPreVerificationGas(val: BigNumberish) { - this.currOp.preVerificationGas = ethers.BigNumber.from(val); - return this; - } - setMaxFeePerGas(val: BigNumberish) { - this.currOp.maxFeePerGas = ethers.BigNumber.from(val); - return this; - } - setMaxPriorityFeePerGas(val: BigNumberish) { - this.currOp.maxPriorityFeePerGas = ethers.BigNumber.from(val); - return this; - } - setPaymasterAndData(val: BytesLike) { - this.currOp.paymasterAndData = ethers.utils.hexlify(val); - return this; - } - setSignature(val: BytesLike) { - this.currOp.signature = ethers.utils.hexlify(val); - return this; - } - setPartial(partialOp: Partial) { - this.currOp = { ...this.currOp, ...this.resolveFields(partialOp) }; - return this; - } - - useDefaults(partialOp: Partial) { - const resolvedOp = this.resolveFields(partialOp); - this.defaultOp = { ...this.defaultOp, ...resolvedOp }; - this.currOp = { ...this.currOp, ...resolvedOp }; - - return this; - } - resetDefaults() { - this.defaultOp = { ...DEFAULT_USER_OP }; - return this; - } - - useMiddleware(fn: UserOperationMiddlewareFn) { - this.middlewareStack = [...this.middlewareStack, fn]; - return this; - } - resetMiddleware() { - this.middlewareStack = []; - return this; - } - - async buildOp( - entryPoint: string, - chainId: BigNumberish, - stateOverrides?: StateOverrideSet - ) { - const ctx = new UserOperationMiddlewareCtx( - this.currOp, - entryPoint, - chainId, - stateOverrides - ); - - for (const fn of this.middlewareStack) { - await fn(ctx); - } - this.setPartial(ctx.op); - - return OpToJSON(this.currOp); - } - - resetOp() { - this.currOp = { ...this.defaultOp }; - return this; - } -} diff --git a/src/client.ts b/src/client.ts deleted file mode 100644 index 7534c0c..0000000 --- a/src/client.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { BigNumberish, ethers } from "ethers"; -import { UserOperationBuilder } from "./builder"; -import { ISendUserOperationOpts, IClientOpts, StateOverrideSet } from "./types"; -import { EntryPoint, EntryPoint__factory } from "./typechain"; -import { OpToJSON } from "./utils"; -import { UserOperationMiddlewareCtx } from "./context"; -import { ERC4337 } from "./constants"; -import { BundlerJsonRpcProvider } from "./provider"; - -export class Client { - private provider: ethers.providers.JsonRpcProvider; - - public entryPoint: EntryPoint; - public chainId: BigNumberish; - public waitTimeoutMs: number; - public waitIntervalMs: number; - - private constructor(rpcUrl: string, opts?: IClientOpts) { - this.provider = new BundlerJsonRpcProvider(rpcUrl).setBundlerRpc( - opts?.overrideBundlerRpc - ); - this.entryPoint = EntryPoint__factory.connect( - opts?.entryPoint || ERC4337.EntryPoint, - this.provider - ); - this.chainId = ethers.BigNumber.from(1); - this.waitTimeoutMs = 30000; - this.waitIntervalMs = 5000; - } - - public static async init(rpcUrl: string, opts?: IClientOpts) { - const instance = new Client(rpcUrl, opts); - instance.chainId = await instance.provider - .getNetwork() - .then((network) => ethers.BigNumber.from(network.chainId)); - - return instance; - } - - async buildUserOperation( - builder: UserOperationBuilder, - stateOverrides?: StateOverrideSet - ) { - return builder.buildOp( - this.entryPoint.address, - this.chainId, - stateOverrides - ); - } - - async sendUserOperation( - builder: UserOperationBuilder, - opts?: ISendUserOperationOpts - ) { - const dryRun = Boolean(opts?.dryRun); - const op = await this.buildUserOperation(builder, opts?.stateOverrides); - opts?.onBuild?.(op); - - const userOpHash = dryRun - ? new UserOperationMiddlewareCtx( - op, - this.entryPoint.address, - this.chainId - ).getUserOpHash() - : ((await this.provider.send("eth_sendUserOperation", [ - OpToJSON(op), - this.entryPoint.address, - ])) as string); - builder.resetOp(); - - return { - userOpHash, - wait: async () => { - if (dryRun) { - return null; - } - - const end = Date.now() + this.waitTimeoutMs; - const block = await this.provider.getBlock("latest"); - while (Date.now() < end) { - const events = await this.entryPoint.queryFilter( - this.entryPoint.filters.UserOperationEvent(userOpHash), - Math.max(0, block.number - 100) - ); - if (events.length > 0) { - return events[0]; - } - await new Promise((resolve) => - setTimeout(resolve, this.waitIntervalMs) - ); - } - - return null; - }, - }; - } -} diff --git a/src/constants/barz.ts b/src/constants/barz.ts deleted file mode 100644 index c8cb342..0000000 --- a/src/constants/barz.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const Barz = { - Factory: "0x729c310186a57833f622630a16d13f710b83272a", - Secp256r1VerificationFacet: "0xeE1AF8E967eC04C84711842796A5E714D2FD33e6", - AccountFacet: "0xFde53272dcd7938d16E031A6989753c321728332", - DefaultFallbackHandler: "0x2e7f1dAe1F3799d20f5c31bEFdc7A620f664728D", -}; diff --git a/src/constants/erc4337.ts b/src/constants/erc4337.ts deleted file mode 100644 index 6dcb9ea..0000000 --- a/src/constants/erc4337.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const ERC4337 = { - EntryPoint: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - SimpleAccount: { - Factory: "0x9406Cc6185a346906296840746125a0E44976454", - }, -}; diff --git a/src/constants/index.ts b/src/constants/index.ts deleted file mode 100644 index 0d8a512..0000000 --- a/src/constants/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./barz"; -export * from "./erc4337"; -export * from "./kernel"; -export * from "./safe"; diff --git a/src/constants/kernel.ts b/src/constants/kernel.ts deleted file mode 100644 index 257ffe8..0000000 --- a/src/constants/kernel.ts +++ /dev/null @@ -1,10 +0,0 @@ -export const Kernel = { - Factory: "0x5D006d3880645ec6e254E18C1F879DAC9Dd71A39", - ECDSAFactory: "0xD49a72cb78C44c6bfbf0d471581B7635cF62E81e", - ECDSAValidator: "0x180D6465F921C7E0DEA0040107D342c87455fFF5", - Modes: { - Sudo: "0x00000000", - Plugin: "0x00000001", - Enable: "0x00000002", - }, -}; diff --git a/src/constants/safe.ts b/src/constants/safe.ts deleted file mode 100644 index d499034..0000000 --- a/src/constants/safe.ts +++ /dev/null @@ -1,125 +0,0 @@ -interface ISafeConstant { - MultiSend: Record; -} - -export const Safe: ISafeConstant = { - // From https://github.com/safe-global/safe-deployments/blob/main/src/assets/v1.3.0/multi_send.json - MultiSend: { - "1": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "3": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "4": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "5": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "10": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "11": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "12": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "18": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "25": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "28": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "39": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "40": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "41": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "42": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "50": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "51": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "56": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "61": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "63": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "69": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "82": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "83": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "97": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "100": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "106": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "108": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "111": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "122": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "123": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "137": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "246": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "250": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "288": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "300": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "321": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "322": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "336": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "338": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "420": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "588": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "592": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "595": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "599": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "686": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "787": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "1001": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "1008": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1088": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "1101": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1111": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "1112": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "1115": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1116": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1284": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1285": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1287": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1294": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "1807": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1984": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "2001": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "2002": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "2008": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "2019": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "2020": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "2221": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "2222": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "3737": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "4002": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "4689": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "4918": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "4919": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "5001": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "7341": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "7700": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "8217": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "9000": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "9001": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "9728": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "10000": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "10001": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "10200": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "11235": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "11437": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "12357": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "23294": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "42161": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "42170": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "42220": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "43113": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "43114": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "43288": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "44787": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "45000": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "47805": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "54211": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "56288": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "59140": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "71401": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "71402": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "73799": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "80001": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "84531": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "200101": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "200202": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "421611": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "421613": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "534353": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "11155111": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "245022926": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "1313161554": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1313161555": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "1666600000": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "1666700000": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "11297108099": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "11297108109": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - }, -}; diff --git a/src/context.ts b/src/context.ts deleted file mode 100644 index 4e716ea..0000000 --- a/src/context.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { BigNumberish, ethers } from "ethers"; -import { - IUserOperationMiddlewareCtx, - IUserOperation, - StateOverrideSet, -} from "./types"; - -export class UserOperationMiddlewareCtx implements IUserOperationMiddlewareCtx { - public op: IUserOperation; - readonly entryPoint: string; - readonly chainId: BigNumberish; - readonly stateOverrides?: StateOverrideSet | undefined; - - constructor( - op: IUserOperation, - entryPoint: string, - chainId: BigNumberish, - stateOverrides?: StateOverrideSet - ) { - this.op = { ...op }; - this.entryPoint = ethers.utils.getAddress(entryPoint); - this.chainId = ethers.BigNumber.from(chainId); - this.stateOverrides = stateOverrides; - } - - getUserOpHash() { - const packed = ethers.utils.defaultAbiCoder.encode( - [ - "address", - "uint256", - "bytes32", - "bytes32", - "uint256", - "uint256", - "uint256", - "uint256", - "uint256", - "bytes32", - ], - [ - this.op.sender, - this.op.nonce, - ethers.utils.keccak256(this.op.initCode), - ethers.utils.keccak256(this.op.callData), - this.op.callGasLimit, - this.op.verificationGasLimit, - this.op.preVerificationGas, - this.op.maxFeePerGas, - this.op.maxPriorityFeePerGas, - ethers.utils.keccak256(this.op.paymasterAndData), - ] - ); - - const enc = ethers.utils.defaultAbiCoder.encode( - ["bytes32", "address", "uint256"], - [ethers.utils.keccak256(packed), this.entryPoint, this.chainId] - ); - - return ethers.utils.keccak256(enc); - } -} diff --git a/src/index.ts b/src/index.ts index 5776847..9b382fd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1 @@ -export * as Constants from "./constants"; -export * as Presets from "./preset"; -export * as Utils from "./utils"; -export * from "./builder"; -export * from "./client"; -export * from "./context"; -export * from "./provider"; -export * from "./types"; +export * as V06 from "./v06"; diff --git a/src/preset/builder/barz.ts b/src/preset/builder/barz.ts deleted file mode 100644 index cd4e990..0000000 --- a/src/preset/builder/barz.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { BigNumberish, BytesLike, ethers } from "ethers"; -import { ERC4337, Barz as BarzConst } from "../../constants"; -import { UserOperationBuilder } from "../../builder"; -import { BundlerJsonRpcProvider } from "../../provider"; -import { - signUserOpHash, - estimateUserOperationGas, - getGasPrice, -} from "../middleware"; -import { BarzSecp256r1 } from "../signers"; -import { - EntryPoint, - EntryPoint__factory, - BarzFactory, - BarzFactory__factory, - BarzAccountFacet, - BarzAccountFacet__factory, -} from "../../typechain"; -import { IPresetBuilderOpts, UserOperationMiddlewareFn } from "../../types"; - -export class Barz extends UserOperationBuilder { - private signer: BarzSecp256r1; - private provider: ethers.providers.JsonRpcProvider; - private entryPoint: EntryPoint; - private factory: BarzFactory; - private initCode: string; - proxy: BarzAccountFacet; - - private constructor( - signer: BarzSecp256r1, - rpcUrl: string, - opts?: IPresetBuilderOpts - ) { - super(); - this.signer = signer; - this.provider = new BundlerJsonRpcProvider(rpcUrl).setBundlerRpc( - opts?.overrideBundlerRpc - ); - this.entryPoint = EntryPoint__factory.connect( - opts?.entryPoint || ERC4337.EntryPoint, - this.provider - ); - this.factory = BarzFactory__factory.connect( - opts?.factory || BarzConst.Factory, - this.provider - ); - this.initCode = "0x"; - this.proxy = BarzAccountFacet__factory.connect( - ethers.constants.AddressZero, - this.provider - ); - } - - private resolveAccount: UserOperationMiddlewareFn = async (ctx) => { - ctx.op.nonce = await this.entryPoint.getNonce(ctx.op.sender, 0); - ctx.op.initCode = ctx.op.nonce.eq(0) ? this.initCode : "0x"; - }; - - public static async init( - signer: BarzSecp256r1, - rpcUrl: string, - opts?: IPresetBuilderOpts - ): Promise { - const instance = new Barz(signer, rpcUrl, opts); - - try { - instance.initCode = await ethers.utils.hexConcat([ - instance.factory.address, - instance.factory.interface.encodeFunctionData("createAccount", [ - BarzConst.Secp256r1VerificationFacet, - await instance.signer.getPublicKey(), - ethers.BigNumber.from(opts?.salt ?? 0), - ]), - ]); - await instance.entryPoint.callStatic.getSenderAddress(instance.initCode); - - throw new Error("getSenderAddress: unexpected result"); - } catch (error: any) { - const addr = error?.errorArgs?.sender; - if (!addr) throw error; - - instance.proxy = BarzAccountFacet__factory.connect( - addr, - instance.provider - ); - } - - const base = instance - .useDefaults({ - sender: instance.proxy.address, - signature: await instance.signer.signMessage( - ethers.utils.arrayify(ethers.utils.keccak256("0xdead")) - ), - }) - .useMiddleware(instance.resolveAccount) - .useMiddleware(getGasPrice(instance.provider)); - - const withPM = opts?.paymasterMiddleware - ? base.useMiddleware(opts.paymasterMiddleware) - : base.useMiddleware(estimateUserOperationGas(instance.provider)); - - return withPM.useMiddleware(signUserOpHash(instance.signer)); - } - - execute(to: string, value: BigNumberish, data: BytesLike) { - return this.setCallData( - this.proxy.interface.encodeFunctionData("execute", [to, value, data]) - ); - } - - executeBatch( - to: Array, - value: Array, - data: Array - ) { - return this.setCallData( - this.proxy.interface.encodeFunctionData("executeBatch", [to, value, data]) - ); - } -} diff --git a/src/preset/builder/index.ts b/src/preset/builder/index.ts deleted file mode 100644 index 1d83abd..0000000 --- a/src/preset/builder/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./barz"; -export * from "./kernel"; -export * from "./simpleAccount"; diff --git a/src/preset/builder/kernel.ts b/src/preset/builder/kernel.ts deleted file mode 100644 index 00f274d..0000000 --- a/src/preset/builder/kernel.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { ethers } from "ethers"; -import { ERC4337, Kernel as KernelConst } from "../../constants"; -import { UserOperationBuilder } from "../../builder"; -import { BundlerJsonRpcProvider } from "../../provider"; -import { - signUserOpHash, - estimateUserOperationGas, - getGasPrice, -} from "../middleware"; -import { - EntryPoint, - EntryPoint__factory, - ECDSAKernelFactory, - ECDSAKernelFactory__factory, - Kernel as KernelImpl, - Kernel__factory, - Multisend, - Multisend__factory, -} from "../../typechain"; -import { - IPresetBuilderOpts, - ICall, - UserOperationMiddlewareFn, -} from "../../types"; -import { Safe } from "../../constants/safe"; - -enum Operation { - Call, - DelegateCall, -} - -export class Kernel extends UserOperationBuilder { - private signer: ethers.Signer; - private provider: ethers.providers.JsonRpcProvider; - private entryPoint: EntryPoint; - private factory: ECDSAKernelFactory; - private initCode: string; - private multisend: Multisend; - proxy: KernelImpl; - - private constructor( - signer: ethers.Signer, - rpcUrl: string, - opts?: IPresetBuilderOpts - ) { - super(); - this.signer = signer; - this.provider = new BundlerJsonRpcProvider(rpcUrl).setBundlerRpc( - opts?.overrideBundlerRpc - ); - this.entryPoint = EntryPoint__factory.connect( - opts?.entryPoint || ERC4337.EntryPoint, - this.provider - ); - this.factory = ECDSAKernelFactory__factory.connect( - opts?.factory || KernelConst.ECDSAFactory, - this.provider - ); - this.initCode = "0x"; - this.multisend = Multisend__factory.connect( - ethers.constants.AddressZero, - this.provider - ); - this.proxy = Kernel__factory.connect( - ethers.constants.AddressZero, - this.provider - ); - } - - private resolveAccount: UserOperationMiddlewareFn = async (ctx) => { - ctx.op.nonce = await this.entryPoint.getNonce(ctx.op.sender, 0); - ctx.op.initCode = ctx.op.nonce.eq(0) ? this.initCode : "0x"; - }; - - private sudoMode: UserOperationMiddlewareFn = async (ctx) => { - ctx.op.signature = ethers.utils.hexConcat([ - KernelConst.Modes.Sudo, - ctx.op.signature, - ]); - }; - - public static async init( - signer: ethers.Signer, - rpcUrl: string, - opts?: IPresetBuilderOpts - ): Promise { - const instance = new Kernel(signer, rpcUrl, opts); - - try { - instance.initCode = await ethers.utils.hexConcat([ - instance.factory.address, - instance.factory.interface.encodeFunctionData("createAccount", [ - await instance.signer.getAddress(), - ethers.BigNumber.from(opts?.salt ?? 0), - ]), - ]); - await instance.entryPoint.callStatic.getSenderAddress(instance.initCode); - - throw new Error("getSenderAddress: unexpected result"); - } catch (error: any) { - const addr = error?.errorArgs?.sender; - if (!addr) throw error; - - const chain = await instance.provider.getNetwork().then((n) => n.chainId); - const ms = Safe.MultiSend[chain.toString()]; - if (!ms) - throw new Error( - `Multisend contract not deployed on network: ${chain.toString()}` - ); - instance.multisend = Multisend__factory.connect(ms, instance.provider); - instance.proxy = Kernel__factory.connect(addr, instance.provider); - } - - const base = instance - .useDefaults({ - sender: instance.proxy.address, - signature: ethers.utils.hexConcat([ - KernelConst.Modes.Sudo, - await instance.signer.signMessage( - ethers.utils.arrayify(ethers.utils.keccak256("0xdead")) - ), - ]), - }) - .useMiddleware(instance.resolveAccount) - .useMiddleware(getGasPrice(instance.provider)); - - const withPM = opts?.paymasterMiddleware - ? base.useMiddleware(opts.paymasterMiddleware) - : base.useMiddleware(estimateUserOperationGas(instance.provider)); - - return withPM - .useMiddleware(signUserOpHash(instance.signer)) - .useMiddleware(instance.sudoMode); - } - - execute(call: ICall) { - return this.setCallData( - this.proxy.interface.encodeFunctionData("execute", [ - call.to, - call.value, - call.data, - Operation.Call, - ]) - ); - } - - executeBatch(calls: Array) { - const data = this.multisend.interface.encodeFunctionData("multiSend", [ - ethers.utils.hexConcat( - calls.map((c) => - ethers.utils.solidityPack( - ["uint8", "address", "uint256", "uint256", "bytes"], - [ - Operation.Call, - c.to, - c.value, - ethers.utils.hexDataLength(c.data), - c.data, - ] - ) - ) - ), - ]); - - return this.setCallData( - this.proxy.interface.encodeFunctionData("execute", [ - this.multisend.address, - ethers.constants.Zero, - data, - Operation.DelegateCall, - ]) - ); - } -} diff --git a/src/preset/builder/simpleAccount.ts b/src/preset/builder/simpleAccount.ts deleted file mode 100644 index f365e9e..0000000 --- a/src/preset/builder/simpleAccount.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { BigNumberish, BytesLike, ethers } from "ethers"; -import { ERC4337 } from "../../constants"; -import { UserOperationBuilder } from "../../builder"; -import { BundlerJsonRpcProvider } from "../../provider"; -import { - signUserOpHash, - estimateUserOperationGas, - getGasPrice, -} from "../middleware"; -import { - EntryPoint, - EntryPoint__factory, - SimpleAccountFactory, - SimpleAccountFactory__factory, - SimpleAccount as SimpleAccountImpl, - SimpleAccount__factory, -} from "../../typechain"; -import { - EOASigner, - IPresetBuilderOpts, - UserOperationMiddlewareFn, -} from "../../types"; - -export class SimpleAccount extends UserOperationBuilder { - private signer: EOASigner; - private provider: ethers.providers.JsonRpcProvider; - private entryPoint: EntryPoint; - private factory: SimpleAccountFactory; - private initCode: string; - private nonceKey: number; - proxy: SimpleAccountImpl; - - private constructor( - signer: EOASigner, - rpcUrl: string, - opts?: IPresetBuilderOpts - ) { - super(); - this.signer = signer; - this.provider = new BundlerJsonRpcProvider(rpcUrl).setBundlerRpc( - opts?.overrideBundlerRpc - ); - this.entryPoint = EntryPoint__factory.connect( - opts?.entryPoint || ERC4337.EntryPoint, - this.provider - ); - this.factory = SimpleAccountFactory__factory.connect( - opts?.factory || ERC4337.SimpleAccount.Factory, - this.provider - ); - this.initCode = "0x"; - this.nonceKey = opts?.nonceKey || 0; - this.proxy = SimpleAccount__factory.connect( - ethers.constants.AddressZero, - this.provider - ); - } - - private resolveAccount: UserOperationMiddlewareFn = async (ctx) => { - const [nonce, code] = await Promise.all([ - this.entryPoint.getNonce(ctx.op.sender, this.nonceKey), - this.provider.getCode(ctx.op.sender), - ]); - ctx.op.nonce = nonce; - ctx.op.initCode = code === "0x" ? this.initCode : "0x"; - }; - - public static async init( - signer: EOASigner, - rpcUrl: string, - opts?: IPresetBuilderOpts - ): Promise { - const instance = new SimpleAccount(signer, rpcUrl, opts); - - try { - instance.initCode = await ethers.utils.hexConcat([ - instance.factory.address, - instance.factory.interface.encodeFunctionData("createAccount", [ - await instance.signer.getAddress(), - ethers.BigNumber.from(opts?.salt ?? 0), - ]), - ]); - await instance.entryPoint.callStatic.getSenderAddress(instance.initCode); - - throw new Error("getSenderAddress: unexpected result"); - } catch (error: any) { - const addr = error?.errorArgs?.sender; - if (!addr) throw error; - - instance.proxy = SimpleAccount__factory.connect(addr, instance.provider); - } - - const base = instance - .useDefaults({ - sender: instance.proxy.address, - signature: await ethers.Wallet.createRandom().signMessage( - ethers.utils.arrayify(ethers.utils.keccak256("0xdead")) - ), - }) - .useMiddleware(instance.resolveAccount) - .useMiddleware(getGasPrice(instance.provider)); - - const withPM = opts?.paymasterMiddleware - ? base.useMiddleware(opts.paymasterMiddleware) - : base.useMiddleware(estimateUserOperationGas(instance.provider)); - - return withPM.useMiddleware(signUserOpHash(instance.signer)); - } - - execute(to: string, value: BigNumberish, data: BytesLike) { - return this.setCallData( - this.proxy.interface.encodeFunctionData("execute", [to, value, data]) - ); - } - - executeBatch(to: Array, data: Array) { - return this.setCallData( - this.proxy.interface.encodeFunctionData("executeBatch", [to, data]) - ); - } -} diff --git a/src/preset/index.ts b/src/preset/index.ts deleted file mode 100644 index 7777a43..0000000 --- a/src/preset/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * as Builder from "./builder"; -export * as Middleware from "./middleware"; -export * as Signers from "./signers"; diff --git a/src/preset/middleware/gasLimit.ts b/src/preset/middleware/gasLimit.ts deleted file mode 100644 index 96d3237..0000000 --- a/src/preset/middleware/gasLimit.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { BigNumberish, ethers } from "ethers"; -import { OpToJSON } from "../../utils"; -import { UserOperationMiddlewareFn } from "../../types"; - -interface GasEstimate { - preVerificationGas: BigNumberish; - verificationGasLimit: BigNumberish; - callGasLimit: BigNumberish; - - // TODO: remove this with EntryPoint v0.7 - verificationGas: BigNumberish; -} - -export const estimateUserOperationGas = - (provider: ethers.providers.JsonRpcProvider): UserOperationMiddlewareFn => - async (ctx) => { - const params = - ctx.stateOverrides !== undefined - ? [OpToJSON(ctx.op), ctx.entryPoint, ctx.stateOverrides] - : [OpToJSON(ctx.op), ctx.entryPoint]; - const est = (await provider.send( - "eth_estimateUserOperationGas", - params - )) as GasEstimate; - - ctx.op.preVerificationGas = est.preVerificationGas; - ctx.op.verificationGasLimit = - est.verificationGasLimit ?? est.verificationGas; - ctx.op.callGasLimit = est.callGasLimit; - }; diff --git a/src/preset/middleware/gasPrice.ts b/src/preset/middleware/gasPrice.ts deleted file mode 100644 index 8fc18e0..0000000 --- a/src/preset/middleware/gasPrice.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { ethers } from "ethers"; -import { UserOperationMiddlewareFn } from "../../types"; - -const eip1559GasPrice = async (provider: ethers.providers.JsonRpcProvider) => { - const [fee, block] = await Promise.all([ - provider.send("eth_maxPriorityFeePerGas", []), - provider.getBlock("latest"), - ]); - - const tip = ethers.BigNumber.from(fee); - const buffer = tip.div(100).mul(13); - const maxPriorityFeePerGas = tip.add(buffer); - const maxFeePerGas = block.baseFeePerGas - ? block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas) - : maxPriorityFeePerGas; - - return { maxFeePerGas, maxPriorityFeePerGas }; -}; - -const legacyGasPrice = async (provider: ethers.providers.JsonRpcProvider) => { - const gas = await provider.getGasPrice(); - - return { maxFeePerGas: gas, maxPriorityFeePerGas: gas }; -}; - -export const getGasPrice = - (provider: ethers.providers.JsonRpcProvider): UserOperationMiddlewareFn => - async (ctx) => { - let eip1559Error; - try { - const { maxFeePerGas, maxPriorityFeePerGas } = await eip1559GasPrice( - provider - ); - - ctx.op.maxFeePerGas = maxFeePerGas; - ctx.op.maxPriorityFeePerGas = maxPriorityFeePerGas; - return; - } catch (error: any) { - eip1559Error = error; - console.warn( - "getGas: eth_maxPriorityFeePerGas failed, falling back to legacy gas price." - ); - } - - try { - const { maxFeePerGas, maxPriorityFeePerGas } = await legacyGasPrice( - provider - ); - - ctx.op.maxFeePerGas = maxFeePerGas; - ctx.op.maxPriorityFeePerGas = maxPriorityFeePerGas; - return; - } catch (error) { - throw new Error(`${eip1559Error}, ${error}`); - } - }; diff --git a/src/preset/middleware/index.ts b/src/preset/middleware/index.ts deleted file mode 100644 index bf9221b..0000000 --- a/src/preset/middleware/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./gasLimit"; -export * from "./gasPrice"; -export * from "./paymaster"; -export * from "./signature"; diff --git a/src/preset/middleware/paymaster.ts b/src/preset/middleware/paymaster.ts deleted file mode 100644 index a67d955..0000000 --- a/src/preset/middleware/paymaster.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { ethers } from "ethers"; -import { UserOperationMiddlewareFn } from "../../types"; -import { OpToJSON } from "../../utils"; - -interface VerifyingPaymasterResult { - paymasterAndData: string; - preVerificationGas: string; - verificationGasLimit: string; - callGasLimit: string; -} - -// Assumes the paymaster interface in https://hackmd.io/@stackup/H1oIvV-qi -export const verifyingPaymaster = - (paymasterRpc: string, context: any): UserOperationMiddlewareFn => - async (ctx) => { - ctx.op.verificationGasLimit = ethers.BigNumber.from( - ctx.op.verificationGasLimit - ).mul(3); - - const provider = new ethers.providers.JsonRpcProvider(paymasterRpc); - const pm = (await provider.send("pm_sponsorUserOperation", [ - OpToJSON(ctx.op), - ctx.entryPoint, - context, - ])) as VerifyingPaymasterResult; - - ctx.op.paymasterAndData = pm.paymasterAndData; - ctx.op.preVerificationGas = pm.preVerificationGas; - ctx.op.verificationGasLimit = pm.verificationGasLimit; - ctx.op.callGasLimit = pm.callGasLimit; - }; diff --git a/src/preset/middleware/signature.ts b/src/preset/middleware/signature.ts deleted file mode 100644 index 8f8a039..0000000 --- a/src/preset/middleware/signature.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ethers } from "ethers"; -import { ISigner, UserOperationMiddlewareFn } from "../../types"; - -export const EOASignature = - (signer: ethers.Signer): UserOperationMiddlewareFn => - async (ctx) => { - console.warn( - "userop.js: Presets.Middleware.EOASignature is deprecated. Replace with Presets.Middleware.signUserOpHash." - ); - ctx.op.signature = await signer.signMessage( - ethers.utils.arrayify(ctx.getUserOpHash()) - ); - }; - -export const signUserOpHash = - (signer: ISigner): UserOperationMiddlewareFn => - async (ctx) => { - ctx.op.signature = await signer.signMessage( - ethers.utils.arrayify(ctx.getUserOpHash()) - ); - }; diff --git a/src/preset/signers/barzSecp256r1.ts b/src/preset/signers/barzSecp256r1.ts deleted file mode 100644 index fa0f80a..0000000 --- a/src/preset/signers/barzSecp256r1.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Bytes, BytesLike, ethers } from "ethers"; -import { fromUint8Array } from "js-base64"; -import { ec as EC } from "elliptic"; -import { ISigner } from "../../types"; - -export class BarzSecp256r1 implements ISigner { - private ec = new EC("p256"); - private privateKey: EC.KeyPair; - - constructor(privateKey: BytesLike) { - this.privateKey = this.ec.keyFromPrivate(ethers.utils.arrayify(privateKey)); - } - - public static generatePrivateKey(): BytesLike { - const key = new EC("p256").genKeyPair(); - return ethers.utils.hexlify(key.getPrivate().toBuffer()); - } - - public async getPublicKey(): Promise { - return ethers.utils.hexlify( - this.privateKey.getPublic().encode("array", false) - ); - } - - // Note: Barz accounts follow the WebAuthn API and hence require values for authenticatorData and - // clientDataJSON to be encoded as part of the signature. However these fields are not explicitly - // checked on-chain so we can set a null value. - public async signMessage(message: string | Bytes): Promise { - const authenticatorData = ethers.constants.HashZero; - - const clientDataJSONPre = ""; - const uoHashBase64 = fromUint8Array(ethers.utils.arrayify(message), true); - const clientDataJSONPost = ""; - const clientDataJSON = `${clientDataJSONPre}${uoHashBase64}${clientDataJSONPost}`; - const clientHash = ethers.utils.sha256( - ethers.utils.toUtf8Bytes(clientDataJSON) - ); - - const sigHash = ethers.utils.sha256( - ethers.utils.concat([authenticatorData, clientHash]) - ); - const sig = this.privateKey.sign(ethers.utils.arrayify(sigHash)); - return ethers.utils.defaultAbiCoder.encode( - ["uint256", "uint256", "bytes", "string", "string"], - [ - sig.r.toString(), - sig.s.toString(), - authenticatorData, - clientDataJSONPre, - clientDataJSONPost, - ] - ); - } -} diff --git a/src/preset/signers/index.ts b/src/preset/signers/index.ts deleted file mode 100644 index 800d339..0000000 --- a/src/preset/signers/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./barzSecp256r1"; -export * from "./remoteEOA"; diff --git a/src/preset/signers/remoteEOA.ts b/src/preset/signers/remoteEOA.ts deleted file mode 100644 index d39747e..0000000 --- a/src/preset/signers/remoteEOA.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Bytes, ethers } from "ethers"; -import { EOASigner } from "../../types"; - -export class RemoteEOA implements EOASigner { - public provider: ethers.providers.JsonRpcProvider; - - constructor(url: string) { - this.provider = new ethers.providers.JsonRpcProvider(url); - } - - getAddress(): Promise { - return this.provider.getSigner().getAddress(); - } - - async signMessage(message: string | Bytes): Promise { - const signer = this.provider.getSigner(); - let signature = await signer.signMessage(message); - - // Code snippet from https://gist.github.com/kalaspuff/19365e21e01929c79d5d2638c1ee580e - // See also https://github.com/ethereum/go-ethereum/issues/19751#issuecomment-504900739 - if (/(^0[xX]|^)[0-9a-fA-F]{128}(00|01)$/.test(signature)) { - const sigV = (parseInt(signature.slice(-2), 16) + 27).toString(16); - signature = signature.slice(0, -2) + sigV; - } - - return signature; - } -} diff --git a/src/provider.ts b/src/provider.ts deleted file mode 100644 index d7b5abe..0000000 --- a/src/provider.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { ethers } from "ethers"; - -export class BundlerJsonRpcProvider extends ethers.providers.JsonRpcProvider { - private bundlerRpc?: ethers.providers.JsonRpcProvider; - private bundlerMethods = new Set([ - "eth_sendUserOperation", - "eth_estimateUserOperationGas", - "eth_getUserOperationByHash", - "eth_getUserOperationReceipt", - "eth_supportedEntryPoints", - ]); - - setBundlerRpc(bundlerRpc?: string): BundlerJsonRpcProvider { - if (bundlerRpc) { - this.bundlerRpc = new ethers.providers.JsonRpcProvider(bundlerRpc); - } - return this; - } - - send(method: string, params: any[]): Promise { - if (this.bundlerRpc && this.bundlerMethods.has(method)) { - return this.bundlerRpc.send(method, params); - } - - return super.send(method, params); - } -} diff --git a/src/test/helpers.ts b/src/test/helpers.ts new file mode 100644 index 0000000..63138ae --- /dev/null +++ b/src/test/helpers.ts @@ -0,0 +1,46 @@ +import { JsonRpcProvider } from "ethers"; +import { + Address, + createPublicClient, + createWalletClient, + http, + parseEther, +} from "viem"; +import { localhost } from "viem/chains"; + +export const ETH_RPC = "http://localhost:8545"; +export const NODE_RPC = "http://localhost:8546"; +export const BUNDLER_RPC = "http://localhost:43370"; +export const STACKUP_V1_PM_RPC = "http://localhost:43371"; +export const VIEM_PUBLIC_CLIENT = createPublicClient({ + chain: localhost, + transport: http(ETH_RPC), +}); +export const VIEM_NODE_PUBLIC_CLIENT = createPublicClient({ + chain: localhost, + transport: http(NODE_RPC), +}); +export const VIEM_BUNDLER_PUBLIC_CLIENT = createPublicClient({ + transport: http(BUNDLER_RPC), +}); +export const ETHERS_JSON_RPC_PROVIDER = new JsonRpcProvider(ETH_RPC); +export const ETHERS_NODE_JSON_RPC_PROVIDER = new JsonRpcProvider(NODE_RPC); +export const ETHERS_BUNDLER_JSON_RPC_PROVIDER = new JsonRpcProvider( + BUNDLER_RPC, +); + +export const maintainEthBalance = async (to: Address, balance: string) => { + const curr = await VIEM_PUBLIC_CLIENT.getBalance({ address: to }); + const target = parseEther(balance); + if (curr >= target) { + return; + } + + const value = target - curr; + const signer = createWalletClient({ + chain: localhost, + transport: http(ETH_RPC), + }); + const [account] = await signer.getAddresses(); + return signer.sendTransaction({ account, to, value }); +}; diff --git a/src/test/v06/account.constants.ts b/src/test/v06/account.constants.ts new file mode 100644 index 0000000..ac8bd58 --- /dev/null +++ b/src/test/v06/account.constants.ts @@ -0,0 +1,124 @@ +import { createWalletClient, http } from "viem"; +import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; +import { localhost } from "viem/chains"; +import { ethers } from "ethers"; +import { + ETH_RPC, + STACKUP_V1_PM_RPC, + VIEM_PUBLIC_CLIENT, + VIEM_NODE_PUBLIC_CLIENT, + VIEM_BUNDLER_PUBLIC_CLIENT, + ETHERS_JSON_RPC_PROVIDER, + ETHERS_NODE_JSON_RPC_PROVIDER, + ETHERS_BUNDLER_JSON_RPC_PROVIDER, +} from "../helpers"; +import { V06 } from "../.."; + +const EOA_PK = generatePrivateKey(); +const VIEM_ACC = privateKeyToAccount(EOA_PK); +const OWNER_ADDR = VIEM_ACC.address; +const VIEM_WALLET_CLIENT = createWalletClient({ + account: VIEM_ACC, + chain: localhost, + transport: http(ETH_RPC), +}); +const VIEM_WALLET_CLIENT_NO_HOIST = createWalletClient({ + chain: localhost, + transport: http(ETH_RPC), +}); +const ETHERS_WALLET = new ethers.BaseWallet(new ethers.SigningKey(EOA_PK)); + +export const ACCOUNTS = [ + { + type: "SimpleAccount, withViemWalletClient (account hoisted)", + instance: new V06.Account.Instance({ + ...V06.Account.CommonConfigs.SimpleAccount.base( + OWNER_ADDR, + V06.Account.Hooks.RequestSignature.withViemWalletClient( + VIEM_WALLET_CLIENT, + ), + VIEM_PUBLIC_CLIENT, + ), + }), + }, + { + type: "SimpleAccount, withViemWalletClient (account not hoisted)", + instance: new V06.Account.Instance({ + ...V06.Account.CommonConfigs.SimpleAccount.base( + OWNER_ADDR, + V06.Account.Hooks.RequestSignature.withViemWalletClient( + VIEM_WALLET_CLIENT_NO_HOIST, + VIEM_ACC, + ), + VIEM_PUBLIC_CLIENT, + ), + }), + }, + { + type: "SimpleAccount, with JsonRpcProvider", + instance: new V06.Account.Instance({ + ...V06.Account.CommonConfigs.SimpleAccount.base( + OWNER_ADDR, + V06.Account.Hooks.RequestSignature.withViemWalletClient( + VIEM_WALLET_CLIENT, + ), + ETHERS_JSON_RPC_PROVIDER, + ), + }), + }, + { + type: "SimpleAccount, withEthersSigner", + instance: new V06.Account.Instance({ + ...V06.Account.CommonConfigs.SimpleAccount.base( + OWNER_ADDR, + V06.Account.Hooks.RequestSignature.withEthersSigner(ETHERS_WALLET), + VIEM_PUBLIC_CLIENT, + ), + }), + }, + { + type: "SimpleAccount, with separate viem node and bundler PublicClients", + instance: new V06.Account.Instance({ + ...V06.Account.CommonConfigs.SimpleAccount.base( + OWNER_ADDR, + V06.Account.Hooks.RequestSignature.withViemWalletClient( + VIEM_WALLET_CLIENT, + ), + VIEM_NODE_PUBLIC_CLIENT, + ), + + bundlerClient: VIEM_BUNDLER_PUBLIC_CLIENT, + }), + }, + { + type: "SimpleAccount, with separate ethers node and bundler JsonRpcProviders", + instance: new V06.Account.Instance({ + ...V06.Account.CommonConfigs.SimpleAccount.base( + OWNER_ADDR, + V06.Account.Hooks.RequestSignature.withViemWalletClient( + VIEM_WALLET_CLIENT, + ), + ETHERS_NODE_JSON_RPC_PROVIDER, + ), + + bundlerClient: ETHERS_BUNDLER_JSON_RPC_PROVIDER, + }), + }, + { + type: "SimpleAccount, with Stackup V1 PAYG paymaster", + instance: new V06.Account.Instance({ + ...V06.Account.CommonConfigs.SimpleAccount.base( + OWNER_ADDR, + V06.Account.Hooks.RequestSignature.withViemWalletClient( + VIEM_WALLET_CLIENT, + ), + VIEM_PUBLIC_CLIENT, + ), + + requestPaymaster: V06.Account.Hooks.RequestPaymaster.withCommon({ + variant: "stackupV1", + parameters: { rpcUrl: STACKUP_V1_PM_RPC, type: "payg" }, + }), + }), + }, +]; diff --git a/src/test/v06/account.test.ts b/src/test/v06/account.test.ts new file mode 100644 index 0000000..10c7e4f --- /dev/null +++ b/src/test/v06/account.test.ts @@ -0,0 +1,186 @@ +import { ACCOUNTS } from "./account.constants"; +import { maintainEthBalance } from "../helpers"; +import { + zeroHash, + checksumAddress, + zeroAddress, + numberToHex, + parseEther, +} from "viem"; + +import { V06 } from "../.."; + +describe("Account", () => { + ACCOUNTS.forEach((account) => { + describe(account.type, () => { + const acc = account.instance; + + beforeEach(async () => { + await maintainEthBalance(await acc.getSender(), "1"); + }); + + test("Can build a UserOperation", async () => { + const build = await acc + .encodeCallData("execute", [await acc.getSender(), 1n, "0x"]) + .buildUserOperation(); + + expect(build.userOpHash).not.toEqual(zeroHash); + expect(build.userOperation).not.toEqual(V06.EntryPoint.DEFAULT_USEROP); + }); + + test("Can send a valid UserOperation to be included onchain", async () => { + const build = await acc + .encodeCallData("execute", [await acc.getSender(), 1n, "0x"]) + .buildUserOperation(); + + const send = await acc + .encodeCallData("execute", [await acc.getSender(), 1n, "0x"]) + .sendUserOperation(); + + expect(build.userOpHash).toEqual(send.userOpHash); + + const receipt = await send.wait(); + expect(receipt).not.toBeNull(); + }); + + describe("Configuring the salt", () => { + const initSalt = acc.getSalt(); + + afterEach(() => { + acc.setSalt(initSalt); + }); + + test("Can change the sender", async () => { + const sender0 = await acc.setSalt(initSalt).getSender(); + const sender1 = await acc.setSalt(initSalt + 1n).getSender(); + + expect(sender0).not.toEqual(sender1); + }); + + test("Can allow UserOperations to be sent on a different sender", async () => { + const sender1 = await acc.setSalt(initSalt + 1n).getSender(); + await maintainEthBalance(await sender1, "1"); + const send = await acc + .encodeCallData("execute", [await sender1, 1n, "0x"]) + .sendUserOperation(); + + const receipt = await send.wait(); + expect(receipt).not.toBeNull(); + expect(checksumAddress(receipt?.sender || zeroAddress)).toEqual( + sender1, + ); + }); + }); + + describe("Encoded callData", () => { + test("Should be reset between successful builds", async () => { + const build1 = await acc + .encodeCallData("execute", [await acc.getSender(), 1n, "0x"]) + .buildUserOperation(); + + const build2 = await acc.buildUserOperation(); + + expect(build1.userOperation.callData).not.toEqual( + build2.userOperation.callData, + ); + }); + + test("Should be reset even if build fails", async () => { + const build1 = acc + .encodeCallData("execute", [ + await acc.getSender(), + parseEther("2"), + "0x", + ]) + .buildUserOperation(); + await expect(build1).rejects.toThrow("execution reverted"); + + const build2 = await acc.buildUserOperation(); + expect(build2.userOperation).not.toEqual( + V06.EntryPoint.DEFAULT_USEROP, + ); + }); + }); + + describe("Configuring state overrides", () => { + afterEach(() => { + acc.clearStateOverrideSetForEstimate(); + }); + + test("Can impact the outcome of building a UserOperation", async () => { + const build = await acc + .encodeCallData("execute", [await acc.getSender(), 1n, "0x"]) + .buildUserOperation(); + expect(build.userOperation).not.toEqual( + V06.EntryPoint.DEFAULT_USEROP, + ); + + const buildWithOverride = acc + .setStateOverrideSetForEstimate({ + [await acc.getSender()]: { + balance: numberToHex(0), + }, + }) + .encodeCallData("execute", [await acc.getSender(), 1n, "0x"]) + .buildUserOperation(); + await expect(buildWithOverride).rejects.toThrow(); + }); + }); + + describe("Configuring the nonce key", () => { + const initNonceKey = acc.getNonceKey(); + + afterEach(() => { + acc.setNonceKey(initNonceKey); + }); + + test("Can change the nonce value", async () => { + const nonce0 = await acc.setNonceKey(initNonceKey).getNonce(); + const nonce1 = await acc.setNonceKey(initNonceKey + 1n).getNonce(); + + expect(nonce0).not.toEqual(nonce1); + }); + + test("Can allow a UserOperation to be sent on a different nonce value", async () => { + const expectedNonce = await acc + .setNonceKey(initNonceKey + 1n) + .getNonce(); + expect(expectedNonce).toBeGreaterThan(0n); + + const send = await acc + .encodeCallData("execute", [await acc.getSender(), 1n, "0x"]) + .sendUserOperation(); + + const receipt = await send.wait(); + expect(receipt).not.toBeNull(); + expect(receipt?.nonce).toEqual(numberToHex(expectedNonce)); + }); + }); + + describe("Configuring polling configs for wait()", () => { + const initWaitTimeoutMs = acc.getWaitTimeoutMs(); + const initWaitIntervalMs = acc.getWaitIntervalMs(); + + afterEach(() => { + acc + .setWaitTimeoutMs(initWaitTimeoutMs) + .setWaitIntervalMs(initWaitIntervalMs); + }); + + test("Can change wait timeout", () => { + const timeout = Math.floor(Math.random() * 60000) + 1; + acc.setWaitTimeoutMs(timeout); + + expect(acc.getWaitTimeoutMs()).toEqual(timeout); + }); + + test("Can change interval timeout", () => { + const timeout = Math.floor(Math.random() * 3000) + 1; + acc.setWaitIntervalMs(timeout); + + expect(acc.getWaitIntervalMs()).toEqual(timeout); + }); + }); + }); + }); +}); diff --git a/src/typechain/BarzAccountFacet.ts b/src/typechain/BarzAccountFacet.ts deleted file mode 100644 index 38db3ac..0000000 --- a/src/typechain/BarzAccountFacet.ts +++ /dev/null @@ -1,428 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export type UserOperationStruct = { - sender: string; - nonce: BigNumberish; - initCode: BytesLike; - callData: BytesLike; - callGasLimit: BigNumberish; - verificationGasLimit: BigNumberish; - preVerificationGas: BigNumberish; - maxFeePerGas: BigNumberish; - maxPriorityFeePerGas: BigNumberish; - paymasterAndData: BytesLike; - signature: BytesLike; -}; - -export type UserOperationStructOutput = [ - string, - BigNumber, - string, - string, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - string, - string -] & { - sender: string; - nonce: BigNumber; - initCode: string; - callData: string; - callGasLimit: BigNumber; - verificationGasLimit: BigNumber; - preVerificationGas: BigNumber; - maxFeePerGas: BigNumber; - maxPriorityFeePerGas: BigNumber; - paymasterAndData: string; - signature: string; -}; - -export declare namespace IDiamondCut { - export type FacetCutStruct = { - facetAddress: string; - action: BigNumberish; - functionSelectors: BytesLike[]; - }; - - export type FacetCutStructOutput = [string, number, string[]] & { - facetAddress: string; - action: number; - functionSelectors: string[]; - }; -} - -export interface BarzAccountFacetInterface extends utils.Interface { - functions: { - "entryPoint()": FunctionFragment; - "execute(address,uint256,bytes)": FunctionFragment; - "executeBatch(address[],uint256[],bytes[])": FunctionFragment; - "getNonce()": FunctionFragment; - "initialize(address,address,address,address,bytes)": FunctionFragment; - "validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "entryPoint" - | "execute" - | "executeBatch" - | "getNonce" - | "initialize" - | "validateUserOp" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "entryPoint", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [string, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "executeBatch", - values: [string[], BigNumberish[], BytesLike[]] - ): string; - encodeFunctionData(functionFragment: "getNonce", values?: undefined): string; - encodeFunctionData( - functionFragment: "initialize", - values: [string, string, string, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "validateUserOp", - values: [UserOperationStruct, BytesLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "entryPoint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeBatch", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getNonce", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "validateUserOp", - data: BytesLike - ): Result; - - events: { - "AccountInitialized(address,bytes)": EventFragment; - "DiamondCut(tuple[],address,bytes)": EventFragment; - "VerificationFailure(bytes32)": EventFragment; - "VerificationSuccess(bytes32)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AccountInitialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "DiamondCut"): EventFragment; - getEvent(nameOrSignatureOrTopic: "VerificationFailure"): EventFragment; - getEvent(nameOrSignatureOrTopic: "VerificationSuccess"): EventFragment; -} - -export interface AccountInitializedEventObject { - entryPoint: string; - ownerPublicKey: string; -} -export type AccountInitializedEvent = TypedEvent< - [string, string], - AccountInitializedEventObject ->; - -export type AccountInitializedEventFilter = - TypedEventFilter; - -export interface DiamondCutEventObject { - _diamondCut: IDiamondCut.FacetCutStructOutput[]; - _init: string; - _calldata: string; -} -export type DiamondCutEvent = TypedEvent< - [IDiamondCut.FacetCutStructOutput[], string, string], - DiamondCutEventObject ->; - -export type DiamondCutEventFilter = TypedEventFilter; - -export interface VerificationFailureEventObject { - arg0: string; -} -export type VerificationFailureEvent = TypedEvent< - [string], - VerificationFailureEventObject ->; - -export type VerificationFailureEventFilter = - TypedEventFilter; - -export interface VerificationSuccessEventObject { - arg0: string; -} -export type VerificationSuccessEvent = TypedEvent< - [string], - VerificationSuccessEventObject ->; - -export type VerificationSuccessEventFilter = - TypedEventFilter; - -export interface BarzAccountFacet extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: BarzAccountFacetInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - entryPoint(overrides?: CallOverrides): Promise<[string]>; - - execute( - _dest: string, - _value: BigNumberish, - _func: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - executeBatch( - _dest: string[], - _value: BigNumberish[], - _func: BytesLike[], - overrides?: Overrides & { from?: string } - ): Promise; - - getNonce(overrides?: CallOverrides): Promise<[BigNumber]>; - - initialize( - _verificationFacet: string, - _anEntryPoint: string, - _facetRegistry: string, - _defaultFallBackHandler: string, - _ownerPublicKey: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - }; - - entryPoint(overrides?: CallOverrides): Promise; - - execute( - _dest: string, - _value: BigNumberish, - _func: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - executeBatch( - _dest: string[], - _value: BigNumberish[], - _func: BytesLike[], - overrides?: Overrides & { from?: string } - ): Promise; - - getNonce(overrides?: CallOverrides): Promise; - - initialize( - _verificationFacet: string, - _anEntryPoint: string, - _facetRegistry: string, - _defaultFallBackHandler: string, - _ownerPublicKey: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - callStatic: { - entryPoint(overrides?: CallOverrides): Promise; - - execute( - _dest: string, - _value: BigNumberish, - _func: BytesLike, - overrides?: CallOverrides - ): Promise; - - executeBatch( - _dest: string[], - _value: BigNumberish[], - _func: BytesLike[], - overrides?: CallOverrides - ): Promise; - - getNonce(overrides?: CallOverrides): Promise; - - initialize( - _verificationFacet: string, - _anEntryPoint: string, - _facetRegistry: string, - _defaultFallBackHandler: string, - _ownerPublicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AccountInitialized(address,bytes)"( - entryPoint?: string | null, - ownerPublicKey?: BytesLike | null - ): AccountInitializedEventFilter; - AccountInitialized( - entryPoint?: string | null, - ownerPublicKey?: BytesLike | null - ): AccountInitializedEventFilter; - - "DiamondCut(tuple[],address,bytes)"( - _diamondCut?: null, - _init?: null, - _calldata?: null - ): DiamondCutEventFilter; - DiamondCut( - _diamondCut?: null, - _init?: null, - _calldata?: null - ): DiamondCutEventFilter; - - "VerificationFailure(bytes32)"(arg0?: null): VerificationFailureEventFilter; - VerificationFailure(arg0?: null): VerificationFailureEventFilter; - - "VerificationSuccess(bytes32)"(arg0?: null): VerificationSuccessEventFilter; - VerificationSuccess(arg0?: null): VerificationSuccessEventFilter; - }; - - estimateGas: { - entryPoint(overrides?: CallOverrides): Promise; - - execute( - _dest: string, - _value: BigNumberish, - _func: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - executeBatch( - _dest: string[], - _value: BigNumberish[], - _func: BytesLike[], - overrides?: Overrides & { from?: string } - ): Promise; - - getNonce(overrides?: CallOverrides): Promise; - - initialize( - _verificationFacet: string, - _anEntryPoint: string, - _facetRegistry: string, - _defaultFallBackHandler: string, - _ownerPublicKey: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - }; - - populateTransaction: { - entryPoint(overrides?: CallOverrides): Promise; - - execute( - _dest: string, - _value: BigNumberish, - _func: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - executeBatch( - _dest: string[], - _value: BigNumberish[], - _func: BytesLike[], - overrides?: Overrides & { from?: string } - ): Promise; - - getNonce(overrides?: CallOverrides): Promise; - - initialize( - _verificationFacet: string, - _anEntryPoint: string, - _facetRegistry: string, - _defaultFallBackHandler: string, - _ownerPublicKey: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - }; -} diff --git a/src/typechain/BarzDefaultFallbackHandler.ts b/src/typechain/BarzDefaultFallbackHandler.ts deleted file mode 100644 index 6b547de..0000000 --- a/src/typechain/BarzDefaultFallbackHandler.ts +++ /dev/null @@ -1,242 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export declare namespace IDiamondCut { - export type FacetCutStruct = { - facetAddress: string; - action: BigNumberish; - functionSelectors: BytesLike[]; - }; - - export type FacetCutStructOutput = [string, number, string[]] & { - facetAddress: string; - action: number; - functionSelectors: string[]; - }; -} - -export declare namespace IDiamondLoupe { - export type FacetStruct = { - facetAddress: string; - functionSelectors: BytesLike[]; - }; - - export type FacetStructOutput = [string, string[]] & { - facetAddress: string; - functionSelectors: string[]; - }; -} - -export interface BarzDefaultFallbackHandlerInterface extends utils.Interface { - functions: { - "facetAddress(bytes4)": FunctionFragment; - "facetAddresses()": FunctionFragment; - "facetFunctionSelectors(address)": FunctionFragment; - "facets()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "facetAddress" - | "facetAddresses" - | "facetFunctionSelectors" - | "facets" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "facetAddress", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "facetAddresses", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "facetFunctionSelectors", - values: [string] - ): string; - encodeFunctionData(functionFragment: "facets", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "facetAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "facetAddresses", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "facetFunctionSelectors", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "facets", data: BytesLike): Result; - - events: { - "DiamondCut(tuple[],address,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "DiamondCut"): EventFragment; -} - -export interface DiamondCutEventObject { - _diamondCut: IDiamondCut.FacetCutStructOutput[]; - _init: string; - _calldata: string; -} -export type DiamondCutEvent = TypedEvent< - [IDiamondCut.FacetCutStructOutput[], string, string], - DiamondCutEventObject ->; - -export type DiamondCutEventFilter = TypedEventFilter; - -export interface BarzDefaultFallbackHandler extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: BarzDefaultFallbackHandlerInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - facetAddress( - _functionSelector: BytesLike, - overrides?: CallOverrides - ): Promise<[string] & { facetAddress_: string }>; - - facetAddresses( - overrides?: CallOverrides - ): Promise<[string[]] & { facetAddresses_: string[] }>; - - facetFunctionSelectors( - _facet: string, - overrides?: CallOverrides - ): Promise<[string[]] & { facetFunctionSelectors_: string[] }>; - - facets( - overrides?: CallOverrides - ): Promise< - [IDiamondLoupe.FacetStructOutput[]] & { - facets_: IDiamondLoupe.FacetStructOutput[]; - } - >; - }; - - facetAddress( - _functionSelector: BytesLike, - overrides?: CallOverrides - ): Promise; - - facetAddresses(overrides?: CallOverrides): Promise; - - facetFunctionSelectors( - _facet: string, - overrides?: CallOverrides - ): Promise; - - facets(overrides?: CallOverrides): Promise; - - callStatic: { - facetAddress( - _functionSelector: BytesLike, - overrides?: CallOverrides - ): Promise; - - facetAddresses(overrides?: CallOverrides): Promise; - - facetFunctionSelectors( - _facet: string, - overrides?: CallOverrides - ): Promise; - - facets( - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "DiamondCut(tuple[],address,bytes)"( - _diamondCut?: null, - _init?: null, - _calldata?: null - ): DiamondCutEventFilter; - DiamondCut( - _diamondCut?: null, - _init?: null, - _calldata?: null - ): DiamondCutEventFilter; - }; - - estimateGas: { - facetAddress( - _functionSelector: BytesLike, - overrides?: CallOverrides - ): Promise; - - facetAddresses(overrides?: CallOverrides): Promise; - - facetFunctionSelectors( - _facet: string, - overrides?: CallOverrides - ): Promise; - - facets(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - facetAddress( - _functionSelector: BytesLike, - overrides?: CallOverrides - ): Promise; - - facetAddresses(overrides?: CallOverrides): Promise; - - facetFunctionSelectors( - _facet: string, - overrides?: CallOverrides - ): Promise; - - facets(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/typechain/BarzFactory.ts b/src/typechain/BarzFactory.ts deleted file mode 100644 index 7f7e850..0000000 --- a/src/typechain/BarzFactory.ts +++ /dev/null @@ -1,337 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export interface BarzFactoryInterface extends utils.Interface { - functions: { - "accountFacet()": FunctionFragment; - "createAccount(address,bytes,uint256)": FunctionFragment; - "defaultFallback()": FunctionFragment; - "entryPoint()": FunctionFragment; - "facetRegistry()": FunctionFragment; - "getAddress(address,bytes,uint256)": FunctionFragment; - "getBytecode(address,address,address,address,address,bytes)": FunctionFragment; - "getCreationCode()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "accountFacet" - | "createAccount" - | "defaultFallback" - | "entryPoint" - | "facetRegistry" - | "getAddress" - | "getBytecode" - | "getCreationCode" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "accountFacet", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "createAccount", - values: [string, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "defaultFallback", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "entryPoint", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "facetRegistry", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getAddress", - values: [string, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getBytecode", - values: [string, string, string, string, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getCreationCode", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "accountFacet", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createAccount", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "defaultFallback", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "entryPoint", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "facetRegistry", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getAddress", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getBytecode", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getCreationCode", - data: BytesLike - ): Result; - - events: { - "BarzDeployed(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "BarzDeployed"): EventFragment; -} - -export interface BarzDeployedEventObject { - arg0: string; -} -export type BarzDeployedEvent = TypedEvent<[string], BarzDeployedEventObject>; - -export type BarzDeployedEventFilter = TypedEventFilter; - -export interface BarzFactory extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: BarzFactoryInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - accountFacet(overrides?: CallOverrides): Promise<[string]>; - - createAccount( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - defaultFallback(overrides?: CallOverrides): Promise<[string]>; - - entryPoint(overrides?: CallOverrides): Promise<[string]>; - - facetRegistry(overrides?: CallOverrides): Promise<[string]>; - - getAddress( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: CallOverrides - ): Promise<[string] & { barzAddress: string }>; - - getBytecode( - _accountFacet: string, - _verificationFacet: string, - _entryPoint: string, - _facetRegistry: string, - _defaultFallback: string, - _ownerPublicKey: BytesLike, - overrides?: CallOverrides - ): Promise<[string] & { barzBytecode: string }>; - - getCreationCode( - overrides?: CallOverrides - ): Promise<[string] & { creationCode: string }>; - }; - - accountFacet(overrides?: CallOverrides): Promise; - - createAccount( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - defaultFallback(overrides?: CallOverrides): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - facetRegistry(overrides?: CallOverrides): Promise; - - getAddress( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getBytecode( - _accountFacet: string, - _verificationFacet: string, - _entryPoint: string, - _facetRegistry: string, - _defaultFallback: string, - _ownerPublicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - getCreationCode(overrides?: CallOverrides): Promise; - - callStatic: { - accountFacet(overrides?: CallOverrides): Promise; - - createAccount( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - - defaultFallback(overrides?: CallOverrides): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - facetRegistry(overrides?: CallOverrides): Promise; - - getAddress( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getBytecode( - _accountFacet: string, - _verificationFacet: string, - _entryPoint: string, - _facetRegistry: string, - _defaultFallback: string, - _ownerPublicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - getCreationCode(overrides?: CallOverrides): Promise; - }; - - filters: { - "BarzDeployed(address)"(arg0?: null): BarzDeployedEventFilter; - BarzDeployed(arg0?: null): BarzDeployedEventFilter; - }; - - estimateGas: { - accountFacet(overrides?: CallOverrides): Promise; - - createAccount( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - defaultFallback(overrides?: CallOverrides): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - facetRegistry(overrides?: CallOverrides): Promise; - - getAddress( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getBytecode( - _accountFacet: string, - _verificationFacet: string, - _entryPoint: string, - _facetRegistry: string, - _defaultFallback: string, - _ownerPublicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - getCreationCode(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - accountFacet(overrides?: CallOverrides): Promise; - - createAccount( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - defaultFallback(overrides?: CallOverrides): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - facetRegistry(overrides?: CallOverrides): Promise; - - getAddress( - _verificationFacet: string, - _owner: BytesLike, - _salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getBytecode( - _accountFacet: string, - _verificationFacet: string, - _entryPoint: string, - _facetRegistry: string, - _defaultFallback: string, - _ownerPublicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - getCreationCode(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/typechain/BarzSecp256r1VerificationFacet.ts b/src/typechain/BarzSecp256r1VerificationFacet.ts deleted file mode 100644 index 99f3b03..0000000 --- a/src/typechain/BarzSecp256r1VerificationFacet.ts +++ /dev/null @@ -1,427 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export type UserOperationStruct = { - sender: string; - nonce: BigNumberish; - initCode: BytesLike; - callData: BytesLike; - callGasLimit: BigNumberish; - verificationGasLimit: BigNumberish; - preVerificationGas: BigNumberish; - maxFeePerGas: BigNumberish; - maxPriorityFeePerGas: BigNumberish; - paymasterAndData: BytesLike; - signature: BytesLike; -}; - -export type UserOperationStructOutput = [ - string, - BigNumber, - string, - string, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - string, - string -] & { - sender: string; - nonce: BigNumber; - initCode: string; - callData: string; - callGasLimit: BigNumber; - verificationGasLimit: BigNumber; - preVerificationGas: BigNumber; - maxFeePerGas: BigNumber; - maxPriorityFeePerGas: BigNumber; - paymasterAndData: string; - signature: string; -}; - -export interface BarzSecp256r1VerificationFacetInterface - extends utils.Interface { - functions: { - "initializeSigner(bytes)": FunctionFragment; - "isValidKeyType(bytes)": FunctionFragment; - "isValidSignature(bytes32,bytes)": FunctionFragment; - "owner()": FunctionFragment; - "self()": FunctionFragment; - "uninitializeSigner()": FunctionFragment; - "validateOwnerSignature((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32)": FunctionFragment; - "validateOwnerSignatureSelector()": FunctionFragment; - "validateSignature((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256[2])": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "initializeSigner" - | "isValidKeyType" - | "isValidSignature" - | "owner" - | "self" - | "uninitializeSigner" - | "validateOwnerSignature" - | "validateOwnerSignatureSelector" - | "validateSignature" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "initializeSigner", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "isValidKeyType", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "isValidSignature", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData(functionFragment: "self", values?: undefined): string; - encodeFunctionData( - functionFragment: "uninitializeSigner", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "validateOwnerSignature", - values: [UserOperationStruct, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "validateOwnerSignatureSelector", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "validateSignature", - values: [UserOperationStruct, BytesLike, [BigNumberish, BigNumberish]] - ): string; - - decodeFunctionResult( - functionFragment: "initializeSigner", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "isValidKeyType", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "isValidSignature", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "self", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "uninitializeSigner", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "validateOwnerSignature", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "validateOwnerSignatureSelector", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "validateSignature", - data: BytesLike - ): Result; - - events: { - "SignerInitialized(bytes)": EventFragment; - "SignerUninitialized()": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "SignerInitialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SignerUninitialized"): EventFragment; -} - -export interface SignerInitializedEventObject { - arg0: string; -} -export type SignerInitializedEvent = TypedEvent< - [string], - SignerInitializedEventObject ->; - -export type SignerInitializedEventFilter = - TypedEventFilter; - -export interface SignerUninitializedEventObject {} -export type SignerUninitializedEvent = TypedEvent< - [], - SignerUninitializedEventObject ->; - -export type SignerUninitializedEventFilter = - TypedEventFilter; - -export interface BarzSecp256r1VerificationFacet extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: BarzSecp256r1VerificationFacetInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - initializeSigner( - _publicKey: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - isValidKeyType( - _publicKey: BytesLike, - overrides?: CallOverrides - ): Promise<[boolean] & { isValid: boolean }>; - - isValidSignature( - _hash: BytesLike, - _signature: BytesLike, - overrides?: CallOverrides - ): Promise<[string] & { magicValue: string }>; - - owner(overrides?: CallOverrides): Promise<[string] & { signer: string }>; - - self(overrides?: CallOverrides): Promise<[string]>; - - uninitializeSigner( - overrides?: Overrides & { from?: string } - ): Promise; - - validateOwnerSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - overrides?: CallOverrides - ): Promise<[BigNumber] & { validationData: BigNumber }>; - - validateOwnerSignatureSelector( - overrides?: CallOverrides - ): Promise<[string] & { ownerSignatureValidatorSelector: string }>; - - validateSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - q: [BigNumberish, BigNumberish], - overrides?: CallOverrides - ): Promise<[BigNumber] & { isValid: BigNumber }>; - }; - - initializeSigner( - _publicKey: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - isValidKeyType( - _publicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - isValidSignature( - _hash: BytesLike, - _signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - self(overrides?: CallOverrides): Promise; - - uninitializeSigner( - overrides?: Overrides & { from?: string } - ): Promise; - - validateOwnerSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateOwnerSignatureSelector(overrides?: CallOverrides): Promise; - - validateSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - q: [BigNumberish, BigNumberish], - overrides?: CallOverrides - ): Promise; - - callStatic: { - initializeSigner( - _publicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - isValidKeyType( - _publicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - isValidSignature( - _hash: BytesLike, - _signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - self(overrides?: CallOverrides): Promise; - - uninitializeSigner(overrides?: CallOverrides): Promise; - - validateOwnerSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateOwnerSignatureSelector(overrides?: CallOverrides): Promise; - - validateSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - q: [BigNumberish, BigNumberish], - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "SignerInitialized(bytes)"(arg0?: null): SignerInitializedEventFilter; - SignerInitialized(arg0?: null): SignerInitializedEventFilter; - - "SignerUninitialized()"(): SignerUninitializedEventFilter; - SignerUninitialized(): SignerUninitializedEventFilter; - }; - - estimateGas: { - initializeSigner( - _publicKey: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - isValidKeyType( - _publicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - isValidSignature( - _hash: BytesLike, - _signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - self(overrides?: CallOverrides): Promise; - - uninitializeSigner( - overrides?: Overrides & { from?: string } - ): Promise; - - validateOwnerSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateOwnerSignatureSelector( - overrides?: CallOverrides - ): Promise; - - validateSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - q: [BigNumberish, BigNumberish], - overrides?: CallOverrides - ): Promise; - }; - - populateTransaction: { - initializeSigner( - _publicKey: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - isValidKeyType( - _publicKey: BytesLike, - overrides?: CallOverrides - ): Promise; - - isValidSignature( - _hash: BytesLike, - _signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - self(overrides?: CallOverrides): Promise; - - uninitializeSigner( - overrides?: Overrides & { from?: string } - ): Promise; - - validateOwnerSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateOwnerSignatureSelector( - overrides?: CallOverrides - ): Promise; - - validateSignature( - userOp: UserOperationStruct, - userOpHash: BytesLike, - q: [BigNumberish, BigNumberish], - overrides?: CallOverrides - ): Promise; - }; -} diff --git a/src/typechain/ECDSAKernelFactory.ts b/src/typechain/ECDSAKernelFactory.ts deleted file mode 100644 index 0c766f5..0000000 --- a/src/typechain/ECDSAKernelFactory.ts +++ /dev/null @@ -1,204 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export interface ECDSAKernelFactoryInterface extends utils.Interface { - functions: { - "createAccount(address,uint256)": FunctionFragment; - "entryPoint()": FunctionFragment; - "getAccountAddress(address,uint256)": FunctionFragment; - "singletonFactory()": FunctionFragment; - "validator()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "createAccount" - | "entryPoint" - | "getAccountAddress" - | "singletonFactory" - | "validator" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "createAccount", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "entryPoint", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getAccountAddress", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "singletonFactory", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "validator", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "createAccount", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "entryPoint", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getAccountAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "singletonFactory", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "validator", data: BytesLike): Result; - - events: {}; -} - -export interface ECDSAKernelFactory extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ECDSAKernelFactoryInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - createAccount( - _owner: string, - _index: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise<[string]>; - - getAccountAddress( - _owner: string, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise<[string]>; - - singletonFactory(overrides?: CallOverrides): Promise<[string]>; - - validator(overrides?: CallOverrides): Promise<[string]>; - }; - - createAccount( - _owner: string, - _index: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - getAccountAddress( - _owner: string, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - singletonFactory(overrides?: CallOverrides): Promise; - - validator(overrides?: CallOverrides): Promise; - - callStatic: { - createAccount( - _owner: string, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - getAccountAddress( - _owner: string, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - singletonFactory(overrides?: CallOverrides): Promise; - - validator(overrides?: CallOverrides): Promise; - }; - - filters: {}; - - estimateGas: { - createAccount( - _owner: string, - _index: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - getAccountAddress( - _owner: string, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - singletonFactory(overrides?: CallOverrides): Promise; - - validator(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - createAccount( - _owner: string, - _index: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - getAccountAddress( - _owner: string, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - singletonFactory(overrides?: CallOverrides): Promise; - - validator(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/typechain/ECDSAValidator.ts b/src/typechain/ECDSAValidator.ts deleted file mode 100644 index 0492dec..0000000 --- a/src/typechain/ECDSAValidator.ts +++ /dev/null @@ -1,316 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export type UserOperationStruct = { - sender: string; - nonce: BigNumberish; - initCode: BytesLike; - callData: BytesLike; - callGasLimit: BigNumberish; - verificationGasLimit: BigNumberish; - preVerificationGas: BigNumberish; - maxFeePerGas: BigNumberish; - maxPriorityFeePerGas: BigNumberish; - paymasterAndData: BytesLike; - signature: BytesLike; -}; - -export type UserOperationStructOutput = [ - string, - BigNumber, - string, - string, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - string, - string -] & { - sender: string; - nonce: BigNumber; - initCode: string; - callData: string; - callGasLimit: BigNumber; - verificationGasLimit: BigNumber; - preVerificationGas: BigNumber; - maxFeePerGas: BigNumber; - maxPriorityFeePerGas: BigNumber; - paymasterAndData: string; - signature: string; -}; - -export interface ECDSAValidatorInterface extends utils.Interface { - functions: { - "disable(bytes)": FunctionFragment; - "ecdsaValidatorStorage(address)": FunctionFragment; - "enable(bytes)": FunctionFragment; - "validateSignature(bytes32,bytes)": FunctionFragment; - "validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "disable" - | "ecdsaValidatorStorage" - | "enable" - | "validateSignature" - | "validateUserOp" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "disable", values: [BytesLike]): string; - encodeFunctionData( - functionFragment: "ecdsaValidatorStorage", - values: [string] - ): string; - encodeFunctionData(functionFragment: "enable", values: [BytesLike]): string; - encodeFunctionData( - functionFragment: "validateSignature", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "validateUserOp", - values: [UserOperationStruct, BytesLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "disable", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "ecdsaValidatorStorage", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "enable", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "validateSignature", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "validateUserOp", - data: BytesLike - ): Result; - - events: { - "OwnerChanged(address,address,address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "OwnerChanged"): EventFragment; -} - -export interface OwnerChangedEventObject { - kernel: string; - oldOwner: string; - newOwner: string; -} -export type OwnerChangedEvent = TypedEvent< - [string, string, string], - OwnerChangedEventObject ->; - -export type OwnerChangedEventFilter = TypedEventFilter; - -export interface ECDSAValidator extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ECDSAValidatorInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - disable( - arg0: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - ecdsaValidatorStorage( - arg0: string, - overrides?: CallOverrides - ): Promise<[string] & { owner: string }>; - - enable( - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - validateSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - validateUserOp( - _userOp: UserOperationStruct, - _userOpHash: BytesLike, - arg2: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber] & { validationData: BigNumber }>; - }; - - disable( - arg0: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - ecdsaValidatorStorage( - arg0: string, - overrides?: CallOverrides - ): Promise; - - enable( - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - validateSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateUserOp( - _userOp: UserOperationStruct, - _userOpHash: BytesLike, - arg2: BigNumberish, - overrides?: CallOverrides - ): Promise; - - callStatic: { - disable(arg0: BytesLike, overrides?: CallOverrides): Promise; - - ecdsaValidatorStorage( - arg0: string, - overrides?: CallOverrides - ): Promise; - - enable(_data: BytesLike, overrides?: CallOverrides): Promise; - - validateSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateUserOp( - _userOp: UserOperationStruct, - _userOpHash: BytesLike, - arg2: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "OwnerChanged(address,address,address)"( - kernel?: string | null, - oldOwner?: string | null, - newOwner?: string | null - ): OwnerChangedEventFilter; - OwnerChanged( - kernel?: string | null, - oldOwner?: string | null, - newOwner?: string | null - ): OwnerChangedEventFilter; - }; - - estimateGas: { - disable( - arg0: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - ecdsaValidatorStorage( - arg0: string, - overrides?: CallOverrides - ): Promise; - - enable( - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - validateSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateUserOp( - _userOp: UserOperationStruct, - _userOpHash: BytesLike, - arg2: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - populateTransaction: { - disable( - arg0: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - ecdsaValidatorStorage( - arg0: string, - overrides?: CallOverrides - ): Promise; - - enable( - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - validateSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateUserOp( - _userOp: UserOperationStruct, - _userOpHash: BytesLike, - arg2: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; -} diff --git a/src/typechain/EntryPoint.ts b/src/typechain/EntryPoint.ts deleted file mode 100644 index b7c043f..0000000 --- a/src/typechain/EntryPoint.ts +++ /dev/null @@ -1,1171 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export type UserOperationStruct = { - sender: string; - nonce: BigNumberish; - initCode: BytesLike; - callData: BytesLike; - callGasLimit: BigNumberish; - verificationGasLimit: BigNumberish; - preVerificationGas: BigNumberish; - maxFeePerGas: BigNumberish; - maxPriorityFeePerGas: BigNumberish; - paymasterAndData: BytesLike; - signature: BytesLike; -}; - -export type UserOperationStructOutput = [ - string, - BigNumber, - string, - string, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - string, - string -] & { - sender: string; - nonce: BigNumber; - initCode: string; - callData: string; - callGasLimit: BigNumber; - verificationGasLimit: BigNumber; - preVerificationGas: BigNumber; - maxFeePerGas: BigNumber; - maxPriorityFeePerGas: BigNumber; - paymasterAndData: string; - signature: string; -}; - -export declare namespace IStakeManager { - export type DepositInfoStruct = { - deposit: BigNumberish; - staked: boolean; - stake: BigNumberish; - unstakeDelaySec: BigNumberish; - withdrawTime: BigNumberish; - }; - - export type DepositInfoStructOutput = [ - BigNumber, - boolean, - BigNumber, - number, - number - ] & { - deposit: BigNumber; - staked: boolean; - stake: BigNumber; - unstakeDelaySec: number; - withdrawTime: number; - }; -} - -export declare namespace IEntryPoint { - export type UserOpsPerAggregatorStruct = { - userOps: UserOperationStruct[]; - aggregator: string; - signature: BytesLike; - }; - - export type UserOpsPerAggregatorStructOutput = [ - UserOperationStructOutput[], - string, - string - ] & { - userOps: UserOperationStructOutput[]; - aggregator: string; - signature: string; - }; -} - -export declare namespace EntryPoint { - export type MemoryUserOpStruct = { - sender: string; - nonce: BigNumberish; - callGasLimit: BigNumberish; - verificationGasLimit: BigNumberish; - preVerificationGas: BigNumberish; - paymaster: string; - maxFeePerGas: BigNumberish; - maxPriorityFeePerGas: BigNumberish; - }; - - export type MemoryUserOpStructOutput = [ - string, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - string, - BigNumber, - BigNumber - ] & { - sender: string; - nonce: BigNumber; - callGasLimit: BigNumber; - verificationGasLimit: BigNumber; - preVerificationGas: BigNumber; - paymaster: string; - maxFeePerGas: BigNumber; - maxPriorityFeePerGas: BigNumber; - }; - - export type UserOpInfoStruct = { - mUserOp: EntryPoint.MemoryUserOpStruct; - userOpHash: BytesLike; - prefund: BigNumberish; - contextOffset: BigNumberish; - preOpGas: BigNumberish; - }; - - export type UserOpInfoStructOutput = [ - EntryPoint.MemoryUserOpStructOutput, - string, - BigNumber, - BigNumber, - BigNumber - ] & { - mUserOp: EntryPoint.MemoryUserOpStructOutput; - userOpHash: string; - prefund: BigNumber; - contextOffset: BigNumber; - preOpGas: BigNumber; - }; -} - -export interface EntryPointInterface extends utils.Interface { - functions: { - "SIG_VALIDATION_FAILED()": FunctionFragment; - "_validateSenderAndPaymaster(bytes,address,bytes)": FunctionFragment; - "addStake(uint32)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "depositTo(address)": FunctionFragment; - "deposits(address)": FunctionFragment; - "getDepositInfo(address)": FunctionFragment; - "getNonce(address,uint192)": FunctionFragment; - "getSenderAddress(bytes)": FunctionFragment; - "getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": FunctionFragment; - "handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)[],address)": FunctionFragment; - "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)": FunctionFragment; - "incrementNonce(uint192)": FunctionFragment; - "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes)": FunctionFragment; - "nonceSequenceNumber(address,uint192)": FunctionFragment; - "simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)": FunctionFragment; - "simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": FunctionFragment; - "unlockStake()": FunctionFragment; - "withdrawStake(address)": FunctionFragment; - "withdrawTo(address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "SIG_VALIDATION_FAILED" - | "_validateSenderAndPaymaster" - | "addStake" - | "balanceOf" - | "depositTo" - | "deposits" - | "getDepositInfo" - | "getNonce" - | "getSenderAddress" - | "getUserOpHash" - | "handleAggregatedOps" - | "handleOps" - | "incrementNonce" - | "innerHandleOp" - | "nonceSequenceNumber" - | "simulateHandleOp" - | "simulateValidation" - | "unlockStake" - | "withdrawStake" - | "withdrawTo" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "SIG_VALIDATION_FAILED", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "_validateSenderAndPaymaster", - values: [BytesLike, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "addStake", - values: [BigNumberish] - ): string; - encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; - encodeFunctionData(functionFragment: "depositTo", values: [string]): string; - encodeFunctionData(functionFragment: "deposits", values: [string]): string; - encodeFunctionData( - functionFragment: "getDepositInfo", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "getNonce", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getSenderAddress", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getUserOpHash", - values: [UserOperationStruct] - ): string; - encodeFunctionData( - functionFragment: "handleAggregatedOps", - values: [IEntryPoint.UserOpsPerAggregatorStruct[], string] - ): string; - encodeFunctionData( - functionFragment: "handleOps", - values: [UserOperationStruct[], string] - ): string; - encodeFunctionData( - functionFragment: "incrementNonce", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "innerHandleOp", - values: [BytesLike, EntryPoint.UserOpInfoStruct, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "nonceSequenceNumber", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "simulateHandleOp", - values: [UserOperationStruct, string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "simulateValidation", - values: [UserOperationStruct] - ): string; - encodeFunctionData( - functionFragment: "unlockStake", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdrawStake", - values: [string] - ): string; - encodeFunctionData( - functionFragment: "withdrawTo", - values: [string, BigNumberish] - ): string; - - decodeFunctionResult( - functionFragment: "SIG_VALIDATION_FAILED", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "_validateSenderAndPaymaster", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "addStake", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "depositTo", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "deposits", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getDepositInfo", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getNonce", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getSenderAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getUserOpHash", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "handleAggregatedOps", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "handleOps", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "incrementNonce", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "innerHandleOp", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "nonceSequenceNumber", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "simulateHandleOp", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "simulateValidation", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "unlockStake", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawStake", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "withdrawTo", data: BytesLike): Result; - - events: { - "AccountDeployed(bytes32,address,address,address)": EventFragment; - "BeforeExecution()": EventFragment; - "Deposited(address,uint256)": EventFragment; - "SignatureAggregatorChanged(address)": EventFragment; - "StakeLocked(address,uint256,uint256)": EventFragment; - "StakeUnlocked(address,uint256)": EventFragment; - "StakeWithdrawn(address,address,uint256)": EventFragment; - "UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)": EventFragment; - "UserOperationRevertReason(bytes32,address,uint256,bytes)": EventFragment; - "Withdrawn(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AccountDeployed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeforeExecution"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposited"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SignatureAggregatorChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "StakeLocked"): EventFragment; - getEvent(nameOrSignatureOrTopic: "StakeUnlocked"): EventFragment; - getEvent(nameOrSignatureOrTopic: "StakeWithdrawn"): EventFragment; - getEvent(nameOrSignatureOrTopic: "UserOperationEvent"): EventFragment; - getEvent(nameOrSignatureOrTopic: "UserOperationRevertReason"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawn"): EventFragment; -} - -export interface AccountDeployedEventObject { - userOpHash: string; - sender: string; - factory: string; - paymaster: string; -} -export type AccountDeployedEvent = TypedEvent< - [string, string, string, string], - AccountDeployedEventObject ->; - -export type AccountDeployedEventFilter = TypedEventFilter; - -export interface BeforeExecutionEventObject {} -export type BeforeExecutionEvent = TypedEvent<[], BeforeExecutionEventObject>; - -export type BeforeExecutionEventFilter = TypedEventFilter; - -export interface DepositedEventObject { - account: string; - totalDeposit: BigNumber; -} -export type DepositedEvent = TypedEvent< - [string, BigNumber], - DepositedEventObject ->; - -export type DepositedEventFilter = TypedEventFilter; - -export interface SignatureAggregatorChangedEventObject { - aggregator: string; -} -export type SignatureAggregatorChangedEvent = TypedEvent< - [string], - SignatureAggregatorChangedEventObject ->; - -export type SignatureAggregatorChangedEventFilter = - TypedEventFilter; - -export interface StakeLockedEventObject { - account: string; - totalStaked: BigNumber; - unstakeDelaySec: BigNumber; -} -export type StakeLockedEvent = TypedEvent< - [string, BigNumber, BigNumber], - StakeLockedEventObject ->; - -export type StakeLockedEventFilter = TypedEventFilter; - -export interface StakeUnlockedEventObject { - account: string; - withdrawTime: BigNumber; -} -export type StakeUnlockedEvent = TypedEvent< - [string, BigNumber], - StakeUnlockedEventObject ->; - -export type StakeUnlockedEventFilter = TypedEventFilter; - -export interface StakeWithdrawnEventObject { - account: string; - withdrawAddress: string; - amount: BigNumber; -} -export type StakeWithdrawnEvent = TypedEvent< - [string, string, BigNumber], - StakeWithdrawnEventObject ->; - -export type StakeWithdrawnEventFilter = TypedEventFilter; - -export interface UserOperationEventEventObject { - userOpHash: string; - sender: string; - paymaster: string; - nonce: BigNumber; - success: boolean; - actualGasCost: BigNumber; - actualGasUsed: BigNumber; -} -export type UserOperationEventEvent = TypedEvent< - [string, string, string, BigNumber, boolean, BigNumber, BigNumber], - UserOperationEventEventObject ->; - -export type UserOperationEventEventFilter = - TypedEventFilter; - -export interface UserOperationRevertReasonEventObject { - userOpHash: string; - sender: string; - nonce: BigNumber; - revertReason: string; -} -export type UserOperationRevertReasonEvent = TypedEvent< - [string, string, BigNumber, string], - UserOperationRevertReasonEventObject ->; - -export type UserOperationRevertReasonEventFilter = - TypedEventFilter; - -export interface WithdrawnEventObject { - account: string; - withdrawAddress: string; - amount: BigNumber; -} -export type WithdrawnEvent = TypedEvent< - [string, string, BigNumber], - WithdrawnEventObject ->; - -export type WithdrawnEventFilter = TypedEventFilter; - -export interface EntryPoint extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: EntryPointInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - SIG_VALIDATION_FAILED(overrides?: CallOverrides): Promise<[BigNumber]>; - - _validateSenderAndPaymaster( - initCode: BytesLike, - sender: string, - paymasterAndData: BytesLike, - overrides?: CallOverrides - ): Promise<[void]>; - - addStake( - unstakeDelaySec: BigNumberish, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; - - depositTo( - account: string, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - deposits( - arg0: string, - overrides?: CallOverrides - ): Promise< - [BigNumber, boolean, BigNumber, number, number] & { - deposit: BigNumber; - staked: boolean; - stake: BigNumber; - unstakeDelaySec: number; - withdrawTime: number; - } - >; - - getDepositInfo( - account: string, - overrides?: CallOverrides - ): Promise< - [IStakeManager.DepositInfoStructOutput] & { - info: IStakeManager.DepositInfoStructOutput; - } - >; - - getNonce( - sender: string, - key: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber] & { nonce: BigNumber }>; - - getSenderAddress( - initCode: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - getUserOpHash( - userOp: UserOperationStruct, - overrides?: CallOverrides - ): Promise<[string]>; - - handleAggregatedOps( - opsPerAggregator: IEntryPoint.UserOpsPerAggregatorStruct[], - beneficiary: string, - overrides?: Overrides & { from?: string } - ): Promise; - - handleOps( - ops: UserOperationStruct[], - beneficiary: string, - overrides?: Overrides & { from?: string } - ): Promise; - - incrementNonce( - key: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - innerHandleOp( - callData: BytesLike, - opInfo: EntryPoint.UserOpInfoStruct, - context: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - nonceSequenceNumber( - arg0: string, - arg1: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - simulateHandleOp( - op: UserOperationStruct, - target: string, - targetCallData: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - simulateValidation( - userOp: UserOperationStruct, - overrides?: Overrides & { from?: string } - ): Promise; - - unlockStake( - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawStake( - withdrawAddress: string, - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawTo( - withdrawAddress: string, - withdrawAmount: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - }; - - SIG_VALIDATION_FAILED(overrides?: CallOverrides): Promise; - - _validateSenderAndPaymaster( - initCode: BytesLike, - sender: string, - paymasterAndData: BytesLike, - overrides?: CallOverrides - ): Promise; - - addStake( - unstakeDelaySec: BigNumberish, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - depositTo( - account: string, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - deposits( - arg0: string, - overrides?: CallOverrides - ): Promise< - [BigNumber, boolean, BigNumber, number, number] & { - deposit: BigNumber; - staked: boolean; - stake: BigNumber; - unstakeDelaySec: number; - withdrawTime: number; - } - >; - - getDepositInfo( - account: string, - overrides?: CallOverrides - ): Promise; - - getNonce( - sender: string, - key: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getSenderAddress( - initCode: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - getUserOpHash( - userOp: UserOperationStruct, - overrides?: CallOverrides - ): Promise; - - handleAggregatedOps( - opsPerAggregator: IEntryPoint.UserOpsPerAggregatorStruct[], - beneficiary: string, - overrides?: Overrides & { from?: string } - ): Promise; - - handleOps( - ops: UserOperationStruct[], - beneficiary: string, - overrides?: Overrides & { from?: string } - ): Promise; - - incrementNonce( - key: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - innerHandleOp( - callData: BytesLike, - opInfo: EntryPoint.UserOpInfoStruct, - context: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - nonceSequenceNumber( - arg0: string, - arg1: BigNumberish, - overrides?: CallOverrides - ): Promise; - - simulateHandleOp( - op: UserOperationStruct, - target: string, - targetCallData: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - simulateValidation( - userOp: UserOperationStruct, - overrides?: Overrides & { from?: string } - ): Promise; - - unlockStake( - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawStake( - withdrawAddress: string, - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawTo( - withdrawAddress: string, - withdrawAmount: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - callStatic: { - SIG_VALIDATION_FAILED(overrides?: CallOverrides): Promise; - - _validateSenderAndPaymaster( - initCode: BytesLike, - sender: string, - paymasterAndData: BytesLike, - overrides?: CallOverrides - ): Promise; - - addStake( - unstakeDelaySec: BigNumberish, - overrides?: CallOverrides - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - depositTo(account: string, overrides?: CallOverrides): Promise; - - deposits( - arg0: string, - overrides?: CallOverrides - ): Promise< - [BigNumber, boolean, BigNumber, number, number] & { - deposit: BigNumber; - staked: boolean; - stake: BigNumber; - unstakeDelaySec: number; - withdrawTime: number; - } - >; - - getDepositInfo( - account: string, - overrides?: CallOverrides - ): Promise; - - getNonce( - sender: string, - key: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getSenderAddress( - initCode: BytesLike, - overrides?: CallOverrides - ): Promise; - - getUserOpHash( - userOp: UserOperationStruct, - overrides?: CallOverrides - ): Promise; - - handleAggregatedOps( - opsPerAggregator: IEntryPoint.UserOpsPerAggregatorStruct[], - beneficiary: string, - overrides?: CallOverrides - ): Promise; - - handleOps( - ops: UserOperationStruct[], - beneficiary: string, - overrides?: CallOverrides - ): Promise; - - incrementNonce(key: BigNumberish, overrides?: CallOverrides): Promise; - - innerHandleOp( - callData: BytesLike, - opInfo: EntryPoint.UserOpInfoStruct, - context: BytesLike, - overrides?: CallOverrides - ): Promise; - - nonceSequenceNumber( - arg0: string, - arg1: BigNumberish, - overrides?: CallOverrides - ): Promise; - - simulateHandleOp( - op: UserOperationStruct, - target: string, - targetCallData: BytesLike, - overrides?: CallOverrides - ): Promise; - - simulateValidation( - userOp: UserOperationStruct, - overrides?: CallOverrides - ): Promise; - - unlockStake(overrides?: CallOverrides): Promise; - - withdrawStake( - withdrawAddress: string, - overrides?: CallOverrides - ): Promise; - - withdrawTo( - withdrawAddress: string, - withdrawAmount: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AccountDeployed(bytes32,address,address,address)"( - userOpHash?: BytesLike | null, - sender?: string | null, - factory?: null, - paymaster?: null - ): AccountDeployedEventFilter; - AccountDeployed( - userOpHash?: BytesLike | null, - sender?: string | null, - factory?: null, - paymaster?: null - ): AccountDeployedEventFilter; - - "BeforeExecution()"(): BeforeExecutionEventFilter; - BeforeExecution(): BeforeExecutionEventFilter; - - "Deposited(address,uint256)"( - account?: string | null, - totalDeposit?: null - ): DepositedEventFilter; - Deposited( - account?: string | null, - totalDeposit?: null - ): DepositedEventFilter; - - "SignatureAggregatorChanged(address)"( - aggregator?: string | null - ): SignatureAggregatorChangedEventFilter; - SignatureAggregatorChanged( - aggregator?: string | null - ): SignatureAggregatorChangedEventFilter; - - "StakeLocked(address,uint256,uint256)"( - account?: string | null, - totalStaked?: null, - unstakeDelaySec?: null - ): StakeLockedEventFilter; - StakeLocked( - account?: string | null, - totalStaked?: null, - unstakeDelaySec?: null - ): StakeLockedEventFilter; - - "StakeUnlocked(address,uint256)"( - account?: string | null, - withdrawTime?: null - ): StakeUnlockedEventFilter; - StakeUnlocked( - account?: string | null, - withdrawTime?: null - ): StakeUnlockedEventFilter; - - "StakeWithdrawn(address,address,uint256)"( - account?: string | null, - withdrawAddress?: null, - amount?: null - ): StakeWithdrawnEventFilter; - StakeWithdrawn( - account?: string | null, - withdrawAddress?: null, - amount?: null - ): StakeWithdrawnEventFilter; - - "UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)"( - userOpHash?: BytesLike | null, - sender?: string | null, - paymaster?: string | null, - nonce?: null, - success?: null, - actualGasCost?: null, - actualGasUsed?: null - ): UserOperationEventEventFilter; - UserOperationEvent( - userOpHash?: BytesLike | null, - sender?: string | null, - paymaster?: string | null, - nonce?: null, - success?: null, - actualGasCost?: null, - actualGasUsed?: null - ): UserOperationEventEventFilter; - - "UserOperationRevertReason(bytes32,address,uint256,bytes)"( - userOpHash?: BytesLike | null, - sender?: string | null, - nonce?: null, - revertReason?: null - ): UserOperationRevertReasonEventFilter; - UserOperationRevertReason( - userOpHash?: BytesLike | null, - sender?: string | null, - nonce?: null, - revertReason?: null - ): UserOperationRevertReasonEventFilter; - - "Withdrawn(address,address,uint256)"( - account?: string | null, - withdrawAddress?: null, - amount?: null - ): WithdrawnEventFilter; - Withdrawn( - account?: string | null, - withdrawAddress?: null, - amount?: null - ): WithdrawnEventFilter; - }; - - estimateGas: { - SIG_VALIDATION_FAILED(overrides?: CallOverrides): Promise; - - _validateSenderAndPaymaster( - initCode: BytesLike, - sender: string, - paymasterAndData: BytesLike, - overrides?: CallOverrides - ): Promise; - - addStake( - unstakeDelaySec: BigNumberish, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - balanceOf(account: string, overrides?: CallOverrides): Promise; - - depositTo( - account: string, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - deposits(arg0: string, overrides?: CallOverrides): Promise; - - getDepositInfo( - account: string, - overrides?: CallOverrides - ): Promise; - - getNonce( - sender: string, - key: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getSenderAddress( - initCode: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - getUserOpHash( - userOp: UserOperationStruct, - overrides?: CallOverrides - ): Promise; - - handleAggregatedOps( - opsPerAggregator: IEntryPoint.UserOpsPerAggregatorStruct[], - beneficiary: string, - overrides?: Overrides & { from?: string } - ): Promise; - - handleOps( - ops: UserOperationStruct[], - beneficiary: string, - overrides?: Overrides & { from?: string } - ): Promise; - - incrementNonce( - key: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - innerHandleOp( - callData: BytesLike, - opInfo: EntryPoint.UserOpInfoStruct, - context: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - nonceSequenceNumber( - arg0: string, - arg1: BigNumberish, - overrides?: CallOverrides - ): Promise; - - simulateHandleOp( - op: UserOperationStruct, - target: string, - targetCallData: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - simulateValidation( - userOp: UserOperationStruct, - overrides?: Overrides & { from?: string } - ): Promise; - - unlockStake(overrides?: Overrides & { from?: string }): Promise; - - withdrawStake( - withdrawAddress: string, - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawTo( - withdrawAddress: string, - withdrawAmount: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - }; - - populateTransaction: { - SIG_VALIDATION_FAILED( - overrides?: CallOverrides - ): Promise; - - _validateSenderAndPaymaster( - initCode: BytesLike, - sender: string, - paymasterAndData: BytesLike, - overrides?: CallOverrides - ): Promise; - - addStake( - unstakeDelaySec: BigNumberish, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - balanceOf( - account: string, - overrides?: CallOverrides - ): Promise; - - depositTo( - account: string, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - deposits( - arg0: string, - overrides?: CallOverrides - ): Promise; - - getDepositInfo( - account: string, - overrides?: CallOverrides - ): Promise; - - getNonce( - sender: string, - key: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getSenderAddress( - initCode: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - getUserOpHash( - userOp: UserOperationStruct, - overrides?: CallOverrides - ): Promise; - - handleAggregatedOps( - opsPerAggregator: IEntryPoint.UserOpsPerAggregatorStruct[], - beneficiary: string, - overrides?: Overrides & { from?: string } - ): Promise; - - handleOps( - ops: UserOperationStruct[], - beneficiary: string, - overrides?: Overrides & { from?: string } - ): Promise; - - incrementNonce( - key: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - innerHandleOp( - callData: BytesLike, - opInfo: EntryPoint.UserOpInfoStruct, - context: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - nonceSequenceNumber( - arg0: string, - arg1: BigNumberish, - overrides?: CallOverrides - ): Promise; - - simulateHandleOp( - op: UserOperationStruct, - target: string, - targetCallData: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - simulateValidation( - userOp: UserOperationStruct, - overrides?: Overrides & { from?: string } - ): Promise; - - unlockStake( - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawStake( - withdrawAddress: string, - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawTo( - withdrawAddress: string, - withdrawAmount: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - }; -} diff --git a/src/typechain/Kernel.ts b/src/typechain/Kernel.ts deleted file mode 100644 index daa3b2b..0000000 --- a/src/typechain/Kernel.ts +++ /dev/null @@ -1,883 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export type ExecutionDetailStruct = { - validUntil: BigNumberish; - validAfter: BigNumberish; - executor: string; - validator: string; -}; - -export type ExecutionDetailStructOutput = [number, number, string, string] & { - validUntil: number; - validAfter: number; - executor: string; - validator: string; -}; - -export type UserOperationStruct = { - sender: string; - nonce: BigNumberish; - initCode: BytesLike; - callData: BytesLike; - callGasLimit: BigNumberish; - verificationGasLimit: BigNumberish; - preVerificationGas: BigNumberish; - maxFeePerGas: BigNumberish; - maxPriorityFeePerGas: BigNumberish; - paymasterAndData: BytesLike; - signature: BytesLike; -}; - -export type UserOperationStructOutput = [ - string, - BigNumber, - string, - string, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - string, - string -] & { - sender: string; - nonce: BigNumber; - initCode: string; - callData: string; - callGasLimit: BigNumber; - verificationGasLimit: BigNumber; - preVerificationGas: BigNumber; - maxFeePerGas: BigNumber; - maxPriorityFeePerGas: BigNumber; - paymasterAndData: string; - signature: string; -}; - -export interface KernelInterface extends utils.Interface { - functions: { - "disableMode(bytes4)": FunctionFragment; - "entryPoint()": FunctionFragment; - "execute(address,uint256,bytes,uint8)": FunctionFragment; - "getDefaultValidator()": FunctionFragment; - "getDisabledMode()": FunctionFragment; - "getExecution(bytes4)": FunctionFragment; - "getLastDisabledTime()": FunctionFragment; - "getNonce(uint192)": FunctionFragment; - "getNonce()": FunctionFragment; - "initialize(address,bytes)": FunctionFragment; - "isValidSignature(bytes32,bytes)": FunctionFragment; - "name()": FunctionFragment; - "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": FunctionFragment; - "onERC1155Received(address,address,uint256,uint256,bytes)": FunctionFragment; - "onERC721Received(address,address,uint256,bytes)": FunctionFragment; - "setDefaultValidator(address,bytes)": FunctionFragment; - "setExecution(bytes4,address,address,uint48,uint48,bytes)": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)": FunctionFragment; - "version()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "disableMode" - | "entryPoint" - | "execute" - | "getDefaultValidator" - | "getDisabledMode" - | "getExecution" - | "getLastDisabledTime" - | "getNonce(uint192)" - | "getNonce()" - | "initialize" - | "isValidSignature" - | "name" - | "onERC1155BatchReceived" - | "onERC1155Received" - | "onERC721Received" - | "setDefaultValidator" - | "setExecution" - | "upgradeTo" - | "validateUserOp" - | "version" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "disableMode", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "entryPoint", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [string, BigNumberish, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getDefaultValidator", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getDisabledMode", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getExecution", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "getLastDisabledTime", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getNonce(uint192)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getNonce()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "isValidSignature", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData( - functionFragment: "onERC1155BatchReceived", - values: [string, string, BigNumberish[], BigNumberish[], BytesLike] - ): string; - encodeFunctionData( - functionFragment: "onERC1155Received", - values: [string, string, BigNumberish, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "onERC721Received", - values: [string, string, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "setDefaultValidator", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "setExecution", - values: [BytesLike, string, string, BigNumberish, BigNumberish, BytesLike] - ): string; - encodeFunctionData(functionFragment: "upgradeTo", values: [string]): string; - encodeFunctionData( - functionFragment: "validateUserOp", - values: [UserOperationStruct, BytesLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "version", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "disableMode", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "entryPoint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getDefaultValidator", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDisabledMode", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getExecution", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getLastDisabledTime", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getNonce(uint192)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getNonce()", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "isValidSignature", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "onERC1155BatchReceived", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "onERC1155Received", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "onERC721Received", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setDefaultValidator", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "setExecution", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "validateUserOp", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "version", data: BytesLike): Result; - - events: { - "DefaultValidatorChanged(address,address)": EventFragment; - "ExecutionChanged(bytes4,address,address)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "DefaultValidatorChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutionChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface DefaultValidatorChangedEventObject { - oldValidator: string; - newValidator: string; -} -export type DefaultValidatorChangedEvent = TypedEvent< - [string, string], - DefaultValidatorChangedEventObject ->; - -export type DefaultValidatorChangedEventFilter = - TypedEventFilter; - -export interface ExecutionChangedEventObject { - selector: string; - executor: string; - validator: string; -} -export type ExecutionChangedEvent = TypedEvent< - [string, string, string], - ExecutionChangedEventObject ->; - -export type ExecutionChangedEventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - newImplementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface Kernel extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: KernelInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - disableMode( - _disableFlag: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise<[string]>; - - execute( - to: string, - value: BigNumberish, - data: BytesLike, - operation: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - getDefaultValidator(overrides?: CallOverrides): Promise<[string]>; - - getDisabledMode(overrides?: CallOverrides): Promise<[string]>; - - getExecution( - _selector: BytesLike, - overrides?: CallOverrides - ): Promise<[ExecutionDetailStructOutput]>; - - getLastDisabledTime(overrides?: CallOverrides): Promise<[number]>; - - "getNonce(uint192)"( - key: BigNumberish, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - "getNonce()"(overrides?: CallOverrides): Promise<[BigNumber]>; - - initialize( - _defaultValidator: string, - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - isValidSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise<[string]>; - - name(overrides?: CallOverrides): Promise<[string]>; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise<[string]>; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise<[string]>; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise<[string]>; - - setDefaultValidator( - _defaultValidator: string, - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - setExecution( - _selector: BytesLike, - _executor: string, - _validator: string, - _validUntil: BigNumberish, - _validAfter: BigNumberish, - _enableData: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - upgradeTo( - _newImplementation: string, - overrides?: Overrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - version(overrides?: CallOverrides): Promise<[string]>; - }; - - disableMode( - _disableFlag: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - execute( - to: string, - value: BigNumberish, - data: BytesLike, - operation: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - getDefaultValidator(overrides?: CallOverrides): Promise; - - getDisabledMode(overrides?: CallOverrides): Promise; - - getExecution( - _selector: BytesLike, - overrides?: CallOverrides - ): Promise; - - getLastDisabledTime(overrides?: CallOverrides): Promise; - - "getNonce(uint192)"( - key: BigNumberish, - overrides?: CallOverrides - ): Promise; - - "getNonce()"(overrides?: CallOverrides): Promise; - - initialize( - _defaultValidator: string, - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - isValidSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise; - - setDefaultValidator( - _defaultValidator: string, - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - setExecution( - _selector: BytesLike, - _executor: string, - _validator: string, - _validUntil: BigNumberish, - _validAfter: BigNumberish, - _enableData: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - upgradeTo( - _newImplementation: string, - overrides?: Overrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - version(overrides?: CallOverrides): Promise; - - callStatic: { - disableMode( - _disableFlag: BytesLike, - overrides?: CallOverrides - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - execute( - to: string, - value: BigNumberish, - data: BytesLike, - operation: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getDefaultValidator(overrides?: CallOverrides): Promise; - - getDisabledMode(overrides?: CallOverrides): Promise; - - getExecution( - _selector: BytesLike, - overrides?: CallOverrides - ): Promise; - - getLastDisabledTime(overrides?: CallOverrides): Promise; - - "getNonce(uint192)"( - key: BigNumberish, - overrides?: CallOverrides - ): Promise; - - "getNonce()"(overrides?: CallOverrides): Promise; - - initialize( - _defaultValidator: string, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - isValidSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise; - - setDefaultValidator( - _defaultValidator: string, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - setExecution( - _selector: BytesLike, - _executor: string, - _validator: string, - _validUntil: BigNumberish, - _validAfter: BigNumberish, - _enableData: BytesLike, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - _newImplementation: string, - overrides?: CallOverrides - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: CallOverrides - ): Promise; - - version(overrides?: CallOverrides): Promise; - }; - - filters: { - "DefaultValidatorChanged(address,address)"( - oldValidator?: string | null, - newValidator?: string | null - ): DefaultValidatorChangedEventFilter; - DefaultValidatorChanged( - oldValidator?: string | null, - newValidator?: string | null - ): DefaultValidatorChangedEventFilter; - - "ExecutionChanged(bytes4,address,address)"( - selector?: BytesLike | null, - executor?: string | null, - validator?: string | null - ): ExecutionChangedEventFilter; - ExecutionChanged( - selector?: BytesLike | null, - executor?: string | null, - validator?: string | null - ): ExecutionChangedEventFilter; - - "Upgraded(address)"(newImplementation?: string | null): UpgradedEventFilter; - Upgraded(newImplementation?: string | null): UpgradedEventFilter; - }; - - estimateGas: { - disableMode( - _disableFlag: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - execute( - to: string, - value: BigNumberish, - data: BytesLike, - operation: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - getDefaultValidator(overrides?: CallOverrides): Promise; - - getDisabledMode(overrides?: CallOverrides): Promise; - - getExecution( - _selector: BytesLike, - overrides?: CallOverrides - ): Promise; - - getLastDisabledTime(overrides?: CallOverrides): Promise; - - "getNonce(uint192)"( - key: BigNumberish, - overrides?: CallOverrides - ): Promise; - - "getNonce()"(overrides?: CallOverrides): Promise; - - initialize( - _defaultValidator: string, - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - isValidSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise; - - setDefaultValidator( - _defaultValidator: string, - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - setExecution( - _selector: BytesLike, - _executor: string, - _validator: string, - _validUntil: BigNumberish, - _validAfter: BigNumberish, - _enableData: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - upgradeTo( - _newImplementation: string, - overrides?: Overrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - version(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - disableMode( - _disableFlag: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - execute( - to: string, - value: BigNumberish, - data: BytesLike, - operation: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - getDefaultValidator( - overrides?: CallOverrides - ): Promise; - - getDisabledMode(overrides?: CallOverrides): Promise; - - getExecution( - _selector: BytesLike, - overrides?: CallOverrides - ): Promise; - - getLastDisabledTime( - overrides?: CallOverrides - ): Promise; - - "getNonce(uint192)"( - key: BigNumberish, - overrides?: CallOverrides - ): Promise; - - "getNonce()"(overrides?: CallOverrides): Promise; - - initialize( - _defaultValidator: string, - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - isValidSignature( - hash: BytesLike, - signature: BytesLike, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise; - - setDefaultValidator( - _defaultValidator: string, - _data: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - setExecution( - _selector: BytesLike, - _executor: string, - _validator: string, - _validUntil: BigNumberish, - _validAfter: BigNumberish, - _enableData: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - upgradeTo( - _newImplementation: string, - overrides?: Overrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - version(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/typechain/KernelFactory.ts b/src/typechain/KernelFactory.ts deleted file mode 100644 index 725a547..0000000 --- a/src/typechain/KernelFactory.ts +++ /dev/null @@ -1,254 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export interface KernelFactoryInterface extends utils.Interface { - functions: { - "createAccount(address,bytes,uint256)": FunctionFragment; - "entryPoint()": FunctionFragment; - "getAccountAddress(address,bytes,uint256)": FunctionFragment; - "kernelTemplate()": FunctionFragment; - "nextTemplate()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "createAccount" - | "entryPoint" - | "getAccountAddress" - | "kernelTemplate" - | "nextTemplate" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "createAccount", - values: [string, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "entryPoint", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getAccountAddress", - values: [string, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "kernelTemplate", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "nextTemplate", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "createAccount", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "entryPoint", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "getAccountAddress", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "kernelTemplate", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "nextTemplate", - data: BytesLike - ): Result; - - events: { - "AccountCreated(address,address,bytes,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AccountCreated"): EventFragment; -} - -export interface AccountCreatedEventObject { - account: string; - validator: string; - data: string; - index: BigNumber; -} -export type AccountCreatedEvent = TypedEvent< - [string, string, string, BigNumber], - AccountCreatedEventObject ->; - -export type AccountCreatedEventFilter = TypedEventFilter; - -export interface KernelFactory extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: KernelFactoryInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - createAccount( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise<[string]>; - - getAccountAddress( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise<[string]>; - - kernelTemplate(overrides?: CallOverrides): Promise<[string]>; - - nextTemplate(overrides?: CallOverrides): Promise<[string]>; - }; - - createAccount( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - getAccountAddress( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - kernelTemplate(overrides?: CallOverrides): Promise; - - nextTemplate(overrides?: CallOverrides): Promise; - - callStatic: { - createAccount( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - getAccountAddress( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - kernelTemplate(overrides?: CallOverrides): Promise; - - nextTemplate(overrides?: CallOverrides): Promise; - }; - - filters: { - "AccountCreated(address,address,bytes,uint256)"( - account?: string | null, - validator?: string | null, - data?: null, - index?: null - ): AccountCreatedEventFilter; - AccountCreated( - account?: string | null, - validator?: string | null, - data?: null, - index?: null - ): AccountCreatedEventFilter; - }; - - estimateGas: { - createAccount( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - getAccountAddress( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - kernelTemplate(overrides?: CallOverrides): Promise; - - nextTemplate(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - createAccount( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - getAccountAddress( - _validator: string, - _data: BytesLike, - _index: BigNumberish, - overrides?: CallOverrides - ): Promise; - - kernelTemplate(overrides?: CallOverrides): Promise; - - nextTemplate(overrides?: CallOverrides): Promise; - }; -} diff --git a/src/typechain/Multisend.ts b/src/typechain/Multisend.ts deleted file mode 100644 index 508caaa..0000000 --- a/src/typechain/Multisend.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export interface MultisendInterface extends utils.Interface { - functions: { - "multiSend(bytes)": FunctionFragment; - }; - - getFunction(nameOrSignatureOrTopic: "multiSend"): FunctionFragment; - - encodeFunctionData( - functionFragment: "multiSend", - values: [BytesLike] - ): string; - - decodeFunctionResult(functionFragment: "multiSend", data: BytesLike): Result; - - events: {}; -} - -export interface Multisend extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: MultisendInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - multiSend( - transactions: BytesLike, - overrides?: PayableOverrides & { from?: string } - ): Promise; - }; - - multiSend( - transactions: BytesLike, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - callStatic: { - multiSend( - transactions: BytesLike, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - multiSend( - transactions: BytesLike, - overrides?: PayableOverrides & { from?: string } - ): Promise; - }; - - populateTransaction: { - multiSend( - transactions: BytesLike, - overrides?: PayableOverrides & { from?: string } - ): Promise; - }; -} diff --git a/src/typechain/SimpleAccount.ts b/src/typechain/SimpleAccount.ts deleted file mode 100644 index 87a6aad..0000000 --- a/src/typechain/SimpleAccount.ts +++ /dev/null @@ -1,830 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export type UserOperationStruct = { - sender: string; - nonce: BigNumberish; - initCode: BytesLike; - callData: BytesLike; - callGasLimit: BigNumberish; - verificationGasLimit: BigNumberish; - preVerificationGas: BigNumberish; - maxFeePerGas: BigNumberish; - maxPriorityFeePerGas: BigNumberish; - paymasterAndData: BytesLike; - signature: BytesLike; -}; - -export type UserOperationStructOutput = [ - string, - BigNumber, - string, - string, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - BigNumber, - string, - string -] & { - sender: string; - nonce: BigNumber; - initCode: string; - callData: string; - callGasLimit: BigNumber; - verificationGasLimit: BigNumber; - preVerificationGas: BigNumber; - maxFeePerGas: BigNumber; - maxPriorityFeePerGas: BigNumber; - paymasterAndData: string; - signature: string; -}; - -export interface SimpleAccountInterface extends utils.Interface { - functions: { - "addDeposit()": FunctionFragment; - "entryPoint()": FunctionFragment; - "execute(address,uint256,bytes)": FunctionFragment; - "executeBatch(address[],bytes[])": FunctionFragment; - "getDeposit()": FunctionFragment; - "getNonce()": FunctionFragment; - "initialize(address)": FunctionFragment; - "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": FunctionFragment; - "onERC1155Received(address,address,uint256,uint256,bytes)": FunctionFragment; - "onERC721Received(address,address,uint256,bytes)": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "supportsInterface(bytes4)": FunctionFragment; - "tokensReceived(address,address,address,uint256,bytes,bytes)": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - "validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)": FunctionFragment; - "withdrawDepositTo(address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "addDeposit" - | "entryPoint" - | "execute" - | "executeBatch" - | "getDeposit" - | "getNonce" - | "initialize" - | "onERC1155BatchReceived" - | "onERC1155Received" - | "onERC721Received" - | "owner" - | "proxiableUUID" - | "supportsInterface" - | "tokensReceived" - | "upgradeTo" - | "upgradeToAndCall" - | "validateUserOp" - | "withdrawDepositTo" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "addDeposit", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "entryPoint", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [string, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "executeBatch", - values: [string[], BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "getDeposit", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "getNonce", values?: undefined): string; - encodeFunctionData(functionFragment: "initialize", values: [string]): string; - encodeFunctionData( - functionFragment: "onERC1155BatchReceived", - values: [string, string, BigNumberish[], BigNumberish[], BytesLike] - ): string; - encodeFunctionData( - functionFragment: "onERC1155Received", - values: [string, string, BigNumberish, BigNumberish, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "onERC721Received", - values: [string, string, BigNumberish, BytesLike] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [BytesLike] - ): string; - encodeFunctionData( - functionFragment: "tokensReceived", - values: [string, string, string, BigNumberish, BytesLike, BytesLike] - ): string; - encodeFunctionData(functionFragment: "upgradeTo", values: [string]): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [string, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "validateUserOp", - values: [UserOperationStruct, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "withdrawDepositTo", - values: [string, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "addDeposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "entryPoint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeBatch", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getDeposit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "getNonce", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "onERC1155BatchReceived", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "onERC1155Received", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "onERC721Received", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "proxiableUUID", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "tokensReceived", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "validateUserOp", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "withdrawDepositTo", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "Initialized(uint8)": EventFragment; - "SimpleAccountInitialized(address,address)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SimpleAccountInitialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface SimpleAccountInitializedEventObject { - entryPoint: string; - owner: string; -} -export type SimpleAccountInitializedEvent = TypedEvent< - [string, string], - SimpleAccountInitializedEventObject ->; - -export type SimpleAccountInitializedEventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface SimpleAccount extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: SimpleAccountInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - addDeposit( - overrides?: PayableOverrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise<[string]>; - - execute( - dest: string, - value: BigNumberish, - func: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - executeBatch( - dest: string[], - func: BytesLike[], - overrides?: Overrides & { from?: string } - ): Promise; - - getDeposit(overrides?: CallOverrides): Promise<[BigNumber]>; - - getNonce(overrides?: CallOverrides): Promise<[BigNumber]>; - - initialize( - anOwner: string, - overrides?: Overrides & { from?: string } - ): Promise; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise<[string]>; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise<[string]>; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise<[string]>; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - supportsInterface( - interfaceId: BytesLike, - overrides?: CallOverrides - ): Promise<[boolean]>; - - tokensReceived( - arg0: string, - arg1: string, - arg2: string, - arg3: BigNumberish, - arg4: BytesLike, - arg5: BytesLike, - overrides?: CallOverrides - ): Promise<[void]>; - - upgradeTo( - newImplementation: string, - overrides?: Overrides & { from?: string } - ): Promise; - - upgradeToAndCall( - newImplementation: string, - data: BytesLike, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawDepositTo( - withdrawAddress: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - }; - - addDeposit( - overrides?: PayableOverrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - execute( - dest: string, - value: BigNumberish, - func: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - executeBatch( - dest: string[], - func: BytesLike[], - overrides?: Overrides & { from?: string } - ): Promise; - - getDeposit(overrides?: CallOverrides): Promise; - - getNonce(overrides?: CallOverrides): Promise; - - initialize( - anOwner: string, - overrides?: Overrides & { from?: string } - ): Promise; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - supportsInterface( - interfaceId: BytesLike, - overrides?: CallOverrides - ): Promise; - - tokensReceived( - arg0: string, - arg1: string, - arg2: string, - arg3: BigNumberish, - arg4: BytesLike, - arg5: BytesLike, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - newImplementation: string, - overrides?: Overrides & { from?: string } - ): Promise; - - upgradeToAndCall( - newImplementation: string, - data: BytesLike, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawDepositTo( - withdrawAddress: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - callStatic: { - addDeposit(overrides?: CallOverrides): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - execute( - dest: string, - value: BigNumberish, - func: BytesLike, - overrides?: CallOverrides - ): Promise; - - executeBatch( - dest: string[], - func: BytesLike[], - overrides?: CallOverrides - ): Promise; - - getDeposit(overrides?: CallOverrides): Promise; - - getNonce(overrides?: CallOverrides): Promise; - - initialize(anOwner: string, overrides?: CallOverrides): Promise; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - supportsInterface( - interfaceId: BytesLike, - overrides?: CallOverrides - ): Promise; - - tokensReceived( - arg0: string, - arg1: string, - arg2: string, - arg3: BigNumberish, - arg4: BytesLike, - arg5: BytesLike, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - newImplementation: string, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: string, - data: BytesLike, - overrides?: CallOverrides - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: CallOverrides - ): Promise; - - withdrawDepositTo( - withdrawAddress: string, - amount: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: string | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded(beacon?: string | null): BeaconUpgradedEventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "SimpleAccountInitialized(address,address)"( - entryPoint?: string | null, - owner?: string | null - ): SimpleAccountInitializedEventFilter; - SimpleAccountInitialized( - entryPoint?: string | null, - owner?: string | null - ): SimpleAccountInitializedEventFilter; - - "Upgraded(address)"(implementation?: string | null): UpgradedEventFilter; - Upgraded(implementation?: string | null): UpgradedEventFilter; - }; - - estimateGas: { - addDeposit( - overrides?: PayableOverrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - execute( - dest: string, - value: BigNumberish, - func: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - executeBatch( - dest: string[], - func: BytesLike[], - overrides?: Overrides & { from?: string } - ): Promise; - - getDeposit(overrides?: CallOverrides): Promise; - - getNonce(overrides?: CallOverrides): Promise; - - initialize( - anOwner: string, - overrides?: Overrides & { from?: string } - ): Promise; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - supportsInterface( - interfaceId: BytesLike, - overrides?: CallOverrides - ): Promise; - - tokensReceived( - arg0: string, - arg1: string, - arg2: string, - arg3: BigNumberish, - arg4: BytesLike, - arg5: BytesLike, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - newImplementation: string, - overrides?: Overrides & { from?: string } - ): Promise; - - upgradeToAndCall( - newImplementation: string, - data: BytesLike, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawDepositTo( - withdrawAddress: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - }; - - populateTransaction: { - addDeposit( - overrides?: PayableOverrides & { from?: string } - ): Promise; - - entryPoint(overrides?: CallOverrides): Promise; - - execute( - dest: string, - value: BigNumberish, - func: BytesLike, - overrides?: Overrides & { from?: string } - ): Promise; - - executeBatch( - dest: string[], - func: BytesLike[], - overrides?: Overrides & { from?: string } - ): Promise; - - getDeposit(overrides?: CallOverrides): Promise; - - getNonce(overrides?: CallOverrides): Promise; - - initialize( - anOwner: string, - overrides?: Overrides & { from?: string } - ): Promise; - - onERC1155BatchReceived( - arg0: string, - arg1: string, - arg2: BigNumberish[], - arg3: BigNumberish[], - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC1155Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BigNumberish, - arg4: BytesLike, - overrides?: CallOverrides - ): Promise; - - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - supportsInterface( - interfaceId: BytesLike, - overrides?: CallOverrides - ): Promise; - - tokensReceived( - arg0: string, - arg1: string, - arg2: string, - arg3: BigNumberish, - arg4: BytesLike, - arg5: BytesLike, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - newImplementation: string, - overrides?: Overrides & { from?: string } - ): Promise; - - upgradeToAndCall( - newImplementation: string, - data: BytesLike, - overrides?: PayableOverrides & { from?: string } - ): Promise; - - validateUserOp( - userOp: UserOperationStruct, - userOpHash: BytesLike, - missingAccountFunds: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - withdrawDepositTo( - withdrawAddress: string, - amount: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - }; -} diff --git a/src/typechain/SimpleAccountFactory.ts b/src/typechain/SimpleAccountFactory.ts deleted file mode 100644 index 11572d1..0000000 --- a/src/typechain/SimpleAccountFactory.ts +++ /dev/null @@ -1,172 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, -} from "./common"; - -export interface SimpleAccountFactoryInterface extends utils.Interface { - functions: { - "accountImplementation()": FunctionFragment; - "createAccount(address,uint256)": FunctionFragment; - "getAddress(address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "accountImplementation" - | "createAccount" - | "getAddress" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "accountImplementation", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "createAccount", - values: [string, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "getAddress", - values: [string, BigNumberish] - ): string; - - decodeFunctionResult( - functionFragment: "accountImplementation", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "createAccount", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "getAddress", data: BytesLike): Result; - - events: {}; -} - -export interface SimpleAccountFactory extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: SimpleAccountFactoryInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - accountImplementation(overrides?: CallOverrides): Promise<[string]>; - - createAccount( - owner: string, - salt: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - getAddress( - owner: string, - salt: BigNumberish, - overrides?: CallOverrides - ): Promise<[string]>; - }; - - accountImplementation(overrides?: CallOverrides): Promise; - - createAccount( - owner: string, - salt: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - getAddress( - owner: string, - salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - - callStatic: { - accountImplementation(overrides?: CallOverrides): Promise; - - createAccount( - owner: string, - salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getAddress( - owner: string, - salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - accountImplementation(overrides?: CallOverrides): Promise; - - createAccount( - owner: string, - salt: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - getAddress( - owner: string, - salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; - - populateTransaction: { - accountImplementation( - overrides?: CallOverrides - ): Promise; - - createAccount( - owner: string, - salt: BigNumberish, - overrides?: Overrides & { from?: string } - ): Promise; - - getAddress( - owner: string, - salt: BigNumberish, - overrides?: CallOverrides - ): Promise; - }; -} diff --git a/src/typechain/common.ts b/src/typechain/common.ts deleted file mode 100644 index 2fc40c7..0000000 --- a/src/typechain/common.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { Listener } from "@ethersproject/providers"; -import type { Event, EventFilter } from "ethers"; - -export interface TypedEvent< - TArgsArray extends Array = any, - TArgsObject = any -> extends Event { - args: TArgsArray & TArgsObject; -} - -export interface TypedEventFilter<_TEvent extends TypedEvent> - extends EventFilter {} - -export interface TypedListener { - (...listenerArg: [...__TypechainArgsArray, TEvent]): void; -} - -type __TypechainArgsArray = T extends TypedEvent ? U : never; - -export interface OnEvent { - ( - eventFilter: TypedEventFilter, - listener: TypedListener - ): TRes; - (eventName: string, listener: Listener): TRes; -} - -export type MinEthersFactory = { - deploy(...a: ARGS[]): Promise; -}; - -export type GetContractTypeFromFactory = F extends MinEthersFactory< - infer C, - any -> - ? C - : never; - -export type GetARGsTypeFromFactory = F extends MinEthersFactory - ? Parameters - : never; diff --git a/src/typechain/factories/BarzAccountFacet__factory.ts b/src/typechain/factories/BarzAccountFacet__factory.ts deleted file mode 100644 index 09806a6..0000000 --- a/src/typechain/factories/BarzAccountFacet__factory.ts +++ /dev/null @@ -1,361 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - BarzAccountFacet, - BarzAccountFacetInterface, -} from "../BarzAccountFacet"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "AccountFacet__CallNotSuccessful", - type: "error", - }, - { - inputs: [], - name: "AccountFacet__InitializationFailure", - type: "error", - }, - { - inputs: [], - name: "AccountFacet__InvalidArrayLength", - type: "error", - }, - { - inputs: [], - name: "AccountFacet__NonExistentVerificationFacet", - type: "error", - }, - { - inputs: [], - name: "AccountFacet__RestrictionsFailure", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "_initializationContractAddress", - type: "address", - }, - { - internalType: "bytes", - name: "_calldata", - type: "bytes", - }, - ], - name: "InitializationFunctionReverted", - type: "error", - }, - { - inputs: [], - name: "LibAppStorage__AccountMustBeUninitialized", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "contract IEntryPoint", - name: "entryPoint", - type: "address", - }, - { - indexed: true, - internalType: "bytes", - name: "ownerPublicKey", - type: "bytes", - }, - ], - name: "AccountInitialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - components: [ - { - internalType: "address", - name: "facetAddress", - type: "address", - }, - { - internalType: "enum IDiamondCut.FacetCutAction", - name: "action", - type: "uint8", - }, - { - internalType: "bytes4[]", - name: "functionSelectors", - type: "bytes4[]", - }, - ], - indexed: false, - internalType: "struct IDiamondCut.FacetCut[]", - name: "_diamondCut", - type: "tuple[]", - }, - { - indexed: false, - internalType: "address", - name: "_init", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "_calldata", - type: "bytes", - }, - ], - name: "DiamondCut", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "VerificationFailure", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "VerificationSuccess", - type: "event", - }, - { - inputs: [], - name: "entryPoint", - outputs: [ - { - internalType: "contract IEntryPoint", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_dest", - type: "address", - }, - { - internalType: "uint256", - name: "_value", - type: "uint256", - }, - { - internalType: "bytes", - name: "_func", - type: "bytes", - }, - ], - name: "execute", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address[]", - name: "_dest", - type: "address[]", - }, - { - internalType: "uint256[]", - name: "_value", - type: "uint256[]", - }, - { - internalType: "bytes[]", - name: "_func", - type: "bytes[]", - }, - ], - name: "executeBatch", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getNonce", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_verificationFacet", - type: "address", - }, - { - internalType: "address", - name: "_anEntryPoint", - type: "address", - }, - { - internalType: "address", - name: "_facetRegistry", - type: "address", - }, - { - internalType: "address", - name: "_defaultFallBackHandler", - type: "address", - }, - { - internalType: "bytes", - name: "_ownerPublicKey", - type: "bytes", - }, - ], - name: "initialize", - outputs: [ - { - internalType: "uint256", - name: "initSuccess", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - { - internalType: "bytes", - name: "initCode", - type: "bytes", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - { - internalType: "uint256", - name: "callGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "verificationGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "preVerificationGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxFeePerGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPriorityFeePerGas", - type: "uint256", - }, - { - internalType: "bytes", - name: "paymasterAndData", - type: "bytes", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - internalType: "struct UserOperation", - name: "userOp", - type: "tuple", - }, - { - internalType: "bytes32", - name: "userOpHash", - type: "bytes32", - }, - { - internalType: "uint256", - name: "missingAccountFunds", - type: "uint256", - }, - ], - name: "validateUserOp", - outputs: [ - { - internalType: "uint256", - name: "validationData", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class BarzAccountFacet__factory { - static readonly abi = _abi; - static createInterface(): BarzAccountFacetInterface { - return new utils.Interface(_abi) as BarzAccountFacetInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): BarzAccountFacet { - return new Contract(address, _abi, signerOrProvider) as BarzAccountFacet; - } -} diff --git a/src/typechain/factories/BarzDefaultFallbackHandler__factory.ts b/src/typechain/factories/BarzDefaultFallbackHandler__factory.ts deleted file mode 100644 index 404a685..0000000 --- a/src/typechain/factories/BarzDefaultFallbackHandler__factory.ts +++ /dev/null @@ -1,190 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - BarzDefaultFallbackHandler, - BarzDefaultFallbackHandlerInterface, -} from "../BarzDefaultFallbackHandler"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_diamondCutFacet", - type: "address", - }, - { - internalType: "address", - name: "_accountFacet", - type: "address", - }, - { - internalType: "address", - name: "_tokenReceiverFacet", - type: "address", - }, - { - internalType: "address", - name: "_diamondLoupeFacet", - type: "address", - }, - ], - stateMutability: "payable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "_initializationContractAddress", - type: "address", - }, - { - internalType: "bytes", - name: "_calldata", - type: "bytes", - }, - ], - name: "InitializationFunctionReverted", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - components: [ - { - internalType: "address", - name: "facetAddress", - type: "address", - }, - { - internalType: "enum IDiamondCut.FacetCutAction", - name: "action", - type: "uint8", - }, - { - internalType: "bytes4[]", - name: "functionSelectors", - type: "bytes4[]", - }, - ], - indexed: false, - internalType: "struct IDiamondCut.FacetCut[]", - name: "_diamondCut", - type: "tuple[]", - }, - { - indexed: false, - internalType: "address", - name: "_init", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "_calldata", - type: "bytes", - }, - ], - name: "DiamondCut", - type: "event", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "_functionSelector", - type: "bytes4", - }, - ], - name: "facetAddress", - outputs: [ - { - internalType: "address", - name: "facetAddress_", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "facetAddresses", - outputs: [ - { - internalType: "address[]", - name: "facetAddresses_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_facet", - type: "address", - }, - ], - name: "facetFunctionSelectors", - outputs: [ - { - internalType: "bytes4[]", - name: "facetFunctionSelectors_", - type: "bytes4[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "facets", - outputs: [ - { - components: [ - { - internalType: "address", - name: "facetAddress", - type: "address", - }, - { - internalType: "bytes4[]", - name: "functionSelectors", - type: "bytes4[]", - }, - ], - internalType: "struct IDiamondLoupe.Facet[]", - name: "facets_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class BarzDefaultFallbackHandler__factory { - static readonly abi = _abi; - static createInterface(): BarzDefaultFallbackHandlerInterface { - return new utils.Interface(_abi) as BarzDefaultFallbackHandlerInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): BarzDefaultFallbackHandler { - return new Contract( - address, - _abi, - signerOrProvider - ) as BarzDefaultFallbackHandler; - } -} diff --git a/src/typechain/factories/BarzFactory__factory.ts b/src/typechain/factories/BarzFactory__factory.ts deleted file mode 100644 index 23c4725..0000000 --- a/src/typechain/factories/BarzFactory__factory.ts +++ /dev/null @@ -1,229 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { BarzFactory, BarzFactoryInterface } from "../BarzFactory"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_accountFacet", - type: "address", - }, - { - internalType: "address", - name: "_entryPoint", - type: "address", - }, - { - internalType: "address", - name: "_facetRegistry", - type: "address", - }, - { - internalType: "address", - name: "_defaultFallback", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "BarzDeployed", - type: "event", - }, - { - inputs: [], - name: "accountFacet", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_verificationFacet", - type: "address", - }, - { - internalType: "bytes", - name: "_owner", - type: "bytes", - }, - { - internalType: "uint256", - name: "_salt", - type: "uint256", - }, - ], - name: "createAccount", - outputs: [ - { - internalType: "contract Barz", - name: "barz", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "defaultFallback", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "entryPoint", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "facetRegistry", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_verificationFacet", - type: "address", - }, - { - internalType: "bytes", - name: "_owner", - type: "bytes", - }, - { - internalType: "uint256", - name: "_salt", - type: "uint256", - }, - ], - name: "getAddress", - outputs: [ - { - internalType: "address", - name: "barzAddress", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_accountFacet", - type: "address", - }, - { - internalType: "address", - name: "_verificationFacet", - type: "address", - }, - { - internalType: "address", - name: "_entryPoint", - type: "address", - }, - { - internalType: "address", - name: "_facetRegistry", - type: "address", - }, - { - internalType: "address", - name: "_defaultFallback", - type: "address", - }, - { - internalType: "bytes", - name: "_ownerPublicKey", - type: "bytes", - }, - ], - name: "getBytecode", - outputs: [ - { - internalType: "bytes", - name: "barzBytecode", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [], - name: "getCreationCode", - outputs: [ - { - internalType: "bytes", - name: "creationCode", - type: "bytes", - }, - ], - stateMutability: "pure", - type: "function", - }, -] as const; - -export class BarzFactory__factory { - static readonly abi = _abi; - static createInterface(): BarzFactoryInterface { - return new utils.Interface(_abi) as BarzFactoryInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): BarzFactory { - return new Contract(address, _abi, signerOrProvider) as BarzFactory; - } -} diff --git a/src/typechain/factories/BarzSecp256r1VerificationFacet__factory.ts b/src/typechain/factories/BarzSecp256r1VerificationFacet__factory.ts deleted file mode 100644 index e6001fc..0000000 --- a/src/typechain/factories/BarzSecp256r1VerificationFacet__factory.ts +++ /dev/null @@ -1,375 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - BarzSecp256r1VerificationFacet, - BarzSecp256r1VerificationFacetInterface, -} from "../BarzSecp256r1VerificationFacet"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "LibAppStorage__AccountMustBeUninitialized", - type: "error", - }, - { - inputs: [], - name: "LibAppStorage__SignerAlreadyUninitialized", - type: "error", - }, - { - inputs: [], - name: "LibAppStorage__SignerMustBeUninitialized", - type: "error", - }, - { - inputs: [], - name: "Secp256r1VerificationFacet__InvalidSignerLength", - type: "error", - }, - { - inputs: [], - name: "VerificationFacet__InitializationFailure", - type: "error", - }, - { - inputs: [], - name: "VerificationFacet__InvalidFacetMapping", - type: "error", - }, - { - inputs: [], - name: "VerificationFacet__ValidateOwnerSignatureSelectorAlreadySet", - type: "error", - }, - { - inputs: [], - name: "VerificationFacet__ValidateOwnerSignatureSelectorNotSet", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "SignerInitialized", - type: "event", - }, - { - anonymous: false, - inputs: [], - name: "SignerUninitialized", - type: "event", - }, - { - inputs: [ - { - internalType: "bytes", - name: "_publicKey", - type: "bytes", - }, - ], - name: "initializeSigner", - outputs: [ - { - internalType: "uint256", - name: "initSuccess", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "_publicKey", - type: "bytes", - }, - ], - name: "isValidKeyType", - outputs: [ - { - internalType: "bool", - name: "isValid", - type: "bool", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "_hash", - type: "bytes32", - }, - { - internalType: "bytes", - name: "_signature", - type: "bytes", - }, - ], - name: "isValidSignature", - outputs: [ - { - internalType: "bytes4", - name: "magicValue", - type: "bytes4", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "bytes", - name: "signer", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "self", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "uninitializeSigner", - outputs: [ - { - internalType: "uint256", - name: "uninitSuccess", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - { - internalType: "bytes", - name: "initCode", - type: "bytes", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - { - internalType: "uint256", - name: "callGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "verificationGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "preVerificationGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxFeePerGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPriorityFeePerGas", - type: "uint256", - }, - { - internalType: "bytes", - name: "paymasterAndData", - type: "bytes", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - internalType: "struct UserOperation", - name: "userOp", - type: "tuple", - }, - { - internalType: "bytes32", - name: "userOpHash", - type: "bytes32", - }, - ], - name: "validateOwnerSignature", - outputs: [ - { - internalType: "uint256", - name: "validationData", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "validateOwnerSignatureSelector", - outputs: [ - { - internalType: "bytes4", - name: "ownerSignatureValidatorSelector", - type: "bytes4", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - { - internalType: "bytes", - name: "initCode", - type: "bytes", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - { - internalType: "uint256", - name: "callGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "verificationGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "preVerificationGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxFeePerGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPriorityFeePerGas", - type: "uint256", - }, - { - internalType: "bytes", - name: "paymasterAndData", - type: "bytes", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - internalType: "struct UserOperation", - name: "userOp", - type: "tuple", - }, - { - internalType: "bytes32", - name: "userOpHash", - type: "bytes32", - }, - { - internalType: "uint256[2]", - name: "q", - type: "uint256[2]", - }, - ], - name: "validateSignature", - outputs: [ - { - internalType: "uint256", - name: "isValid", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class BarzSecp256r1VerificationFacet__factory { - static readonly abi = _abi; - static createInterface(): BarzSecp256r1VerificationFacetInterface { - return new utils.Interface(_abi) as BarzSecp256r1VerificationFacetInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): BarzSecp256r1VerificationFacet { - return new Contract( - address, - _abi, - signerOrProvider - ) as BarzSecp256r1VerificationFacet; - } -} diff --git a/src/typechain/factories/ECDSAKernelFactory__factory.ts b/src/typechain/factories/ECDSAKernelFactory__factory.ts deleted file mode 100644 index 73c822d..0000000 --- a/src/typechain/factories/ECDSAKernelFactory__factory.ts +++ /dev/null @@ -1,134 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - ECDSAKernelFactory, - ECDSAKernelFactoryInterface, -} from "../ECDSAKernelFactory"; - -const _abi = [ - { - inputs: [ - { - internalType: "contract KernelFactory", - name: "_singletonFactory", - type: "address", - }, - { - internalType: "contract ECDSAValidator", - name: "_validator", - type: "address", - }, - { - internalType: "contract IEntryPoint", - name: "_entryPoint", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "_owner", - type: "address", - }, - { - internalType: "uint256", - name: "_index", - type: "uint256", - }, - ], - name: "createAccount", - outputs: [ - { - internalType: "contract EIP1967Proxy", - name: "proxy", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "entryPoint", - outputs: [ - { - internalType: "contract IEntryPoint", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_owner", - type: "address", - }, - { - internalType: "uint256", - name: "_index", - type: "uint256", - }, - ], - name: "getAccountAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "singletonFactory", - outputs: [ - { - internalType: "contract KernelFactory", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "validator", - outputs: [ - { - internalType: "contract ECDSAValidator", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class ECDSAKernelFactory__factory { - static readonly abi = _abi; - static createInterface(): ECDSAKernelFactoryInterface { - return new utils.Interface(_abi) as ECDSAKernelFactoryInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ECDSAKernelFactory { - return new Contract(address, _abi, signerOrProvider) as ECDSAKernelFactory; - } -} diff --git a/src/typechain/factories/ECDSAValidator__factory.ts b/src/typechain/factories/ECDSAValidator__factory.ts deleted file mode 100644 index e179dd4..0000000 --- a/src/typechain/factories/ECDSAValidator__factory.ts +++ /dev/null @@ -1,206 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - ECDSAValidator, - ECDSAValidatorInterface, -} from "../ECDSAValidator"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "kernel", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "oldOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnerChanged", - type: "event", - }, - { - inputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "disable", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "ecdsaValidatorStorage", - outputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - ], - name: "enable", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "hash", - type: "bytes32", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - name: "validateSignature", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - { - internalType: "bytes", - name: "initCode", - type: "bytes", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - { - internalType: "uint256", - name: "callGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "verificationGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "preVerificationGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxFeePerGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPriorityFeePerGas", - type: "uint256", - }, - { - internalType: "bytes", - name: "paymasterAndData", - type: "bytes", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - internalType: "struct UserOperation", - name: "_userOp", - type: "tuple", - }, - { - internalType: "bytes32", - name: "_userOpHash", - type: "bytes32", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "validateUserOp", - outputs: [ - { - internalType: "uint256", - name: "validationData", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class ECDSAValidator__factory { - static readonly abi = _abi; - static createInterface(): ECDSAValidatorInterface { - return new utils.Interface(_abi) as ECDSAValidatorInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ECDSAValidator { - return new Contract(address, _abi, signerOrProvider) as ECDSAValidator; - } -} diff --git a/src/typechain/factories/KernelFactory__factory.ts b/src/typechain/factories/KernelFactory__factory.ts deleted file mode 100644 index 65d5140..0000000 --- a/src/typechain/factories/KernelFactory__factory.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { KernelFactory, KernelFactoryInterface } from "../KernelFactory"; - -const _abi = [ - { - inputs: [ - { - internalType: "contract IEntryPoint", - name: "_entryPoint", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "account", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "validator", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "index", - type: "uint256", - }, - ], - name: "AccountCreated", - type: "event", - }, - { - inputs: [ - { - internalType: "contract IKernelValidator", - name: "_validator", - type: "address", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - { - internalType: "uint256", - name: "_index", - type: "uint256", - }, - ], - name: "createAccount", - outputs: [ - { - internalType: "contract EIP1967Proxy", - name: "proxy", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "entryPoint", - outputs: [ - { - internalType: "contract IEntryPoint", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "contract IKernelValidator", - name: "_validator", - type: "address", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - { - internalType: "uint256", - name: "_index", - type: "uint256", - }, - ], - name: "getAccountAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "kernelTemplate", - outputs: [ - { - internalType: "contract TempKernel", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "nextTemplate", - outputs: [ - { - internalType: "contract Kernel", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class KernelFactory__factory { - static readonly abi = _abi; - static createInterface(): KernelFactoryInterface { - return new utils.Interface(_abi) as KernelFactoryInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): KernelFactory { - return new Contract(address, _abi, signerOrProvider) as KernelFactory; - } -} diff --git a/src/typechain/factories/Kernel__factory.ts b/src/typechain/factories/Kernel__factory.ts deleted file mode 100644 index d112edb..0000000 --- a/src/typechain/factories/Kernel__factory.ts +++ /dev/null @@ -1,597 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { Kernel, KernelInterface } from "../Kernel"; - -const _abi = [ - { - inputs: [ - { - internalType: "contract IEntryPoint", - name: "_entryPoint", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "oldValidator", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newValidator", - type: "address", - }, - ], - name: "DefaultValidatorChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes4", - name: "selector", - type: "bytes4", - }, - { - indexed: true, - internalType: "address", - name: "executor", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "validator", - type: "address", - }, - ], - name: "ExecutionChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - stateMutability: "payable", - type: "fallback", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "_disableFlag", - type: "bytes4", - }, - ], - name: "disableMode", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "entryPoint", - outputs: [ - { - internalType: "contract IEntryPoint", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "enum Operation", - name: "operation", - type: "uint8", - }, - ], - name: "execute", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getDefaultValidator", - outputs: [ - { - internalType: "contract IKernelValidator", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getDisabledMode", - outputs: [ - { - internalType: "bytes4", - name: "", - type: "bytes4", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "_selector", - type: "bytes4", - }, - ], - name: "getExecution", - outputs: [ - { - components: [ - { - internalType: "uint48", - name: "validUntil", - type: "uint48", - }, - { - internalType: "uint48", - name: "validAfter", - type: "uint48", - }, - { - internalType: "address", - name: "executor", - type: "address", - }, - { - internalType: "contract IKernelValidator", - name: "validator", - type: "address", - }, - ], - internalType: "struct ExecutionDetail", - name: "", - type: "tuple", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getLastDisabledTime", - outputs: [ - { - internalType: "uint48", - name: "", - type: "uint48", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint192", - name: "key", - type: "uint192", - }, - ], - name: "getNonce", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "getNonce", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "contract IKernelValidator", - name: "_defaultValidator", - type: "address", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "hash", - type: "bytes32", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - name: "isValidSignature", - outputs: [ - { - internalType: "bytes4", - name: "", - type: "bytes4", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "onERC1155BatchReceived", - outputs: [ - { - internalType: "bytes4", - name: "", - type: "bytes4", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "onERC1155Received", - outputs: [ - { - internalType: "bytes4", - name: "", - type: "bytes4", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "onERC721Received", - outputs: [ - { - internalType: "bytes4", - name: "", - type: "bytes4", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "contract IKernelValidator", - name: "_defaultValidator", - type: "address", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - ], - name: "setDefaultValidator", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "_selector", - type: "bytes4", - }, - { - internalType: "address", - name: "_executor", - type: "address", - }, - { - internalType: "contract IKernelValidator", - name: "_validator", - type: "address", - }, - { - internalType: "uint48", - name: "_validUntil", - type: "uint48", - }, - { - internalType: "uint48", - name: "_validAfter", - type: "uint48", - }, - { - internalType: "bytes", - name: "_enableData", - type: "bytes", - }, - ], - name: "setExecution", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - { - internalType: "bytes", - name: "initCode", - type: "bytes", - }, - { - internalType: "bytes", - name: "callData", - type: "bytes", - }, - { - internalType: "uint256", - name: "callGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "verificationGasLimit", - type: "uint256", - }, - { - internalType: "uint256", - name: "preVerificationGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxFeePerGas", - type: "uint256", - }, - { - internalType: "uint256", - name: "maxPriorityFeePerGas", - type: "uint256", - }, - { - internalType: "bytes", - name: "paymasterAndData", - type: "bytes", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - internalType: "struct UserOperation", - name: "userOp", - type: "tuple", - }, - { - internalType: "bytes32", - name: "userOpHash", - type: "bytes32", - }, - { - internalType: "uint256", - name: "missingAccountFunds", - type: "uint256", - }, - ], - name: "validateUserOp", - outputs: [ - { - internalType: "uint256", - name: "validationData", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "version", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, -] as const; - -export class Kernel__factory { - static readonly abi = _abi; - static createInterface(): KernelInterface { - return new utils.Interface(_abi) as KernelInterface; - } - static connect(address: string, signerOrProvider: Signer | Provider): Kernel { - return new Contract(address, _abi, signerOrProvider) as Kernel; - } -} diff --git a/src/typechain/factories/Multisend__factory.ts b/src/typechain/factories/Multisend__factory.ts deleted file mode 100644 index 5a45ff6..0000000 --- a/src/typechain/factories/Multisend__factory.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { Multisend, MultisendInterface } from "../Multisend"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "bytes", - name: "transactions", - type: "bytes", - }, - ], - name: "multiSend", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -export class Multisend__factory { - static readonly abi = _abi; - static createInterface(): MultisendInterface { - return new utils.Interface(_abi) as MultisendInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Multisend { - return new Contract(address, _abi, signerOrProvider) as Multisend; - } -} diff --git a/src/typechain/factories/SimpleAccountFactory__factory.ts b/src/typechain/factories/SimpleAccountFactory__factory.ts deleted file mode 100644 index 969907b..0000000 --- a/src/typechain/factories/SimpleAccountFactory__factory.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - SimpleAccountFactory, - SimpleAccountFactoryInterface, -} from "../SimpleAccountFactory"; - -const _abi = [ - { - inputs: [ - { - internalType: "contract IEntryPoint", - name: "_entryPoint", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "accountImplementation", - outputs: [ - { - internalType: "contract SimpleAccount", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "uint256", - name: "salt", - type: "uint256", - }, - ], - name: "createAccount", - outputs: [ - { - internalType: "contract SimpleAccount", - name: "ret", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "uint256", - name: "salt", - type: "uint256", - }, - ], - name: "getAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class SimpleAccountFactory__factory { - static readonly abi = _abi; - static createInterface(): SimpleAccountFactoryInterface { - return new utils.Interface(_abi) as SimpleAccountFactoryInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): SimpleAccountFactory { - return new Contract( - address, - _abi, - signerOrProvider - ) as SimpleAccountFactory; - } -} diff --git a/src/typechain/factories/index.ts b/src/typechain/factories/index.ts deleted file mode 100644 index 62aa0b1..0000000 --- a/src/typechain/factories/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { BarzAccountFacet__factory } from "./BarzAccountFacet__factory"; -export { BarzDefaultFallbackHandler__factory } from "./BarzDefaultFallbackHandler__factory"; -export { BarzFactory__factory } from "./BarzFactory__factory"; -export { BarzSecp256r1VerificationFacet__factory } from "./BarzSecp256r1VerificationFacet__factory"; -export { ECDSAKernelFactory__factory } from "./ECDSAKernelFactory__factory"; -export { ECDSAValidator__factory } from "./ECDSAValidator__factory"; -export { EntryPoint__factory } from "./EntryPoint__factory"; -export { Kernel__factory } from "./Kernel__factory"; -export { KernelFactory__factory } from "./KernelFactory__factory"; -export { Multisend__factory } from "./Multisend__factory"; -export { SimpleAccount__factory } from "./SimpleAccount__factory"; -export { SimpleAccountFactory__factory } from "./SimpleAccountFactory__factory"; diff --git a/src/typechain/index.ts b/src/typechain/index.ts deleted file mode 100644 index aa9fcba..0000000 --- a/src/typechain/index.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { BarzAccountFacet } from "./BarzAccountFacet"; -export type { BarzDefaultFallbackHandler } from "./BarzDefaultFallbackHandler"; -export type { BarzFactory } from "./BarzFactory"; -export type { BarzSecp256r1VerificationFacet } from "./BarzSecp256r1VerificationFacet"; -export type { ECDSAKernelFactory } from "./ECDSAKernelFactory"; -export type { ECDSAValidator } from "./ECDSAValidator"; -export type { EntryPoint } from "./EntryPoint"; -export type { Kernel } from "./Kernel"; -export type { KernelFactory } from "./KernelFactory"; -export type { Multisend } from "./Multisend"; -export type { SimpleAccount } from "./SimpleAccount"; -export type { SimpleAccountFactory } from "./SimpleAccountFactory"; -export * as factories from "./factories"; -export { BarzAccountFacet__factory } from "./factories/BarzAccountFacet__factory"; -export { BarzDefaultFallbackHandler__factory } from "./factories/BarzDefaultFallbackHandler__factory"; -export { BarzFactory__factory } from "./factories/BarzFactory__factory"; -export { BarzSecp256r1VerificationFacet__factory } from "./factories/BarzSecp256r1VerificationFacet__factory"; -export { ECDSAKernelFactory__factory } from "./factories/ECDSAKernelFactory__factory"; -export { ECDSAValidator__factory } from "./factories/ECDSAValidator__factory"; -export { EntryPoint__factory } from "./factories/EntryPoint__factory"; -export { Kernel__factory } from "./factories/Kernel__factory"; -export { KernelFactory__factory } from "./factories/KernelFactory__factory"; -export { Multisend__factory } from "./factories/Multisend__factory"; -export { SimpleAccount__factory } from "./factories/SimpleAccount__factory"; -export { SimpleAccountFactory__factory } from "./factories/SimpleAccountFactory__factory"; diff --git a/src/types.ts b/src/types.ts deleted file mode 100644 index 7281b26..0000000 --- a/src/types.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { BigNumberish, BytesLike, ethers } from "ethers"; -import { UserOperationEventEvent } from "./typechain/EntryPoint"; - -export interface ISateOverrideAccount { - nonce: BigNumberish; - code: BytesLike; - balance: BigNumberish; - state: Record; - stateDiff: Record; -} - -export type StateOverrideSet = Record>; - -export interface IUserOperation { - sender: string; - nonce: BigNumberish; - initCode: BytesLike; - callData: BytesLike; - callGasLimit: BigNumberish; - verificationGasLimit: BigNumberish; - preVerificationGas: BigNumberish; - maxFeePerGas: BigNumberish; - maxPriorityFeePerGas: BigNumberish; - paymasterAndData: BytesLike; - signature: BytesLike; -} - -export type UserOperationMiddlewareFn = ( - context: IUserOperationMiddlewareCtx -) => Promise; - -export interface IUserOperationMiddlewareCtx { - op: IUserOperation; - entryPoint: string; - chainId: BigNumberish; - stateOverrides?: StateOverrideSet; - - // A userOpHash is a unique hash of op + entryPoint + chainId. - getUserOpHash: () => string; -} - -export interface IClientOpts { - entryPoint?: string; - overrideBundlerRpc?: string; -} - -export interface ISendUserOperationOpts { - dryRun?: boolean; - onBuild?: (op: IUserOperation) => Promise | any; - stateOverrides?: StateOverrideSet; -} - -export interface ISendUserOperationResponse { - userOpHash: string; - wait: () => Promise; -} - -export interface IPresetBuilderOpts { - entryPoint?: string; - factory?: string; - salt?: BigNumberish; - nonceKey?: number; - paymasterMiddleware?: UserOperationMiddlewareFn; - overrideBundlerRpc?: string; -} - -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface ISigner extends Pick {} - -export type EOASigner = ISigner & Pick; - -export interface ICall { - to: string; - value: BigNumberish; - data: BytesLike; -} diff --git a/src/utils/index.ts b/src/utils/index.ts deleted file mode 100644 index 98cf97a..0000000 --- a/src/utils/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./json"; diff --git a/src/utils/json.ts b/src/utils/json.ts deleted file mode 100644 index 4f60b60..0000000 --- a/src/utils/json.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ethers } from "ethers"; -import { IUserOperation } from "../types"; - -export const OpToJSON = (op: IUserOperation): IUserOperation => { - return Object.keys(op) - .map((key) => { - let val = (op as any)[key]; - if (typeof val !== "string" || !val.startsWith("0x")) { - val = ethers.utils.hexValue(val); - } - return [key, val]; - }) - .reduce( - (set, [k, v]) => ({ - ...set, - [k]: v, - }), - {} - ) as IUserOperation; -}; diff --git a/src/typechain/factories/SimpleAccount__factory.ts b/src/v06/account/commonConfigs/abi/simpleAccount.ts similarity index 87% rename from src/typechain/factories/SimpleAccount__factory.ts rename to src/v06/account/commonConfigs/abi/simpleAccount.ts index 3926351..1ffb085 100644 --- a/src/typechain/factories/SimpleAccount__factory.ts +++ b/src/v06/account/commonConfigs/abi/simpleAccount.ts @@ -1,12 +1,4 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { SimpleAccount, SimpleAccountInterface } from "../SimpleAccount"; - -const _abi = [ +export const AccountAbi = [ { inputs: [ { @@ -531,15 +523,77 @@ const _abi = [ }, ] as const; -export class SimpleAccount__factory { - static readonly abi = _abi; - static createInterface(): SimpleAccountInterface { - return new utils.Interface(_abi) as SimpleAccountInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): SimpleAccount { - return new Contract(address, _abi, signerOrProvider) as SimpleAccount; - } -} +export const FactoryAbi = [ + { + inputs: [ + { + internalType: "contract IEntryPoint", + name: "_entryPoint", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "accountImplementation", + outputs: [ + { + internalType: "contract SimpleAccount", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "uint256", + name: "salt", + type: "uint256", + }, + ], + name: "createAccount", + outputs: [ + { + internalType: "contract SimpleAccount", + name: "ret", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "uint256", + name: "salt", + type: "uint256", + }, + ], + name: "getAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; diff --git a/src/v06/account/commonConfigs/index.ts b/src/v06/account/commonConfigs/index.ts new file mode 100644 index 0000000..e2a3557 --- /dev/null +++ b/src/v06/account/commonConfigs/index.ts @@ -0,0 +1 @@ +export * as SimpleAccount from "./simpleAccount"; diff --git a/src/v06/account/commonConfigs/simpleAccount.ts b/src/v06/account/commonConfigs/simpleAccount.ts new file mode 100644 index 0000000..f51d5df --- /dev/null +++ b/src/v06/account/commonConfigs/simpleAccount.ts @@ -0,0 +1,22 @@ +import { Address, PublicClient } from "viem"; +import { JsonRpcProvider } from "ethers"; +import { AccountAbi, FactoryAbi } from "./abi/simpleAccount"; +import { RequiredAccountOpts } from "../types"; +import { RequestSignatureFunc } from "../hooks"; + +export const base = ( + owner: Address, + requestSignature: RequestSignatureFunc, + ethClient: PublicClient | JsonRpcProvider, +): RequiredAccountOpts => { + return { + accountAbi: AccountAbi, + factoryAbi: FactoryAbi, + factoryAddress: "0x9406Cc6185a346906296840746125a0E44976454", + ethClient, + setFactoryData(salt, encoder) { + return encoder("createAccount", [owner, salt]); + }, + requestSignature, + }; +}; diff --git a/src/v06/account/hooks/index.ts b/src/v06/account/hooks/index.ts new file mode 100644 index 0000000..aa1ba61 --- /dev/null +++ b/src/v06/account/hooks/index.ts @@ -0,0 +1,5 @@ +export * as RequestGasPrice from "./requestGasPrice"; +export * as RequestGasValues from "./requestGasValues"; +export * as RequestPaymaster from "./requestPaymaster"; +export * as RequestSignature from "./requestSignature"; +export * from "./types"; diff --git a/src/v06/account/hooks/requestGasPrice/common.ts b/src/v06/account/hooks/requestGasPrice/common.ts new file mode 100644 index 0000000..a580017 --- /dev/null +++ b/src/v06/account/hooks/requestGasPrice/common.ts @@ -0,0 +1,42 @@ +import { PublicClient } from "viem"; +import { RequestGasPriceFunc } from "../types"; +import { JsonRpcProvider } from "ethers"; + +export const withEthClient = ( + ethClient: PublicClient | JsonRpcProvider, +): RequestGasPriceFunc => { + if (ethClient instanceof JsonRpcProvider) { + return async () => { + const feeData = await ethClient.getFeeData(); + if (!feeData.maxFeePerGas || !feeData.maxPriorityFeePerGas) { + return { + maxFeePerGas: feeData.gasPrice || 0n, + maxPriorityFeePerGas: feeData.gasPrice || 0n, + }; + } + + return { + maxFeePerGas: feeData.maxFeePerGas, + maxPriorityFeePerGas: feeData.maxPriorityFeePerGas, + }; + }; + } + + return async () => { + const block = await ethClient.getBlock(); + if (!block.baseFeePerGas) { + const gp = await ethClient.getGasPrice(); + return { + maxFeePerGas: gp, + maxPriorityFeePerGas: gp, + }; + } + + const maxPriorityFeePerGas = await ethClient.estimateMaxPriorityFeePerGas(); + const maxFeePerGas = block.baseFeePerGas * 2n + maxPriorityFeePerGas; + return { + maxFeePerGas, + maxPriorityFeePerGas, + }; + }; +}; diff --git a/src/v06/account/hooks/requestGasPrice/index.ts b/src/v06/account/hooks/requestGasPrice/index.ts new file mode 100644 index 0000000..6b57160 --- /dev/null +++ b/src/v06/account/hooks/requestGasPrice/index.ts @@ -0,0 +1 @@ +export * from "./common"; diff --git a/src/v06/account/hooks/requestGasValues/common.ts b/src/v06/account/hooks/requestGasValues/common.ts new file mode 100644 index 0000000..de97017 --- /dev/null +++ b/src/v06/account/hooks/requestGasValues/common.ts @@ -0,0 +1,47 @@ +import { PublicClient, Hex } from "viem"; +import { JsonRpcProvider } from "ethers"; +import { RequestGasValuesFunc } from "../types"; +import { toRawUserOperation } from "../../../entryPoint"; + +interface GasEstimate { + preVerificationGas: Hex | number; + verificationGasLimit: Hex | number; + callGasLimit: Hex | number; +} + +export const withEthClient = ( + ethClient: PublicClient | JsonRpcProvider, +): RequestGasValuesFunc => { + if (ethClient instanceof JsonRpcProvider) { + return async (userop, entryPoint, stateOverrideSet) => { + const est = (await ethClient.send( + "eth_estimateUserOperationGas", + stateOverrideSet !== undefined + ? [toRawUserOperation(userop), entryPoint, stateOverrideSet] + : [toRawUserOperation(userop), entryPoint], + )) as GasEstimate; + + return { + preVerificationGas: BigInt(est.preVerificationGas), + verificationGasLimit: BigInt(est.verificationGasLimit), + callGasLimit: BigInt(est.callGasLimit), + }; + }; + } + + return async (userop, entryPoint, stateOverrideSet) => { + const est = (await ethClient.transport.request({ + method: "eth_estimateUserOperationGas", + params: + stateOverrideSet !== undefined + ? [userop, entryPoint, stateOverrideSet] + : [userop, entryPoint], + })) as GasEstimate; + + return { + preVerificationGas: BigInt(est.preVerificationGas), + verificationGasLimit: BigInt(est.verificationGasLimit), + callGasLimit: BigInt(est.callGasLimit), + }; + }; +}; diff --git a/src/v06/account/hooks/requestGasValues/index.ts b/src/v06/account/hooks/requestGasValues/index.ts new file mode 100644 index 0000000..6b57160 --- /dev/null +++ b/src/v06/account/hooks/requestGasValues/index.ts @@ -0,0 +1 @@ +export * from "./common"; diff --git a/src/v06/account/hooks/requestPaymaster/common.ts b/src/v06/account/hooks/requestPaymaster/common.ts new file mode 100644 index 0000000..ddb25cc --- /dev/null +++ b/src/v06/account/hooks/requestPaymaster/common.ts @@ -0,0 +1,37 @@ +import { createPublicClient, http } from "viem"; +import { + PaymasterOpts, + PaymasterVariantParams, + StackupV1Response, +} from "./types"; +import { RequestPaymasterFunc } from "../types"; + +const stackupV1Paymaster = ( + params: PaymasterVariantParams["stackupV1"], +): RequestPaymasterFunc => { + const client = createPublicClient({ transport: http(params.rpcUrl) }); + + return async (userop, entryPoint) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { rpcUrl, ...ctx } = params; + + const pm = (await client.transport.request({ + method: "pm_sponsorUserOperation", + params: [userop, entryPoint, ctx], + })) as StackupV1Response; + + return { + paymasterAndData: pm.paymasterAndData, + callGasLimit: BigInt(pm.callGasLimit), + verificationGasLimit: BigInt(pm.verificationGasLimit), + preVerificationGas: BigInt(pm.preVerificationGas), + }; + }; +}; + +export const withCommon = (opts: PaymasterOpts): RequestPaymasterFunc => { + switch (opts.variant) { + case "stackupV1": + return stackupV1Paymaster(opts.parameters); + } +}; diff --git a/src/v06/account/hooks/requestPaymaster/index.ts b/src/v06/account/hooks/requestPaymaster/index.ts new file mode 100644 index 0000000..67ca493 --- /dev/null +++ b/src/v06/account/hooks/requestPaymaster/index.ts @@ -0,0 +1,2 @@ +export * from "./common"; +export * from "./types"; diff --git a/src/v06/account/hooks/requestPaymaster/types.ts b/src/v06/account/hooks/requestPaymaster/types.ts new file mode 100644 index 0000000..4eb1413 --- /dev/null +++ b/src/v06/account/hooks/requestPaymaster/types.ts @@ -0,0 +1,33 @@ +import { Address, Hex } from "viem"; + +export type StackupV1Types = "payg" | "erc20token"; + +export interface StackupV1BaseContext { + rpcUrl: string; +} + +export interface StackupV1PaygContext { + type: "payg"; +} + +export interface StackupV1Erc20TokenContext { + type: "erc20token"; + token: Address; +} + +export interface StackupV1Response { + paymasterAndData: Hex; + preVerificationGas: Hex | number; + verificationGasLimit: Hex | number; + callGasLimit: Hex | number; +} + +export interface PaymasterVariantParams { + stackupV1: StackupV1BaseContext & + (StackupV1PaygContext | StackupV1Erc20TokenContext); +} + +export interface PaymasterOpts { + variant: keyof PaymasterVariantParams; + parameters: PaymasterVariantParams[PaymasterOpts["variant"]]; +} diff --git a/src/v06/account/hooks/requestSignature/ethers.ts b/src/v06/account/hooks/requestSignature/ethers.ts new file mode 100644 index 0000000..1a0df2f --- /dev/null +++ b/src/v06/account/hooks/requestSignature/ethers.ts @@ -0,0 +1,18 @@ +import { ethers } from "ethers"; +import { RequestSignatureFunc } from "../types"; +import { Hex } from "viem"; + +export const withEthersSigner = ( + signer: ethers.Signer, +): RequestSignatureFunc => { + const dummy = ethers.Wallet.createRandom(); + return async (type, message) => { + switch (type) { + case "dummy": + return dummy.signMessage(ethers.getBytes(message)) as Promise; + + case "final": + return signer.signMessage(ethers.getBytes(message)) as Promise; + } + }; +}; diff --git a/src/v06/account/hooks/requestSignature/index.ts b/src/v06/account/hooks/requestSignature/index.ts new file mode 100644 index 0000000..ed22760 --- /dev/null +++ b/src/v06/account/hooks/requestSignature/index.ts @@ -0,0 +1,2 @@ +export * from "./ethers"; +export * from "./viem"; diff --git a/src/v06/account/hooks/requestSignature/viem.ts b/src/v06/account/hooks/requestSignature/viem.ts new file mode 100644 index 0000000..24b523c --- /dev/null +++ b/src/v06/account/hooks/requestSignature/viem.ts @@ -0,0 +1,30 @@ +import { WalletClient, Account, Transport, Chain } from "viem"; +import { privateKeyToAccount, generatePrivateKey } from "viem/accounts"; +import { RequestSignatureFunc } from "../types"; + +export const withViemWalletClient = ( + ...args: W["account"] extends Account + ? [client: W] + : [client: W, account: Account] +): RequestSignatureFunc => { + const dummy = privateKeyToAccount(generatePrivateKey()); + return async (type, message) => { + switch (type) { + case "dummy": { + return dummy.signMessage({ message: { raw: message } }); + } + + case "final": { + const [client, account] = args; + if (account) { + return client.signMessage({ account, message: { raw: message } }); + } + return ( + client as WalletClient + ).signMessage({ + message: { raw: message }, + }); + } + } + }; +}; diff --git a/src/v06/account/hooks/types.ts b/src/v06/account/hooks/types.ts new file mode 100644 index 0000000..f233993 --- /dev/null +++ b/src/v06/account/hooks/types.ts @@ -0,0 +1,46 @@ +import { + Abi, + ExtractAbiFunctionNames, + ExtractAbiFunction, + AbiParametersToPrimitiveTypes, +} from "abitype"; +import { Hex, Address, RpcStateOverride } from "viem"; +import * as EntryPoint from "../../entryPoint"; + +export type SetFactoryDataFunc = ( + salt: bigint, + encoder: >( + method: M, + inputs: AbiParametersToPrimitiveTypes["inputs"]>, + ) => Hex, +) => Hex; + +export type RequestSignatureFunc = ( + type: "dummy" | "final", + message: Hex, +) => Promise; + +export type RequestGasPriceFunc = () => Promise< + Pick +>; + +export type RequestGasValuesFunc = ( + userop: EntryPoint.UserOperation, + entryPoint: Address, + stateOverrideSet?: RpcStateOverride, +) => Promise< + Pick< + EntryPoint.UserOperation, + "preVerificationGas" | "verificationGasLimit" | "callGasLimit" + > +>; + +export type RequestPaymasterFunc = ( + userop: EntryPoint.UserOperation, + entryPoint: Address, +) => Promise< + Pick & + Partial +>; + +export type OnBuildFunc = (userop: EntryPoint.UserOperation) => void; diff --git a/src/v06/account/index.ts b/src/v06/account/index.ts new file mode 100644 index 0000000..d35e99f --- /dev/null +++ b/src/v06/account/index.ts @@ -0,0 +1,4 @@ +export * as CommonConfigs from "./commonConfigs"; +export * as Hooks from "./hooks"; +export * from "./instance"; +export * from "./types"; diff --git a/src/v06/account/instance.ts b/src/v06/account/instance.ts new file mode 100644 index 0000000..a8ecc10 --- /dev/null +++ b/src/v06/account/instance.ts @@ -0,0 +1,329 @@ +import { + Abi, + ExtractAbiFunctionNames, + ExtractAbiFunction, + AbiParametersToPrimitiveTypes, +} from "abitype"; +import { + Address, + concat, + encodeFunctionData, + PublicClient, + BaseError, + ContractFunctionRevertedError, + RpcStateOverride, + Hex, + zeroAddress, +} from "viem"; +import { JsonRpcProvider, Contract } from "ethers"; +import { + AccountOpts, + BuildUserOperationResponse, + SendUserOperationResponse, +} from "./types"; +import * as Hooks from "./hooks"; +import * as Bundler from "../bundler"; +import * as EntryPoint from "../entryPoint"; + +export class Instance { + private readonly accountAbi: A; + private readonly factoryAbi: F; + private readonly factoryAddress: Address; + private readonly entryPointAddress: Address; + private readonly ethClient: PublicClient | JsonRpcProvider; + private readonly bundlerClient: PublicClient | JsonRpcProvider; + + private salt: bigint; + private waitTimeoutMs: number; + private waitIntervalMs: number; + private sender: `0x${string}` = zeroAddress; + private initCode: Hex = "0x"; + private callData: Hex = "0x"; + private nonceKey = 0n; + private stateOverrideSet?: RpcStateOverride; + + private setFactoryData: Hooks.SetFactoryDataFunc; + private requestSignature: Hooks.RequestSignatureFunc; + private requestGasPrice: Hooks.RequestGasPriceFunc; + private requestGasValues: Hooks.RequestGasValuesFunc; + private requestPaymaster?: Hooks.RequestPaymasterFunc; + private onBuild?: Hooks.OnBuildFunc; + + constructor(opts: AccountOpts) { + this.accountAbi = opts.accountAbi; + this.factoryAbi = opts.factoryAbi; + this.factoryAddress = opts.factoryAddress; + this.entryPointAddress = + opts.entryPointAddress ?? EntryPoint.DEFAULT_ADDRESS; + this.ethClient = opts.ethClient; + this.bundlerClient = opts.bundlerClient ?? this.ethClient; + + this.salt = opts.salt ?? 0n; + this.waitTimeoutMs = opts.waitTimeoutMs ?? 60000; + this.waitIntervalMs = opts.waitIntervalMs ?? 3000; + + this.setFactoryData = opts.setFactoryData; + this.requestSignature = opts.requestSignature; + this.requestGasPrice = + opts.requestGasPrice ?? + Hooks.RequestGasPrice.withEthClient(this.ethClient); + this.requestGasValues = + opts.requestGasValues ?? + Hooks.RequestGasValues.withEthClient(this.bundlerClient); + this.requestPaymaster = opts.requestPaymaster; + this.onBuild = opts.onBuild; + } + + private getInitCode(): Hex { + if (this.initCode === "0x") { + this.initCode = concat([ + this.factoryAddress, + this.setFactoryData(this.salt, (method, inputs) => { + return encodeFunctionData({ + abi: this.factoryAbi as Abi, + functionName: method as string, + args: inputs as unknown[], + }); + }), + ]); + } + + return this.initCode; + } + + private async getChainId(): Promise { + if (this.ethClient instanceof JsonRpcProvider) { + const network = await this.ethClient.getNetwork(); + return Number(network.chainId); + } + return this.ethClient.getChainId(); + } + + private async getByteCode(address: Address): Promise { + if (this.ethClient instanceof JsonRpcProvider) { + return this.ethClient.getCode(address); + } + return this.ethClient.getBytecode({ address }); + } + + private async resolveSenderMeta(): Promise< + Pick + > { + const sender = await this.getSender(); + const [nonce, code] = await Promise.all([ + this.getNonce(), + this.getByteCode(sender), + ]); + + return { + nonce, + initCode: code === undefined ? this.getInitCode() : "0x", + }; + } + + getWaitTimeoutMs(): number { + return this.waitTimeoutMs; + } + + setWaitTimeoutMs(time: number): Instance { + this.waitTimeoutMs = time; + return this; + } + + getWaitIntervalMs(): number { + return this.waitIntervalMs; + } + + setWaitIntervalMs(time: number): Instance { + this.waitIntervalMs = time; + return this; + } + + getSalt(): bigint { + return this.salt; + } + + setSalt(salt: bigint): Instance { + this.salt = salt; + this.sender = zeroAddress; + this.initCode = "0x"; + return this; + } + + getNonceKey(): bigint { + return this.nonceKey; + } + + setNonceKey(key: bigint): Instance { + this.nonceKey = key; + return this; + } + + async getNonce(): Promise { + if (this.ethClient instanceof JsonRpcProvider) { + return new Contract( + this.entryPointAddress, + EntryPoint.CONTRACT_ABI, + this.ethClient, + ).getNonce(await this.getSender(), this.nonceKey); + } + return this.ethClient.readContract({ + address: this.entryPointAddress, + abi: EntryPoint.CONTRACT_ABI, + functionName: "getNonce", + args: [await this.getSender(), this.nonceKey], + }); + } + + setStateOverrideSetForEstimate( + stateOverrideSet: RpcStateOverride, + ): Instance { + this.stateOverrideSet = stateOverrideSet; + return this; + } + + clearStateOverrideSetForEstimate(): Instance { + this.stateOverrideSet = undefined; + return this; + } + + async getSender(): Promise
{ + if (this.sender !== zeroAddress) { + return this.sender; + } + + if (this.ethClient instanceof JsonRpcProvider) { + try { + await new Contract( + this.entryPointAddress, + EntryPoint.CONTRACT_ABI, + this.ethClient, + ).getSenderAddress.staticCall(this.getInitCode()); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } catch (error: any) { + const addr = error?.revert?.args?.[0]; + if (!addr) throw error; + this.sender = addr; + } + } else { + try { + await this.ethClient.simulateContract({ + address: this.entryPointAddress, + abi: EntryPoint.CONTRACT_ABI, + functionName: "getSenderAddress", + args: [this.getInitCode()], + }); + } catch (error) { + if (error instanceof BaseError) { + const revertError = error.walk( + (err) => err instanceof ContractFunctionRevertedError, + ); + + if (revertError instanceof ContractFunctionRevertedError) { + this.sender = revertError.data?.args?.[0] as Address; + } else { + throw error; + } + } else { + throw error; + } + } + } + + return this.sender; + } + + encodeCallData>( + method: M, + inputs: AbiParametersToPrimitiveTypes["inputs"]>, + ): Instance { + this.callData = encodeFunctionData({ + abi: this.accountAbi as Abi, + functionName: method as string, + args: inputs as unknown[], + }); + return this; + } + + async buildUserOperation(): Promise { + const callData = this.callData; + this.callData = "0x"; + + const [sender, senderMeta, gasPrice, signature, chainId] = + await Promise.all([ + this.getSender(), + this.resolveSenderMeta(), + this.requestGasPrice(), + this.requestSignature("dummy", "0xdead"), + this.getChainId(), + ]); + const init: EntryPoint.UserOperation = { + ...EntryPoint.DEFAULT_USEROP, + sender, + ...senderMeta, + ...gasPrice, + callData, + signature, + }; + + const est = await this.requestGasValues( + init, + this.entryPointAddress, + this.stateOverrideSet, + ); + const useropWithGas: EntryPoint.UserOperation = { ...init, ...est }; + + const pm = + this.requestPaymaster != undefined + ? await this.requestPaymaster(useropWithGas, this.entryPointAddress) + : {}; + const userOpWithPM: EntryPoint.UserOperation = { + ...useropWithGas, + ...pm, + }; + + const userOpHash = EntryPoint.calculateUserOpHash( + userOpWithPM, + this.entryPointAddress, + chainId, + ); + const userOperation = { + ...userOpWithPM, + signature: await this.requestSignature("final", userOpHash), + }; + this.onBuild?.(userOperation); + return { userOperation, userOpHash }; + } + + async sendUserOperation(): Promise { + const build = await this.buildUserOperation(); + const userOpHash = await Bundler.SendUserOperationWithEthClient( + build.userOperation, + this.entryPointAddress, + this.bundlerClient, + ); + + return { + userOpHash, + wait: async () => { + let receipt = null; + const end = Date.now() + this.waitTimeoutMs; + while (Date.now() < end) { + receipt = await Bundler.GetUserOperationReceiptWithEthClient( + userOpHash, + this.bundlerClient, + ); + if (receipt != null) { + return receipt; + } + + await new Promise((resolve) => + setTimeout(resolve, this.waitIntervalMs), + ); + } + + return receipt; + }, + }; + } +} diff --git a/src/v06/account/types.ts b/src/v06/account/types.ts new file mode 100644 index 0000000..5e9687e --- /dev/null +++ b/src/v06/account/types.ts @@ -0,0 +1,51 @@ +import { Abi } from "abitype"; +import { Hex, Address, PublicClient } from "viem"; +import { JsonRpcProvider } from "ethers"; +import * as Hooks from "./hooks"; +import * as Bundler from "../bundler"; +import * as EntryPoint from "../entryPoint"; + +export interface BuildUserOperationResponse { + userOperation: EntryPoint.UserOperation; + userOpHash: Hex; +} + +export interface SendUserOperationResponse { + userOpHash: Hex; + wait: () => Promise; +} + +export interface AccountOpts { + // Required global values + accountAbi: A; + factoryAbi: F; + factoryAddress: Address; + ethClient: PublicClient | JsonRpcProvider; + + // Optional global values + bundlerClient?: PublicClient | JsonRpcProvider; + entryPointAddress?: Address; + salt?: bigint; + waitTimeoutMs?: number; + waitIntervalMs?: number; + + // Required hook methods + setFactoryData: Hooks.SetFactoryDataFunc; + requestSignature: Hooks.RequestSignatureFunc; + + // Optional hook methods + requestGasPrice?: Hooks.RequestGasPriceFunc; + requestGasValues?: Hooks.RequestGasValuesFunc; + requestPaymaster?: Hooks.RequestPaymasterFunc; + onBuild?: Hooks.OnBuildFunc; +} + +export type RequiredAccountOpts = Pick< + AccountOpts, + | "accountAbi" + | "factoryAbi" + | "factoryAddress" + | "ethClient" + | "setFactoryData" + | "requestSignature" +>; diff --git a/src/v06/bundler/common.ts b/src/v06/bundler/common.ts new file mode 100644 index 0000000..1e0c005 --- /dev/null +++ b/src/v06/bundler/common.ts @@ -0,0 +1,32 @@ +import { Address, PublicClient, Hash } from "viem"; +import { JsonRpcProvider } from "ethers"; +import * as EntryPoint from "../entryPoint"; +import { UserOperationReceipt } from "./types"; + +export const SendUserOperationWithEthClient = async ( + userOp: EntryPoint.UserOperation, + entryPoint: Address, + ethClient: PublicClient | JsonRpcProvider, +): Promise => { + return ethClient instanceof JsonRpcProvider + ? ethClient.send("eth_sendUserOperation", [ + EntryPoint.toRawUserOperation(userOp), + entryPoint, + ]) + : ethClient.transport.request({ + method: "eth_sendUserOperation", + params: [userOp, entryPoint], + }); +}; + +export const GetUserOperationReceiptWithEthClient = async ( + userOpHash: Hash, + ethClient: PublicClient | JsonRpcProvider, +): Promise => { + return ethClient instanceof JsonRpcProvider + ? ethClient.send("eth_getUserOperationReceipt", [userOpHash]) + : ethClient.transport.request({ + method: "eth_getUserOperationReceipt", + params: [userOpHash], + }); +}; diff --git a/src/v06/bundler/index.ts b/src/v06/bundler/index.ts new file mode 100644 index 0000000..67ca493 --- /dev/null +++ b/src/v06/bundler/index.ts @@ -0,0 +1,2 @@ +export * from "./common"; +export * from "./types"; diff --git a/src/v06/bundler/types.ts b/src/v06/bundler/types.ts new file mode 100644 index 0000000..4bc8dc5 --- /dev/null +++ b/src/v06/bundler/types.ts @@ -0,0 +1,14 @@ +import { Hex, Address, Hash, TransactionReceipt, Log } from "viem"; + +export interface UserOperationReceipt { + userOpHash: Hash; + sender: Address; + paymaster: Address; + nonce: Hex; + success: boolean; + actualGasCost: Hex; + actualGasUsed: Hex; + from: Address; + receipt: TransactionReceipt; + logs: Array; +} diff --git a/src/typechain/factories/EntryPoint__factory.ts b/src/v06/entryPoint/abi/EntryPoint.ts similarity index 97% rename from src/typechain/factories/EntryPoint__factory.ts rename to src/v06/entryPoint/abi/EntryPoint.ts index 7e5a942..a946aef 100644 --- a/src/typechain/factories/EntryPoint__factory.ts +++ b/src/v06/entryPoint/abi/EntryPoint.ts @@ -1,12 +1,4 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { EntryPoint, EntryPointInterface } from "../EntryPoint"; - -const _abi = [ +export const EntryPoint = [ { inputs: [ { @@ -1315,16 +1307,3 @@ const _abi = [ type: "receive", }, ] as const; - -export class EntryPoint__factory { - static readonly abi = _abi; - static createInterface(): EntryPointInterface { - return new utils.Interface(_abi) as EntryPointInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): EntryPoint { - return new Contract(address, _abi, signerOrProvider) as EntryPoint; - } -} diff --git a/src/v06/entryPoint/abi/index.ts b/src/v06/entryPoint/abi/index.ts new file mode 100644 index 0000000..4971639 --- /dev/null +++ b/src/v06/entryPoint/abi/index.ts @@ -0,0 +1 @@ +export * from "./EntryPoint"; diff --git a/src/v06/entryPoint/constants.ts b/src/v06/entryPoint/constants.ts new file mode 100644 index 0000000..64ffcd8 --- /dev/null +++ b/src/v06/entryPoint/constants.ts @@ -0,0 +1,19 @@ +import { zeroAddress } from "viem"; +import { UserOperation } from "./types"; +import { EntryPoint } from "./abi"; + +export const CONTRACT_ABI = EntryPoint; +export const DEFAULT_ADDRESS = "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"; +export const DEFAULT_USEROP: UserOperation = { + sender: zeroAddress, + nonce: 0n, + initCode: "0x", + callData: "0x", + callGasLimit: 0n, + verificationGasLimit: 0n, + preVerificationGas: 0n, + maxFeePerGas: 0n, + maxPriorityFeePerGas: 0n, + paymasterAndData: "0x", + signature: "0x", +}; diff --git a/src/v06/entryPoint/index.ts b/src/v06/entryPoint/index.ts new file mode 100644 index 0000000..227a133 --- /dev/null +++ b/src/v06/entryPoint/index.ts @@ -0,0 +1,3 @@ +export * from "./constants"; +export * from "./types"; +export * from "./utils"; diff --git a/src/v06/entryPoint/types.ts b/src/v06/entryPoint/types.ts new file mode 100644 index 0000000..b1bea04 --- /dev/null +++ b/src/v06/entryPoint/types.ts @@ -0,0 +1,29 @@ +import { Hex, Address } from "viem"; + +export interface UserOperation { + sender: Address; + nonce: bigint; + initCode: Hex; + callData: Hex; + callGasLimit: bigint; + verificationGasLimit: bigint; + preVerificationGas: bigint; + maxFeePerGas: bigint; + maxPriorityFeePerGas: bigint; + paymasterAndData: Hex; + signature: Hex; +} + +export interface RawUserOperation { + sender: Address; + nonce: Hex; + initCode: Hex; + callData: Hex; + callGasLimit: Hex; + verificationGasLimit: Hex; + preVerificationGas: Hex; + maxFeePerGas: Hex; + maxPriorityFeePerGas: Hex; + paymasterAndData: Hex; + signature: Hex; +} diff --git a/src/v06/entryPoint/utils.ts b/src/v06/entryPoint/utils.ts new file mode 100644 index 0000000..8c6ab8a --- /dev/null +++ b/src/v06/entryPoint/utils.ts @@ -0,0 +1,55 @@ +import { + Address, + numberToHex, + encodeAbiParameters, + parseAbiParameters, + keccak256, +} from "viem"; +import { RawUserOperation, UserOperation } from "./types"; + +export const calculateUserOpHash = ( + userop: UserOperation, + entryPoint: Address, + chainId: number, +) => { + const packed = encodeAbiParameters( + parseAbiParameters( + "address, uint256, bytes32, bytes32, uint256, uint256, uint256, uint256, uint256, bytes32", + ), + [ + userop.sender, + userop.nonce, + keccak256(userop.initCode), + keccak256(userop.callData), + userop.callGasLimit, + userop.verificationGasLimit, + userop.preVerificationGas, + userop.maxFeePerGas, + userop.maxPriorityFeePerGas, + keccak256(userop.paymasterAndData), + ], + ); + + const enc = encodeAbiParameters( + parseAbiParameters("bytes32, address, uint256"), + [keccak256(packed), entryPoint, BigInt(chainId)], + ); + + return keccak256(enc); +}; + +export const toRawUserOperation = (userop: UserOperation): RawUserOperation => { + return { + sender: userop.sender, + nonce: numberToHex(userop.nonce), + initCode: userop.initCode, + callData: userop.callData, + callGasLimit: numberToHex(userop.callGasLimit), + verificationGasLimit: numberToHex(userop.verificationGasLimit), + preVerificationGas: numberToHex(userop.preVerificationGas), + maxFeePerGas: numberToHex(userop.maxFeePerGas), + maxPriorityFeePerGas: numberToHex(userop.maxPriorityFeePerGas), + paymasterAndData: userop.paymasterAndData, + signature: userop.signature, + }; +}; diff --git a/src/v06/index.ts b/src/v06/index.ts new file mode 100644 index 0000000..cc117c2 --- /dev/null +++ b/src/v06/index.ts @@ -0,0 +1,3 @@ +export * as Account from "./account"; +export * as Bundler from "./bundler"; +export * as EntryPoint from "./entryPoint"; diff --git a/tsconfig.json b/tsconfig.json index cc7fde9..388f67c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,7 +11,7 @@ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ - "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + "target": "es2020" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ @@ -100,5 +100,5 @@ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, - "exclude": ["dist", "**/*.test.ts"] + "exclude": ["dist", "src/test"] } diff --git a/yarn.lock b/yarn.lock index 2997edc..99454c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,21 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@adraffy/ens-normalize@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7" + integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== + +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + "@ampproject/remapping@^2.2.0": version "2.2.1" resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz" @@ -17,11 +32,24 @@ dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== + dependencies: + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" + "@babel/compat-data@^7.21.4": version "7.21.4" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz" integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== +"@babel/compat-data@^7.23.5": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.1.tgz#31c1f66435f2a9c329bb5716a6d6186c516c3742" + integrity sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA== + "@babel/core@^7.11.6", "@babel/core@^7.12.3": version "7.21.4" resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz" @@ -43,6 +71,27 @@ json5 "^2.2.2" semver "^6.3.0" +"@babel/core@^7.23.9": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.1.tgz#b802f931b6498dcb8fed5a4710881a45abbc2784" + integrity sha512-F82udohVyIgGAY2VVj/g34TpFUG606rumIHjTfVbssPg2zTR7PuuEpZcX8JA6sgBfIYmJrFtWgPvHQuJamVqZQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.24.1" + "@babel/parser" "^7.24.1" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/generator@^7.21.4", "@babel/generator@^7.7.2": version "7.21.4" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz" @@ -53,6 +102,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.1.tgz#e67e06f68568a4ebf194d1c6014235344f0476d0" + integrity sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A== + dependencies: + "@babel/types" "^7.24.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + "@babel/helper-compilation-targets@^7.21.4": version "7.21.4" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz" @@ -64,11 +123,27 @@ lru-cache "^5.1.1" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@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" + "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + "@babel/helper-function-name@^7.21.0": version "7.21.0" resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz" @@ -77,6 +152,14 @@ "@babel/template" "^7.20.7" "@babel/types" "^7.21.0" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" @@ -84,6 +167,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-module-imports@^7.18.6": version "7.21.4" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz" @@ -91,6 +181,13 @@ dependencies: "@babel/types" "^7.21.4" +"@babel/helper-module-imports@^7.22.15": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.1.tgz#961ea2c12aad6cfc75b8c396c81608a08283027b" + integrity sha512-HfEWzysMyOa7xI5uQHc/OcZf67/jc+xe/RZlznWQHhbb8Pg1SkRdbK4yEi61aY8wxQA7PkSfoojtLQP/Kpe3og== + dependencies: + "@babel/types" "^7.24.0" + "@babel/helper-module-transforms@^7.21.2": version "7.21.2" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz" @@ -105,6 +202,17 @@ "@babel/traverse" "^7.21.2" "@babel/types" "^7.21.2" +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@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/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0": version "7.20.2" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz" @@ -117,6 +225,13 @@ dependencies: "@babel/types" "^7.20.2" +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" @@ -124,21 +239,43 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-string-parser@^7.19.4": version "7.19.4" resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.23.4": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== + "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-option@^7.21.0": version "7.21.0" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + "@babel/helpers@^7.21.0": version "7.21.0" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz" @@ -148,6 +285,15 @@ "@babel/traverse" "^7.21.0" "@babel/types" "^7.21.0" +"@babel/helpers@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.1.tgz#183e44714b9eba36c3038e442516587b1e0a1a94" + integrity sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" + "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" @@ -157,11 +303,26 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26" + integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4": version "7.21.4" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz" integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== +"@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.1.tgz#1e416d3627393fab1cb5b0f2f1796a100ae9133a" + integrity sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg== + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" @@ -269,7 +430,16 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.7.2": +"@babel/template@^7.22.15", "@babel/template@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4": version "7.21.4" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz" integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q== @@ -285,6 +455,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c" + integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== + dependencies: + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" + "@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.24.1" + "@babel/types" "^7.24.0" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.21.4" resolved "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz" @@ -294,31 +480,40 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint-community/eslint-utils@^4.2.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0": - version "4.5.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz" - integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.2" + espree "^9.6.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -326,365 +521,18 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.42.0": - version "8.42.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" - integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== - -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" - integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== - dependencies: - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" - integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/networks" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" - integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" - integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - -"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" - integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" - integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" - integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - bn.js "^5.2.1" - -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" - integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" - integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - -"@ethersproject/contracts@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz" - integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== - dependencies: - "@ethersproject/abi" "^5.7.0" - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" - integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/base64" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" - integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" - integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" - integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - js-sha3 "0.8.0" - -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" - integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== - -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": - version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" - integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" - integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" - integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/providers@5.7.2": - version "5.7.2" - resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" - integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/base64" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/networks" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - bech32 "1.1.4" - ws "7.4.6" - -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" - integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" - integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" - integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" - integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - bn.js "^5.2.1" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/solidity@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz" - integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" - integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" - integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== - dependencies: - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - -"@ethersproject/units@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz" - integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/wallet@5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" - integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/json-wallets" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": - version "5.7.1" - resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" - integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== - dependencies: - "@ethersproject/base64" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": - version "5.7.0" - resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" - integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@faker-js/faker@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-8.0.2.tgz#bab698c5d3da9c52744e966e0e3eedb6c8b05c37" - integrity sha512-Uo3pGspElQW91PCvKSIAXoEgAUlRnH29sX2/p89kg7sP1m2PzCufHINd0FhTXQf6DYGiUlVncdSPa2F9wxed2A== +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -692,10 +540,10 @@ resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -720,66 +568,66 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2": +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz" - integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" -"@jest/core@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz" - integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== dependencies: - "@jest/console" "^29.5.0" - "@jest/reporters" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.5.0" - jest-config "^29.5.0" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-resolve-dependencies "^29.5.0" - jest-runner "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - jest-watcher "^29.5.0" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.7.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz" - integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== dependencies: - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.5.0" + jest-mock "^29.7.0" "@jest/expect-utils@^29.5.0": version "29.5.0" @@ -788,47 +636,54 @@ dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz" - integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== dependencies: - expect "^29.5.0" - jest-snapshot "^29.5.0" + jest-get-type "^29.6.3" -"@jest/fake-timers@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz" - integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== dependencies: - "@jest/types" "^29.5.0" + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" -"@jest/globals@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz" - integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/types" "^29.5.0" - jest-mock "^29.5.0" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" -"@jest/reporters@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz" - integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -836,13 +691,13 @@ glob "^7.1.3" graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" + istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -855,51 +710,58 @@ dependencies: "@sinclair/typebox" "^0.25.16" -"@jest/source-map@^29.4.3": - version "29.4.3" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz" - integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== dependencies: - "@jridgewell/trace-mapping" "^0.3.15" + "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz" - integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== dependencies: - "@jest/console" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz" - integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== dependencies: - "@jest/test-result" "^29.5.0" + "@jest/test-result" "^29.7.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.7.0" slash "^3.0.0" -"@jest/transform@^29.5.0": - version "29.5.0" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz" - integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -917,6 +779,18 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" @@ -926,27 +800,46 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@3.1.0": version "3.1.0" resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + "@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.18" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz" integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== @@ -954,13 +847,30 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@morgan-stanley/ts-mocking-bird@^0.6.2": - version "0.6.4" - resolved "https://registry.npmjs.org/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz" - integrity sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA== +"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@noble/curves@1.2.0", "@noble/curves@~1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== dependencies: - lodash "^4.17.16" - uuid "^7.0.3" + "@noble/hashes" "1.3.2" + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@noble/hashes@~1.3.0", "@noble/hashes@~1.3.2": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -988,11 +898,38 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@scure/base@~1.1.0", "@scure/base@~1.1.2": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" + integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== + +"@scure/bip32@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.2.tgz#90e78c027d5e30f0b22c1f8d50ff12f3fb7559f8" + integrity sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA== + dependencies: + "@noble/curves" "~1.2.0" + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.2" + +"@scure/bip39@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" + integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== + dependencies: + "@noble/hashes" "~1.3.0" + "@scure/base" "~1.1.0" + "@sinclair/typebox@^0.25.16": version "0.25.24" resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz" integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + "@sinonjs/commons@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz" @@ -1007,14 +944,6 @@ dependencies: "@sinonjs/commons" "^2.0.0" -"@typechain/ethers-v5@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-11.0.0.tgz#8a11b34a386a30eed34375d05a09f893f7df838f" - integrity sha512-JDAvOjtzGuEQukgArIEseHznS2+v+vG3TpfODjNj4tu1kgmVu66G9gk7THOO04HJ5q+OJSLx9b46lc3GRGPIVA== - dependencies: - lodash "^4.17.15" - ts-essentials "^7.0.1" - "@types/babel__core@^7.1.14": version "7.20.0" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz" @@ -1048,20 +977,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/bn.js@*": - version "5.1.4" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.4.tgz#0853d5f92dfdbc8fe1ae60700411a60845fa7d27" - integrity sha512-ZtBd9L8hVtoBpPMSWfbwjC4dhQtJdlPS+e1A0Rydb7vg7bDcUwiRklPx24sMYtXcmAMST/k0Wze7JLbNU/5SkA== - dependencies: - "@types/node" "*" - -"@types/elliptic@^6.4.16": - version "6.4.16" - resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.16.tgz#3a28a7d14e26f9e786d71f2a895ac493e7c8a3be" - integrity sha512-MSN6m9BR51W1/umzcsX0K9dAmJ59ECKxOjZ3XsjvsZAt+q0mTmKlzEdwtU+u4i+Om231d8TuY3xK6FAGIs5MbA== - dependencies: - "@types/bn.js" "*" - "@types/graceful-fs@^4.1.3": version "4.1.6" resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz" @@ -1088,33 +1003,33 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.2": - version "29.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.2.tgz#86b4afc86e3a8f3005b297ed8a72494f89e6395b" - integrity sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg== +"@types/jest@^29.5.12": + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== dependencies: expect "^29.0.0" pretty-format "^29.0.0" -"@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/node@*": version "18.15.11" resolved "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz" integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== -"@types/prettier@^2.1.1", "@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== -"@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== +"@types/semver@^7.5.0": + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== "@types/stack-utils@^2.0.0": version "2.0.1" @@ -1133,106 +1048,118 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" - integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== +"@typescript-eslint/eslint-plugin@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.3.1.tgz#0d8f38a6c8a1802139e62184ee7a68ed024f30a1" + integrity sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw== dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/type-utils" "5.59.9" - "@typescript-eslint/utils" "5.59.9" + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "7.3.1" + "@typescript-eslint/type-utils" "7.3.1" + "@typescript-eslint/utils" "7.3.1" + "@typescript-eslint/visitor-keys" "7.3.1" debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" - integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== - dependencies: - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.3.1.tgz#c4ba7dc2744318a5e4506596cbc3a0086255c526" + integrity sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw== + dependencies: + "@typescript-eslint/scope-manager" "7.3.1" + "@typescript-eslint/types" "7.3.1" + "@typescript-eslint/typescript-estree" "7.3.1" + "@typescript-eslint/visitor-keys" "7.3.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz#eadce1f2733389cdb58c49770192c0f95470d2f4" - integrity sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ== +"@typescript-eslint/scope-manager@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz#73fd0cb4211a7be23e49e5b6efec8820caa6ec36" + integrity sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag== dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" + "@typescript-eslint/types" "7.3.1" + "@typescript-eslint/visitor-keys" "7.3.1" -"@typescript-eslint/type-utils@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz#53bfaae2e901e6ac637ab0536d1754dfef4dafc2" - integrity sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q== +"@typescript-eslint/type-utils@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.3.1.tgz#cbf90d3d7e788466aa8a5c0ab3f46103f098aa0d" + integrity sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw== dependencies: - "@typescript-eslint/typescript-estree" "5.59.9" - "@typescript-eslint/utils" "5.59.9" + "@typescript-eslint/typescript-estree" "7.3.1" + "@typescript-eslint/utils" "7.3.1" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" -"@typescript-eslint/types@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.9.tgz#3b4e7ae63718ce1b966e0ae620adc4099a6dcc52" - integrity sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw== +"@typescript-eslint/types@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.3.1.tgz#ae104de8efa4227a462c0874d856602c5994413c" + integrity sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw== -"@typescript-eslint/typescript-estree@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz#6bfea844e468427b5e72034d33c9fffc9557392b" - integrity sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA== +"@typescript-eslint/typescript-estree@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz#598848195fad34c7aa73f548bd00a4d4e5f5e2bb" + integrity sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ== dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" + "@typescript-eslint/types" "7.3.1" + "@typescript-eslint/visitor-keys" "7.3.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.3.1.tgz#fc28fd508ccf89495012561b7c02a6fdad162460" + integrity sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "7.3.1" + "@typescript-eslint/types" "7.3.1" + "@typescript-eslint/typescript-estree" "7.3.1" + semver "^7.5.4" + +"@typescript-eslint/visitor-keys@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz#6ddef14a3ce2a79690f01176f5305c34d7b93d8c" + integrity sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw== + dependencies: + "@typescript-eslint/types" "7.3.1" + eslint-visitor-keys "^3.4.1" -"@typescript-eslint/utils@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.9.tgz#adee890107b5ffe02cd46fdaa6c2125fb3c6c7c4" - integrity sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz#9f86ef8e95aca30fb5a705bb7430f95fc58b146d" - integrity sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q== - dependencies: - "@typescript-eslint/types" "5.59.9" - eslint-visitor-keys "^3.3.0" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +abitype@1.0.0, abitype@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.0.tgz#237176dace81d90d018bebf3a45cb42f2a2d9e97" + integrity sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ== acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" - integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== -ajv@^6.10.0, ajv@^6.12.4: +ajv@^6.12.4: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1303,30 +1230,20 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-back@^3.0.1, array-back@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" - integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== - -array-back@^4.0.1, array-back@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" - integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== - array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -babel-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz" - integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== dependencies: - "@jest/transform" "^29.5.0" + "@jest/transform" "^29.7.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.5.0" + babel-preset-jest "^29.6.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -1342,10 +1259,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz" - integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -1370,12 +1287,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz" - integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== dependencies: - babel-plugin-jest-hoist "^29.5.0" + babel-plugin-jest-hoist "^29.6.3" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1383,21 +1300,6 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -bech32@1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" - integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== - -bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -1420,11 +1322,6 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - browserslist@^4.21.3: version "4.21.5" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz" @@ -1435,6 +1332,16 @@ browserslist@^4.21.3: node-releases "^2.0.8" update-browserslist-db "^1.0.10" +browserslist@^4.22.2: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + bs-logger@0.x: version "0.2.6" resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" @@ -1474,6 +1381,11 @@ caniuse-lite@^1.0.30001449: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001476.tgz" integrity sha512-JmpktFppVSvyUN4gsLS0bShY2L9ZUslHLE72vgemBkS43JD2fOvKTKs+GtRwuxrtRGnwJFW0ye7kWRRlLJS9vQ== +caniuse-lite@^1.0.30001587: + version "1.0.30001599" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz#571cf4f3f1506df9bf41fcbb6d10d5d017817bce" + integrity sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA== + chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -1483,7 +1395,7 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1549,26 +1461,6 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -command-line-args@^5.1.1: - version "5.2.1" - resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz" - integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== - dependencies: - array-back "^3.1.0" - find-replace "^3.0.0" - lodash.camelcase "^4.3.0" - typical "^4.0.0" - -command-line-usage@^6.1.0: - version "6.1.3" - resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz" - integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== - dependencies: - array-back "^4.0.2" - chalk "^2.4.2" - table-layout "^1.0.2" - typical "^5.2.0" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" @@ -1584,6 +1476,19 @@ convert-source-map@^2.0.0: resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -1600,15 +1505,10 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deep-extend@~0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== deep-is@^0.1.3: version "0.1.4" @@ -1630,9 +1530,14 @@ diff-sequences@^29.4.3: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz" integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" @@ -1654,18 +1559,10 @@ electron-to-chromium@^1.4.284: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.356.tgz" integrity sha512-nEftV1dRX3omlxAj42FwqRZT0i4xd2dIg39sog/CnCJeCcL1TRd2Uh0i9Oebgv8Ou0vzTPw++xc+Z20jzS2B6A== -elliptic@6.5.4, elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" +electron-to-chromium@^1.4.668: + version "1.4.711" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.711.tgz#f9fd04007878cc27ac327d5c6ce300f8b516f635" + integrity sha512-hRg81qzvUEibX2lDxnFlVCHACa+LtrCPIsWAxo161LDYIB3jauf57RGsMZV9mvGwE98yGH06icj3zBEoOkxd/w== emittery@^0.13.1: version "0.13.1" @@ -1709,35 +1606,15 @@ escape-string-regexp@^4.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== - -eslint-plugin-unused-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz" - integrity sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A== - dependencies: - eslint-rule-composer "^0.3.0" - -eslint-rule-composer@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz" - integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -1747,27 +1624,33 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint@^8.42.0: - version "8.42.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" - integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== +eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.57.0: + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.42.0" - "@humanwhocodes/config-array" "^0.11.10" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.5.2" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -1777,7 +1660,6 @@ eslint@^8.42.0: globals "^13.19.0" graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" @@ -1787,17 +1669,16 @@ eslint@^8.42.0: lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" + optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^8.8.0" + acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" @@ -1820,11 +1701,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" @@ -1835,41 +1711,18 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -ethers@^5.7.2: - version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" +ethers@^6.11.1: + version "6.11.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.11.1.tgz#96aae00b627c2e35f9b0a4d65c7ab658259ee6af" + integrity sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.5.0" execa@^5.0.0: version "5.1.1" @@ -1891,7 +1744,7 @@ exit@^0.1.2: resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.0.0, expect@^29.5.0: +expect@^29.0.0: version "29.5.0" resolved "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz" integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== @@ -1902,15 +1755,26 @@ expect@^29.0.0, expect@^29.5.0: jest-message-util "^29.5.0" jest-util "^29.5.0" +expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -1956,13 +1820,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -find-replace@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz" - integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== - dependencies: - array-back "^3.0.1" - find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" @@ -2000,15 +1857,6 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" @@ -2046,7 +1894,7 @@ get-stream@^6.0.0: glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" @@ -2058,28 +1906,16 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@7.1.7: - version "7.1.7" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^10.2.5: - version "10.2.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.2.5.tgz#73c1850ac8f077810d8370ba414b382ad1a86083" - integrity sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA== +glob@^10.3.7: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== dependencies: foreground-child "^3.1.0" - jackspeak "^2.0.3" - minimatch "^9.0.0" - minipass "^5.0.0 || ^6.0.2" - path-scurry "^1.7.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" glob@^7.1.3, glob@^7.1.4: version "7.2.3" @@ -2107,7 +1943,7 @@ globals@^13.19.0: globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -2117,16 +1953,11 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.9: +graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - graphemer@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" @@ -2149,23 +1980,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" @@ -2181,7 +1995,12 @@ ignore@^5.2.0: resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: +ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -2210,7 +2029,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4: +inherits@2: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2269,12 +2088,17 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isows@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.3.tgz#93c1cf0575daf56e7120bab5c8c448b0809d0d74" + integrity sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg== + istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: +istanbul-lib-instrument@^5.0.4: version "5.2.1" resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== @@ -2285,6 +2109,17 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: istanbul-lib-coverage "^3.2.0" semver "^6.3.0" +istanbul-lib-instrument@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" + integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" @@ -2311,92 +2146,92 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.0.tgz#497cbaedc902ec3f31d5d61be804d2364ff9ddad" - integrity sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ== +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jest-changed-files@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz" - integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== dependencies: execa "^5.0.0" + jest-util "^29.7.0" p-limit "^3.1.0" -jest-circus@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz" - integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - dedent "^0.7.0" + dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^29.5.0" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" p-limit "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.7.0" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz" - integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== dependencies: - "@jest/core" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" chalk "^4.0.0" + create-jest "^29.7.0" exit "^0.1.2" - graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - prompts "^2.0.1" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" yargs "^17.3.1" -jest-config@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz" - integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.5.0" - "@jest/types" "^29.5.0" - babel-jest "^29.5.0" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.5.0" - jest-environment-node "^29.5.0" - jest-get-type "^29.4.3" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-runner "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.5.0" + pretty-format "^29.7.0" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -2410,67 +2245,82 @@ jest-diff@^29.5.0: jest-get-type "^29.4.3" pretty-format "^29.5.0" -jest-docblock@^29.4.3: - version "29.4.3" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz" - integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== dependencies: - detect-newline "^3.0.0" + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-each@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz" - integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== dependencies: - "@jest/types" "^29.5.0" - chalk "^4.0.0" - jest-get-type "^29.4.3" - jest-util "^29.5.0" - pretty-format "^29.5.0" + detect-newline "^3.0.0" -jest-environment-node@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz" - integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz" - integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz" - integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== dependencies: - jest-get-type "^29.4.3" - pretty-format "^29.5.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" jest-matcher-utils@^29.5.0: version "29.5.0" @@ -2482,6 +2332,16 @@ jest-matcher-utils@^29.5.0: jest-get-type "^29.4.3" pretty-format "^29.5.0" +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + jest-message-util@^29.5.0: version "29.5.0" resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz" @@ -2497,131 +2357,143 @@ jest-message-util@^29.5.0: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz" - integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== dependencies: - "@jest/types" "^29.5.0" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.7.0" jest-pnp-resolver@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^29.4.3: - version "29.4.3" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== -jest-resolve-dependencies@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz" - integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== dependencies: - jest-regex-util "^29.4.3" - jest-snapshot "^29.5.0" + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" -jest-resolve@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz" - integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.7.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz" - integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== dependencies: - "@jest/console" "^29.5.0" - "@jest/environment" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.4.3" - jest-environment-node "^29.5.0" - jest-haste-map "^29.5.0" - jest-leak-detector "^29.5.0" - jest-message-util "^29.5.0" - jest-resolve "^29.5.0" - jest-runtime "^29.5.0" - jest-util "^29.5.0" - jest-watcher "^29.5.0" - jest-worker "^29.5.0" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz" - integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== - dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/globals" "^29.5.0" - "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz" - integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.5.0" + expect "^29.7.0" graceful-fs "^4.2.9" - jest-diff "^29.5.0" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" natural-compare "^1.4.0" - pretty-format "^29.5.0" - semver "^7.3.5" + pretty-format "^29.7.0" + semver "^7.5.3" jest-util@^29.0.0, jest-util@^29.5.0: version "29.5.0" @@ -2635,61 +2507,63 @@ jest-util@^29.0.0, jest-util@^29.5.0: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz" - integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" leven "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.7.0" -jest-watcher@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz" - integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== dependencies: - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.5.0" + jest-util "^29.7.0" string-length "^4.0.1" -jest-worker@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz" - integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== dependencies: "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz" - integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== +jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== dependencies: - "@jest/core" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^29.5.0" - -js-base64@^3.7.5: - version "3.7.5" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" - integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + jest-cli "^29.7.0" js-tokens@^4.0.0: version "4.0.0" @@ -2731,18 +2605,16 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - kleur@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" @@ -2780,11 +2652,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - lodash.memoize@4.x: version "4.1.2" resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" @@ -2795,11 +2662,6 @@ lodash.merge@^4.6.2: resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.15, lodash@^4.17.16: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" @@ -2814,10 +2676,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" - integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== +"lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== make-dir@^3.0.0: version "3.1.0" @@ -2845,7 +2707,7 @@ merge-stream@^2.0.0: merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4: @@ -2861,15 +2723,12 @@ mimic-fn@^2.1.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== +minimatch@9.0.3, minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" @@ -2878,43 +2737,40 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.0.tgz#bfc8e88a1c40ffd40c172ddac3decb8451503b56" - integrity sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w== - dependencies: - brace-expansion "^2.0.1" - -"minipass@^5.0.0 || ^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" - integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== - -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +nock@^13.5.4: + version "13.5.4" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.5.4.tgz#8918f0addc70a63736170fef7106a9721e0dc479" + integrity sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw== + dependencies: + debug "^4.1.0" + json-stringify-safe "^5.0.1" + propagate "^2.0.0" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + node-releases@^2.0.8: version "2.0.10" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz" @@ -2946,17 +2802,17 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" p-limit@^2.2.0: version "2.3.0" @@ -3028,17 +2884,17 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.7.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.2.tgz#90f9d296ac5e37e608028e28a447b11d385b3f63" - integrity sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== dependencies: - lru-cache "^9.1.1" - minipass "^5.0.0 || ^6.0.2" + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== picocolors@^1.0.0: @@ -3068,10 +2924,10 @@ prelude-ls@^1.2.1: resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^2.3.1, prettier@^2.8.8: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== pretty-format@^29.0.0, pretty-format@^29.5.0: version "29.5.0" @@ -3082,6 +2938,15 @@ pretty-format@^29.0.0, pretty-format@^29.5.0: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + prompts@^2.0.1: version "2.4.2" resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" @@ -3090,6 +2955,11 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" +propagate@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" + integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== + punycode@^2.1.0: version "2.3.0" resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" @@ -3110,11 +2980,6 @@ react-is@^18.0.0: resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -reduce-flatten@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz" - integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" @@ -3163,12 +3028,12 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.1.tgz#0881323ab94ad45fec7c0221f27ea1a142f3f0d0" - integrity sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg== +rimraf@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" + integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== dependencies: - glob "^10.2.5" + glob "^10.3.7" run-parallel@^1.1.9: version "1.2.0" @@ -3177,23 +3042,23 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -scrypt-js@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -semver@7.x, semver@^7.3.5, semver@^7.3.7: - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.5.3, semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -3251,11 +3116,6 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -string-format@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz" - integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== - string-length@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" @@ -3322,7 +3182,7 @@ strip-final-newline@^2.0.0: resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -3353,16 +3213,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -table-layout@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz" - integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== - dependencies: - array-back "^4.0.1" - deep-extend "~0.6.0" - typical "^5.2.0" - wordwrapjs "^4.0.0" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" @@ -3394,26 +3244,15 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -ts-command-line-args@^2.2.0: - version "2.4.2" - resolved "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz" - integrity sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ== - dependencies: - "@morgan-stanley/ts-mocking-bird" "^0.6.2" - chalk "^4.1.0" - command-line-args "^5.1.1" - command-line-usage "^6.1.0" - string-format "^2.0.0" - -ts-essentials@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz" - integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== +ts-api-utils@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== -ts-jest@^29.1.0: - version "29.1.0" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz" - integrity sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA== +ts-jest@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.2.tgz#7613d8c81c43c8cb312c6904027257e814c40e09" + integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" @@ -3421,20 +3260,13 @@ ts-jest@^29.1.0: json5 "^2.2.3" lodash.memoize "4.x" make-error "1.x" - semver "7.x" + semver "^7.5.3" yargs-parser "^21.0.1" -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -3458,41 +3290,18 @@ type-fest@^0.21.3: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -typechain@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.2.0.tgz#bd4fc8f111d4405e36858bae6f744604617b60f3" - integrity sha512-tZqhqjxJ9xAS/Lh32jccTjMkpx7sTdUVVHAy5Bf0TIer5QFNYXotiX74oCvoVYjyxUKDK3MXHtMFzMyD3kE+jg== +typescript-eslint@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-7.3.1.tgz#9f4808abea3b33c4dd3bb51dd801471e91d1bd58" + integrity sha512-psqcnHPRCdVIDbgj6RvfpwUKqMcNxIw7eizgxYi46X2BmXK6LxYqPD+SbDfPuA9JW+yPItY6aKJLRNbW7lZ4rA== dependencies: - "@types/prettier" "^2.1.1" - debug "^4.3.1" - fs-extra "^7.0.0" - glob "7.1.7" - js-sha3 "^0.8.0" - lodash "^4.17.15" - mkdirp "^1.0.4" - prettier "^2.3.1" - ts-command-line-args "^2.2.0" - ts-essentials "^7.0.1" - -typescript@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" - integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== - -typical@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" - integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== - -typical@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz" - integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + "@typescript-eslint/eslint-plugin" "7.3.1" + "@typescript-eslint/parser" "7.3.1" -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +typescript@^5.4.2: + version "5.4.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" + integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== update-browserslist-db@^1.0.10: version "1.0.10" @@ -3502,6 +3311,14 @@ update-browserslist-db@^1.0.10: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" @@ -3509,11 +3326,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -uuid@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz" - integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== - v8-to-istanbul@^9.0.1: version "9.1.0" resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz" @@ -3523,6 +3335,20 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" +viem@^2.7.19: + version "2.7.19" + resolved "https://registry.yarnpkg.com/viem/-/viem-2.7.19.tgz#fa6bd8f46df2f0332e5ca6d116772dff6f161a72" + integrity sha512-UOMeqy+8p2709ra2j9HEOL1NfjsXZzlJ8gwR6YO/zXH8KIZvyzW07t4iQARF5+ShVZ/7+/1ec8oPjVi1M//33A== + dependencies: + "@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 "1.0.0" + isows "1.0.3" + ws "8.13.0" + walker@^1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" @@ -3537,19 +3363,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wordwrapjs@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz" - integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== - dependencies: - reduce-flatten "^2.0.0" - typical "^5.2.0" - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -3590,10 +3403,15 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -ws@7.4.6: - version "7.4.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@8.13.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +ws@8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== y18n@^5.0.5: version "5.0.8"