diff --git a/.prettierrc.json b/.prettierrc.json index bcfa62e4..7e7004cc 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,4 +1,5 @@ { + "plugins": ["prettier-plugin-solidity"], "semi": false, "overrides": [ { @@ -17,7 +18,6 @@ "trailingComma": "all", "singleQuote": true, "bracketSpacing": true, - "jsxBracketSameLine": true, "parser": "typescript", "printWidth": 100, "tabWidth": 2, diff --git a/contracts/mocks/ERC1155Mock.sol b/contracts/mocks/ERC1155Mock.sol deleted file mode 100644 index b9585ec1..00000000 --- a/contracts/mocks/ERC1155Mock.sol +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.8.21; - -import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol"; - -/** - * @title ERC1155Mock - * Used for tests with non RMRK implementer - */ -contract ERC1155Mock is ERC1155 { - constructor(string memory uri) ERC1155(uri) {} - - function mint( - address to, - uint256 tokenId, - uint256 amount, - bytes memory data - ) public { - _mint(to, tokenId, amount, data); - } -} diff --git a/contracts/mocks/OwnableMintableERC721Mock.sol b/contracts/mocks/OwnableMintableERC721Mock.sol index d47e88a2..83f1c0ad 100644 --- a/contracts/mocks/OwnableMintableERC721Mock.sol +++ b/contracts/mocks/OwnableMintableERC721Mock.sol @@ -5,13 +5,10 @@ pragma solidity ^0.8.21; /// @dev This mock smart contract is intended to be used with `@defi-wonderland/smock` and doesn't need any business /// logic. contract OwnableMintableERC721Mock { - address private _mockOwner; address private _mockOwnerOf; - - constructor ( - address mockOwner, address mockOwnerOf - ) { + + constructor(address mockOwner, address mockOwnerOf) { _mockOwner = mockOwner; _mockOwnerOf = mockOwnerOf; } diff --git a/hardhat.config.ts b/hardhat.config.ts index 7db2e8be..5e6c743e 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,13 +1,10 @@ -import * as dotenv from 'dotenv'; - import { HardhatUserConfig, task } from 'hardhat/config'; +import 'dotenv/config'; import '@nomicfoundation/hardhat-ethers'; import '@nomicfoundation/hardhat-toolbox'; import 'hardhat-contract-sizer'; import '@primitivefi/hardhat-dodoc'; -dotenv.config(); - // This is a sample Hardhat task. To learn how to create your own go to // https://hardhat.org/guides/create-task.html task('accounts', 'Prints the list of accounts', async (taskArgs, hre) => { diff --git a/package.json b/package.json index 8ec8aca8..b8f9a74a 100644 --- a/package.json +++ b/package.json @@ -16,36 +16,23 @@ "engines": { "node": ">=18" }, - "dependencies": {}, "devDependencies": { "@nomicfoundation/hardhat-chai-matchers": "^2.0.3", "@nomicfoundation/hardhat-ethers": "^3.0.5", "@nomicfoundation/hardhat-network-helpers": "^1.0.10", "@nomicfoundation/hardhat-toolbox": "^4.0.0", "@nomicfoundation/hardhat-verify": "^2.0.3", - "@openzeppelin/contracts": "^5.0.0", + "@openzeppelin/contracts": "^5.0.1", "@primitivefi/hardhat-dodoc": "^0.2.3", "@typechain/ethers-v6": "^0.5.1", "@typechain/hardhat": "^9.1.0", "@types/chai": "^4.3.11", "@types/mocha": "^10.0.6", - "@types/node": "^20.10.8", - "chai": "^4.2.0", - "dotenv": "^16.3.1", - "ethers": "^6.9.2", - "hardhat": "^2.19.4", - "hardhat-contract-sizer": "^2.10.0", - "hardhat-gas-reporter": "^1.0.9", - "solidity-coverage": "^0.8.6-sha1.0", - "squirrelly": "^8.0.8", - "ts-node": "^11.0.0-beta.1", - "typechain": "^8.3.2", - "typescript": "^5.3.3", - "solc": "0.8.21", - "rimraf": "^5.0.5", - "walk-sync": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^6.19.0", - "@typescript-eslint/parser": "^6.19.0", + "@types/node": "^20.11.7", + "@typescript-eslint/eslint-plugin": "^6.19.1", + "@typescript-eslint/parser": "^6.19.1", + "chai": "^4.4.1", + "dotenv": "^16.4.1", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-config-standard": "^17.1.0", @@ -54,7 +41,19 @@ "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^6.1.1", + "ethers": "^6.10.0", + "hardhat": "^2.19.4", + "hardhat-contract-sizer": "^2.10.0", + "hardhat-gas-reporter": "^1.0.9", "prettier": "^3.2.4", - "prettier-plugin-solidity": "^1.3.1" + "prettier-plugin-solidity": "^1.3.1", + "rimraf": "^5.0.5", + "solc": "0.8.21", + "solidity-coverage": "0.8.6-sha1.0", + "squirrelly": "^8.0.8", + "ts-node": "11.0.0-beta.1", + "typechain": "^8.3.2", + "typescript": "^5.3.3", + "walk-sync": "^3.0.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c112397..33aafb44 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,57 +1,57 @@ -lockfileVersion: '6.0' +lockfileVersion: "6.0" settings: autoInstallPeers: true excludeLinksFromLockfile: false devDependencies: - '@nomicfoundation/hardhat-chai-matchers': + "@nomicfoundation/hardhat-chai-matchers": specifier: ^2.0.3 version: 2.0.3(@nomicfoundation/hardhat-ethers@3.0.5)(chai@4.4.1)(ethers@6.10.0)(hardhat@2.19.4) - '@nomicfoundation/hardhat-ethers': + "@nomicfoundation/hardhat-ethers": specifier: ^3.0.5 version: 3.0.5(ethers@6.10.0)(hardhat@2.19.4) - '@nomicfoundation/hardhat-network-helpers': + "@nomicfoundation/hardhat-network-helpers": specifier: ^1.0.10 version: 1.0.10(hardhat@2.19.4) - '@nomicfoundation/hardhat-toolbox': + "@nomicfoundation/hardhat-toolbox": specifier: ^4.0.0 - version: 4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.3)(@nomicfoundation/hardhat-ethers@3.0.5)(@nomicfoundation/hardhat-network-helpers@1.0.10)(@nomicfoundation/hardhat-verify@2.0.3)(@typechain/ethers-v6@0.5.1)(@typechain/hardhat@9.1.0)(@types/chai@4.3.11)(@types/mocha@10.0.6)(@types/node@20.11.6)(chai@4.4.1)(ethers@6.10.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.4)(solidity-coverage@0.8.6-sha1.0)(ts-node@11.0.0-beta.1)(typechain@8.3.2)(typescript@5.3.3) - '@nomicfoundation/hardhat-verify': + version: 4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.3)(@nomicfoundation/hardhat-ethers@3.0.5)(@nomicfoundation/hardhat-network-helpers@1.0.10)(@nomicfoundation/hardhat-verify@2.0.3)(@typechain/ethers-v6@0.5.1)(@typechain/hardhat@9.1.0)(@types/chai@4.3.11)(@types/mocha@10.0.6)(@types/node@20.11.7)(chai@4.4.1)(ethers@6.10.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.4)(solidity-coverage@0.8.6-sha1.0)(ts-node@11.0.0-beta.1)(typechain@8.3.2)(typescript@5.3.3) + "@nomicfoundation/hardhat-verify": specifier: ^2.0.3 version: 2.0.3(hardhat@2.19.4) - '@openzeppelin/contracts': - specifier: ^5.0.0 + "@openzeppelin/contracts": + specifier: ^5.0.1 version: 5.0.1 - '@primitivefi/hardhat-dodoc': + "@primitivefi/hardhat-dodoc": specifier: ^0.2.3 version: 0.2.3(hardhat@2.19.4)(squirrelly@8.0.8) - '@typechain/ethers-v6': + "@typechain/ethers-v6": specifier: ^0.5.1 version: 0.5.1(ethers@6.10.0)(typechain@8.3.2)(typescript@5.3.3) - '@typechain/hardhat': + "@typechain/hardhat": specifier: ^9.1.0 version: 9.1.0(@typechain/ethers-v6@0.5.1)(ethers@6.10.0)(hardhat@2.19.4)(typechain@8.3.2) - '@types/chai': + "@types/chai": specifier: ^4.3.11 version: 4.3.11 - '@types/mocha': + "@types/mocha": specifier: ^10.0.6 version: 10.0.6 - '@types/node': - specifier: ^20.10.8 - version: 20.11.6 - '@typescript-eslint/eslint-plugin': - specifier: ^6.19.0 + "@types/node": + specifier: ^20.11.7 + version: 20.11.7 + "@typescript-eslint/eslint-plugin": + specifier: ^6.19.1 version: 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': - specifier: ^6.19.0 + "@typescript-eslint/parser": + specifier: ^6.19.1 version: 6.19.1(eslint@8.56.0)(typescript@5.3.3) chai: - specifier: ^4.2.0 + specifier: ^4.4.1 version: 4.4.1 dotenv: - specifier: ^16.3.1 + specifier: ^16.4.1 version: 16.4.1 eslint: specifier: ^8.56.0 @@ -78,7 +78,7 @@ devDependencies: specifier: ^6.1.1 version: 6.1.1(eslint@8.56.0) ethers: - specifier: ^6.9.2 + specifier: ^6.10.0 version: 6.10.0 hardhat: specifier: ^2.19.4 @@ -102,14 +102,14 @@ devDependencies: specifier: 0.8.21 version: 0.8.21 solidity-coverage: - specifier: ^0.8.6-sha1.0 + specifier: 0.8.6-sha1.0 version: 0.8.6-sha1.0(hardhat@2.19.4) squirrelly: specifier: ^8.0.8 version: 8.0.8 ts-node: - specifier: ^11.0.0-beta.1 - version: 11.0.0-beta.1(@types/node@20.11.6)(typescript@5.3.3) + specifier: 11.0.0-beta.1 + version: 11.0.0-beta.1(@types/node@20.11.7)(typescript@5.3.3) typechain: specifier: ^8.3.2 version: 8.3.2(typescript@5.3.3) @@ -121,64 +121,93 @@ devDependencies: version: 3.0.0 packages: - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, + } + engines: { node: ">=0.10.0" } dev: true /@adraffy/ens-normalize@1.10.0: - resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==} + resolution: + { + integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==, + } dev: true /@chainsafe/as-sha256@0.3.1: - resolution: {integrity: sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==} + resolution: + { + integrity: sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==, + } dev: true /@chainsafe/persistent-merkle-tree@0.4.2: - resolution: {integrity: sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==} + resolution: + { + integrity: sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==, + } dependencies: - '@chainsafe/as-sha256': 0.3.1 + "@chainsafe/as-sha256": 0.3.1 dev: true /@chainsafe/persistent-merkle-tree@0.5.0: - resolution: {integrity: sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==} + resolution: + { + integrity: sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==, + } dependencies: - '@chainsafe/as-sha256': 0.3.1 + "@chainsafe/as-sha256": 0.3.1 dev: true /@chainsafe/ssz@0.10.2: - resolution: {integrity: sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==} + resolution: + { + integrity: sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==, + } dependencies: - '@chainsafe/as-sha256': 0.3.1 - '@chainsafe/persistent-merkle-tree': 0.5.0 + "@chainsafe/as-sha256": 0.3.1 + "@chainsafe/persistent-merkle-tree": 0.5.0 dev: true /@chainsafe/ssz@0.9.4: - resolution: {integrity: sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==} + resolution: + { + integrity: sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==, + } dependencies: - '@chainsafe/as-sha256': 0.3.1 - '@chainsafe/persistent-merkle-tree': 0.4.2 + "@chainsafe/as-sha256": 0.3.1 + "@chainsafe/persistent-merkle-tree": 0.4.2 case: 1.6.3 dev: true /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} + resolution: + { + integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, + } + engines: { node: ">=0.1.90" } requiresBuild: true dev: true optional: true /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, + } + engines: { node: ">=12" } dependencies: - '@jridgewell/trace-mapping': 0.3.9 + "@jridgewell/trace-mapping": 0.3.9 dev: true /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: @@ -187,13 +216,19 @@ packages: dev: true /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + resolution: + { + integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } dev: true /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) @@ -209,204 +244,264 @@ packages: dev: true /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true /@ethersproject/abi@5.7.0: - resolution: {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 + resolution: + { + 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 dev: true /@ethersproject/abstract-provider@5.7.0: - resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} + resolution: + { + integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==, + } dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/properties': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/web': 5.7.1 + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/networks": 5.7.1 + "@ethersproject/properties": 5.7.0 + "@ethersproject/transactions": 5.7.0 + "@ethersproject/web": 5.7.1 dev: true /@ethersproject/abstract-signer@5.7.0: - resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} + resolution: + { + 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/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 dev: true /@ethersproject/address@5.7.0: - resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} + resolution: + { + 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/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/rlp": 5.7.0 dev: true /@ethersproject/base64@5.7.0: - resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} + resolution: + { + integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==, + } dependencies: - '@ethersproject/bytes': 5.7.0 + "@ethersproject/bytes": 5.7.0 dev: true /@ethersproject/basex@5.7.0: - resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==} + resolution: + { + integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==, + } dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/properties': 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/properties": 5.7.0 dev: true /@ethersproject/bignumber@5.7.0: - resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} + resolution: + { + integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==, + } dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 bn.js: 5.2.1 dev: true /@ethersproject/bytes@5.7.0: - resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + resolution: + { + integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==, + } dependencies: - '@ethersproject/logger': 5.7.0 + "@ethersproject/logger": 5.7.0 dev: true /@ethersproject/constants@5.7.0: - resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} + resolution: + { + integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==, + } dependencies: - '@ethersproject/bignumber': 5.7.0 + "@ethersproject/bignumber": 5.7.0 dev: true /@ethersproject/contracts@5.7.0: - resolution: {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 + resolution: + { + 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 dev: true /@ethersproject/hash@5.7.0: - resolution: {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 + resolution: + { + 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 dev: true /@ethersproject/hdnode@5.7.0: - resolution: {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 + resolution: + { + 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 dev: true /@ethersproject/json-wallets@5.7.0: - resolution: {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 + resolution: + { + 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 dev: true /@ethersproject/keccak256@5.7.0: - resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} + resolution: + { + integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==, + } dependencies: - '@ethersproject/bytes': 5.7.0 + "@ethersproject/bytes": 5.7.0 js-sha3: 0.8.0 dev: true /@ethersproject/logger@5.7.0: - resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + resolution: + { + integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==, + } dev: true /@ethersproject/networks@5.7.1: - resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} + resolution: + { + integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==, + } dependencies: - '@ethersproject/logger': 5.7.0 + "@ethersproject/logger": 5.7.0 dev: true /@ethersproject/pbkdf2@5.7.0: - resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==} + resolution: + { + integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==, + } dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/sha2': 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/sha2": 5.7.0 dev: true /@ethersproject/properties@5.7.0: - resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} + resolution: + { + integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==, + } dependencies: - '@ethersproject/logger': 5.7.0 + "@ethersproject/logger": 5.7.0 dev: true /@ethersproject/providers@5.7.2: - resolution: {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.1 - '@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.1 + resolution: + { + 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.1 + "@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.1 bech32: 1.1.4 ws: 7.4.6 transitivePeerDependencies: @@ -415,129 +510,168 @@ packages: dev: true /@ethersproject/random@5.7.0: - resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} + resolution: + { + integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==, + } dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 dev: true /@ethersproject/rlp@5.7.0: - resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} + resolution: + { + integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==, + } dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 dev: true /@ethersproject/sha2@5.7.0: - resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} + resolution: + { + integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==, + } dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 hash.js: 1.1.7 dev: true /@ethersproject/signing-key@5.7.0: - resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/properties': 5.7.0 + resolution: + { + 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 dev: true /@ethersproject/solidity@5.7.0: - resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==} + resolution: + { + 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/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 dev: true /@ethersproject/strings@5.7.0: - resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} + resolution: + { + integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==, + } dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/logger': 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/logger": 5.7.0 dev: true /@ethersproject/transactions@5.7.0: - resolution: {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 + resolution: + { + 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 dev: true /@ethersproject/units@5.7.0: - resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==} + resolution: + { + integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==, + } dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/logger': 5.7.0 + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/logger": 5.7.0 dev: true /@ethersproject/wallet@5.7.0: - resolution: {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 + resolution: + { + 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 dev: true /@ethersproject/web@5.7.1: - resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} + resolution: + { + 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/base64": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/properties": 5.7.0 + "@ethersproject/strings": 5.7.0 dev: true /@ethersproject/wordlists@5.7.0: - resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==} + resolution: + { + 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 + "@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 dev: true /@fastify/busboy@2.1.0: - resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==, + } + engines: { node: ">=14" } dev: true /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} + resolution: + { + integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, + } + engines: { node: ">=10.10.0" } dependencies: - '@humanwhocodes/object-schema': 2.0.2 + "@humanwhocodes/object-schema": 2.0.2 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: @@ -545,17 +679,26 @@ packages: dev: true /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + resolution: + { + integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, + } + engines: { node: ">=12.22" } dev: true /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + resolution: + { + integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==, + } dev: true /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: ">=12" } dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 @@ -566,24 +709,36 @@ packages: dev: true /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, + } + engines: { node: ">=6.0.0" } dev: true /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } dev: true /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + resolution: + { + integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, + } dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + "@jridgewell/resolve-uri": 3.1.1 + "@jridgewell/sourcemap-codec": 1.4.15 dev: true /@metamask/eth-sig-util@4.0.1: - resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==, + } + engines: { node: ">=12.0.0" } dependencies: ethereumjs-abi: 0.6.8 ethereumjs-util: 6.2.1 @@ -593,54 +748,78 @@ packages: dev: true /@noble/curves@1.2.0: - resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} + resolution: + { + integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==, + } dependencies: - '@noble/hashes': 1.3.2 + "@noble/hashes": 1.3.2 dev: true /@noble/hashes@1.2.0: - resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} + resolution: + { + integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==, + } dev: true /@noble/hashes@1.3.2: - resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} - engines: {node: '>= 16'} + resolution: + { + integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==, + } + engines: { node: ">= 16" } dev: true /@noble/secp256k1@1.7.1: - resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + resolution: + { + integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==, + } dev: true /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.stat': 2.0.5 + "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 dev: true /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } dev: true /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.16.0 + "@nodelib/fs.scandir": 2.1.5 + fastq: 1.17.0 dev: true /@nomicfoundation/ethereumjs-block@5.0.2: - resolution: {integrity: sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-trie': 6.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 + resolution: + { + integrity: sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==, + } + engines: { node: ">=14" } + dependencies: + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-trie": 6.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 ethereum-cryptography: 0.1.3 ethers: 5.7.2 transitivePeerDependencies: @@ -649,16 +828,19 @@ packages: dev: true /@nomicfoundation/ethereumjs-blockchain@7.0.2: - resolution: {integrity: sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.2 - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-ethash': 3.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-trie': 6.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 + resolution: + { + integrity: sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==, + } + engines: { node: ">=14" } + dependencies: + "@nomicfoundation/ethereumjs-block": 5.0.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-ethash": 3.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-trie": 6.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 abstract-level: 1.0.4 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 @@ -672,19 +854,25 @@ packages: dev: true /@nomicfoundation/ethereumjs-common@4.0.2: - resolution: {integrity: sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==} + resolution: + { + integrity: sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==, + } dependencies: - '@nomicfoundation/ethereumjs-util': 9.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 crc-32: 1.2.2 dev: true /@nomicfoundation/ethereumjs-ethash@3.0.2: - resolution: {integrity: sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 + resolution: + { + integrity: sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==, + } + engines: { node: ">=14" } + dependencies: + "@nomicfoundation/ethereumjs-block": 5.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 abstract-level: 1.0.4 bigint-crypto-utils: 3.3.0 ethereum-cryptography: 0.1.3 @@ -694,13 +882,16 @@ packages: dev: true /@nomicfoundation/ethereumjs-evm@2.0.2: - resolution: {integrity: sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==} - engines: {node: '>=14'} - dependencies: - '@ethersproject/providers': 5.7.2 - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 + resolution: + { + integrity: sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==, + } + engines: { node: ">=14" } + dependencies: + "@ethersproject/providers": 5.7.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 mcl-wasm: 0.7.9 @@ -712,16 +903,22 @@ packages: dev: true /@nomicfoundation/ethereumjs-rlp@5.0.2: - resolution: {integrity: sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==, + } + engines: { node: ">=14" } hasBin: true dev: true /@nomicfoundation/ethereumjs-statemanager@2.0.2: - resolution: {integrity: sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==} + resolution: + { + integrity: sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==, + } dependencies: - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 ethers: 5.7.2 @@ -733,25 +930,31 @@ packages: dev: true /@nomicfoundation/ethereumjs-trie@6.0.2: - resolution: {integrity: sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 - '@types/readable-stream': 2.3.15 + resolution: + { + integrity: sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==, + } + engines: { node: ">=14" } + dependencies: + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + "@types/readable-stream": 2.3.15 ethereum-cryptography: 0.1.3 readable-stream: 3.6.2 dev: true /@nomicfoundation/ethereumjs-tx@5.0.2: - resolution: {integrity: sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==} - engines: {node: '>=14'} - dependencies: - '@chainsafe/ssz': 0.9.4 - '@ethersproject/providers': 5.7.2 - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 + resolution: + { + integrity: sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==, + } + engines: { node: ">=14" } + dependencies: + "@chainsafe/ssz": 0.9.4 + "@ethersproject/providers": 5.7.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 ethereum-cryptography: 0.1.3 transitivePeerDependencies: - bufferutil @@ -759,27 +962,33 @@ packages: dev: true /@nomicfoundation/ethereumjs-util@9.0.2: - resolution: {integrity: sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==} - engines: {node: '>=14'} - dependencies: - '@chainsafe/ssz': 0.10.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 + resolution: + { + integrity: sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==, + } + engines: { node: ">=14" } + dependencies: + "@chainsafe/ssz": 0.10.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 ethereum-cryptography: 0.1.3 dev: true /@nomicfoundation/ethereumjs-vm@7.0.2: - resolution: {integrity: sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.2 - '@nomicfoundation/ethereumjs-blockchain': 7.0.2 - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-evm': 2.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-statemanager': 2.0.2 - '@nomicfoundation/ethereumjs-trie': 6.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 + resolution: + { + integrity: sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==, + } + engines: { node: ">=14" } + dependencies: + "@nomicfoundation/ethereumjs-block": 5.0.2 + "@nomicfoundation/ethereumjs-blockchain": 7.0.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-evm": 2.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-statemanager": 2.0.2 + "@nomicfoundation/ethereumjs-trie": 6.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 mcl-wasm: 0.7.9 @@ -791,15 +1000,18 @@ packages: dev: true /@nomicfoundation/hardhat-chai-matchers@2.0.3(@nomicfoundation/hardhat-ethers@3.0.5)(chai@4.4.1)(ethers@6.10.0)(hardhat@2.19.4): - resolution: {integrity: sha512-A40s7EAK4Acr8UP1Yudgi9GGD9Cca/K3LHt3DzmRIje14lBfHtg9atGQ7qK56vdPcTwKmeaGn30FzxMUfPGEMw==} + resolution: + { + integrity: sha512-A40s7EAK4Acr8UP1Yudgi9GGD9Cca/K3LHt3DzmRIje14lBfHtg9atGQ7qK56vdPcTwKmeaGn30FzxMUfPGEMw==, + } peerDependencies: - '@nomicfoundation/hardhat-ethers': ^3.0.0 + "@nomicfoundation/hardhat-ethers": ^3.0.0 chai: ^4.2.0 ethers: ^6.1.0 hardhat: ^2.9.4 dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.10.0)(hardhat@2.19.4) - '@types/chai-as-promised': 7.1.8 + "@nomicfoundation/hardhat-ethers": 3.0.5(ethers@6.10.0)(hardhat@2.19.4) + "@types/chai-as-promised": 7.1.8 chai: 4.4.1 chai-as-promised: 7.1.1(chai@4.4.1) deep-eql: 4.1.3 @@ -809,7 +1021,10 @@ packages: dev: true /@nomicfoundation/hardhat-ethers@3.0.5(ethers@6.10.0)(hardhat@2.19.4): - resolution: {integrity: sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==} + resolution: + { + integrity: sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==, + } peerDependencies: ethers: ^6.1.0 hardhat: ^2.0.0 @@ -823,7 +1038,10 @@ packages: dev: true /@nomicfoundation/hardhat-network-helpers@1.0.10(hardhat@2.19.4): - resolution: {integrity: sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==} + resolution: + { + integrity: sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==, + } peerDependencies: hardhat: ^2.9.5 dependencies: @@ -831,53 +1049,59 @@ packages: hardhat: 2.19.4(ts-node@11.0.0-beta.1)(typescript@5.3.3) dev: true - /@nomicfoundation/hardhat-toolbox@4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.3)(@nomicfoundation/hardhat-ethers@3.0.5)(@nomicfoundation/hardhat-network-helpers@1.0.10)(@nomicfoundation/hardhat-verify@2.0.3)(@typechain/ethers-v6@0.5.1)(@typechain/hardhat@9.1.0)(@types/chai@4.3.11)(@types/mocha@10.0.6)(@types/node@20.11.6)(chai@4.4.1)(ethers@6.10.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.4)(solidity-coverage@0.8.6-sha1.0)(ts-node@11.0.0-beta.1)(typechain@8.3.2)(typescript@5.3.3): - resolution: {integrity: sha512-jhcWHp0aHaL0aDYj8IJl80v4SZXWMS1A2XxXa1CA6pBiFfJKuZinCkO6wb+POAt0LIfXB3gA3AgdcOccrcwBwA==} + /@nomicfoundation/hardhat-toolbox@4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.3)(@nomicfoundation/hardhat-ethers@3.0.5)(@nomicfoundation/hardhat-network-helpers@1.0.10)(@nomicfoundation/hardhat-verify@2.0.3)(@typechain/ethers-v6@0.5.1)(@typechain/hardhat@9.1.0)(@types/chai@4.3.11)(@types/mocha@10.0.6)(@types/node@20.11.7)(chai@4.4.1)(ethers@6.10.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.4)(solidity-coverage@0.8.6-sha1.0)(ts-node@11.0.0-beta.1)(typechain@8.3.2)(typescript@5.3.3): + resolution: + { + integrity: sha512-jhcWHp0aHaL0aDYj8IJl80v4SZXWMS1A2XxXa1CA6pBiFfJKuZinCkO6wb+POAt0LIfXB3gA3AgdcOccrcwBwA==, + } peerDependencies: - '@nomicfoundation/hardhat-chai-matchers': ^2.0.0 - '@nomicfoundation/hardhat-ethers': ^3.0.0 - '@nomicfoundation/hardhat-network-helpers': ^1.0.0 - '@nomicfoundation/hardhat-verify': ^2.0.0 - '@typechain/ethers-v6': ^0.5.0 - '@typechain/hardhat': ^9.0.0 - '@types/chai': ^4.2.0 - '@types/mocha': '>=9.1.0' - '@types/node': '>=16.0.0' + "@nomicfoundation/hardhat-chai-matchers": ^2.0.0 + "@nomicfoundation/hardhat-ethers": ^3.0.0 + "@nomicfoundation/hardhat-network-helpers": ^1.0.0 + "@nomicfoundation/hardhat-verify": ^2.0.0 + "@typechain/ethers-v6": ^0.5.0 + "@typechain/hardhat": ^9.0.0 + "@types/chai": ^4.2.0 + "@types/mocha": ">=9.1.0" + "@types/node": ">=16.0.0" chai: ^4.2.0 ethers: ^6.4.0 hardhat: ^2.11.0 hardhat-gas-reporter: ^1.0.8 solidity-coverage: ^0.8.1 - ts-node: '>=8.0.0' + ts-node: ">=8.0.0" typechain: ^8.3.0 - typescript: '>=4.5.0' - dependencies: - '@nomicfoundation/hardhat-chai-matchers': 2.0.3(@nomicfoundation/hardhat-ethers@3.0.5)(chai@4.4.1)(ethers@6.10.0)(hardhat@2.19.4) - '@nomicfoundation/hardhat-ethers': 3.0.5(ethers@6.10.0)(hardhat@2.19.4) - '@nomicfoundation/hardhat-network-helpers': 1.0.10(hardhat@2.19.4) - '@nomicfoundation/hardhat-verify': 2.0.3(hardhat@2.19.4) - '@typechain/ethers-v6': 0.5.1(ethers@6.10.0)(typechain@8.3.2)(typescript@5.3.3) - '@typechain/hardhat': 9.1.0(@typechain/ethers-v6@0.5.1)(ethers@6.10.0)(hardhat@2.19.4)(typechain@8.3.2) - '@types/chai': 4.3.11 - '@types/mocha': 10.0.6 - '@types/node': 20.11.6 + typescript: ">=4.5.0" + dependencies: + "@nomicfoundation/hardhat-chai-matchers": 2.0.3(@nomicfoundation/hardhat-ethers@3.0.5)(chai@4.4.1)(ethers@6.10.0)(hardhat@2.19.4) + "@nomicfoundation/hardhat-ethers": 3.0.5(ethers@6.10.0)(hardhat@2.19.4) + "@nomicfoundation/hardhat-network-helpers": 1.0.10(hardhat@2.19.4) + "@nomicfoundation/hardhat-verify": 2.0.3(hardhat@2.19.4) + "@typechain/ethers-v6": 0.5.1(ethers@6.10.0)(typechain@8.3.2)(typescript@5.3.3) + "@typechain/hardhat": 9.1.0(@typechain/ethers-v6@0.5.1)(ethers@6.10.0)(hardhat@2.19.4)(typechain@8.3.2) + "@types/chai": 4.3.11 + "@types/mocha": 10.0.6 + "@types/node": 20.11.7 chai: 4.4.1 ethers: 6.10.0 hardhat: 2.19.4(ts-node@11.0.0-beta.1)(typescript@5.3.3) hardhat-gas-reporter: 1.0.9(hardhat@2.19.4) solidity-coverage: 0.8.6-sha1.0(hardhat@2.19.4) - ts-node: 11.0.0-beta.1(@types/node@20.11.6)(typescript@5.3.3) + ts-node: 11.0.0-beta.1(@types/node@20.11.7)(typescript@5.3.3) typechain: 8.3.2(typescript@5.3.3) typescript: 5.3.3 dev: true /@nomicfoundation/hardhat-verify@2.0.3(hardhat@2.19.4): - resolution: {integrity: sha512-ESbRu9by53wu6VvgwtMtm108RSmuNsVqXtzg061D+/4R7jaWh/Wl/8ve+p6SdDX7vA1Z3L02hDO1Q3BY4luLXQ==} + resolution: + { + integrity: sha512-ESbRu9by53wu6VvgwtMtm108RSmuNsVqXtzg061D+/4R7jaWh/Wl/8ve+p6SdDX7vA1Z3L02hDO1Q3BY4luLXQ==, + } peerDependencies: hardhat: ^2.0.4 dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/address': 5.7.0 + "@ethersproject/abi": 5.7.0 + "@ethersproject/address": 5.7.0 cbor: 8.1.0 chalk: 2.4.2 debug: 4.3.4(supports-color@8.1.1) @@ -891,8 +1115,11 @@ packages: dev: true /@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1: - resolution: {integrity: sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==, + } + engines: { node: ">= 10" } cpu: [arm64] os: [darwin] requiresBuild: true @@ -900,8 +1127,11 @@ packages: optional: true /@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1: - resolution: {integrity: sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==, + } + engines: { node: ">= 10" } cpu: [x64] os: [darwin] requiresBuild: true @@ -909,8 +1139,11 @@ packages: optional: true /@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1: - resolution: {integrity: sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==, + } + engines: { node: ">= 10" } cpu: [x64] os: [freebsd] requiresBuild: true @@ -918,8 +1151,11 @@ packages: optional: true /@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1: - resolution: {integrity: sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==, + } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] requiresBuild: true @@ -927,8 +1163,11 @@ packages: optional: true /@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1: - resolution: {integrity: sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==, + } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] requiresBuild: true @@ -936,8 +1175,11 @@ packages: optional: true /@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1: - resolution: {integrity: sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==, + } + engines: { node: ">= 10" } cpu: [x64] os: [linux] requiresBuild: true @@ -945,8 +1187,11 @@ packages: optional: true /@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1: - resolution: {integrity: sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==, + } + engines: { node: ">= 10" } cpu: [x64] os: [linux] requiresBuild: true @@ -954,8 +1199,11 @@ packages: optional: true /@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1: - resolution: {integrity: sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==, + } + engines: { node: ">= 10" } cpu: [arm64] os: [win32] requiresBuild: true @@ -963,8 +1211,11 @@ packages: optional: true /@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1: - resolution: {integrity: sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==, + } + engines: { node: ">= 10" } cpu: [ia32] os: [win32] requiresBuild: true @@ -972,8 +1223,11 @@ packages: optional: true /@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1: - resolution: {integrity: sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==, + } + engines: { node: ">= 10" } cpu: [x64] os: [win32] requiresBuild: true @@ -981,39 +1235,54 @@ packages: optional: true /@nomicfoundation/solidity-analyzer@0.1.1: - resolution: {integrity: sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==, + } + engines: { node: ">= 12" } optionalDependencies: - '@nomicfoundation/solidity-analyzer-darwin-arm64': 0.1.1 - '@nomicfoundation/solidity-analyzer-darwin-x64': 0.1.1 - '@nomicfoundation/solidity-analyzer-freebsd-x64': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-arm64-gnu': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-arm64-musl': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-x64-gnu': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-arm64-msvc': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-ia32-msvc': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.1 + "@nomicfoundation/solidity-analyzer-darwin-arm64": 0.1.1 + "@nomicfoundation/solidity-analyzer-darwin-x64": 0.1.1 + "@nomicfoundation/solidity-analyzer-freebsd-x64": 0.1.1 + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": 0.1.1 + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": 0.1.1 + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": 0.1.1 + "@nomicfoundation/solidity-analyzer-linux-x64-musl": 0.1.1 + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": 0.1.1 + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": 0.1.1 + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": 0.1.1 dev: true /@openzeppelin/contracts@5.0.1: - resolution: {integrity: sha512-yQJaT5HDp9hYOOp4jTYxMsR02gdFZFXhewX5HW9Jo4fsqSVqqyIO/xTHdWDaKX5a3pv1txmf076Lziz+sO7L1w==} + resolution: + { + integrity: sha512-yQJaT5HDp9hYOOp4jTYxMsR02gdFZFXhewX5HW9Jo4fsqSVqqyIO/xTHdWDaKX5a3pv1txmf076Lziz+sO7L1w==, + } dev: true /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: ">=14" } requiresBuild: true dev: true optional: true /@pkgr/core@0.1.1: - resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==, + } + engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } dev: true /@primitivefi/hardhat-dodoc@0.2.3(hardhat@2.19.4)(squirrelly@8.0.8): - resolution: {integrity: sha512-ver9uHa79LTDTeebOKZ/eOVRL/FP1k0s0x/5Bo/8ZaDdLWFVClKqZyZYVjjW4CJqTPCt8uU9b9p71P2vzH4O9A==} + resolution: + { + integrity: sha512-ver9uHa79LTDTeebOKZ/eOVRL/FP1k0s0x/5Bo/8ZaDdLWFVClKqZyZYVjjW4CJqTPCt8uU9b9p71P2vzH4O9A==, + } peerDependencies: hardhat: ^2.6.4 squirrelly: ^8.0.8 @@ -1023,62 +1292,83 @@ packages: dev: true /@scure/base@1.1.5: - resolution: {integrity: sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==} + resolution: + { + integrity: sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==, + } dev: true /@scure/bip32@1.1.5: - resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} + resolution: + { + integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==, + } dependencies: - '@noble/hashes': 1.2.0 - '@noble/secp256k1': 1.7.1 - '@scure/base': 1.1.5 + "@noble/hashes": 1.2.0 + "@noble/secp256k1": 1.7.1 + "@scure/base": 1.1.5 dev: true /@scure/bip39@1.1.1: - resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} + resolution: + { + integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==, + } dependencies: - '@noble/hashes': 1.2.0 - '@scure/base': 1.1.5 + "@noble/hashes": 1.2.0 + "@scure/base": 1.1.5 dev: true /@sentry/core@5.30.0: - resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} - engines: {node: '>=6'} - dependencies: - '@sentry/hub': 5.30.0 - '@sentry/minimal': 5.30.0 - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 + resolution: + { + integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==, + } + engines: { node: ">=6" } + dependencies: + "@sentry/hub": 5.30.0 + "@sentry/minimal": 5.30.0 + "@sentry/types": 5.30.0 + "@sentry/utils": 5.30.0 tslib: 1.14.1 dev: true /@sentry/hub@5.30.0: - resolution: {integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==} - engines: {node: '>=6'} - dependencies: - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 + resolution: + { + integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==, + } + engines: { node: ">=6" } + dependencies: + "@sentry/types": 5.30.0 + "@sentry/utils": 5.30.0 tslib: 1.14.1 dev: true /@sentry/minimal@5.30.0: - resolution: {integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==} - engines: {node: '>=6'} - dependencies: - '@sentry/hub': 5.30.0 - '@sentry/types': 5.30.0 + resolution: + { + integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==, + } + engines: { node: ">=6" } + dependencies: + "@sentry/hub": 5.30.0 + "@sentry/types": 5.30.0 tslib: 1.14.1 dev: true /@sentry/node@5.30.0: - resolution: {integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==} - engines: {node: '>=6'} - dependencies: - '@sentry/core': 5.30.0 - '@sentry/hub': 5.30.0 - '@sentry/tracing': 5.30.0 - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 + resolution: + { + integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==, + } + engines: { node: ">=6" } + dependencies: + "@sentry/core": 5.30.0 + "@sentry/hub": 5.30.0 + "@sentry/tracing": 5.30.0 + "@sentry/types": 5.30.0 + "@sentry/utils": 5.30.0 cookie: 0.4.2 https-proxy-agent: 5.0.1 lru_map: 0.3.3 @@ -1088,67 +1378,100 @@ packages: dev: true /@sentry/tracing@5.30.0: - resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} - engines: {node: '>=6'} - dependencies: - '@sentry/hub': 5.30.0 - '@sentry/minimal': 5.30.0 - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 + resolution: + { + integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==, + } + engines: { node: ">=6" } + dependencies: + "@sentry/hub": 5.30.0 + "@sentry/minimal": 5.30.0 + "@sentry/types": 5.30.0 + "@sentry/utils": 5.30.0 tslib: 1.14.1 dev: true /@sentry/types@5.30.0: - resolution: {integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==, + } + engines: { node: ">=6" } dev: true /@sentry/utils@5.30.0: - resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==, + } + engines: { node: ">=6" } dependencies: - '@sentry/types': 5.30.0 + "@sentry/types": 5.30.0 tslib: 1.14.1 dev: true /@solidity-parser/parser@0.14.5: - resolution: {integrity: sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==} + resolution: + { + integrity: sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==, + } dependencies: antlr4ts: 0.5.0-alpha.4 dev: true /@solidity-parser/parser@0.16.2: - resolution: {integrity: sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==} + resolution: + { + integrity: sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==, + } dependencies: antlr4ts: 0.5.0-alpha.4 dev: true /@solidity-parser/parser@0.17.0: - resolution: {integrity: sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw==} + resolution: + { + integrity: sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw==, + } dev: true /@tsconfig/node14@14.1.0: - resolution: {integrity: sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w==} + resolution: + { + integrity: sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w==, + } dev: true /@tsconfig/node16@16.1.1: - resolution: {integrity: sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==} + resolution: + { + integrity: sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==, + } dev: true /@tsconfig/node18@18.2.2: - resolution: {integrity: sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==} + resolution: + { + integrity: sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==, + } dev: true /@tsconfig/node20@20.1.2: - resolution: {integrity: sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==} + resolution: + { + integrity: sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==, + } dev: true /@typechain/ethers-v6@0.5.1(ethers@6.10.0)(typechain@8.3.2)(typescript@5.3.3): - resolution: {integrity: sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==} + resolution: + { + integrity: sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==, + } peerDependencies: ethers: 6.x typechain: ^8.3.2 - typescript: '>=4.7.0' + typescript: ">=4.7.0" dependencies: ethers: 6.10.0 lodash: 4.17.21 @@ -1158,14 +1481,17 @@ packages: dev: true /@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1)(ethers@6.10.0)(hardhat@2.19.4)(typechain@8.3.2): - resolution: {integrity: sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==} + resolution: + { + integrity: sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==, + } peerDependencies: - '@typechain/ethers-v6': ^0.5.1 + "@typechain/ethers-v6": ^0.5.1 ethers: ^6.1.0 hardhat: ^2.9.9 typechain: ^8.3.2 dependencies: - '@typechain/ethers-v6': 0.5.1(ethers@6.10.0)(typechain@8.3.2)(typescript@5.3.3) + "@typechain/ethers-v6": 0.5.1(ethers@6.10.0)(typechain@8.3.2)(typescript@5.3.3) ethers: 6.10.0 fs-extra: 9.1.0 hardhat: 2.19.4(ts-node@11.0.0-beta.1)(typescript@5.3.3) @@ -1173,136 +1499,208 @@ packages: dev: true /@types/bn.js@4.11.6: - resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} + resolution: + { + integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==, + } dependencies: - '@types/node': 20.11.6 + "@types/node": 20.11.7 dev: true /@types/bn.js@5.1.5: - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} + resolution: + { + integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==, + } dependencies: - '@types/node': 20.11.6 + "@types/node": 20.11.7 dev: true /@types/chai-as-promised@7.1.8: - resolution: {integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==} + resolution: + { + integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==, + } dependencies: - '@types/chai': 4.3.11 + "@types/chai": 4.3.11 dev: true /@types/chai@4.3.11: - resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} + resolution: + { + integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==, + } dev: true /@types/concat-stream@1.6.1: - resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} + resolution: + { + integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==, + } dependencies: - '@types/node': 20.11.6 + "@types/node": 20.11.7 dev: true /@types/form-data@0.0.33: - resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} + resolution: + { + integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==, + } dependencies: - '@types/node': 20.11.6 + "@types/node": 20.11.7 dev: true /@types/glob@7.2.0: - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + resolution: + { + integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==, + } dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.11.6 + "@types/minimatch": 5.1.2 + "@types/node": 20.11.7 dev: true /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + resolution: + { + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, + } dev: true /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + resolution: + { + integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, + } dev: true /@types/lru-cache@5.1.1: - resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} + resolution: + { + integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==, + } dev: true /@types/minimatch@3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + resolution: + { + integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==, + } dev: true /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + resolution: + { + integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==, + } dev: true /@types/mocha@10.0.6: - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + resolution: + { + integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==, + } dev: true /@types/node@10.17.60: - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + resolution: + { + integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==, + } dev: true /@types/node@18.15.13: - resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} + resolution: + { + integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==, + } dev: true - /@types/node@20.11.6: - resolution: {integrity: sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q==} + /@types/node@20.11.7: + resolution: + { + integrity: sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==, + } dependencies: undici-types: 5.26.5 dev: true /@types/node@8.10.66: - resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} + resolution: + { + integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==, + } dev: true /@types/pbkdf2@3.1.2: - resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} + resolution: + { + integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==, + } dependencies: - '@types/node': 20.11.6 + "@types/node": 20.11.7 dev: true /@types/prettier@2.7.3: - resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + resolution: + { + integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==, + } dev: true /@types/qs@6.9.11: - resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + resolution: + { + integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==, + } dev: true /@types/readable-stream@2.3.15: - resolution: {integrity: sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==} + resolution: + { + integrity: sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==, + } dependencies: - '@types/node': 20.11.6 + "@types/node": 20.11.7 safe-buffer: 5.1.2 dev: true /@types/secp256k1@4.0.6: - resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} + resolution: + { + integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==, + } dependencies: - '@types/node': 20.11.6 + "@types/node": 20.11.7 dev: true /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + resolution: + { + integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==, + } dev: true /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/type-utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.1 + "@eslint-community/regexpp": 4.10.0 + "@typescript-eslint/parser": 6.19.1(eslint@8.56.0)(typescript@5.3.3) + "@typescript-eslint/scope-manager": 6.19.1 + "@typescript-eslint/type-utils": 6.19.1(eslint@8.56.0)(typescript@5.3.3) + "@typescript-eslint/utils": 6.19.1(eslint@8.56.0)(typescript@5.3.3) + "@typescript-eslint/visitor-keys": 6.19.1 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 graphemer: 1.4.0 @@ -1316,19 +1714,22 @@ packages: dev: true /@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.1 + "@typescript-eslint/scope-manager": 6.19.1 + "@typescript-eslint/types": 6.19.1 + "@typescript-eslint/typescript-estree": 6.19.1(typescript@5.3.3) + "@typescript-eslint/visitor-keys": 6.19.1 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 @@ -1337,25 +1738,31 @@ packages: dev: true /@typescript-eslint/scope-manager@6.19.1: - resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==, + } + engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/visitor-keys': 6.19.1 + "@typescript-eslint/types": 6.19.1 + "@typescript-eslint/visitor-keys": 6.19.1 dev: true /@typescript-eslint/type-utils@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + "@typescript-eslint/typescript-estree": 6.19.1(typescript@5.3.3) + "@typescript-eslint/utils": 6.19.1(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -1365,21 +1772,27 @@ packages: dev: true /@typescript-eslint/types@6.19.1: - resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } dev: true /@typescript-eslint/typescript-estree@6.19.1(typescript@5.3.3): - resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/visitor-keys': 6.19.1 + "@typescript-eslint/types": 6.19.1 + "@typescript-eslint/visitor-keys": 6.19.1 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -1392,17 +1805,20 @@ packages: dev: true /@typescript-eslint/utils@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) + "@eslint-community/eslint-utils": 4.4.0(eslint@8.56.0) + "@types/json-schema": 7.0.15 + "@types/semver": 7.5.6 + "@typescript-eslint/scope-manager": 6.19.1 + "@typescript-eslint/types": 6.19.1 + "@typescript-eslint/typescript-estree": 6.19.1(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -1411,24 +1827,36 @@ packages: dev: true /@typescript-eslint/visitor-keys@6.19.1: - resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==, + } + engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - '@typescript-eslint/types': 6.19.1 + "@typescript-eslint/types": 6.19.1 eslint-visitor-keys: 3.4.3 dev: true /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + resolution: + { + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, + } dev: true /abbrev@1.0.9: - resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} + resolution: + { + integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==, + } dev: true /abstract-level@1.0.4: - resolution: {integrity: sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==, + } + engines: { node: ">=12" } dependencies: buffer: 6.0.3 catering: 2.1.1 @@ -1440,7 +1868,10 @@ packages: dev: true /acorn-jsx@5.3.2(acorn@8.11.3): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: @@ -1448,37 +1879,58 @@ packages: dev: true /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==, + } + engines: { node: ">=0.4.0" } dev: true /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, + } + engines: { node: ">=0.4.0" } hasBin: true dev: true /address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==, + } + engines: { node: ">= 10.0.0" } dev: true /adm-zip@0.4.16: - resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} - engines: {node: '>=0.3.0'} + resolution: + { + integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==, + } + engines: { node: ">=0.3.0" } dev: true /aes-js@3.0.0: - resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} + resolution: + { + integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==, + } dev: true /aes-js@4.0.0-beta.5: - resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + resolution: + { + integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==, + } dev: true /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + resolution: + { + integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, + } + engines: { node: ">= 6.0.0" } dependencies: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: @@ -1486,15 +1938,21 @@ packages: dev: true /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, + } + engines: { node: ">=8" } dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 dev: true /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + } dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -1503,7 +1961,10 @@ packages: dev: true /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + resolution: + { + integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, + } dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -1512,109 +1973,166 @@ packages: dev: true /amdefine@1.0.1: - resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} - engines: {node: '>=0.4.2'} + resolution: + { + integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==, + } + engines: { node: ">=0.4.2" } requiresBuild: true dev: true optional: true /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==, + } + engines: { node: ">=6" } dev: true /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, + } + engines: { node: ">=6" } dev: true /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, + } + engines: { node: ">=8" } dependencies: type-fest: 0.21.3 dev: true /ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==, + } + engines: { node: ">=4" } dev: true /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } dev: true /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: ">=12" } dev: true /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } dependencies: color-convert: 1.9.3 dev: true /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } dependencies: color-convert: 2.0.1 dev: true /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: ">=12" } dev: true /antlr4ts@0.5.0-alpha.4: - resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==} + resolution: + { + integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==, + } dev: true /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: ">= 8" } dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 dev: true /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + resolution: + { + integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, + } dev: true /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } dependencies: sprintf-js: 1.0.3 dev: true /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } dev: true /array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==, + } + engines: { node: ">=6" } dev: true /array-back@4.0.2: - resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==, + } + engines: { node: ">=8" } dev: true /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + resolution: + { + integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, + } dependencies: call-bind: 1.0.5 is-array-buffer: 3.0.2 dev: true /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -1624,18 +2142,27 @@ packages: dev: true /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: ">=8" } dev: true /array-uniq@1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==, + } + engines: { node: ">=0.10.0" } dev: true /array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -1645,8 +2172,11 @@ packages: dev: true /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -1655,8 +2185,11 @@ packages: dev: true /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -1665,8 +2198,11 @@ packages: dev: true /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, + } + engines: { node: ">= 0.4" } dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.5 @@ -1678,38 +2214,62 @@ packages: dev: true /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + resolution: + { + integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, + } dev: true /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + resolution: + { + integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, + } dev: true /astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, + } + engines: { node: ">=8" } dev: true /async@1.5.2: - resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} + resolution: + { + integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==, + } dev: true /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } dev: true /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, + } + engines: { node: ">= 4.0.0" } dev: true /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, + } + engines: { node: ">= 0.4" } dev: true - /axios@1.6.6: - resolution: {integrity: sha512-XZLZDFfXKM9U/Y/B4nNynfCRUqNyVZ4sBC/n9GDRCkq9vd2mIvKjKKsbIh1WPmHmNbg6ND7cTBY3Y2+u1G3/2Q==} + /axios@1.6.7: + resolution: + { + integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==, + } dependencies: follow-redirects: 1.15.5(debug@4.3.4) form-data: 4.0.0 @@ -1719,71 +2279,113 @@ packages: dev: true /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } dev: true /base-x@3.0.9: - resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} + resolution: + { + integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==, + } dependencies: safe-buffer: 5.2.1 dev: true /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } dev: true /bech32@1.1.4: - resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + resolution: + { + integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==, + } dev: true /bigint-crypto-utils@3.3.0: - resolution: {integrity: sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==, + } + engines: { node: ">=14.0.0" } dev: true /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, + } + engines: { node: ">=8" } dev: true /blakejs@1.2.1: - resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + resolution: + { + integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==, + } dev: true /bn.js@4.12.0: - resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + resolution: + { + integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==, + } dev: true /bn.js@5.2.1: - resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + resolution: + { + integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==, + } dev: true /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } dependencies: balanced-match: 1.0.2 dev: true /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: ">=8" } dependencies: fill-range: 7.0.1 dev: true /brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + resolution: + { + integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, + } dev: true /browser-level@1.0.1: - resolution: {integrity: sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==} + resolution: + { + integrity: sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==, + } dependencies: abstract-level: 1.0.4 catering: 2.1.1 @@ -1792,11 +2394,17 @@ packages: dev: true /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + resolution: + { + integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==, + } dev: true /browserify-aes@1.2.0: - resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + resolution: + { + integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==, + } dependencies: buffer-xor: 1.0.3 cipher-base: 1.0.4 @@ -1807,13 +2415,19 @@ packages: dev: true /bs58@4.0.1: - resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + resolution: + { + integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==, + } dependencies: base-x: 3.0.9 dev: true /bs58check@2.1.2: - resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} + resolution: + { + integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==, + } dependencies: bs58: 4.0.1 create-hash: 1.2.0 @@ -1821,38 +2435,59 @@ packages: dev: true /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } dev: true /buffer-xor@1.0.3: - resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + resolution: + { + integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==, + } dev: true /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + resolution: + { + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + } dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: true /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, + } + engines: { node: ">=6" } dev: true /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + resolution: + { + integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==, + } dependencies: semver: 7.5.4 dev: true /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, + } + engines: { node: ">= 0.8" } dev: true /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + resolution: + { + integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==, + } dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.2 @@ -1860,48 +2495,72 @@ packages: dev: true /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: ">=6" } dev: true /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, + } + engines: { node: ">=10" } dev: true /case@1.6.3: - resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==, + } + engines: { node: ">= 0.8.0" } dev: true /caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + resolution: + { + integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, + } dev: true /catering@2.1.1: - resolution: {integrity: sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==, + } + engines: { node: ">=6" } dev: true /cbor@8.1.0: - resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} - engines: {node: '>=12.19'} + resolution: + { + integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==, + } + engines: { node: ">=12.19" } dependencies: nofilter: 3.1.0 dev: true /chai-as-promised@7.1.1(chai@4.4.1): - resolution: {integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==} + resolution: + { + integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==, + } peerDependencies: - chai: '>= 2.1.2 < 5' + chai: ">= 2.1.2 < 5" dependencies: chai: 4.4.1 check-error: 1.0.3 dev: true /chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==, + } + engines: { node: ">=4" } dependencies: assertion-error: 1.1.0 check-error: 1.0.3 @@ -1913,8 +2572,11 @@ packages: dev: true /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 @@ -1922,26 +2584,38 @@ packages: dev: true /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: ">=10" } dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 dev: true /charenc@0.0.2: - resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + resolution: + { + integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==, + } dev: true /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + resolution: + { + integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==, + } dependencies: get-func-name: 2.0.2 dev: true /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + resolution: + { + integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, + } + engines: { node: ">= 8.10.0" } dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -1955,19 +2629,28 @@ packages: dev: true /ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + resolution: + { + integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==, + } dev: true /cipher-base@1.0.4: - resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + resolution: + { + integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==, + } dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 dev: true /classic-level@1.4.1: - resolution: {integrity: sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ==, + } + engines: { node: ">=12" } requiresBuild: true dependencies: abstract-level: 1.0.4 @@ -1978,13 +2661,19 @@ packages: dev: true /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, + } + engines: { node: ">=6" } dev: true /cli-table3@0.5.1: - resolution: {integrity: sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==, + } + engines: { node: ">=6" } dependencies: object-assign: 4.1.1 string-width: 2.1.1 @@ -1993,16 +2682,22 @@ packages: dev: true /cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} - engines: {node: 10.* || >= 12.*} + resolution: + { + integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==, + } + engines: { node: 10.* || >= 12.* } dependencies: string-width: 4.2.3 optionalDependencies: - '@colors/colors': 1.5.0 + "@colors/colors": 1.5.0 dev: true /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + resolution: + { + integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, + } dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -2010,45 +2705,69 @@ packages: dev: true /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } dependencies: color-name: 1.1.3 dev: true /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } dependencies: color-name: 1.1.4 dev: true /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } dev: true /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } dev: true /colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} + resolution: + { + integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==, + } + engines: { node: ">=0.1.90" } dev: true /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: ">= 0.8" } dependencies: delayed-stream: 1.0.0 dev: true /command-exists@1.2.9: - resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + resolution: + { + integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==, + } dev: true /command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==, + } + engines: { node: ">=4.0.0" } dependencies: array-back: 3.1.0 find-replace: 3.0.0 @@ -2057,8 +2776,11 @@ packages: dev: true /command-line-usage@6.1.3: - resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==, + } + engines: { node: ">=8.0.0" } dependencies: array-back: 4.0.2 chalk: 2.4.2 @@ -2067,21 +2789,33 @@ packages: dev: true /commander@3.0.2: - resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} + resolution: + { + integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==, + } dev: true /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, + } + engines: { node: ">= 12" } dev: true /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } dev: true /concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} + resolution: + { + integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, + } + engines: { "0": node >= 0.8 } dependencies: buffer-from: 1.1.2 inherits: 2.0.4 @@ -2090,22 +2824,34 @@ packages: dev: true /cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==, + } + engines: { node: ">= 0.6" } dev: true /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } dev: true /crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, + } + engines: { node: ">=0.8" } hasBin: true dev: true /create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + resolution: + { + integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==, + } dependencies: cipher-base: 1.0.4 inherits: 2.0.4 @@ -2115,7 +2861,10 @@ packages: dev: true /create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + resolution: + { + integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==, + } dependencies: cipher-base: 1.0.4 create-hash: 1.2.0 @@ -2126,8 +2875,11 @@ packages: dev: true /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -2135,17 +2887,26 @@ packages: dev: true /crypt@0.0.2: - resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + resolution: + { + integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==, + } dev: true /death@1.1.0: - resolution: {integrity: sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==} + resolution: + { + integrity: sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==, + } dev: true /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + resolution: + { + integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, + } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true @@ -2154,10 +2915,13 @@ packages: dev: true /debug@4.3.4(supports-color@8.1.1): - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true @@ -2167,29 +2931,44 @@ packages: dev: true /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==, + } + engines: { node: ">=10" } dev: true /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==, + } + engines: { node: ">=6" } dependencies: type-detect: 4.0.8 dev: true /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, + } + engines: { node: ">=4.0.0" } dev: true /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } dev: true /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, + } + engines: { node: ">= 0.4" } dependencies: get-intrinsic: 1.2.2 gopd: 1.0.1 @@ -2197,8 +2976,11 @@ packages: dev: true /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, + } + engines: { node: ">= 0.4" } dependencies: define-data-property: 1.1.1 has-property-descriptors: 1.0.1 @@ -2206,17 +2988,26 @@ packages: dev: true /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: ">=0.4.0" } dev: true /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, + } + engines: { node: ">= 0.8" } dev: true /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + resolution: + { + integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==, + } hasBin: true dependencies: address: 1.2.2 @@ -2226,53 +3017,80 @@ packages: dev: true /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} + resolution: + { + integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, + } + engines: { node: ">=0.3.1" } dev: true /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} + resolution: + { + integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==, + } + engines: { node: ">=0.3.1" } dev: true /difflib@0.2.4: - resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} + resolution: + { + integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==, + } dependencies: heap: 0.2.7 dev: true /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: ">=8" } dependencies: path-type: 4.0.0 dev: true /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, + } + engines: { node: ">=0.10.0" } dependencies: esutils: 2.0.3 dev: true /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: ">=6.0.0" } dependencies: esutils: 2.0.3 dev: true /dotenv@16.4.1: - resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==, + } + engines: { node: ">=12" } dev: true /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } dev: true /elliptic@6.5.4: - resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + resolution: + { + integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, + } dependencies: bn.js: 4.12.0 brorand: 1.1.0 @@ -2284,41 +3102,62 @@ packages: dev: true /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } dev: true /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } dev: true /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==, + } + engines: { node: ">=10.13.0" } dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 dev: true /enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==, + } + engines: { node: ">=8.6" } dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 dev: true /ensure-posix-path@1.1.1: - resolution: {integrity: sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==} + resolution: + { + integrity: sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==, + } dev: true /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, + } + engines: { node: ">=6" } dev: true /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==, + } + engines: { node: ">= 0.4" } dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 @@ -2362,8 +3201,11 @@ packages: dev: true /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==, + } + engines: { node: ">= 0.4" } dependencies: get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 @@ -2371,14 +3213,20 @@ packages: dev: true /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + resolution: + { + integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, + } dependencies: hasown: 2.0.0 dev: true /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, + } + engines: { node: ">= 0.4" } dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 @@ -2386,23 +3234,35 @@ packages: dev: true /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, + } + engines: { node: ">=6" } dev: true /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } dev: true /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: ">=10" } dev: true /escodegen@1.8.1: - resolution: {integrity: sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==, + } + engines: { node: ">=0.12.0" } hasBin: true dependencies: esprima: 2.7.3 @@ -2414,30 +3274,39 @@ packages: dev: true /eslint-compat-utils@0.1.2(eslint@8.56.0): - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==, + } + engines: { node: ">=12" } peerDependencies: - eslint: '>=6.0.0' + eslint: ">=6.0.0" dependencies: eslint: 8.56.0 dev: true /eslint-config-prettier@9.1.0(eslint@8.56.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + resolution: + { + integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==, + } hasBin: true peerDependencies: - eslint: '>=7.0.0' + eslint: ">=7.0.0" dependencies: eslint: 8.56.0 dev: true /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==, + } + engines: { node: ">=12.0.0" } peerDependencies: eslint: ^8.0.1 eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-n: "^15.0.0 || ^16.0.0 " eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 @@ -2447,7 +3316,10 @@ packages: dev: true /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + resolution: + { + integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, + } dependencies: debug: 3.2.7 is-core-module: 2.13.1 @@ -2457,11 +3329,14 @@ packages: dev: true /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.19.1)(eslint-plugin-import@2.29.1)(eslint@8.56.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint: "*" + eslint-plugin-import: "*" dependencies: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 @@ -2473,23 +3348,26 @@ packages: is-core-module: 2.13.1 is-glob: 4.0.3 transitivePeerDependencies: - - '@typescript-eslint/parser' + - "@typescript-eslint/parser" - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color dev: true /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, + } + engines: { node: ">=4" } peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' + "@typescript-eslint/parser": "*" + eslint: "*" + eslint-import-resolver-node: "*" + eslint-import-resolver-typescript: "*" + eslint-import-resolver-webpack: "*" peerDependenciesMeta: - '@typescript-eslint/parser': + "@typescript-eslint/parser": optional: true eslint: optional: true @@ -2500,7 +3378,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + "@typescript-eslint/parser": 6.19.1(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -2510,28 +3388,34 @@ packages: dev: true /eslint-plugin-es-x@7.5.0(eslint@8.56.0): - resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: - eslint: '>=8' + eslint: ">=8" dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 + "@eslint-community/eslint-utils": 4.4.0(eslint@8.56.0) + "@eslint-community/regexpp": 4.10.0 eslint: 8.56.0 eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==, + } + engines: { node: ">=4" } peerDependencies: - '@typescript-eslint/parser': '*' + "@typescript-eslint/parser": "*" eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 peerDependenciesMeta: - '@typescript-eslint/parser': + "@typescript-eslint/parser": optional: true dependencies: - '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + "@typescript-eslint/parser": 6.19.1(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -2557,12 +3441,15 @@ packages: dev: true /eslint-plugin-n@16.6.2(eslint@8.56.0): - resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} - engines: {node: '>=16.0.0'} + resolution: + { + integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==, + } + engines: { node: ">=16.0.0" } peerDependencies: - eslint: '>=7.0.0' + eslint: ">=7.0.0" dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + "@eslint-community/eslint-utils": 4.4.0(eslint@8.56.0) builtins: 5.0.1 eslint: 8.56.0 eslint-plugin-es-x: 7.5.0(eslint@8.56.0) @@ -2577,15 +3464,18 @@ packages: dev: true /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4): - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + eslint-config-prettier: "*" + prettier: ">=3.0.0" peerDependenciesMeta: - '@types/eslint': + "@types/eslint": optional: true eslint-config-prettier: optional: true @@ -2598,8 +3488,11 @@ packages: dev: true /eslint-plugin-promise@6.1.1(eslint@8.56.0): - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: @@ -2607,31 +3500,40 @@ packages: dev: true /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + "@eslint-community/eslint-utils": 4.4.0(eslint@8.56.0) + "@eslint-community/regexpp": 4.10.0 + "@eslint/eslintrc": 2.1.4 + "@eslint/js": 8.56.0 + "@humanwhocodes/config-array": 0.11.14 + "@humanwhocodes/module-importer": 1.0.1 + "@nodelib/fs.walk": 1.2.8 + "@ungap/structured-clone": 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -2667,8 +3569,11 @@ packages: dev: true /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) @@ -2676,56 +3581,80 @@ packages: dev: true /esprima@2.7.3: - resolution: {integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==, + } + engines: { node: ">=0.10.0" } hasBin: true dev: true /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: ">=4" } hasBin: true dev: true /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, + } + engines: { node: ">=0.10" } dependencies: estraverse: 5.3.0 dev: true /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + } + engines: { node: ">=4.0" } dependencies: estraverse: 5.3.0 dev: true /estraverse@1.9.3: - resolution: {integrity: sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==, + } + engines: { node: ">=0.10.0" } dev: true /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: ">=4.0" } dev: true /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: ">=0.10.0" } dev: true /eth-gas-reporter@0.2.27: - resolution: {integrity: sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==} + resolution: + { + integrity: sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==, + } peerDependencies: - '@codechecks/client': ^0.1.0 + "@codechecks/client": ^0.1.0 peerDependenciesMeta: - '@codechecks/client': + "@codechecks/client": optional: true dependencies: - '@solidity-parser/parser': 0.14.5 - axios: 1.6.6 + "@solidity-parser/parser": 0.14.5 + axios: 1.6.7 cli-table3: 0.5.1 colors: 1.4.0 ethereum-cryptography: 1.2.0 @@ -2744,10 +3673,13 @@ packages: dev: true /ethereum-cryptography@0.1.3: - resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} + resolution: + { + integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==, + } dependencies: - '@types/pbkdf2': 3.1.2 - '@types/secp256k1': 4.0.6 + "@types/pbkdf2": 3.1.2 + "@types/secp256k1": 4.0.6 blakejs: 1.2.1 browserify-aes: 1.2.0 bs58check: 2.1.2 @@ -2764,25 +3696,34 @@ packages: dev: true /ethereum-cryptography@1.2.0: - resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} + resolution: + { + integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==, + } dependencies: - '@noble/hashes': 1.2.0 - '@noble/secp256k1': 1.7.1 - '@scure/bip32': 1.1.5 - '@scure/bip39': 1.1.1 + "@noble/hashes": 1.2.0 + "@noble/secp256k1": 1.7.1 + "@scure/bip32": 1.1.5 + "@scure/bip39": 1.1.1 dev: true /ethereumjs-abi@0.6.8: - resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} + resolution: + { + integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==, + } dependencies: bn.js: 4.12.0 ethereumjs-util: 6.2.1 dev: true /ethereumjs-util@6.2.1: - resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} + resolution: + { + integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==, + } dependencies: - '@types/bn.js': 4.11.6 + "@types/bn.js": 4.11.6 bn.js: 4.12.0 create-hash: 1.2.0 elliptic: 6.5.4 @@ -2792,10 +3733,13 @@ packages: dev: true /ethereumjs-util@7.1.5: - resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==, + } + engines: { node: ">=10.0.0" } dependencies: - '@types/bn.js': 5.1.5 + "@types/bn.js": 5.1.5 bn.js: 5.2.1 create-hash: 1.2.0 ethereum-cryptography: 0.1.3 @@ -2803,51 +3747,57 @@ packages: dev: true /ethers@5.7.2: - resolution: {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 + resolution: + { + 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 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true /ethers@6.10.0: - resolution: {integrity: sha512-nMNwYHzs6V1FR3Y4cdfxSQmNgZsRj1RiTU25JwvnJLmyzw9z3SKxNc2XKDuiXXo/v9ds5Mp9m6HBabgYQQ26tA==} - engines: {node: '>=14.0.0'} - dependencies: - '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@types/node': 18.15.13 + resolution: + { + integrity: sha512-nMNwYHzs6V1FR3Y4cdfxSQmNgZsRj1RiTU25JwvnJLmyzw9z3SKxNc2XKDuiXXo/v9ds5Mp9m6HBabgYQQ26tA==, + } + engines: { node: ">=14.0.0" } + dependencies: + "@adraffy/ens-normalize": 1.10.0 + "@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 @@ -2857,92 +3807,134 @@ packages: dev: true /ethjs-util@0.1.6: - resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} - engines: {node: '>=6.5.0', npm: '>=3'} + resolution: + { + integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==, + } + engines: { node: ">=6.5.0", npm: ">=3" } dependencies: is-hex-prefixed: 1.0.0 strip-hex-prefix: 1.0.0 dev: true /evp_bytestokey@1.0.3: - resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + resolution: + { + integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==, + } dependencies: md5.js: 1.3.5 safe-buffer: 5.2.1 dev: true /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } dev: true /fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + resolution: + { + integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==, + } dev: true /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + resolution: + { + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, + } + engines: { node: ">=8.6.0" } + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 dev: true /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } dev: true /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } dev: true - /fastq@1.16.0: - resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + /fastq@1.17.0: + resolution: + { + integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==, + } dependencies: reusify: 1.0.4 dev: true /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + resolution: + { + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } dependencies: flat-cache: 3.2.0 dev: true /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: ">=8" } dependencies: to-regex-range: 5.0.1 dev: true /find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==, + } + engines: { node: ">=4.0.0" } dependencies: array-back: 3.1.0 dev: true /find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==, + } + engines: { node: ">=4" } dependencies: locate-path: 2.0.0 dev: true /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: ">=10" } dependencies: locate-path: 6.0.0 path-exists: 4.0.0 dev: true /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + resolution: + { + integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, + } + engines: { node: ^10.12.0 || >=12.0.0 } dependencies: flatted: 3.2.9 keyv: 4.5.4 @@ -2950,19 +3942,28 @@ packages: dev: true /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + resolution: + { + integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==, + } hasBin: true dev: true /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + resolution: + { + integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==, + } dev: true /follow-redirects@1.15.5(debug@4.3.4): - resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==, + } + engines: { node: ">=4.0" } peerDependencies: - debug: '*' + debug: "*" peerDependenciesMeta: debug: optional: true @@ -2971,22 +3972,31 @@ packages: dev: true /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } dependencies: is-callable: 1.2.7 dev: true /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, + } + engines: { node: ">=14" } dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 dev: true /form-data@2.5.1: - resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} - engines: {node: '>= 0.12'} + resolution: + { + integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==, + } + engines: { node: ">= 0.12" } dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -2994,8 +4004,11 @@ packages: dev: true /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, + } + engines: { node: ">= 6" } dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -3003,11 +4016,17 @@ packages: dev: true /fp-ts@1.19.3: - resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} + resolution: + { + integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==, + } dev: true /fs-extra@0.30.0: - resolution: {integrity: sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==} + resolution: + { + integrity: sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==, + } dependencies: graceful-fs: 4.2.11 jsonfile: 2.4.0 @@ -3017,8 +4036,11 @@ packages: dev: true /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} + resolution: + { + integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==, + } + engines: { node: ">=6 <7 || >=8" } dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 @@ -3026,8 +4048,11 @@ packages: dev: true /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + resolution: + { + integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, + } + engines: { node: ">=6 <7 || >=8" } dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 @@ -3035,8 +4060,11 @@ packages: dev: true /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, + } + engines: { node: ">=10" } dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 @@ -3045,28 +4073,43 @@ packages: dev: true /fs-readdir-recursive@1.1.0: - resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} + resolution: + { + integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==, + } dev: true /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } dev: true /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] requiresBuild: true dev: true optional: true /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } dev: true /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -3075,24 +4118,39 @@ packages: dev: true /functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + resolution: + { + integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==, + } dev: true /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } dev: true /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } dev: true /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + resolution: + { + integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==, + } dev: true /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + resolution: + { + integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, + } dependencies: function-bind: 1.1.2 has-proto: 1.0.1 @@ -3101,26 +4159,38 @@ packages: dev: true /get-port@3.2.0: - resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==, + } + engines: { node: ">=4" } dev: true /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 dev: true /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + resolution: + { + integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==, + } dependencies: resolve-pkg-maps: 1.0.0 dev: true /ghost-testrpc@0.0.2: - resolution: {integrity: sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==} + resolution: + { + integrity: sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==, + } hasBin: true dependencies: chalk: 2.4.2 @@ -3128,22 +4198,31 @@ packages: dev: true /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } dependencies: is-glob: 4.0.3 dev: true /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + } + engines: { node: ">=10.13.0" } dependencies: is-glob: 4.0.3 dev: true /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, + } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true dependencies: foreground-child: 3.1.1 @@ -3154,7 +4233,10 @@ packages: dev: true /glob@5.0.15: - resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} + resolution: + { + integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==, + } dependencies: inflight: 1.0.6 inherits: 2.0.4 @@ -3164,7 +4246,10 @@ packages: dev: true /glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + resolution: + { + integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==, + } dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -3175,7 +4260,10 @@ packages: dev: true /glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + resolution: + { + integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==, + } dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -3186,7 +4274,10 @@ packages: dev: true /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -3197,15 +4288,21 @@ packages: dev: true /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==, + } + engines: { node: ">=6" } dependencies: global-prefix: 3.0.0 dev: true /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==, + } + engines: { node: ">=6" } dependencies: ini: 1.3.8 kind-of: 6.0.3 @@ -3213,24 +4310,33 @@ packages: dev: true /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, + } + engines: { node: ">=8" } dependencies: type-fest: 0.20.2 dev: true /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, + } + engines: { node: ">= 0.4" } dependencies: define-properties: 1.2.1 dev: true /globby@10.0.2: - resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==, + } + engines: { node: ">=8" } dependencies: - '@types/glob': 7.2.0 + "@types/glob": 7.2.0 array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 @@ -3241,8 +4347,11 @@ packages: dev: true /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, + } + engines: { node: ">=10" } dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -3253,22 +4362,34 @@ packages: dev: true /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } dependencies: get-intrinsic: 1.2.2 dev: true /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } dev: true /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + resolution: + { + integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, + } dev: true /handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} + resolution: + { + integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==, + } + engines: { node: ">=0.4.7" } hasBin: true dependencies: minimist: 1.2.8 @@ -3280,7 +4401,10 @@ packages: dev: true /hardhat-contract-sizer@2.10.0(hardhat@2.19.4): - resolution: {integrity: sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA==} + resolution: + { + integrity: sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA==, + } peerDependencies: hardhat: ^2.0.0 dependencies: @@ -3291,7 +4415,10 @@ packages: dev: true /hardhat-gas-reporter@1.0.9(hardhat@2.19.4): - resolution: {integrity: sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==} + resolution: + { + integrity: sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==, + } peerDependencies: hardhat: ^2.0.2 dependencies: @@ -3300,40 +4427,43 @@ packages: hardhat: 2.19.4(ts-node@11.0.0-beta.1)(typescript@5.3.3) sha1: 1.1.1 transitivePeerDependencies: - - '@codechecks/client' + - "@codechecks/client" - bufferutil - debug - utf-8-validate dev: true /hardhat@2.19.4(ts-node@11.0.0-beta.1)(typescript@5.3.3): - resolution: {integrity: sha512-fTQJpqSt3Xo9Mn/WrdblNGAfcANM6XC3tAEi6YogB4s02DmTf93A8QsGb8uR0KR8TFcpcS8lgiW4ugAIYpnbrQ==} + resolution: + { + integrity: sha512-fTQJpqSt3Xo9Mn/WrdblNGAfcANM6XC3tAEi6YogB4s02DmTf93A8QsGb8uR0KR8TFcpcS8lgiW4ugAIYpnbrQ==, + } hasBin: true peerDependencies: - ts-node: '*' - typescript: '*' + ts-node: "*" + typescript: "*" peerDependenciesMeta: ts-node: optional: true typescript: optional: true dependencies: - '@ethersproject/abi': 5.7.0 - '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/ethereumjs-block': 5.0.2 - '@nomicfoundation/ethereumjs-blockchain': 7.0.2 - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-evm': 2.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-statemanager': 2.0.2 - '@nomicfoundation/ethereumjs-trie': 6.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 - '@nomicfoundation/ethereumjs-vm': 7.0.2 - '@nomicfoundation/solidity-analyzer': 0.1.1 - '@sentry/node': 5.30.0 - '@types/bn.js': 5.1.5 - '@types/lru-cache': 5.1.1 + "@ethersproject/abi": 5.7.0 + "@metamask/eth-sig-util": 4.0.1 + "@nomicfoundation/ethereumjs-block": 5.0.2 + "@nomicfoundation/ethereumjs-blockchain": 7.0.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-evm": 2.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-statemanager": 2.0.2 + "@nomicfoundation/ethereumjs-trie": 6.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + "@nomicfoundation/ethereumjs-vm": 7.0.2 + "@nomicfoundation/solidity-analyzer": 0.1.1 + "@sentry/node": 5.30.0 + "@types/bn.js": 5.1.5 + "@types/lru-cache": 5.1.1 adm-zip: 0.4.16 aggregate-error: 3.1.0 ansi-escapes: 4.3.2 @@ -3349,7 +4479,7 @@ packages: fp-ts: 1.19.3 fs-extra: 7.0.1 glob: 7.2.0 - immutable: 4.3.4 + immutable: 4.3.5 io-ts: 1.10.4 keccak: 3.0.4 lodash: 4.17.21 @@ -3362,7 +4492,7 @@ packages: solc: 0.7.3(debug@4.3.4) source-map-support: 0.5.21 stacktrace-parser: 0.1.10 - ts-node: 11.0.0-beta.1(@types/node@20.11.6)(typescript@5.3.3) + ts-node: 11.0.0-beta.1(@types/node@20.11.7)(typescript@5.3.3) tsort: 0.0.1 typescript: 5.3.3 undici: 5.28.2 @@ -3375,50 +4505,77 @@ packages: dev: true /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, + } dev: true /has-flag@1.0.0: - resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==, + } + engines: { node: ">=0.10.0" } dev: true /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } dev: true /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: ">=8" } dev: true /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + resolution: + { + integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==, + } dependencies: get-intrinsic: 1.2.2 dev: true /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, + } + engines: { node: ">= 0.4" } dev: true /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: ">= 0.4" } dev: true /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, + } + engines: { node: ">= 0.4" } dependencies: has-symbols: 1.0.3 dev: true /hash-base@3.1.0: - resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==, + } + engines: { node: ">=4" } dependencies: inherits: 2.0.4 readable-stream: 3.6.2 @@ -3426,30 +4583,45 @@ packages: dev: true /hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + resolution: + { + integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==, + } dependencies: inherits: 2.0.4 minimalistic-assert: 1.0.1 dev: true /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, + } + engines: { node: ">= 0.4" } dependencies: function-bind: 1.1.2 dev: true /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + resolution: + { + integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, + } hasBin: true dev: true /heap@0.2.7: - resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} + resolution: + { + integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==, + } dev: true /hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + resolution: + { + integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, + } dependencies: hash.js: 1.1.7 minimalistic-assert: 1.0.1 @@ -3457,8 +4629,11 @@ packages: dev: true /http-basic@8.1.3: - resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==, + } + engines: { node: ">=6.0.0" } dependencies: caseless: 0.12.0 concat-stream: 1.6.2 @@ -3467,8 +4642,11 @@ packages: dev: true /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + } + engines: { node: ">= 0.8" } dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -3478,14 +4656,20 @@ packages: dev: true /http-response-object@3.0.2: - resolution: {integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==} + resolution: + { + integrity: sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==, + } dependencies: - '@types/node': 10.17.60 + "@types/node": 10.17.60 dev: true /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, + } + engines: { node: ">= 6" } dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@8.1.1) @@ -3494,61 +4678,94 @@ packages: dev: true /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: ">=0.10.0" } dependencies: safer-buffer: 2.1.2 dev: true /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } dev: true /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==, + } + engines: { node: ">= 4" } dev: true - /immutable@4.3.4: - resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + /immutable@4.3.5: + resolution: + { + integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==, + } dev: true /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: ">=6" } dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 dev: true /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: ">=0.8.19" } dev: true /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, + } + engines: { node: ">=8" } dev: true /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } dev: true /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + resolution: + { + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, + } dev: true /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==, + } + engines: { node: ">= 0.4" } dependencies: get-intrinsic: 1.2.2 hasown: 2.0.0 @@ -3556,18 +4773,27 @@ packages: dev: true /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, + } + engines: { node: ">= 0.10" } dev: true /io-ts@1.10.4: - resolution: {integrity: sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==} + resolution: + { + integrity: sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==, + } dependencies: fp-ts: 1.19.3 dev: true /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + resolution: + { + integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, + } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -3575,187 +4801,283 @@ packages: dev: true /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, + } dependencies: has-bigints: 1.0.2 dev: true /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } dependencies: binary-extensions: 2.2.0 dev: true /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true /is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, + } + engines: { node: ">=4" } dev: true /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==, + } + engines: { node: ">=6" } dependencies: builtin-modules: 3.3.0 dev: true /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: ">= 0.4" } dev: true /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + resolution: + { + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, + } dependencies: hasown: 2.0.0 dev: true /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: ">= 0.4" } dependencies: has-tostringtag: 1.0.0 dev: true /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } dev: true /is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==, + } + engines: { node: ">=4" } dev: true /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } dev: true /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } dependencies: is-extglob: 2.1.1 dev: true /is-hex-prefixed@1.0.0: - resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} - engines: {node: '>=6.5.0', npm: '>=3'} + resolution: + { + integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==, + } + engines: { node: ">=6.5.0", npm: ">=3" } dev: true /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, + } + engines: { node: ">= 0.4" } dev: true /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: ">= 0.4" } dependencies: has-tostringtag: 1.0.0 dev: true /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } dev: true /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, + } + engines: { node: ">=8" } dev: true /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==, + } + engines: { node: ">=8" } dev: true /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + resolution: + { + integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, + } dependencies: call-bind: 1.0.5 dev: true /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: ">= 0.4" } dependencies: has-tostringtag: 1.0.0 dev: true /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: ">= 0.4" } dependencies: has-symbols: 1.0.3 dev: true /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, + } + engines: { node: ">= 0.4" } dependencies: which-typed-array: 1.1.13 dev: true /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, + } + engines: { node: ">=10" } dev: true /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } dependencies: call-bind: 1.0.5 dev: true /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } dev: true /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } dev: true /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } dev: true /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: ">=14" } dependencies: - '@isaacs/cliui': 8.0.2 + "@isaacs/cliui": 8.0.2 optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + "@pkgjs/parseargs": 0.11.0 dev: true /js-sdsl@4.4.2: - resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==} + resolution: + { + integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==, + } dev: true /js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + resolution: + { + integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==, + } dev: true /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } hasBin: true dependencies: argparse: 1.0.10 @@ -3763,49 +5085,76 @@ packages: dev: true /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } hasBin: true dependencies: argparse: 2.0.1 dev: true /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } dev: true /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } dev: true /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } dev: true /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } dev: true /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + resolution: + { + integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, + } hasBin: true dependencies: minimist: 1.2.8 dev: true /jsonfile@2.4.0: - resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==} + resolution: + { + integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==, + } optionalDependencies: graceful-fs: 4.2.11 dev: true /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + resolution: + { + integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, + } optionalDependencies: graceful-fs: 4.2.11 dev: true /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + resolution: + { + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + } dependencies: universalify: 2.0.1 optionalDependencies: @@ -3813,12 +5162,18 @@ packages: dev: true /jsonschema@1.4.1: - resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} + resolution: + { + integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==, + } dev: true /keccak@3.0.4: - resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==, + } + engines: { node: ">=10.0.0" } requiresBuild: true dependencies: node-addon-api: 2.0.2 @@ -3827,157 +5182,238 @@ packages: dev: true /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + resolution: + { + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, + } dependencies: json-buffer: 3.0.1 dev: true /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, + } + engines: { node: ">=0.10.0" } dev: true /klaw@1.3.1: - resolution: {integrity: sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==} + resolution: + { + integrity: sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==, + } optionalDependencies: graceful-fs: 4.2.11 dev: true /level-supports@4.0.1: - resolution: {integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==, + } + engines: { node: ">=12" } dev: true /level-transcoder@1.0.1: - resolution: {integrity: sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==, + } + engines: { node: ">=12" } dependencies: buffer: 6.0.3 module-error: 1.0.2 dev: true /level@8.0.0: - resolution: {integrity: sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==, + } + engines: { node: ">=12" } dependencies: browser-level: 1.0.1 classic-level: 1.4.1 dev: true /levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, + } + engines: { node: ">= 0.8.0" } dependencies: prelude-ls: 1.1.2 type-check: 0.3.2 dev: true /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + } + engines: { node: ">= 0.8.0" } dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 dev: true /locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==, + } + engines: { node: ">=4" } dependencies: p-locate: 2.0.0 path-exists: 3.0.0 dev: true /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: ">=10" } dependencies: p-locate: 5.0.0 dev: true /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + resolution: + { + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + } dev: true /lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + resolution: + { + integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==, + } dev: true /lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + resolution: + { + integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==, + } dev: true /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: + { + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + } dev: true /lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + resolution: + { + integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, + } dev: true /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } dev: true /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, + } + engines: { node: ">=10" } dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 dev: true /loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + resolution: + { + integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==, + } dependencies: get-func-name: 2.0.2 dev: true - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} + /lru-cache@10.2.0: + resolution: + { + integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==, + } + engines: { node: 14 || >=16.14 } dev: true /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } dependencies: yallist: 3.1.1 dev: true /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + } + engines: { node: ">=10" } dependencies: yallist: 4.0.0 dev: true /lru_map@0.3.3: - resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} + resolution: + { + integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==, + } dev: true /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + resolution: + { + integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, + } dev: true /markdown-table@1.1.3: - resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} + resolution: + { + integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==, + } dev: true /matcher-collection@2.0.1: - resolution: {integrity: sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { + integrity: sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==, + } + engines: { node: 6.* || 8.* || >= 10.* } dependencies: - '@types/minimatch': 3.0.5 + "@types/minimatch": 3.0.5 minimatch: 3.1.2 dev: true /mcl-wasm@0.7.9: - resolution: {integrity: sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==} - engines: {node: '>=8.9.0'} + resolution: + { + integrity: sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==, + } + engines: { node: ">=8.9.0" } dev: true /md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + resolution: + { + integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==, + } dependencies: hash-base: 3.1.0 inherits: 2.0.4 @@ -3985,8 +5421,11 @@ packages: dev: true /memory-level@1.0.0: - resolution: {integrity: sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==, + } + engines: { node: ">=12" } dependencies: abstract-level: 1.0.4 functional-red-black-tree: 1.0.1 @@ -3994,94 +5433,142 @@ packages: dev: true /memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} + resolution: + { + integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==, + } + engines: { node: ">= 0.10.0" } dev: true /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } dev: true /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: ">=8.6" } dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: true /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: ">= 0.6" } dev: true /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: ">= 0.6" } dependencies: mime-db: 1.52.0 dev: true /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + resolution: + { + integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, + } dev: true /minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + resolution: + { + integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, + } dev: true /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } dependencies: brace-expansion: 1.1.11 dev: true /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==, + } + engines: { node: ">=10" } dependencies: brace-expansion: 2.0.1 dev: true /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: brace-expansion: 2.0.1 dev: true /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } dev: true /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, + } + engines: { node: ">=16 || 14 >=14.17" } dev: true /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + resolution: + { + integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, + } hasBin: true dependencies: minimist: 1.2.8 dev: true /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, + } + engines: { node: ">=10" } hasBin: true dev: true /mnemonist@0.38.5: - resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} + resolution: + { + integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==, + } dependencies: obliterator: 2.0.4 dev: true /mocha@10.2.0: - resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} - engines: {node: '>= 14.0.0'} + resolution: + { + integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==, + } + engines: { node: ">= 14.0.0" } hasBin: true dependencies: ansi-colors: 4.1.1 @@ -4108,85 +5595,136 @@ packages: dev: true /module-error@1.0.2: - resolution: {integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==, + } + engines: { node: ">=10" } dev: true /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } dev: true /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } dev: true /nanoid@3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + resolution: + { + integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true dev: true /napi-macros@2.2.2: - resolution: {integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==} + resolution: + { + integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==, + } dev: true /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + } dev: true /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + resolution: + { + integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, + } dev: true /node-addon-api@2.0.2: - resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + resolution: + { + integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==, + } dev: true /node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + resolution: + { + integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==, + } dependencies: lodash: 4.17.21 dev: true /node-gyp-build@4.8.0: - resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} + resolution: + { + integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==, + } hasBin: true dev: true /nofilter@3.1.0: - resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} - engines: {node: '>=12.19'} + resolution: + { + integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==, + } + engines: { node: ">=12.19" } dev: true /nopt@3.0.6: - resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} + resolution: + { + integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==, + } hasBin: true dependencies: abbrev: 1.0.9 dev: true /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } dev: true /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } dev: true /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + resolution: + { + integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, + } dev: true /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: ">= 0.4" } dev: true /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -4195,8 +5733,11 @@ packages: dev: true /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -4204,7 +5745,10 @@ packages: dev: true /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + resolution: + { + integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==, + } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -4213,8 +5757,11 @@ packages: dev: true /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -4222,18 +5769,27 @@ packages: dev: true /obliterator@2.0.4: - resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} + resolution: + { + integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==, + } dev: true /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } dependencies: wrappy: 1.0.2 dev: true /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, + } + engines: { node: ">= 0.8.0" } dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -4244,10 +5800,13 @@ packages: dev: true /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, + } + engines: { node: ">= 0.8.0" } dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 + "@aashutoshrathi/word-wrap": 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 @@ -4256,109 +5815,166 @@ packages: dev: true /ordinal@1.0.3: - resolution: {integrity: sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==} + resolution: + { + integrity: sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==, + } dev: true /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, + } + engines: { node: ">=0.10.0" } dev: true /p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, + } + engines: { node: ">=4" } dependencies: p-try: 1.0.0 dev: true /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: ">=10" } dependencies: yocto-queue: 0.1.0 dev: true /p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==, + } + engines: { node: ">=4" } dependencies: p-limit: 1.3.0 dev: true /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: ">=10" } dependencies: p-limit: 3.1.0 dev: true /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, + } + engines: { node: ">=10" } dependencies: aggregate-error: 3.1.0 dev: true /p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==, + } + engines: { node: ">=4" } dev: true /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: ">=6" } dependencies: callsites: 3.1.0 dev: true /parse-cache-control@1.0.1: - resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} + resolution: + { + integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==, + } dev: true /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, + } + engines: { node: ">=4" } dev: true /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: ">=8" } dev: true /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } dev: true /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } dev: true /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } dev: true /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: - lru-cache: 10.1.0 + lru-cache: 10.2.0 minipass: 7.0.4 dev: true /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: ">=8" } dev: true /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + resolution: + { + integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, + } dev: true /pbkdf2@3.1.2: - resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} - engines: {node: '>=0.12'} + resolution: + { + integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, + } + engines: { node: ">=0.12" } dependencies: create-hash: 1.2.0 create-hmac: 1.1.7 @@ -4368,95 +5984,143 @@ packages: dev: true /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } dev: true /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, + } + engines: { node: ">=6" } dev: true /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, + } + engines: { node: ">= 0.8.0" } dev: true /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: ">= 0.8.0" } dev: true /prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, + } + engines: { node: ">=6.0.0" } dependencies: fast-diff: 1.3.0 dev: true /prettier-plugin-solidity@1.3.1(prettier@3.2.4): - resolution: {integrity: sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA==, + } + engines: { node: ">=16" } peerDependencies: - prettier: '>=2.3.0' + prettier: ">=2.3.0" dependencies: - '@solidity-parser/parser': 0.17.0 + "@solidity-parser/parser": 0.17.0 prettier: 3.2.4 semver: 7.5.4 solidity-comments-extractor: 0.0.8 dev: true /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, + } + engines: { node: ">=10.13.0" } hasBin: true dev: true /prettier@3.2.4: - resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==, + } + engines: { node: ">=14" } hasBin: true dev: true /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + } dev: true /promise@8.3.0: - resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} + resolution: + { + integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==, + } dependencies: asap: 2.0.6 dev: true /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + resolution: + { + integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, + } dev: true /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: ">=6" } dev: true /qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==, + } + engines: { node: ">=0.6" } dependencies: side-channel: 1.0.4 dev: true /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } dev: true /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + resolution: + { + integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, + } dependencies: safe-buffer: 5.2.1 dev: true /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, + } + engines: { node: ">= 0.8" } dependencies: bytes: 3.1.2 http-errors: 2.0.0 @@ -4465,7 +6129,10 @@ packages: dev: true /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, + } dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -4477,8 +6144,11 @@ packages: dev: true /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, + } + engines: { node: ">= 6" } dependencies: inherits: 2.0.4 string_decoder: 1.3.0 @@ -4486,34 +6156,49 @@ packages: dev: true /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } dependencies: picomatch: 2.3.1 dev: true /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, + } + engines: { node: ">= 0.10" } dependencies: resolve: 1.22.8 dev: true /recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==, + } + engines: { node: ">=6.0.0" } dependencies: minimatch: 3.1.2 dev: true /reduce-flatten@2.0.0: - resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==, + } + engines: { node: ">=6" } dev: true /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -4521,55 +6206,85 @@ packages: dev: true /req-cwd@2.0.0: - resolution: {integrity: sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==, + } + engines: { node: ">=4" } dependencies: req-from: 2.0.0 dev: true /req-from@2.0.0: - resolution: {integrity: sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==, + } + engines: { node: ">=4" } dependencies: resolve-from: 3.0.0 dev: true /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: ">=0.10.0" } dev: true /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: ">=0.10.0" } dev: true /resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==, + } + engines: { node: ">=4" } dev: true /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: ">=4" } dev: true /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolution: + { + integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, + } dev: true /resolve@1.1.7: - resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} + resolution: + { + integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==, + } dev: true /resolve@1.17.0: - resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} + resolution: + { + integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==, + } dependencies: path-parse: 1.0.7 dev: true /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } hasBin: true dependencies: is-core-module: 2.13.1 @@ -4578,65 +6293,95 @@ packages: dev: true /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } dev: true /rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + resolution: + { + integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, + } hasBin: true dependencies: - glob: 7.2.3 + glob: 7.2.0 dev: true /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } hasBin: true dependencies: glob: 7.2.3 dev: true /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==, + } + engines: { node: ">=14" } hasBin: true dependencies: glob: 10.3.10 dev: true /ripemd160@2.0.2: - resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + resolution: + { + integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, + } dependencies: hash-base: 3.1.0 inherits: 2.0.4 dev: true /rlp@2.2.7: - resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} + resolution: + { + integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==, + } hasBin: true dependencies: bn.js: 5.2.1 dev: true /run-parallel-limit@1.1.0: - resolution: {integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==} + resolution: + { + integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==, + } dependencies: queue-microtask: 1.2.3 dev: true /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } dependencies: queue-microtask: 1.2.3 dev: true /rustbn.js@0.2.0: - resolution: {integrity: sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==} + resolution: + { + integrity: sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==, + } dev: true /safe-array-concat@1.1.0: - resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} - engines: {node: '>=0.4'} + resolution: + { + integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==, + } + engines: { node: ">=0.4" } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -4645,16 +6390,25 @@ packages: dev: true /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } dev: true /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } dev: true /safe-regex-test@1.0.2: - resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -4662,11 +6416,17 @@ packages: dev: true /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } dev: true /sc-istanbul@0.4.6: - resolution: {integrity: sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==} + resolution: + { + integrity: sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==, + } hasBin: true dependencies: abbrev: 1.0.9 @@ -4686,12 +6446,18 @@ packages: dev: true /scrypt-js@3.0.1: - resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} + resolution: + { + integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==, + } dev: true /secp256k1@4.0.3: - resolution: {integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==, + } + engines: { node: ">=10.0.0" } requiresBuild: true dependencies: elliptic: 6.5.4 @@ -4700,32 +6466,47 @@ packages: dev: true /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + resolution: + { + integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, + } hasBin: true dev: true /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } hasBin: true dev: true /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, + } + engines: { node: ">=10" } hasBin: true dependencies: lru-cache: 6.0.0 dev: true /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + resolution: + { + integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==, + } dependencies: randombytes: 2.1.0 dev: true /set-function-length@1.2.0: - resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==, + } + engines: { node: ">= 0.4" } dependencies: define-data-property: 1.1.1 function-bind: 1.1.2 @@ -4735,8 +6516,11 @@ packages: dev: true /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==, + } + engines: { node: ">= 0.4" } dependencies: define-data-property: 1.1.1 functions-have-names: 1.2.3 @@ -4744,15 +6528,24 @@ packages: dev: true /setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + resolution: + { + integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, + } dev: true /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, + } dev: true /sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + resolution: + { + integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==, + } hasBin: true dependencies: inherits: 2.0.4 @@ -4760,27 +6553,39 @@ packages: dev: true /sha1@1.1.1: - resolution: {integrity: sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==} + resolution: + { + integrity: sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==, + } dependencies: charenc: 0.0.2 crypt: 0.0.2 dev: true /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } dependencies: shebang-regex: 3.0.0 dev: true /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } dev: true /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, + } + engines: { node: ">=4" } hasBin: true dependencies: glob: 7.2.3 @@ -4789,7 +6594,10 @@ packages: dev: true /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + resolution: + { + integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, + } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -4797,18 +6605,27 @@ packages: dev: true /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: ">=14" } dev: true /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: ">=8" } dev: true /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, + } + engines: { node: ">=10" } dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 @@ -4816,8 +6633,11 @@ packages: dev: true /solc@0.7.3(debug@4.3.4): - resolution: {integrity: sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==, + } + engines: { node: ">=8.0.0" } hasBin: true dependencies: command-exists: 1.2.9 @@ -4834,8 +6654,11 @@ packages: dev: true /solc@0.8.21: - resolution: {integrity: sha512-N55ogy2dkTRwiONbj4e6wMZqUNaLZkiRcjGyeafjLYzo/tf/IvhHY5P5wpe+H3Fubh9idu071i8eOGO31s1ylg==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-N55ogy2dkTRwiONbj4e6wMZqUNaLZkiRcjGyeafjLYzo/tf/IvhHY5P5wpe+H3Fubh9idu071i8eOGO31s1ylg==, + } + engines: { node: ">=10.0.0" } hasBin: true dependencies: command-exists: 1.2.9 @@ -4850,17 +6673,23 @@ packages: dev: true /solidity-comments-extractor@0.0.8: - resolution: {integrity: sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g==} + resolution: + { + integrity: sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g==, + } dev: true /solidity-coverage@0.8.6-sha1.0(hardhat@2.19.4): - resolution: {integrity: sha512-BOkCMqt1XoElZgPSilFYf9jT5KPqcffEO/uopy0gUTVy5dtQvCKByKafM6n6RlJzWAYyD18/ZtcE45rUKOhdmA==} + resolution: + { + integrity: sha512-BOkCMqt1XoElZgPSilFYf9jT5KPqcffEO/uopy0gUTVy5dtQvCKByKafM6n6RlJzWAYyD18/ZtcE45rUKOhdmA==, + } hasBin: true peerDependencies: hardhat: ^2.11.0 dependencies: - '@ethersproject/abi': 5.7.0 - '@solidity-parser/parser': 0.16.2 + "@ethersproject/abi": 5.7.0 + "@solidity-parser/parser": 0.16.2 chalk: 2.4.2 death: 1.1.0 detect-port: 1.5.1 @@ -4885,15 +6714,21 @@ packages: dev: true /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true /source-map@0.2.0: - resolution: {integrity: sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==, + } + engines: { node: ">=0.8.0" } requiresBuild: true dependencies: amdefine: 1.0.1 @@ -4901,46 +6736,70 @@ packages: optional: true /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: ">=0.10.0" } dev: true /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } dev: true /squirrelly@8.0.8: - resolution: {integrity: sha512-7dyZJ9Gw86MmH0dYLiESsjGOTj6KG8IWToTaqBuB6LwPI+hyNb6mbQaZwrfnAQ4cMDnSWMUvX/zAYDLTSWLk/w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-7dyZJ9Gw86MmH0dYLiESsjGOTj6KG8IWToTaqBuB6LwPI+hyNb6mbQaZwrfnAQ4cMDnSWMUvX/zAYDLTSWLk/w==, + } + engines: { node: ">=6.0.0" } dev: true /stacktrace-parser@0.1.10: - resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==, + } + engines: { node: ">=6" } dependencies: type-fest: 0.7.1 dev: true /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + } + engines: { node: ">= 0.8" } dev: true /string-format@2.0.0: - resolution: {integrity: sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==} + resolution: + { + integrity: sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==, + } dev: true /string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==, + } + engines: { node: ">=4" } dependencies: is-fullwidth-code-point: 2.0.0 strip-ansi: 4.0.0 dev: true /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 @@ -4948,8 +6807,11 @@ packages: dev: true /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: ">=12" } dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 @@ -4957,8 +6819,11 @@ packages: dev: true /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -4966,7 +6831,10 @@ packages: dev: true /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + resolution: + { + integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, + } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -4974,7 +6842,10 @@ packages: dev: true /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + resolution: + { + integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, + } dependencies: call-bind: 1.0.5 define-properties: 1.2.1 @@ -4982,91 +6853,133 @@ packages: dev: true /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + } dependencies: safe-buffer: 5.1.2 dev: true /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } dependencies: safe-buffer: 5.2.1 dev: true /strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==, + } + engines: { node: ">=4" } dependencies: ansi-regex: 3.0.1 dev: true /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } dependencies: ansi-regex: 5.0.1 dev: true /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: ">=12" } dependencies: ansi-regex: 6.0.1 dev: true /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: ">=4" } dev: true /strip-hex-prefix@1.0.0: - resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} - engines: {node: '>=6.5.0', npm: '>=3'} + resolution: + { + integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==, + } + engines: { node: ">=6.5.0", npm: ">=3" } dependencies: is-hex-prefixed: 1.0.0 dev: true /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: ">=8" } dev: true /supports-color@3.2.3: - resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==, + } + engines: { node: ">=0.8.0" } dependencies: has-flag: 1.0.0 dev: true /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } dependencies: has-flag: 3.0.0 dev: true /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: ">=8" } dependencies: has-flag: 4.0.0 dev: true /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, + } + engines: { node: ">=10" } dependencies: has-flag: 4.0.0 dev: true /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } dev: true /sync-request@6.1.0: - resolution: {integrity: sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==, + } + engines: { node: ">=8.0.0" } dependencies: http-response-object: 3.0.2 sync-rpc: 1.3.6 @@ -5074,22 +6987,31 @@ packages: dev: true /sync-rpc@1.3.6: - resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} + resolution: + { + integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==, + } dependencies: get-port: 3.2.0 dev: true /synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==, + } + engines: { node: ^14.18.0 || >=16.0.0 } dependencies: - '@pkgr/core': 0.1.1 + "@pkgr/core": 0.1.1 tslib: 2.6.2 dev: true /table-layout@1.0.2: - resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==, + } + engines: { node: ">=8.0.0" } dependencies: array-back: 4.0.2 deep-extend: 0.6.0 @@ -5098,8 +7020,11 @@ packages: dev: true /table@6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==, + } + engines: { node: ">=10.0.0" } dependencies: ajv: 8.12.0 lodash.truncate: 4.4.2 @@ -5109,22 +7034,31 @@ packages: dev: true /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, + } + engines: { node: ">=6" } dev: true /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + } dev: true /then-request@6.0.2: - resolution: {integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==} - engines: {node: '>=6.0.0'} - dependencies: - '@types/concat-stream': 1.6.1 - '@types/form-data': 0.0.33 - '@types/node': 8.10.66 - '@types/qs': 6.9.11 + resolution: + { + integrity: sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@types/concat-stream": 1.6.1 + "@types/form-data": 0.0.33 + "@types/node": 8.10.66 + "@types/qs": 6.9.11 caseless: 0.12.0 concat-stream: 1.6.2 form-data: 2.5.1 @@ -5135,35 +7069,50 @@ packages: dev: true /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + resolution: + { + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, + } + engines: { node: ">=0.6.0" } dependencies: os-tmpdir: 1.0.2 dev: true /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } dependencies: is-number: 7.0.0 dev: true /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, + } + engines: { node: ">=0.6" } dev: true /ts-api-utils@1.0.3(typescript@5.3.3): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + resolution: + { + integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==, + } + engines: { node: ">=16.13.0" } peerDependencies: - typescript: '>=4.2.0' + typescript: ">=4.2.0" dependencies: typescript: 5.3.3 dev: true /ts-command-line-args@2.5.1: - resolution: {integrity: sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==} + resolution: + { + integrity: sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==, + } hasBin: true dependencies: chalk: 4.1.2 @@ -5173,33 +7122,39 @@ packages: dev: true /ts-essentials@7.0.3(typescript@5.3.3): - resolution: {integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==} + resolution: + { + integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==, + } peerDependencies: - typescript: '>=3.7.0' + typescript: ">=3.7.0" dependencies: typescript: 5.3.3 dev: true - /ts-node@11.0.0-beta.1(@types/node@20.11.6)(typescript@5.3.3): - resolution: {integrity: sha512-WMSROP+1pU22Q/Tm40mjfRg130yD8i0g6ROST04ZpocfH8sl1zD75ON4XQMcBEVViXMVemJBH0alflE7xePdRA==} + /ts-node@11.0.0-beta.1(@types/node@20.11.7)(typescript@5.3.3): + resolution: + { + integrity: sha512-WMSROP+1pU22Q/Tm40mjfRg130yD8i0g6ROST04ZpocfH8sl1zD75ON4XQMcBEVViXMVemJBH0alflE7xePdRA==, + } hasBin: true peerDependencies: - '@swc/core': '>=1.3.85' - '@swc/wasm': '>=1.3.85' - '@types/node': '*' - typescript: '>=4.4' + "@swc/core": ">=1.3.85" + "@swc/wasm": ">=1.3.85" + "@types/node": "*" + typescript: ">=4.4" peerDependenciesMeta: - '@swc/core': + "@swc/core": optional: true - '@swc/wasm': + "@swc/wasm": optional: true dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node14': 14.1.0 - '@tsconfig/node16': 16.1.1 - '@tsconfig/node18': 18.2.2 - '@tsconfig/node20': 20.1.2 - '@types/node': 20.11.6 + "@cspotcode/source-map-support": 0.8.1 + "@tsconfig/node14": 14.1.0 + "@tsconfig/node16": 16.1.1 + "@tsconfig/node18": 18.2.2 + "@tsconfig/node20": 20.1.2 + "@types/node": 20.11.7 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -5210,79 +7165,121 @@ packages: dev: true /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + resolution: + { + integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, + } dependencies: - '@types/json5': 0.0.29 + "@types/json5": 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 dev: true /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + resolution: + { + integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, + } dev: true /tslib@2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + resolution: + { + integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==, + } dev: true /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + resolution: + { + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, + } dev: true /tsort@0.0.1: - resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} + resolution: + { + integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==, + } dev: true /tweetnacl-util@0.15.1: - resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} + resolution: + { + integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==, + } dev: true /tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + resolution: + { + integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==, + } dev: true /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==, + } + engines: { node: ">= 0.8.0" } dependencies: prelude-ls: 1.1.2 dev: true /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: ">= 0.8.0" } dependencies: prelude-ls: 1.2.1 dev: true /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, + } + engines: { node: ">=4" } dev: true /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: ">=10" } dev: true /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, + } + engines: { node: ">=10" } dev: true /type-fest@0.7.1: - resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==, + } + engines: { node: ">=8" } dev: true /typechain@8.3.2(typescript@5.3.3): - resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==} + resolution: + { + integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==, + } hasBin: true peerDependencies: - typescript: '>=4.3.0' + typescript: ">=4.3.0" dependencies: - '@types/prettier': 2.7.3 + "@types/prettier": 2.7.3 debug: 4.3.4(supports-color@8.1.1) fs-extra: 7.0.1 glob: 7.1.7 @@ -5298,8 +7295,11 @@ packages: dev: true /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -5307,8 +7307,11 @@ packages: dev: true /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, + } + engines: { node: ">= 0.4" } dependencies: call-bind: 1.0.5 for-each: 0.3.3 @@ -5317,8 +7320,11 @@ packages: dev: true /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, + } + engines: { node: ">= 0.4" } dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.5 @@ -5328,7 +7334,10 @@ packages: dev: true /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + resolution: + { + integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, + } dependencies: call-bind: 1.0.5 for-each: 0.3.3 @@ -5336,35 +7345,53 @@ packages: dev: true /typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + resolution: + { + integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, + } dev: true /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==, + } + engines: { node: ">=14.17" } hasBin: true dev: true /typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==, + } + engines: { node: ">=8" } dev: true /typical@5.2.0: - resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==, + } + engines: { node: ">=8" } dev: true /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==, + } + engines: { node: ">=0.8.0" } hasBin: true requiresBuild: true dev: true optional: true /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } dependencies: call-bind: 1.0.5 has-bigints: 1.0.2 @@ -5373,62 +7400,95 @@ packages: dev: true /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + resolution: + { + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, + } dev: true /undici@5.28.2: - resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} - engines: {node: '>=14.0'} + resolution: + { + integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==, + } + engines: { node: ">=14.0" } dependencies: - '@fastify/busboy': 2.1.0 + "@fastify/busboy": 2.1.0 dev: true /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, + } + engines: { node: ">= 4.0.0" } dev: true /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, + } + engines: { node: ">= 10.0.0" } dev: true /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, + } + engines: { node: ">= 0.8" } dev: true /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } dependencies: punycode: 2.3.1 dev: true /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } dev: true /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + resolution: + { + integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, + } hasBin: true dev: true /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + resolution: + { + integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, + } dev: true /walk-sync@3.0.0: - resolution: {integrity: sha512-41TvKmDGVpm2iuH7o+DAOt06yyu/cSHpX3uzAwetzASvlNtVddgIjXIb2DfB/Wa20B1Jo86+1Dv1CraSU7hWdw==} - engines: {node: 10.* || >= 12.*} + resolution: + { + integrity: sha512-41TvKmDGVpm2iuH7o+DAOt06yyu/cSHpX3uzAwetzASvlNtVddgIjXIb2DfB/Wa20B1Jo86+1Dv1CraSU7hWdw==, + } + engines: { node: 10.* || >= 12.* } dependencies: - '@types/minimatch': 3.0.5 + "@types/minimatch": 3.0.5 ensure-posix-path: 1.1.1 matcher-collection: 2.0.1 minimatch: 3.1.2 dev: true /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, + } dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 @@ -5438,8 +7498,11 @@ packages: dev: true /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==, + } + engines: { node: ">= 0.4" } dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.5 @@ -5449,44 +7512,65 @@ packages: dev: true /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + resolution: + { + integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, + } hasBin: true dependencies: isexe: 2.0.0 dev: true /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } hasBin: true dependencies: isexe: 2.0.0 dev: true /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, + } + engines: { node: ">=0.10.0" } dev: true /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + resolution: + { + integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, + } dev: true /wordwrapjs@4.0.1: - resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==, + } + engines: { node: ">=8.0.0" } dependencies: reduce-flatten: 2.0.0 typical: 5.2.0 dev: true /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + resolution: + { + integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==, + } dev: true /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 @@ -5494,8 +7578,11 @@ packages: dev: true /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: ">=12" } dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 @@ -5503,12 +7590,18 @@ packages: dev: true /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } dev: true /ws@7.4.6: - resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} - engines: {node: '>=8.3.0'} + resolution: + { + integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==, + } + engines: { node: ">=8.3.0" } peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -5520,8 +7613,11 @@ packages: dev: true /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} + resolution: + { + integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, + } + engines: { node: ">=8.3.0" } peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -5533,8 +7629,11 @@ packages: dev: true /ws@8.5.0: - resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==, + } + engines: { node: ">=10.0.0" } peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -5546,26 +7645,41 @@ packages: dev: true /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: ">=10" } dev: true /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } dev: true /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } dev: true /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==, + } + engines: { node: ">=10" } dev: true /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==, + } + engines: { node: ">=10" } dependencies: camelcase: 6.3.0 decamelize: 4.0.0 @@ -5574,8 +7688,11 @@ packages: dev: true /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, + } + engines: { node: ">=10" } dependencies: cliui: 7.0.4 escalade: 3.1.1 @@ -5587,6 +7704,9 @@ packages: dev: true /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: ">=10" } dev: true diff --git a/scripts/deploy_bulkWriter.ts b/scripts/deploy-bulk-writer.ts similarity index 68% rename from scripts/deploy_bulkWriter.ts rename to scripts/deploy-bulk-writer.ts index 70a350cd..c272ae1a 100644 --- a/scripts/deploy_bulkWriter.ts +++ b/scripts/deploy-bulk-writer.ts @@ -1,25 +1,23 @@ import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; import { ethers, run } from 'hardhat'; - -export const sleep = (ms: number): Promise => { - return new Promise((resolve) => { - setTimeout(() => resolve(), ms); - }); -}; +import { sleep } from './utils'; async function main() { const accounts: SignerWithAddress[] = await ethers.getSigners(); const owner = accounts[0]; - console.log('Deployer address: ' + (await owner.getAddress())); + console.log(`Deployer address: ${owner.address}`); + // We get the contract to deploy const factory = await ethers.getContractFactory('RMRKBulkWriter'); const bulkwriter = await factory.deploy(); await bulkwriter.waitForDeployment(); - console.log('RMRK Bulk Writer deployed to:', await bulkwriter.getAddress()); + const bulkwriterAddress = await bulkwriter.getAddress(); + + console.log('RMRK Bulk Writer deployed to:', bulkwriterAddress); await sleep(1000); await run('verify:verify', { - address: await bulkwriter.getAddress(), + address: bulkwriterAddress, constructorArguments: [], }); } diff --git a/scripts/deploy_catalogUtils.ts b/scripts/deploy-catalog-utils.ts similarity index 88% rename from scripts/deploy_catalogUtils.ts rename to scripts/deploy-catalog-utils.ts index 23db4f17..1f305dc2 100644 --- a/scripts/deploy_catalogUtils.ts +++ b/scripts/deploy-catalog-utils.ts @@ -1,10 +1,5 @@ import { ethers, run } from 'hardhat'; - -export const sleep = (ms: number): Promise => { - return new Promise((resolve) => { - setTimeout(() => resolve(), ms); - }); -}; +import { sleep } from './utils'; async function main() { // We get the contract to deploy diff --git a/scripts/deploy_collectionUtils.ts b/scripts/deploy-collection-utils.ts similarity index 83% rename from scripts/deploy_collectionUtils.ts rename to scripts/deploy-collection-utils.ts index b8e566e9..c99a5698 100644 --- a/scripts/deploy_collectionUtils.ts +++ b/scripts/deploy-collection-utils.ts @@ -1,10 +1,5 @@ import { ethers, run } from 'hardhat'; - -export const sleep = (ms: number): Promise => { - return new Promise((resolve) => { - setTimeout(() => resolve(), ms); - }); -}; +import { sleep } from './utils'; async function main() { // We get the contract to deploy diff --git a/scripts/deploy_emotable.ts b/scripts/deploy-emotable.ts similarity index 80% rename from scripts/deploy_emotable.ts rename to scripts/deploy-emotable.ts index e638e7e2..a7587647 100644 --- a/scripts/deploy_emotable.ts +++ b/scripts/deploy-emotable.ts @@ -1,16 +1,11 @@ import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; import { ethers, run } from 'hardhat'; - -export const sleep = (ms: number): Promise => { - return new Promise((resolve) => { - setTimeout(() => resolve(), ms); - }); -}; +import { sleep } from './utils'; async function main() { const accounts: SignerWithAddress[] = await ethers.getSigners(); const owner = accounts[0]; - console.log('Deployer address: ' + (await owner.getAddress())); + console.log(`Deployer address: ${owner.address}`); // We get the contract to deploy const emotableRepoFactory = await ethers.getContractFactory('RMRKEmotesRepository'); const emotableRepo = await emotableRepoFactory.deploy(); diff --git a/scripts/deploy_renderUtils.ts b/scripts/deploy-renderUtils.ts similarity index 80% rename from scripts/deploy_renderUtils.ts rename to scripts/deploy-renderUtils.ts index 5c6a5ef0..1bc3b9cd 100644 --- a/scripts/deploy_renderUtils.ts +++ b/scripts/deploy-renderUtils.ts @@ -1,16 +1,11 @@ import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; import { ethers, run } from 'hardhat'; - -export const sleep = (ms: number): Promise => { - return new Promise((resolve) => { - setTimeout(() => resolve(), ms); - }); -}; +import { sleep } from './utils'; async function main() { const accounts: SignerWithAddress[] = await ethers.getSigners(); const owner = accounts[0]; - console.log('Deployer address: ' + (await owner.getAddress())); + console.log(`Deployer address: ${owner.address}`); // We get the contract to deploy const renderUtilsFactory = await ethers.getContractFactory('RMRKEquipRenderUtils'); const renderUtils = await renderUtilsFactory.deploy(); diff --git a/scripts/deploy_royaltiesSplitter.ts b/scripts/deploy-royalties-splitter.ts similarity index 73% rename from scripts/deploy_royaltiesSplitter.ts rename to scripts/deploy-royalties-splitter.ts index dcd36352..dcb87712 100644 --- a/scripts/deploy_royaltiesSplitter.ts +++ b/scripts/deploy-royalties-splitter.ts @@ -1,22 +1,18 @@ import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; import { ethers, run } from 'hardhat'; - -export const sleep = (ms: number): Promise => { - return new Promise((resolve) => { - setTimeout(() => resolve(), ms); - }); -}; +import { sleep } from './utils'; async function main() { const accounts: SignerWithAddress[] = await ethers.getSigners(); const owner = accounts[0]; - console.log('Deployer address: ' + (await owner.getAddress())); + console.log(`Deployer address: ${owner.address}`); // We get the contract to deploy + + const beneficiaries: string[] = []; // TODO: Set beneficiaries + const sharesBPS: number[] = []; // TODO: Set sharesBPS + const royaltiesSplitterFactory = await ethers.getContractFactory('RMRKRoyaltiesSplitter'); - const royaltiesSplitter = await royaltiesSplitterFactory.deploy( - ['0x147d79f1c9244b85cba959262fb71ad38069febb', '0xacD3d4b7b0706d39e6cA6E8c75dDdD446b8cdB1D'], - [7000, 3000], - ); + const royaltiesSplitter = await royaltiesSplitterFactory.deploy(beneficiaries, sharesBPS); await royaltiesSplitter.waitForDeployment(); console.log('RMRK Royalties Splitter deployed to:', await royaltiesSplitter.getAddress()); await sleep(10000); diff --git a/scripts/deploy_tokenAttributesRepo.ts b/scripts/deploy-token-attributes-repo.ts similarity index 82% rename from scripts/deploy_tokenAttributesRepo.ts rename to scripts/deploy-token-attributes-repo.ts index 9945dbd4..51702daa 100644 --- a/scripts/deploy_tokenAttributesRepo.ts +++ b/scripts/deploy-token-attributes-repo.ts @@ -1,16 +1,11 @@ import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; import { ethers, run } from 'hardhat'; - -export const sleep = (ms: number): Promise => { - return new Promise((resolve) => { - setTimeout(() => resolve(), ms); - }); -}; +import { sleep } from './utils'; async function main() { const accounts: SignerWithAddress[] = await ethers.getSigners(); const owner = accounts[0]; - console.log('Deployer address: ' + (await owner.getAddress())); + console.log(`Deployer address: ${owner.address}`); // We get the contract to deploy const tokenAttributesRepoFactory = await ethers.getContractFactory( 'RMRKTokenAttributesRepository', diff --git a/scripts/generate_abis.ts b/scripts/generate-abis.ts similarity index 96% rename from scripts/generate_abis.ts rename to scripts/generate-abis.ts index d168d105..35d14e99 100644 --- a/scripts/generate_abis.ts +++ b/scripts/generate-abis.ts @@ -1,10 +1,10 @@ import fs from 'fs'; import walkSync from 'walk-sync'; -import rimraf from 'rimraf'; +import { rimraf } from 'rimraf'; const getTheAbi = () => { try { - rimraf(`${process.cwd()}/artifacts/abis`, () => { + rimraf(`${process.cwd()}/artifacts/abis`).then(() => { const implementations = walkSync(`${process.cwd()}/artifacts/contracts/implementations`, { directories: false, }); diff --git a/scripts/utils.ts b/scripts/utils.ts new file mode 100644 index 00000000..d72beaec --- /dev/null +++ b/scripts/utils.ts @@ -0,0 +1,5 @@ +export const sleep = (ms: number): Promise => { + return new Promise((resolve) => { + setTimeout(() => resolve(), ms); + }); +}; diff --git a/test/behavior/equippableAssets.ts b/test/behavior/equippableAssets.ts index 68bafa9c..db41da63 100644 --- a/test/behavior/equippableAssets.ts +++ b/test/behavior/equippableAssets.ts @@ -58,7 +58,7 @@ async function shouldBehaveLikeEquippableAssets( }); it('cannot get extended assets for non existing asset or non existing token', async function () { - const tokenId = await mint(chunkyEquip, await owner.getAddress()); + const tokenId = await mint(chunkyEquip, owner.address); const resId = 1; await chunkyEquip.addEquippableAssetEntry( resId, @@ -164,7 +164,7 @@ async function shouldBehaveLikeEquippableAssets( it('can add asset to token', async function () { const resId = bn(1); const resId2 = bn(2); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId, resId2]); await expect(chunkyEquip.addAssetToToken(tokenId, resId, 0)).to.emit( chunkyEquip, @@ -180,7 +180,7 @@ async function shouldBehaveLikeEquippableAssets( it('cannot add non existing asset to token', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await expect(chunkyEquip.addAssetToToken(tokenId, resId, 0)).to.be.revertedWithCustomError( chunkyEquip, 'RMRKNoAssetMatchingId', @@ -189,19 +189,19 @@ async function shouldBehaveLikeEquippableAssets( it('can add asset to non existing token and it is pending when minted', async function () { const resId = bn(1); - const lastTokenId = await mint(chunky, await owner.getAddress()); + const lastTokenId = await mint(chunky, owner.address); const nextTokenId = lastTokenId + 1n; // not existing yet await addAssets([resId]); await chunkyEquip.addAssetToToken(nextTokenId, resId, 0); - await mint(chunky, await owner.getAddress()); + await mint(chunky, owner.address); expect(await chunkyEquip.getPendingAssets(nextTokenId)).to.eql([resId]); }); it('cannot add asset twice to the same token', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await expect(chunkyEquip.addAssetToToken(tokenId, resId, 0)).to.be.revertedWithCustomError( @@ -211,7 +211,7 @@ async function shouldBehaveLikeEquippableAssets( }); it('cannot add too many assets to the same token', async function () { - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); for (let i = 1; i <= 128; i++) { await addAssets([bn(i)]); await chunkyEquip.addAssetToToken(tokenId, i, 0); @@ -228,8 +228,8 @@ async function shouldBehaveLikeEquippableAssets( it('can add same asset to 2 different tokens', async function () { const resId = bn(1); - const tokenId1 = await mint(chunky, await owner.getAddress()); - const tokenId2 = await mint(chunky, await owner.getAddress()); + const tokenId1 = await mint(chunky, owner.address); + const tokenId2 = await mint(chunky, owner.address); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId1, resId, 0); @@ -243,7 +243,7 @@ async function shouldBehaveLikeEquippableAssets( describe('Accepting assets', async function () { it('can accept asset', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await expect(chunkyEquip.acceptAsset(tokenId, 0, resId)) @@ -257,7 +257,7 @@ async function shouldBehaveLikeEquippableAssets( it('can accept multiple assets', async function () { const resId = bn(1); const resId2 = bn(2); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId, resId2]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await chunkyEquip.addAssetToToken(tokenId, resId2, 0); @@ -275,9 +275,9 @@ async function shouldBehaveLikeEquippableAssets( // approved not implemented yet it('can accept asset if approved', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); const approvedAddress = addrs[1]; - await chunkyEquip.approveForAssets(await approvedAddress.getAddress(), tokenId); + await chunkyEquip.approveForAssets(approvedAddress.address, tokenId); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); @@ -288,7 +288,7 @@ async function shouldBehaveLikeEquippableAssets( it('cannot accept asset twice', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await chunkyEquip.acceptAsset(tokenId, 0, resId); @@ -301,7 +301,7 @@ async function shouldBehaveLikeEquippableAssets( it('cannot accept asset if not owner', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await expect( @@ -310,7 +310,7 @@ async function shouldBehaveLikeEquippableAssets( }); it('cannot accept non existing asset', async function () { - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await expect(chunkyEquip.acceptAsset(tokenId, 0, 0)).to.be.revertedWithCustomError( chunkyEquip, 'RMRKIndexOutOfRange', @@ -322,7 +322,7 @@ async function shouldBehaveLikeEquippableAssets( it('can add asset to token replacing an existing one', async function () { const resId = bn(1); const resId2 = bn(2); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId, resId2]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await chunkyEquip.acceptAsset(tokenId, 0, resId); @@ -346,7 +346,7 @@ async function shouldBehaveLikeEquippableAssets( it('can replace non existing asset to token, it could have been deleted', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 1); await chunkyEquip.acceptAsset(tokenId, 0, resId); @@ -359,7 +359,7 @@ async function shouldBehaveLikeEquippableAssets( describe('Rejecting assets', async function () { it('can reject asset', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); @@ -375,7 +375,7 @@ async function shouldBehaveLikeEquippableAssets( it('can reject asset and replacements are cleared', async function () { const resId = bn(1); const resId2 = bn(2); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId, resId2]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await chunkyEquip.acceptAsset(tokenId, 0, resId); @@ -390,8 +390,8 @@ async function shouldBehaveLikeEquippableAssets( it('can reject asset if approved', async function () { const resId = bn(1); const approvedAddress = addrs[1]; - const tokenId = await mint(chunky, await owner.getAddress()); - await chunkyEquip.approveForAssets(await approvedAddress.getAddress(), tokenId); + const tokenId = await mint(chunky, owner.address); + await chunkyEquip.approveForAssets(approvedAddress.address, tokenId); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); @@ -406,7 +406,7 @@ async function shouldBehaveLikeEquippableAssets( it('can reject all assets', async function () { const resId = bn(1); const resId2 = bn(2); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId, resId2]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await chunkyEquip.addAssetToToken(tokenId, resId2, 0); @@ -420,7 +420,7 @@ async function shouldBehaveLikeEquippableAssets( it('can reject all assets and replacements are cleared', async function () { const resId = bn(1); const resId2 = bn(2); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId, resId2]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await chunkyEquip.acceptAsset(tokenId, 0, resId); @@ -433,7 +433,7 @@ async function shouldBehaveLikeEquippableAssets( }); it('can reject all pending assets at max capacity', async function () { - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); const resArr = []; for (let i = 1; i < 128; i++) { @@ -452,10 +452,10 @@ async function shouldBehaveLikeEquippableAssets( it('can reject all assets if approved', async function () { const resId = bn(1); const resId2 = bn(2); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); const approvedAddress = addrs[1]; - await chunkyEquip.approveForAssets(await approvedAddress.getAddress(), tokenId); + await chunkyEquip.approveForAssets(approvedAddress.address, tokenId); await addAssets([resId, resId2]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await chunkyEquip.addAssetToToken(tokenId, resId2, 0); @@ -471,7 +471,7 @@ async function shouldBehaveLikeEquippableAssets( it('cannot reject asset twice', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await chunkyEquip.rejectAsset(tokenId, 0, resId); @@ -484,7 +484,7 @@ async function shouldBehaveLikeEquippableAssets( it('cannot reject asset nor reject all if not owner', async function () { const resId = bn(1); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); @@ -497,7 +497,7 @@ async function shouldBehaveLikeEquippableAssets( }); it('cannot reject non existing asset', async function () { - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await expect(chunkyEquip.rejectAsset(tokenId, 0, 0)).to.be.revertedWithCustomError( chunkyEquip, 'RMRKIndexOutOfRange', @@ -520,7 +520,7 @@ async function shouldBehaveLikeEquippableAssets( const approvedAddress = addrs[1]; const tokenId = await addAssetsToToken(); - await chunkyEquip.approveForAssets(await approvedAddress.getAddress(), tokenId); + await chunkyEquip.approveForAssets(approvedAddress.address, tokenId); expect(await chunkyEquip.getActiveAssetPriorities(tokenId)).to.be.eql([0n, bn(1)]); await expect(chunkyEquip.connect(approvedAddress).setPriority(tokenId, [1, 0])) @@ -561,16 +561,14 @@ async function shouldBehaveLikeEquippableAssets( const tokenOwner = addrs[1]; const newOwner = addrs[2]; const approved = addrs[3]; - const tokenId = await mint(chunky, await tokenOwner.getAddress()); - await chunky.connect(tokenOwner).approve(await approved.getAddress(), tokenId); - await chunkyEquip.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); + const tokenId = await mint(chunky, tokenOwner.address); + await chunky.connect(tokenOwner).approve(approved.address, tokenId); + await chunkyEquip.connect(tokenOwner).approveForAssets(approved.address, tokenId); - expect(await chunky.getApproved(tokenId)).to.eql(await approved.getAddress()); - expect(await chunkyEquip.getApprovedForAssets(tokenId)).to.eql(await approved.getAddress()); + expect(await chunky.getApproved(tokenId)).to.eql(approved.address); + expect(await chunkyEquip.getApprovedForAssets(tokenId)).to.eql(approved.address); - await chunky - .connect(tokenOwner) - .transferFrom(await tokenOwner.getAddress(), await newOwner.getAddress(), tokenId); + await chunky.connect(tokenOwner).transferFrom(tokenOwner.address, newOwner.address, tokenId); expect(await chunky.getApproved(tokenId)).to.eql(ADDRESS_ZERO); expect(await chunkyEquip.getApprovedForAssets(tokenId)).to.eql(ADDRESS_ZERO); @@ -579,12 +577,12 @@ async function shouldBehaveLikeEquippableAssets( it('cleans token and assets approvals on burn', async function () { const tokenOwner = addrs[1]; const approved = addrs[3]; - const tokenId = await mint(chunky, await tokenOwner.getAddress()); - await chunky.connect(tokenOwner).approve(await approved.getAddress(), tokenId); - await chunkyEquip.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); + const tokenId = await mint(chunky, tokenOwner.address); + await chunky.connect(tokenOwner).approve(approved.address, tokenId); + await chunkyEquip.connect(tokenOwner).approveForAssets(approved.address, tokenId); - expect(await chunky.getApproved(tokenId)).to.eql(await approved.getAddress()); - expect(await chunkyEquip.getApprovedForAssets(tokenId)).to.eql(await approved.getAddress()); + expect(await chunky.getApproved(tokenId)).to.eql(approved.address); + expect(await chunkyEquip.getApprovedForAssets(tokenId)).to.eql(approved.address); await chunky.connect(tokenOwner)['burn(uint256)'](tokenId); @@ -614,7 +612,7 @@ async function shouldBehaveLikeEquippableAssets( async function addAssetsToToken(): Promise { const resId = bn(1); const resId2 = bn(2); - const tokenId = await mint(chunky, await owner.getAddress()); + const tokenId = await mint(chunky, owner.address); await addAssets([resId, resId2]); await chunkyEquip.addAssetToToken(tokenId, resId, 0); await chunkyEquip.addAssetToToken(tokenId, resId2, 0); diff --git a/test/behavior/equippableSlots.ts b/test/behavior/equippableSlots.ts index 31d8e4ea..d7569c59 100644 --- a/test/behavior/equippableSlots.ts +++ b/test/behavior/equippableSlots.ts @@ -154,9 +154,7 @@ async function shouldBehaveLikeEquippableWithSlots( const approved = addrs[1]; const childIndex = 0; const weaponResId = weaponAssetsEquip[0]; // This asset is assigned to weapon first weapon - await soldier - .connect(soldierOwner) - .approveForAssets(await approved.getAddress(), soldiersIds[0]); + await soldier.connect(soldierOwner).approveForAssets(approved.address, soldiersIds[0]); await equipWeaponAndCheckFromAddress(approved, childIndex, weaponResId); }); @@ -166,9 +164,7 @@ async function shouldBehaveLikeEquippableWithSlots( const approved = addrs[1]; const childIndex = 0; const weaponResId = weaponAssetsEquip[0]; // This asset is assigned to weapon first weapon - await soldier - .connect(soldierOwner) - .setApprovalForAllForAssets(await approved.getAddress(), true); + await soldier.connect(soldierOwner).setApprovalForAllForAssets(approved.address, true); await equipWeaponAndCheckFromAddress(approved, childIndex, weaponResId); }); @@ -548,9 +544,7 @@ async function shouldBehaveLikeEquippableWithSlots( childAssetId: weaponResId, }); - await soldier - .connect(soldierOwner) - .approveForAssets(await approved.getAddress(), soldiersIds[0]); + await soldier.connect(soldierOwner).approveForAssets(approved.address, soldiersIds[0]); await unequipWeaponAndCheckFromAddress(approved); }); @@ -569,9 +563,7 @@ async function shouldBehaveLikeEquippableWithSlots( childAssetId: weaponResId, }); - await soldier - .connect(soldierOwner) - .setApprovalForAllForAssets(await approved.getAddress(), true); + await soldier.connect(soldierOwner).setApprovalForAllForAssets(approved.address, true); await unequipWeaponAndCheckFromAddress(approved); }); diff --git a/test/behavior/erc721.ts b/test/behavior/erc721.ts index 87e55c99..c6f6646c 100644 --- a/test/behavior/erc721.ts +++ b/test/behavior/erc721.ts @@ -34,8 +34,8 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { beforeEach(async function () { [owner, approved, anotherApproved, operator, ...others] = await ethers.getSigners(); - await this.token['mint(address,uint256)'](await owner.getAddress(), firstTokenId); - await this.token['mint(address,uint256)'](await owner.getAddress(), secondTokenId); + await this.token['mint(address,uint256)'](owner.address, firstTokenId); + await this.token['mint(address,uint256)'](owner.address, secondTokenId); toWhom = others[0]; // default to other for toWhom in context-dependent tests }); @@ -53,7 +53,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { describe('balanceOf', function () { context('when the given address owns some tokens', function () { it('returns the amount of tokens owned by the given address', async function () { - expect(await this.token.balanceOf(await owner.getAddress())).to.eql(bn(2)); + expect(await this.token.balanceOf(owner.address)).to.eql(bn(2)); }); }); @@ -78,7 +78,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { const tokenId = firstTokenId; it('returns the owner of the given token ID', async function () { - expect(await this.token.ownerOf(tokenId)).to.be.equal(await owner.getAddress()); + expect(await this.token.ownerOf(tokenId)).to.be.equal(owner.address); }); }); @@ -99,7 +99,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { const data = '0x42'; beforeEach(async function () { - await this.token.approve(await approved.getAddress(), tokenId); + await this.token.approve(approved.address, tokenId); await this.token.setApprovalForAll(await operator.getAddress(), true); }); @@ -111,7 +111,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { it('emits a Transfer event', async function () { await expect(receipt) .to.emit(this.token, 'Transfer') - .withArgs(await owner.getAddress(), await toWhom.getAddress(), tokenId); + .withArgs(owner.address, await toWhom.getAddress(), tokenId); }); it('clears the approval for the token ID', async function () { @@ -119,7 +119,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { }); it('adjusts owners balances', async function () { - expect(await this.token.balanceOf(await owner.getAddress())).to.eql(bn(1)); + expect(await this.token.balanceOf(owner.address)).to.eql(bn(1)); }); }; @@ -128,7 +128,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { beforeEach(async function () { receipt = await transferFunction( this.token, - await owner.getAddress(), + owner.address, await toWhom.getAddress(), tokenId, owner, @@ -143,7 +143,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { beforeEach(async function () { receipt = await transferFunction( this.token, - await owner.getAddress(), + owner.address, await toWhom.getAddress(), tokenId, approved, @@ -158,7 +158,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { beforeEach(async function () { receipt = await transferFunction( this.token, - await owner.getAddress(), + owner.address, await toWhom.getAddress(), tokenId, operator, @@ -174,7 +174,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await this.token.approve(ethers.ZeroAddress, tokenId); receipt = await transferFunction( this.token, - await owner.getAddress(), + owner.address, await toWhom.getAddress(), tokenId, operator, @@ -189,15 +189,15 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { beforeEach(async function () { receipt = await transferFunction( this.token, - await owner.getAddress(), - await owner.getAddress(), + owner.address, + owner.address, tokenId, owner, ); }); it('keeps ownership of the token', async function () { - expect(await this.token.ownerOf(tokenId)).to.be.equal(await owner.getAddress()); + expect(await this.token.ownerOf(tokenId)).to.be.equal(owner.address); }); it('clears the approval for the token ID', async function () { @@ -207,11 +207,11 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { it('emits only a transfer event', async function () { await expect(receipt) .to.emit(this.token, 'Transfer') - .withArgs(await owner.getAddress(), await owner.getAddress(), tokenId); + .withArgs(owner.address, owner.address, tokenId); }); it('keeps the owner balance', async function () { - expect(await this.token.balanceOf(await owner.getAddress())).to.eql(bn(2)); + expect(await this.token.balanceOf(owner.address)).to.eql(bn(2)); }); }); @@ -230,13 +230,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { ? 'RMRKNotApprovedOrDirectOwner' : 'ERC721NotApprovedOrOwner'; await expect( - transferFunction( - this.token, - await owner.getAddress(), - others[0].address, - tokenId, - others[0], - ), + transferFunction(this.token, owner.address, others[0].address, tokenId, others[0]), ).to.be.revertedWithCustomError(this.token, error); }); }); @@ -246,7 +240,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect( transferFunction( this.token, - await owner.getAddress(), + owner.address, others[0].address, nonExistentTokenId, owner, @@ -258,13 +252,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { context('when the address to transfer the token to is the zero address', function () { it('reverts', async function () { await expect( - transferFunction( - this.token, - await owner.getAddress(), - ethers.ZeroAddress, - tokenId, - owner, - ), + transferFunction(this.token, owner.address, ethers.ZeroAddress, tokenId, owner), ).to.be.revertedWithCustomError(this.token, 'ERC721TransferToTheZeroAddress'); }); }); @@ -324,7 +312,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { it('calls onERC721Received', async function () { receipt = await transferFun( this.token, - await owner.getAddress(), + owner.address, await receiver.getAddress(), tokenId, owner, @@ -332,20 +320,20 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect(receipt) .to.emit(receiver, 'Received') - .withArgs(await owner.getAddress(), await owner.getAddress(), tokenId, data); + .withArgs(owner.address, owner.address, tokenId, data); }); it('calls onERC721Received from approved', async function () { receipt = await transferFun( this.token, - await owner.getAddress(), + owner.address, await receiver.getAddress(), tokenId, approved, ); await expect(receipt) .to.emit(receiver, 'Received') - .withArgs(await approved.getAddress(), await owner.getAddress(), tokenId, data); + .withArgs(approved.address, owner.address, tokenId, data); }); describe('with an invalid token id', function () { @@ -353,7 +341,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect( transferFun( this.token, - await owner.getAddress(), + owner.address, await receiver.getAddress(), nonExistentTokenId, owner, @@ -382,7 +370,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await invalidReceiver.waitForDeployment(); await expect( this.token['safeTransferFrom(address,address,uint256)']( - await owner.getAddress(), + owner.address, await invalidReceiver.getAddress(), tokenId, ), @@ -401,11 +389,9 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect( this.token .connect(owner) - ['safeTransferFrom(address,address,uint256)']( - await owner.getAddress(), - await revertingReceiver.getAddress(), - tokenId, - ), + [ + 'safeTransferFrom(address,address,uint256)' + ](owner.address, await revertingReceiver.getAddress(), tokenId), ).to.be.revertedWith('ERC721ReceiverMock: reverting'); }); }); @@ -421,11 +407,9 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect( this.token .connect(owner) - ['safeTransferFrom(address,address,uint256)']( - await owner.getAddress(), - await revertingReceiver.getAddress(), - tokenId, - ), + [ + 'safeTransferFrom(address,address,uint256)' + ](owner.address, await revertingReceiver.getAddress(), tokenId), ).to.be.revertedWithCustomError(this.token, 'ERC721TransferToNonReceiverImplementer'); }); }); @@ -441,11 +425,9 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect( this.token .connect(owner) - ['safeTransferFrom(address,address,uint256)']( - await owner.getAddress(), - await revertingReceiver.getAddress(), - tokenId, - ), + [ + 'safeTransferFrom(address,address,uint256)' + ](owner.address, await revertingReceiver.getAddress(), tokenId), ).to.be.reverted; }); }); @@ -455,7 +437,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { const nonReceiver = this.token; await expect( this.token['safeTransferFrom(address,address,uint256)']( - await owner.getAddress(), + owner.address, await nonReceiver.getAddress(), tokenId, ), @@ -483,7 +465,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect(receipt) .to.emit(receiver, 'Received') - .withArgs(await owner.getAddress(), ethers.ZeroAddress, tokenId, data); + .withArgs(owner.address, ethers.ZeroAddress, tokenId, data); }); it('calls onERC721Received — without data', async function () { @@ -497,7 +479,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect(receipt) .to.emit(receiver, 'Received') - .withArgs(await owner.getAddress(), ethers.ZeroAddress, tokenId, '0x'); + .withArgs(owner.address, ethers.ZeroAddress, tokenId, '0x'); }); }); @@ -591,7 +573,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { it('emits an approval event', async function () { await expect(receipt) .to.emit(this.token, 'Approval') - .withArgs(await owner.getAddress(), address, tokenId); + .withArgs(owner.address, address, tokenId); }); }; @@ -607,7 +589,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { context('when there was a prior approval', function () { beforeEach(async function () { - await this.token.approve(await approved.getAddress(), tokenId); + await this.token.approve(approved.address, tokenId); receipt = await this.token.approve(ethers.ZeroAddress, tokenId); }); @@ -619,52 +601,53 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { context('when approving a non-zero address', function () { context('when there was no prior approval', function () { beforeEach(async function () { - receipt = await this.token.approve(await approved.getAddress(), tokenId); + receipt = await this.token.approve(approved.address, tokenId); }); afterEach(async function () { - itApproves(await approved.getAddress()); - itEmitsApprovalEvent(await approved.getAddress()); + itApproves(approved.address); + itEmitsApprovalEvent(approved.address); }); }); context('when there was a prior approval to the same address', function () { beforeEach(async function () { - await this.token.approve(await approved.getAddress(), tokenId); - receipt = await this.token.approve(await approved.getAddress(), tokenId); + await this.token.approve(approved.address, tokenId); + receipt = await this.token.approve(approved.address, tokenId); }); afterEach(async function () { - itApproves(await approved.getAddress()); - itEmitsApprovalEvent(await approved.getAddress()); + itApproves(approved.address); + itEmitsApprovalEvent(approved.address); }); }); context('when there was a prior approval to a different address', function () { beforeEach(async function () { - await this.token.approve(await anotherApproved.getAddress(), tokenId); - receipt = await this.token.approve(await anotherApproved.getAddress(), tokenId); + await this.token.approve(anotherApproved.address, tokenId); + receipt = await this.token.approve(anotherApproved.address, tokenId); }); afterEach(async function () { - itApproves(await anotherApproved.getAddress()); - itEmitsApprovalEvent(await anotherApproved.getAddress()); + itApproves(anotherApproved.address); + itEmitsApprovalEvent(anotherApproved.address); }); }); }); context('when the address that receives the approval is the owner', function () { it('reverts', async function () { - await expect( - this.token.approve(await owner.getAddress(), tokenId), - ).to.be.revertedWithCustomError(this.token, 'ERC721ApprovalToCurrentOwner'); + await expect(this.token.approve(owner.address, tokenId)).to.be.revertedWithCustomError( + this.token, + 'ERC721ApprovalToCurrentOwner', + ); }); }); context('when the sender does not own the given token ID', function () { it('reverts', async function () { await expect( - this.token.connect(others[0]).approve(await approved.getAddress(), tokenId), + this.token.connect(others[0]).approve(approved.address, tokenId), ).to.be.revertedWithCustomError( this.token, 'ERC721ApproveCallerIsNotOwnerNorApprovedForAll', @@ -674,9 +657,9 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { context('when the sender is approved for the given token ID', function () { it('reverts', async function () { - await this.token.approve(await approved.getAddress(), tokenId); + await this.token.approve(approved.address, tokenId); await expect( - this.token.connect(approved).approve(await anotherApproved.getAddress(), tokenId), + this.token.connect(approved).approve(anotherApproved.address, tokenId), ).to.be.revertedWithCustomError( this.token, 'ERC721ApproveCallerIsNotOwnerNorApprovedForAll', @@ -687,21 +670,19 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { context('when the sender is an operator', function () { beforeEach(async function () { await this.token.setApprovalForAll(await operator.getAddress(), true); - receipt = await this.token - .connect(operator) - .approve(await approved.getAddress(), tokenId); + receipt = await this.token.connect(operator).approve(approved.address, tokenId); }); afterEach(async function () { - itApproves(await approved.getAddress()); - itEmitsApprovalEvent(await approved.getAddress()); + itApproves(approved.address); + itEmitsApprovalEvent(approved.address); }); }); context('when the given token ID does not exist', function () { it('reverts', async function () { await expect( - this.token.connect(operator).approve(await approved.getAddress(), nonExistentTokenId), + this.token.connect(operator).approve(approved.address, nonExistentTokenId), ).to.be.revertedWithCustomError(this.token, 'ERC721InvalidTokenId'); }); }); @@ -714,10 +695,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await this.token.setApprovalForAll(await operator.getAddress(), true); expect( - await this.token.isApprovedForAll( - await owner.getAddress(), - await operator.getAddress(), - ), + await this.token.isApprovedForAll(owner.address, await operator.getAddress()), ).to.equal(true); }); @@ -726,7 +704,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect(receipt) .to.emit(this.token, 'ApprovalForAll') - .withArgs(await owner.getAddress(), await operator.getAddress(), true); + .withArgs(owner.address, await operator.getAddress(), true); }); }); @@ -739,10 +717,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await this.token.setApprovalForAll(await operator.getAddress(), true); expect( - await this.token.isApprovedForAll( - await owner.getAddress(), - await operator.getAddress(), - ), + await this.token.isApprovedForAll(owner.address, await operator.getAddress()), ).to.equal(true); }); @@ -751,17 +726,14 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect(receipt) .to.emit(this.token, 'ApprovalForAll') - .withArgs(await owner.getAddress(), await operator.getAddress(), true); + .withArgs(owner.address, await operator.getAddress(), true); }); it('can unset the operator approval', async function () { await this.token.setApprovalForAll(await operator.getAddress(), false); expect( - await this.token.isApprovedForAll( - await owner.getAddress(), - await operator.getAddress(), - ), + await this.token.isApprovedForAll(owner.address, await operator.getAddress()), ).to.equal(false); }); }); @@ -775,10 +747,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await this.token.setApprovalForAll(await operator.getAddress(), true); expect( - await this.token.isApprovedForAll( - await owner.getAddress(), - await operator.getAddress(), - ), + await this.token.isApprovedForAll(owner.address, await operator.getAddress()), ).to.equal(true); }); @@ -787,7 +756,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { await expect(receipt) .to.emit(this.token, 'ApprovalForAll') - .withArgs(await owner.getAddress(), await operator.getAddress(), true); + .withArgs(owner.address, await operator.getAddress(), true); }); }); }); @@ -795,7 +764,7 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { context('when the operator is the owner', function () { it('reverts', async function () { await expect( - this.token.setApprovalForAll(await owner.getAddress(), true), + this.token.setApprovalForAll(owner.address, true), ).to.be.revertedWithCustomError(this.token, 'ERC721ApproveToCaller'); }); }); @@ -818,13 +787,11 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { context('when account has been approved', async function () { beforeEach(async function () { - await this.token.approve(await approved.getAddress(), firstTokenId); + await this.token.approve(approved.address, firstTokenId); }); it('returns approved account', async function () { - expect(await this.token.getApproved(firstTokenId)).to.be.equal( - await approved.getAddress(), - ); + expect(await this.token.getApproved(firstTokenId)).to.be.equal(approved.address); }); }); }); @@ -845,23 +812,23 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { context('with minted token', async function () { beforeEach(async function () { - receipt = await this.token['mint(address,uint256)'](await owner.getAddress(), firstTokenId); + receipt = await this.token['mint(address,uint256)'](owner.address, firstTokenId); }); it('emits a Transfer event', async function () { await expect(receipt) .to.emit(this.token, 'Transfer') - .withArgs(ethers.ZeroAddress, await owner.getAddress(), firstTokenId); + .withArgs(ethers.ZeroAddress, owner.address, firstTokenId); }); it('creates the token', async function () { - expect(await this.token.balanceOf(await owner.getAddress())).to.eql(bn(1)); - expect(await this.token.ownerOf(firstTokenId)).to.equal(await owner.getAddress()); + expect(await this.token.balanceOf(owner.address)).to.eql(bn(1)); + expect(await this.token.ownerOf(firstTokenId)).to.equal(owner.address); }); it('reverts when adding a token id that already exists', async function () { await expect( - this.token['mint(address,uint256)'](await owner.getAddress(), firstTokenId), + this.token['mint(address,uint256)'](owner.address, firstTokenId), ).to.be.revertedWithCustomError(this.token, 'ERC721TokenAlreadyMinted'); }); }); @@ -881,8 +848,8 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { context('with minted tokens', function () { beforeEach(async function () { - await this.token['mint(address,uint256)'](await owner.getAddress(), firstTokenId); - await this.token['mint(address,uint256)'](await owner.getAddress(), secondTokenId); + await this.token['mint(address,uint256)'](owner.address, firstTokenId); + await this.token['mint(address,uint256)'](owner.address, secondTokenId); }); context('with burnt token', function () { @@ -893,17 +860,17 @@ async function shouldBehaveLikeERC721(name: string, symbol: string) { it('emits a Transfer event', async function () { await expect(receipt) .to.emit(this.token, 'Transfer') - .withArgs(await owner.getAddress(), ethers.ZeroAddress, firstTokenId); + .withArgs(owner.address, ethers.ZeroAddress, firstTokenId); }); it('emits an Approval event', async function () { await expect(receipt) .to.emit(this.token, 'Approval') - .withArgs(await owner.getAddress(), ethers.ZeroAddress, firstTokenId); + .withArgs(owner.address, ethers.ZeroAddress, firstTokenId); }); it('deletes the token', async function () { - expect(await this.token.balanceOf(await owner.getAddress())).to.eql(bn(1)); + expect(await this.token.balanceOf(owner.address)).to.eql(bn(1)); await expect(this.token.ownerOf(firstTokenId)).to.be.revertedWithCustomError( this.token, 'ERC721InvalidTokenId', diff --git a/test/behavior/metadata.ts b/test/behavior/metadata.ts index 75cdf5f8..67fbd03e 100644 --- a/test/behavior/metadata.ts +++ b/test/behavior/metadata.ts @@ -8,7 +8,7 @@ async function shouldHaveMetadata( ): Promise { it('can get tokenURI', async function () { const owner = (await ethers.getSigners())[0]; - const tokenId = await mint(this.token, await owner.getAddress()); + const tokenId = await mint(this.token, owner.address); if (isTokenUriEnumerated) { expect(await this.token.tokenURI(tokenId)).to.eql(`ipfs://tokenURI/${tokenId}`); } else { diff --git a/test/behavior/multiasset.ts b/test/behavior/multiasset.ts index 8f93e8ce..c6d3b165 100644 --- a/test/behavior/multiasset.ts +++ b/test/behavior/multiasset.ts @@ -1,22 +1,19 @@ import { ethers } from 'hardhat'; import { expect } from 'chai'; import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; -import { GenericEquippable, GenericMintable, GenericMultiAsset, bn } from '../utils'; +import { + GenericEquippable, + GenericMintable, + GenericMultiAsset, + addAssetToToken, + bn, +} from '../utils'; import { IERC165, IOtherInterface, IERC5773 } from '../interfaces'; -import { RMRKEquippableMock, RMRKMinifiedEquippableMock } from '../../typechain-types'; - -async function shouldBehaveLikeMultiAsset( - mint: (token: GenericMintable, to: string) => Promise, - addAssetEntryFunc: ( - token: GenericMultiAsset | GenericEquippable | RMRKEquippableMock | RMRKMinifiedEquippableMock, - data?: string, - ) => Promise, - addAssetToTokenFunc: ( - token: GenericMultiAsset, - tokenId: bigint, - resId: bigint, - replaces: bigint | number, - ) => Promise, + +async function shouldBehaveLikeMultiAsset( + mint: (token: T, to: string) => Promise, + addAssetEntryFunc: (token: T, data?: string) => Promise, + addAssetToTokenFunc: typeof addAssetToToken, ) { let tokenId: bigint; let tokenOwner: SignerWithAddress; @@ -48,7 +45,7 @@ async function shouldBehaveLikeMultiAsset( describe('With minted token', async function () { beforeEach(async function () { - tokenId = await mint(this.token, await tokenOwner.getAddress()); + tokenId = await mint(this.token, tokenOwner.address); }); describe('Add asset', async function () { @@ -69,8 +66,8 @@ async function shouldBehaveLikeMultiAsset( describe('Approvals', async function () { it('can approve address for assets', async function () { - await this.token.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); - expect(await this.token.getApprovedForAssets(tokenId)).to.eql(await approved.getAddress()); + await this.token.connect(tokenOwner).approveForAssets(approved.address, tokenId); + expect(await this.token.getApprovedForAssets(tokenId)).to.eql(approved.address); }); it('can approve address for all for assets', async function () { @@ -79,7 +76,7 @@ async function shouldBehaveLikeMultiAsset( .setApprovalForAllForAssets(await operator.getAddress(), true); expect( await this.token.isApprovedForAllForAssets( - await tokenOwner.getAddress(), + tokenOwner.address, await operator.getAddress(), ), ).to.eql(true); @@ -89,7 +86,7 @@ async function shouldBehaveLikeMultiAsset( .setApprovalForAllForAssets(await operator.getAddress(), false); expect( await this.token.isApprovedForAllForAssets( - await tokenOwner.getAddress(), + tokenOwner.address, await operator.getAddress(), ), ).to.eql(false); @@ -97,21 +94,19 @@ async function shouldBehaveLikeMultiAsset( it('cannot approve owner for assets', async function () { await expect( - this.token.connect(tokenOwner).approveForAssets(await tokenOwner.getAddress(), tokenId), + this.token.connect(tokenOwner).approveForAssets(tokenOwner.address, tokenId), ).to.be.revertedWithCustomError(this.token, 'RMRKApprovalForAssetsToCurrentOwner'); }); it('cannot approve owner for all assets', async function () { await expect( - this.token - .connect(tokenOwner) - .setApprovalForAllForAssets(await tokenOwner.getAddress(), true), + this.token.connect(tokenOwner).setApprovalForAllForAssets(tokenOwner.address, true), ).to.be.revertedWithCustomError(this.token, 'RMRKApprovalForAssetsToCurrentOwner'); }); it('cannot approve owner if not owner', async function () { await expect( - this.token.connect(notApproved).approveForAssets(await approved.getAddress(), tokenId), + this.token.connect(notApproved).approveForAssets(approved.address, tokenId), ).to.be.revertedWithCustomError( this.token, 'RMRKApproveForAssetsCallerIsNotOwnerNorApprovedForAll', @@ -122,8 +117,8 @@ async function shouldBehaveLikeMultiAsset( await this.token .connect(tokenOwner) .setApprovalForAllForAssets(await operator.getAddress(), true); - await this.token.connect(operator).approveForAssets(await approved.getAddress(), tokenId); - expect(await this.token.getApprovedForAssets(tokenId)).to.eql(await approved.getAddress()); + await this.token.connect(operator).approveForAssets(approved.address, tokenId); + expect(await this.token.getApprovedForAssets(tokenId)).to.eql(approved.address); }); }); @@ -198,7 +193,7 @@ async function shouldBehaveLikeMultiAsset( beforeEach(async function () { // Mint and add 2 assets to token - tokenId = await mint(this.token, await tokenOwner.getAddress()); + tokenId = await mint(this.token, tokenOwner.address); resId1 = await addAssetEntryFunc(this.token, resData1); resId2 = await addAssetEntryFunc(this.token, resData2); await addAssetToTokenFunc(this.token, tokenId, resId1, 0); @@ -238,7 +233,7 @@ async function shouldBehaveLikeMultiAsset( }); it('can accept asset if approved', async function () { - await this.token.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); + await this.token.connect(tokenOwner).approveForAssets(approved.address, tokenId); await this.token.connect(approved).acceptAsset(tokenId, 0, resId1); expect(await this.token.getActiveAssets(tokenId)).to.be.eql([resId1]); @@ -295,7 +290,7 @@ async function shouldBehaveLikeMultiAsset( }); it('can reject asset if approved', async function () { - await this.token.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); + await this.token.connect(tokenOwner).approveForAssets(approved.address, tokenId); await this.token.connect(approved).rejectAsset(tokenId, 0, resId1); expect(await this.token.getActiveAssets(tokenId)).to.be.eql([]); @@ -322,7 +317,7 @@ async function shouldBehaveLikeMultiAsset( }); it('can reject all assets if approved', async function () { - await this.token.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); + await this.token.connect(tokenOwner).approveForAssets(approved.address, tokenId); await this.token.connect(approved).rejectAllAssets(tokenId, 2); expect(await this.token.getActiveAssets(tokenId)).to.be.eql([]); @@ -396,9 +391,7 @@ async function shouldBehaveLikeMultiAsset( }); it('can set and get priorities if approved', async function () { - await this.token - .connect(tokenOwner) - .approveForAssets(await approved.getAddress(), tokenId); + await this.token.connect(tokenOwner).approveForAssets(approved.address, tokenId); await expect(this.token.connect(approved).setPriority(tokenId, [1, 0])) .to.emit(this.token, 'AssetPrioritySet') diff --git a/test/behavior/nestable.ts b/test/behavior/nestable.ts index e44c9ff2..c87df51e 100644 --- a/test/behavior/nestable.ts +++ b/test/behavior/nestable.ts @@ -37,23 +37,23 @@ async function shouldBehaveLikeNestable( describe('Minting', async function () { it('can mint with no destination', async function () { - const tokenId = await mint(child, await tokenOwner.getAddress()); - expect(await child.ownerOf(tokenId)).to.equal(await tokenOwner.getAddress()); - expect(await child.directOwnerOf(tokenId)).to.eql([await tokenOwner.getAddress(), 0n, false]); + const tokenId = await mint(child, tokenOwner.address); + expect(await child.ownerOf(tokenId)).to.equal(tokenOwner.address); + expect(await child.directOwnerOf(tokenId)).to.eql([tokenOwner.address, 0n, false]); }); it('has right owners', async function () { const otherOwner = addrs[2]; - const tokenId = await mint(parent, await tokenOwner.getAddress()); - const tokenId2 = await mint(parent, await otherOwner.getAddress()); - const tokenId3 = await mint(parent, await otherOwner.getAddress()); + const tokenId = await mint(parent, tokenOwner.address); + const tokenId2 = await mint(parent, otherOwner.address); + const tokenId3 = await mint(parent, otherOwner.address); - expect(await parent.ownerOf(tokenId)).to.equal(await tokenOwner.getAddress()); - expect(await parent.ownerOf(tokenId2)).to.equal(await otherOwner.getAddress()); - expect(await parent.ownerOf(tokenId3)).to.equal(await otherOwner.getAddress()); + expect(await parent.ownerOf(tokenId)).to.equal(tokenOwner.address); + expect(await parent.ownerOf(tokenId2)).to.equal(otherOwner.address); + expect(await parent.ownerOf(tokenId3)).to.equal(otherOwner.address); - expect(await parent.balanceOf(await tokenOwner.getAddress())).to.equal(1); - expect(await parent.balanceOf(await otherOwner.getAddress())).to.equal(2); + expect(await parent.balanceOf(tokenOwner.address)).to.equal(1); + expect(await parent.balanceOf(otherOwner.address)).to.equal(2); await expect(parent.ownerOf(9999)).to.be.revertedWithCustomError( parent, @@ -69,9 +69,10 @@ async function shouldBehaveLikeNestable( }); it('cannot nest mint to a non-contract destination', async function () { - await expect( - nestMint(child, await tokenOwner.getAddress(), 0n), - ).to.be.revertedWithCustomError(child, 'RMRKIsNotContract'); + await expect(nestMint(child, tokenOwner.address, 0n)).to.be.revertedWithCustomError( + child, + 'RMRKIsNotContract', + ); }); it('cannot nest mint to non rmrk nestable receiver', async function () { @@ -94,7 +95,7 @@ async function shouldBehaveLikeNestable( }); it('cannot nest mint to zero address', async function () { - const parentId = await mint(parent, await tokenOwner.getAddress()); + const parentId = await mint(parent, tokenOwner.address); await expect(nestMint(child, ADDRESS_ZERO, parentId)).to.be.revertedWithCustomError( child, 'RMRKIsNotContract', @@ -102,27 +103,23 @@ async function shouldBehaveLikeNestable( }); it('can mint to contract and owners are ok', async function () { - const parentId = await mint(parent, await tokenOwner.getAddress()); + const parentId = await mint(parent, tokenOwner.address); const childId = await nestMint(child, await parent.getAddress(), parentId); // owner is the same adress - expect(await parent.ownerOf(parentId)).to.equal(await tokenOwner.getAddress()); - expect(await child.ownerOf(childId)).to.equal(await tokenOwner.getAddress()); + expect(await parent.ownerOf(parentId)).to.equal(tokenOwner.address); + expect(await child.ownerOf(childId)).to.equal(tokenOwner.address); - expect(await parent.balanceOf(await tokenOwner.getAddress())).to.equal(1); + expect(await parent.balanceOf(tokenOwner.address)).to.equal(1); expect(await child.balanceOf(await parent.getAddress())).to.equal(1); }); it('can mint to contract and RMRK owners are ok', async function () { - const parentId = await mint(parent, await tokenOwner.getAddress()); + const parentId = await mint(parent, tokenOwner.address); const childId = await nestMint(child, await parent.getAddress(), parentId); // RMRK owner is an address for the parent - expect(await parent.directOwnerOf(parentId)).to.eql([ - await tokenOwner.getAddress(), - 0n, - false, - ]); + expect(await parent.directOwnerOf(parentId)).to.eql([tokenOwner.address, 0n, false]); // RMRK owner is a contract for the child expect(await child.directOwnerOf(childId)).to.eql([ await parent.getAddress(), @@ -132,7 +129,7 @@ async function shouldBehaveLikeNestable( }); it("can mint to contract and parent's children are ok", async function () { - const parentId = await mint(parent, await tokenOwner.getAddress()); + const parentId = await mint(parent, tokenOwner.address); const childId = await nestMint(child, await parent.getAddress(), parentId); const children = await parent.childrenOf(parentId); @@ -144,7 +141,7 @@ async function shouldBehaveLikeNestable( }); it('cannot get child out of index', async function () { - const parentId = await mint(parent, await tokenOwner.getAddress()); + const parentId = await mint(parent, tokenOwner.address); await expect(parent.childOf(parentId, 0)).to.be.revertedWithCustomError( parent, 'RMRKChildIndexOutOfRange', @@ -152,7 +149,7 @@ async function shouldBehaveLikeNestable( }); it('cannot get pending child out of index', async function () { - const parentId = await mint(parent, await tokenOwner.getAddress()); + const parentId = await mint(parent, tokenOwner.address); await expect(parent.pendingChildOf(parentId, 0)).to.be.revertedWithCustomError( parent, 'RMRKPendingChildIndexOutOfRange', @@ -160,12 +157,12 @@ async function shouldBehaveLikeNestable( }); it('can mint multiple children', async function () { - const parentId = await mint(parent, await tokenOwner.getAddress()); + const parentId = await mint(parent, tokenOwner.address); const childId1 = await nestMint(child, await parent.getAddress(), parentId); const childId2 = await nestMint(child, await parent.getAddress(), parentId); - expect(await child.ownerOf(childId1)).to.equal(await tokenOwner.getAddress()); - expect(await child.ownerOf(childId2)).to.equal(await tokenOwner.getAddress()); + expect(await child.ownerOf(childId1)).to.equal(tokenOwner.address); + expect(await child.ownerOf(childId2)).to.equal(tokenOwner.address); expect(await child.balanceOf(await parent.getAddress())).to.equal(2); @@ -177,7 +174,7 @@ async function shouldBehaveLikeNestable( }); it('can mint child into child', async function () { - const parentId = await mint(parent, await tokenOwner.getAddress()); + const parentId = await mint(parent, tokenOwner.address); const childId = await nestMint(child, await parent.getAddress(), parentId); const granchildId = await nestMint(child, await child.getAddress(), childId); @@ -198,11 +195,11 @@ async function shouldBehaveLikeNestable( true, ]); - expect(await child.ownerOf(granchildId)).to.eql(await tokenOwner.getAddress()); + expect(await child.ownerOf(granchildId)).to.eql(tokenOwner.address); }); it('cannot have too many pending children', async () => { - const parentId = await mint(parent, await tokenOwner.getAddress()); + const parentId = await mint(parent, tokenOwner.address); // First 127 should be fine. for (let i = 0; i <= 127; i++) { @@ -237,8 +234,8 @@ async function shouldBehaveLikeNestable( it('cannot add child from user address', async function () { const tokenOwner1 = addrs[0]; const tokenOwner2 = addrs[1]; - const parentId = await mint(parent, await tokenOwner1.getAddress()); - const childId = await mint(child, await tokenOwner2.getAddress()); + const parentId = await mint(parent, tokenOwner1.address); + const childId = await mint(child, tokenOwner2.address); await expect(parent.addChild(parentId, childId, '0x')).to.be.revertedWithCustomError( parent, 'RMRKIsNotContract', @@ -251,7 +248,7 @@ async function shouldBehaveLikeNestable( let childId: bigint; beforeEach(async function () { - parentId = await mint(parent, await tokenOwner.getAddress()); + parentId = await mint(parent, tokenOwner.address); childId = await nestMint(child, await parent.getAddress(), parentId); }); @@ -266,7 +263,7 @@ async function shouldBehaveLikeNestable( it('can accept child if approved', async function () { const approved = addrs[1]; - await parent.connect(tokenOwner).approve(await approved.getAddress(), parentId); + await parent.connect(tokenOwner).approve(approved.address, parentId); await parent.connect(approved).acceptChild(parentId, 0, await child.getAddress(), childId); await checkChildWasAccepted(); }); @@ -312,7 +309,7 @@ async function shouldBehaveLikeNestable( let parentId: bigint; beforeEach(async function () { - parentId = await mint(parent, await tokenOwner.getAddress()); + parentId = await mint(parent, tokenOwner.address); await nestMint(child, await parent.getAddress(), parentId); }); @@ -375,18 +372,18 @@ async function shouldBehaveLikeNestable( let parentId: bigint; beforeEach(async function () { - parentId = await mint(parent, await tokenOwner.getAddress()); + parentId = await mint(parent, tokenOwner.address); }); it('can burn token', async function () { - expect(await parent.balanceOf(await tokenOwner.getAddress())).to.equal(1); + expect(await parent.balanceOf(tokenOwner.address)).to.equal(1); await parent.connect(tokenOwner)['burn(uint256)'](parentId); await checkBurntParent(); }); it('can burn token if approved', async function () { const approved = addrs[1]; - await parent.connect(tokenOwner).approve(await approved.getAddress(), parentId); + await parent.connect(tokenOwner).approve(approved.address, parentId); await parent.connect(approved)['burn(uint256)'](parentId); await checkBurntParent(); }); @@ -406,7 +403,7 @@ async function shouldBehaveLikeNestable( .connect(tokenOwner) .acceptChild(childId, 0, await child.getAddress(), granchildId); - expect(await parent.balanceOf(await tokenOwner.getAddress())).to.equal(1); + expect(await parent.balanceOf(tokenOwner.address)).to.equal(1); expect(await child.balanceOf(await parent.getAddress())).to.equal(1); expect(await child.balanceOf(await child.getAddress())).to.equal(1); @@ -421,7 +418,7 @@ async function shouldBehaveLikeNestable( // Sets recursive burns to 2 await parent.connect(tokenOwner)['burn(uint256,uint256)'](parentId, 2); - expect(await parent.balanceOf(await tokenOwner.getAddress())).to.equal(0); + expect(await parent.balanceOf(tokenOwner.address)).to.equal(0); expect(await child.balanceOf(await parent.getAddress())).to.equal(0); expect(await child.balanceOf(await child.getAddress())).to.equal(0); @@ -516,7 +513,7 @@ async function shouldBehaveLikeNestable( let childId: bigint; beforeEach(async function () { - parentId = await mint(parent, await tokenOwner.getAddress()); + parentId = await mint(parent, tokenOwner.address); childId = await nestMint(child, await parent.getAddress(), parentId); await parent.connect(tokenOwner).acceptChild(parentId, 0, await child.getAddress(), childId); }); @@ -527,7 +524,7 @@ async function shouldBehaveLikeNestable( .connect(tokenOwner) .transferChild( parentId, - await tokenOwner.getAddress(), + tokenOwner.address, 0, 0, await child.getAddress(), @@ -663,8 +660,8 @@ async function shouldBehaveLikeNestable( it('can transfer child if approved', async function () { const transferer = addrs[1]; - const toOwner = await tokenOwner.getAddress(); - await parent.connect(tokenOwner).approve(await transferer.getAddress(), parentId); + const toOwner = tokenOwner.address; + await parent.connect(tokenOwner).approve(transferer.address, parentId); await parent .connect(transferer) @@ -674,7 +671,7 @@ async function shouldBehaveLikeNestable( it('can transfer child if approved for all', async function () { const operator = addrs[2]; - const toOwner = await tokenOwner.getAddress(); + const toOwner = tokenOwner.address; await parent.connect(tokenOwner).setApprovalForAll(await operator.getAddress(), true); await parent @@ -684,7 +681,7 @@ async function shouldBehaveLikeNestable( }); it('can transfer child with grandchild and children are ok', async function () { - const toOwner = await tokenOwner.getAddress(); + const toOwner = tokenOwner.address; const grandchildId = await nestMint(child, await child.getAddress(), childId); // Transfer child from parent. @@ -693,11 +690,11 @@ async function shouldBehaveLikeNestable( .transferChild(parentId, toOwner, 0, 0, await child.getAddress(), childId, false, '0x'); // New owner of child - expect(await child.ownerOf(childId)).to.eql(await tokenOwner.getAddress()); - expect(await child.directOwnerOf(childId)).to.eql([await tokenOwner.getAddress(), 0n, false]); + expect(await child.ownerOf(childId)).to.eql(tokenOwner.address); + expect(await child.directOwnerOf(childId)).to.eql([tokenOwner.address, 0n, false]); // Grandchild is still owned by child - expect(await child.ownerOf(grandchildId)).to.eql(await tokenOwner.getAddress()); + expect(await child.ownerOf(grandchildId)).to.eql(tokenOwner.address); expect(await child.directOwnerOf(grandchildId)).to.eql([ await child.getAddress(), childId, @@ -706,7 +703,7 @@ async function shouldBehaveLikeNestable( }); it('cannot transfer child if not child root owner', async function () { - const toOwner = await tokenOwner.getAddress(); + const toOwner = tokenOwner.address; const notOwner = addrs[3]; await expect( parent @@ -717,7 +714,7 @@ async function shouldBehaveLikeNestable( it('cannot transfer child from not existing parent', async function () { const badTokenId = 999; - const toOwner = await tokenOwner.getAddress(); + const toOwner = tokenOwner.address; await expect( parent .connect(tokenOwner) @@ -727,14 +724,14 @@ async function shouldBehaveLikeNestable( async function checkChildMovedToRootOwner(rootOwnerAddress?: string) { if (rootOwnerAddress === undefined) { - rootOwnerAddress = await tokenOwner.getAddress(); + rootOwnerAddress = tokenOwner.address; } expect(await child.ownerOf(childId)).to.eql(rootOwnerAddress); expect(await child.directOwnerOf(childId)).to.eql([rootOwnerAddress, 0n, false]); // Transferring updates balances downstream expect(await child.balanceOf(rootOwnerAddress)).to.equal(1); - expect(await parent.balanceOf(await tokenOwner.getAddress())).to.equal(1); + expect(await parent.balanceOf(tokenOwner.address)).to.equal(1); } }); @@ -743,7 +740,7 @@ async function shouldBehaveLikeNestable( let childId: bigint; beforeEach(async function () { - parentId = await mint(parent, await tokenOwner.getAddress()); + parentId = await mint(parent, tokenOwner.address); childId = await nestMint(child, await parent.getAddress(), parentId); }); @@ -753,7 +750,7 @@ async function shouldBehaveLikeNestable( .connect(tokenOwner) .transferChild( parentId, - await tokenOwner.getAddress(), + tokenOwner.address, 0, 0, await child.getAddress(), @@ -887,8 +884,8 @@ async function shouldBehaveLikeNestable( it('can transfer child if approved', async function () { const transferer = addrs[1]; - const toOwner = await tokenOwner.getAddress(); - await parent.connect(tokenOwner).approve(await transferer.getAddress(), parentId); + const toOwner = tokenOwner.address; + await parent.connect(tokenOwner).approve(transferer.address, parentId); await parent .connect(transferer) @@ -898,7 +895,7 @@ async function shouldBehaveLikeNestable( it('can transfer child if approved for all', async function () { const operator = addrs[2]; - const toOwner = await tokenOwner.getAddress(); + const toOwner = tokenOwner.address; await parent.connect(tokenOwner).setApprovalForAll(await operator.getAddress(), true); await parent @@ -908,7 +905,7 @@ async function shouldBehaveLikeNestable( }); it('can transfer child with grandchild and children are ok', async function () { - const toOwner = await tokenOwner.getAddress(); + const toOwner = tokenOwner.address; const grandchildId = await nestMint(child, await child.getAddress(), childId); // Transfer child from parent. @@ -917,11 +914,11 @@ async function shouldBehaveLikeNestable( .transferChild(parentId, toOwner, 0, 0, await child.getAddress(), childId, true, '0x'); // New owner of child - expect(await child.ownerOf(childId)).to.eql(await tokenOwner.getAddress()); - expect(await child.directOwnerOf(childId)).to.eql([await tokenOwner.getAddress(), 0n, false]); + expect(await child.ownerOf(childId)).to.eql(tokenOwner.address); + expect(await child.directOwnerOf(childId)).to.eql([tokenOwner.address, 0n, false]); // Grandchild is still owned by child - expect(await child.ownerOf(grandchildId)).to.eql(await tokenOwner.getAddress()); + expect(await child.ownerOf(grandchildId)).to.eql(tokenOwner.address); expect(await child.directOwnerOf(grandchildId)).to.eql([ await child.getAddress(), childId, @@ -930,7 +927,7 @@ async function shouldBehaveLikeNestable( }); it('cannot transfer child if not child root owner', async function () { - const toOwner = await tokenOwner.getAddress(); + const toOwner = tokenOwner.address; const notOwner = addrs[3]; await expect( parent @@ -941,7 +938,7 @@ async function shouldBehaveLikeNestable( it('cannot transfer child from not existing parent', async function () { const badTokenId = 999; - const toOwner = await tokenOwner.getAddress(); + const toOwner = tokenOwner.address; await expect( parent .connect(tokenOwner) @@ -951,14 +948,14 @@ async function shouldBehaveLikeNestable( async function checkChildMovedToRootOwner(rootOwnerAddress?: string) { if (rootOwnerAddress === undefined) { - rootOwnerAddress = await tokenOwner.getAddress(); + rootOwnerAddress = tokenOwner.address; } expect(await child.ownerOf(childId)).to.eql(rootOwnerAddress); expect(await child.directOwnerOf(childId)).to.eql([rootOwnerAddress, 0n, false]); // transferring updates balances downstream expect(await child.balanceOf(rootOwnerAddress)).to.equal(1); - expect(await parent.balanceOf(await tokenOwner.getAddress())).to.equal(1); + expect(await parent.balanceOf(tokenOwner.address)).to.equal(1); } }); @@ -966,27 +963,27 @@ async function shouldBehaveLikeNestable( it('can transfer token', async function () { const firstOwner = addrs[1]; const newOwner = addrs[2]; - const tokenId = await mint(parent, await firstOwner.getAddress()); - await transfer(parent, firstOwner, await newOwner.getAddress(), tokenId); + const tokenId = await mint(parent, firstOwner.address); + await transfer(parent, firstOwner, newOwner.address, tokenId); // Balances and ownership are updated - expect(await parent.ownerOf(tokenId)).to.eql(await newOwner.getAddress()); - expect(await parent.balanceOf(await firstOwner.getAddress())).to.equal(0); - expect(await parent.balanceOf(await newOwner.getAddress())).to.equal(1); + expect(await parent.ownerOf(tokenId)).to.eql(newOwner.address); + expect(await parent.balanceOf(firstOwner.address)).to.equal(0); + expect(await parent.balanceOf(newOwner.address)).to.equal(1); }); it('cannot transfer not owned token', async function () { const firstOwner = addrs[1]; const newOwner = addrs[2]; - const tokenId = await mint(parent, await firstOwner.getAddress()); + const tokenId = await mint(parent, firstOwner.address); await expect( - transfer(parent, newOwner, await newOwner.getAddress(), tokenId), + transfer(parent, newOwner, newOwner.address, tokenId), ).to.be.revertedWithCustomError(child, 'RMRKNotApprovedOrDirectOwner'); }); it('cannot transfer to address zero', async function () { const firstOwner = addrs[1]; - const tokenId = await mint(parent, await firstOwner.getAddress()); + const tokenId = await mint(parent, firstOwner.address); await expect( transfer(parent, firstOwner, ADDRESS_ZERO, tokenId), ).to.be.revertedWithCustomError(child, 'ERC721TransferToTheZeroAddress'); @@ -996,31 +993,31 @@ async function shouldBehaveLikeNestable( const firstOwner = addrs[1]; const approved = addrs[2]; const newOwner = addrs[3]; - const tokenId = await mint(parent, await firstOwner.getAddress()); + const tokenId = await mint(parent, firstOwner.address); - await parent.connect(firstOwner).approve(await approved.getAddress(), tokenId); - await transfer(parent, firstOwner, await newOwner.getAddress(), tokenId); + await parent.connect(firstOwner).approve(approved.address, tokenId); + await transfer(parent, firstOwner, newOwner.address, tokenId); - expect(await parent.ownerOf(tokenId)).to.eql(await newOwner.getAddress()); + expect(await parent.ownerOf(tokenId)).to.eql(newOwner.address); }); it('can transfer not nested token with child to address and owners/children are ok', async function () { const firstOwner = addrs[1]; const newOwner = addrs[2]; - const parentId = await mint(parent, await firstOwner.getAddress()); + const parentId = await mint(parent, firstOwner.address); const childId = await nestMint(child, await parent.getAddress(), parentId); - await transfer(parent, firstOwner, await newOwner.getAddress(), parentId); + await transfer(parent, firstOwner, newOwner.address, parentId); // Balances and ownership are updated - expect(await parent.balanceOf(await firstOwner.getAddress())).to.equal(0); - expect(await parent.balanceOf(await newOwner.getAddress())).to.equal(1); + expect(await parent.balanceOf(firstOwner.address)).to.equal(0); + expect(await parent.balanceOf(newOwner.address)).to.equal(1); - expect(await parent.ownerOf(parentId)).to.eql(await newOwner.getAddress()); - expect(await parent.directOwnerOf(parentId)).to.eql([await newOwner.getAddress(), 0n, false]); + expect(await parent.ownerOf(parentId)).to.eql(newOwner.address); + expect(await parent.directOwnerOf(parentId)).to.eql([newOwner.address, 0n, false]); // New owner of child - expect(await child.ownerOf(childId)).to.eql(await newOwner.getAddress()); + expect(await child.ownerOf(childId)).to.eql(newOwner.address); expect(await child.directOwnerOf(childId)).to.eql([ await parent.getAddress(), parentId, @@ -1036,29 +1033,29 @@ async function shouldBehaveLikeNestable( it('cannot directly transfer nested child', async function () { const firstOwner = addrs[1]; const newOwner = addrs[2]; - const parentId = await mint(parent, await firstOwner.getAddress()); + const parentId = await mint(parent, firstOwner.address); const childId = await nestMint(child, await parent.getAddress(), parentId); await expect( - transfer(child, firstOwner, await newOwner.getAddress(), childId), + transfer(child, firstOwner, newOwner.address, childId), ).to.be.revertedWithCustomError(child, 'RMRKNotApprovedOrDirectOwner'); }); it('can transfer parent token to token with same owner, family tree is ok', async function () { const firstOwner = addrs[1]; - const grandParentId = await mint(parent, await firstOwner.getAddress()); - const parentId = await mint(parent, await firstOwner.getAddress()); + const grandParentId = await mint(parent, firstOwner.address); + const parentId = await mint(parent, firstOwner.address); const childId = await nestMint(child, await parent.getAddress(), parentId); // Check balances - expect(await parent.balanceOf(await firstOwner.getAddress())).to.equal(2); + expect(await parent.balanceOf(firstOwner.address)).to.equal(2); expect(await child.balanceOf(await parent.getAddress())).to.equal(1); // Transfers token parentId to (await parent.getAddress(), token grandParentId) await nestTransfer(parent, firstOwner, await parent.getAddress(), parentId, grandParentId); // Balances unchanged since root owner is the same - expect(await parent.balanceOf(await firstOwner.getAddress())).to.equal(1); + expect(await parent.balanceOf(firstOwner.address)).to.equal(1); expect(await child.balanceOf(await parent.getAddress())).to.equal(1); expect(await parent.balanceOf(await parent.getAddress())).to.equal(1); @@ -1073,22 +1070,22 @@ async function shouldBehaveLikeNestable( it('can transfer parent token to token with different owner, family tree is ok', async function () { const firstOwner = addrs[1]; const otherOwner = addrs[2]; - const grandParentId = await mint(parent, await otherOwner.getAddress()); - const parentId = await mint(parent, await firstOwner.getAddress()); + const grandParentId = await mint(parent, otherOwner.address); + const parentId = await mint(parent, firstOwner.address); const childId = await nestMint(child, await parent.getAddress(), parentId); // Check balances - expect(await parent.balanceOf(await otherOwner.getAddress())).to.equal(1); - expect(await parent.balanceOf(await firstOwner.getAddress())).to.equal(1); + expect(await parent.balanceOf(otherOwner.address)).to.equal(1); + expect(await parent.balanceOf(firstOwner.address)).to.equal(1); expect(await child.balanceOf(await parent.getAddress())).to.equal(1); // firstOwner calls parent to transfer parent token parent await nestTransfer(parent, firstOwner, await parent.getAddress(), parentId, grandParentId); // Balances update - expect(await parent.balanceOf(await firstOwner.getAddress())).to.equal(0); + expect(await parent.balanceOf(firstOwner.address)).to.equal(0); expect(await parent.balanceOf(await parent.getAddress())).to.equal(1); - expect(await parent.balanceOf(await otherOwner.getAddress())).to.equal(1); + expect(await parent.balanceOf(otherOwner.address)).to.equal(1); expect(await child.balanceOf(await parent.getAddress())).to.equal(1); // Parent is still owner of child @@ -1107,12 +1104,12 @@ async function shouldBehaveLikeNestable( beforeEach(async function () { firstOwner = addrs[1]; - parentId = await mint(parent, await firstOwner.getAddress()); - childId = await mint(child, await firstOwner.getAddress()); + parentId = await mint(parent, firstOwner.address); + childId = await mint(child, firstOwner.address); }); it('cannot nest tranfer from non immediate owner (owner of parent)', async function () { - const otherParentId = await mint(parent, await firstOwner.getAddress()); + const otherParentId = await mint(parent, firstOwner.address); // We send it to the parent first await nestTransfer(child, firstOwner, await parent.getAddress(), childId, parentId); // We can no longer nest transfer it, even if we are the root owner: @@ -1172,7 +1169,7 @@ async function shouldBehaveLikeNestable( it('cannot nest tranfer to a non contract', async function () { const newOwner = addrs[2]; await expect( - nestTransfer(child, firstOwner, await newOwner.getAddress(), childId, parentId), + nestTransfer(child, firstOwner, newOwner.address, childId, parentId), ).to.be.revertedWithCustomError(child, 'RMRKIsNotContract'); }); @@ -1187,7 +1184,7 @@ async function shouldBehaveLikeNestable( it('can nest tranfer to IERC7401 contract', async function () { await nestTransfer(child, firstOwner, await parent.getAddress(), childId, parentId); - expect(await child.ownerOf(childId)).to.eql(await firstOwner.getAddress()); + expect(await child.ownerOf(childId)).to.eql(firstOwner.address); expect(await child.directOwnerOf(childId)).to.eql([ await parent.getAddress(), parentId, diff --git a/test/behavior/ownableLock.ts b/test/behavior/ownableLock.ts index 5ebda659..5bea6af7 100644 --- a/test/behavior/ownableLock.ts +++ b/test/behavior/ownableLock.ts @@ -19,7 +19,7 @@ async function shouldBehaveOwnableLock(ismock: boolean) { describe('Init', async function () { it('can get owner', async function () { - expect(await ownableLock.owner()).to.equal(await owner.getAddress()); + expect(await ownableLock.owner()).to.equal(owner.address); }); it('emits LockSet event when the lock is set', async function () { diff --git a/test/behavior/royalties.ts b/test/behavior/royalties.ts index 2a066ca3..0b5204cb 100644 --- a/test/behavior/royalties.ts +++ b/test/behavior/royalties.ts @@ -8,7 +8,7 @@ async function shouldHaveRoyalties( ): Promise { it('can get royalty data', async function () { const owner = (await ethers.getSigners())[0]; - const tokenId = await mint(this.token, await owner.getAddress()); + const tokenId = await mint(this.token, owner.address); expect(await this.token.royaltyInfo(tokenId, ONE_ETH * 10n)).to.eql([ADDRESS_ZERO, ONE_ETH]); }); diff --git a/test/bulkWriter.ts b/test/bulkWriter.ts index a4101a9f..3dc05a0d 100644 --- a/test/bulkWriter.ts +++ b/test/bulkWriter.ts @@ -55,7 +55,7 @@ async function bulkWriterFixture() { const [owner] = await ethers.getSigners(); - const kanariaId = await mintFromMock(kanaria, await owner.getAddress()); + const kanariaId = await mintFromMock(kanaria, owner.address); const gemId1 = await nestMintFromMock(gem, await kanaria.getAddress(), kanariaId); const gemId2 = await nestMintFromMock(gem, await kanaria.getAddress(), kanariaId); const gemId3 = await nestMintFromMock(gem, await kanaria.getAddress(), kanariaId); diff --git a/test/catalogUtils.ts b/test/catalogUtils.ts index 90a0939b..db886ef5 100644 --- a/test/catalogUtils.ts +++ b/test/catalogUtils.ts @@ -134,7 +134,7 @@ describe('Collection Utils', function () { it('can get catalog data', async function () { expect(await catalogUtils.getCatalogData(await catalog.getAddress())).to.eql([ - await deployer.getAddress(), + deployer.address, CATALOG_TYPE, CATALOG_METADATA, ]); @@ -185,7 +185,7 @@ describe('Collection Utils', function () { expect( await catalogUtils.getCatalogDataAndExtendedParts(await catalog.getAddress(), [partId]), ).to.eql([ - await deployer.getAddress(), + deployer.address, CATALOG_TYPE, CATALOG_METADATA, [ diff --git a/test/collectionUtils.ts b/test/collectionUtils.ts index 17ccad1e..1ef24d82 100644 --- a/test/collectionUtils.ts +++ b/test/collectionUtils.ts @@ -33,7 +33,7 @@ async function collectionUtilsFixture() { 'MA', collectionMeta, maxSupply, - await deployer.getAddress(), + deployer.address, royaltyBps, ) ); @@ -45,7 +45,7 @@ async function collectionUtilsFixture() { 'NMAS', collectionMeta, maxSupply, - await deployer.getAddress(), + deployer.address, royaltyBps, ) ); @@ -57,7 +57,7 @@ async function collectionUtilsFixture() { 'NMA', collectionMeta, maxSupply, - await deployer.getAddress(), + deployer.address, royaltyBps, ) ); @@ -69,7 +69,7 @@ async function collectionUtilsFixture() { 'EQ', collectionMeta, maxSupply, - await deployer.getAddress(), + deployer.address, royaltyBps, ) ); @@ -104,17 +104,17 @@ describe('Collection Utils', function () { }); it('can get collection data', async function () { - await mintFromMockPremint(multiAsset, await holder.getAddress()); - await mintFromMockPremint(nestableMultiAsset, await holder.getAddress()); - await mintFromMockPremint(nestableMultiAssetSoulbound, await holder.getAddress()); - await mintFromMockPremint(equip, await holder.getAddress()); + await mintFromMockPremint(multiAsset, holder.address); + await mintFromMockPremint(nestableMultiAsset, holder.address); + await mintFromMockPremint(nestableMultiAssetSoulbound, holder.address); + await mintFromMockPremint(equip, holder.address); expect(await collectionUtils.getCollectionData(await multiAsset.getAddress())).to.eql([ 1n, maxSupply, royaltyBps, - await issuer.getAddress(), - await issuer.getAddress(), + issuer.address, + issuer.address, 'MultiAsset', 'MA', collectionMeta, @@ -124,8 +124,8 @@ describe('Collection Utils', function () { 1n, maxSupply, royaltyBps, - await issuer.getAddress(), - await issuer.getAddress(), + issuer.address, + issuer.address, 'MultiAsset', 'MA', collectionMeta, @@ -135,8 +135,8 @@ describe('Collection Utils', function () { 1n, maxSupply, royaltyBps, - await issuer.getAddress(), - await issuer.getAddress(), + issuer.address, + issuer.address, 'NestableMultiAsset', 'NMA', collectionMeta, @@ -148,8 +148,8 @@ describe('Collection Utils', function () { 1n, maxSupply, royaltyBps, - await issuer.getAddress(), - await issuer.getAddress(), + issuer.address, + issuer.address, 'NestableMultiAssetSoulbound', 'NMAS', collectionMeta, @@ -159,8 +159,8 @@ describe('Collection Utils', function () { 1n, maxSupply, royaltyBps, - await issuer.getAddress(), - await issuer.getAddress(), + issuer.address, + issuer.address, 'Equippable', 'EQ', collectionMeta, @@ -193,7 +193,7 @@ describe('Collection Utils', function () { }); it('can get pages of available ids', async function () { - await multiAsset.mint(await holder.getAddress(), 9, ''); + await multiAsset.mint(holder.address, 9, ''); await multiAsset.connect(holder).burn(3); await multiAsset.connect(holder).burn(8); diff --git a/test/emotableRepository.ts b/test/emotableRepository.ts index 780a64d9..83f86389 100644 --- a/test/emotableRepository.ts +++ b/test/emotableRepository.ts @@ -50,7 +50,7 @@ describe('RMRKEmotesRepository', async function () { describe('With minted tokens', async function () { beforeEach(async function () { - await token.mint(await owner.getAddress(), tokenId); + await token.mint(owner.address, tokenId); }); it('can emote', async function () { @@ -75,7 +75,7 @@ describe('RMRKEmotesRepository', async function () { await expect(repository.emote(await token.getAddress(), tokenId, emoji1, false)) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji1, false); + .withArgs(owner.address, await token.getAddress(), tokenId, emoji1, false); expect(await repository.emoteCountOf(await token.getAddress(), tokenId, emoji1)).to.equal(0n); }); @@ -126,7 +126,7 @@ describe('RMRKEmotesRepository', async function () { expect( await repository.haveEmotersUsedEmotes( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -142,9 +142,9 @@ describe('RMRKEmotesRepository', async function () { ), ) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji1, true) + .withArgs(owner.address, await token.getAddress(), tokenId, emoji1, true) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji2, true); + .withArgs(owner.address, await token.getAddress(), tokenId, emoji2, true); expect( await repository.bulkEmoteCountOf( @@ -156,7 +156,7 @@ describe('RMRKEmotesRepository', async function () { expect( await repository.haveEmotersUsedEmotes( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -174,9 +174,9 @@ describe('RMRKEmotesRepository', async function () { ), ) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji1, true) + .withArgs(owner.address, await token.getAddress(), tokenId, emoji1, true) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji2, true); + .withArgs(owner.address, await token.getAddress(), tokenId, emoji2, true); expect( await repository.bulkEmoteCountOf( @@ -188,7 +188,7 @@ describe('RMRKEmotesRepository', async function () { expect( await repository.haveEmotersUsedEmotes( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -204,9 +204,9 @@ describe('RMRKEmotesRepository', async function () { ), ) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji1, false) + .withArgs(owner.address, await token.getAddress(), tokenId, emoji1, false) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji2, false); + .withArgs(owner.address, await token.getAddress(), tokenId, emoji2, false); expect( await repository.bulkEmoteCountOf( @@ -218,7 +218,7 @@ describe('RMRKEmotesRepository', async function () { expect( await repository.haveEmotersUsedEmotes( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -239,7 +239,7 @@ describe('RMRKEmotesRepository', async function () { expect( await repository.haveEmotersUsedEmotes( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -255,9 +255,9 @@ describe('RMRKEmotesRepository', async function () { ), ) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji1, true) + .withArgs(owner.address, await token.getAddress(), tokenId, emoji1, true) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji2, false); + .withArgs(owner.address, await token.getAddress(), tokenId, emoji2, false); expect( await repository.bulkEmoteCountOf( @@ -269,7 +269,7 @@ describe('RMRKEmotesRepository', async function () { expect( await repository.haveEmotersUsedEmotes( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -450,7 +450,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .presignedEmote( - await owner.getAddress(), + owner.address, await token.getAddress(), tokenId, emoji1, @@ -462,7 +462,7 @@ describe('RMRKEmotesRepository', async function () { ), ) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji1, true); + .withArgs(owner.address, await token.getAddress(), tokenId, emoji1, true); }); it('does nothing if new state is the same as old state on presigned emote', async function () { @@ -484,7 +484,7 @@ describe('RMRKEmotesRepository', async function () { await repository .connect(addrs[0]) .presignedEmote( - await owner.getAddress(), + owner.address, await token.getAddress(), tokenId, emoji1, @@ -517,7 +517,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .presignedEmote( - await owner.getAddress(), + owner.address, await token.getAddress(), tokenId, emoji1, @@ -529,11 +529,15 @@ describe('RMRKEmotesRepository', async function () { ), ) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji1, false); + .withArgs(owner.address, await token.getAddress(), tokenId, emoji1, false); }); it('cannot use expired presigned to emote', async function () { const block = await ethers.provider.getBlock('latest'); + if (!block) { + throw new Error('Block not found'); + } + const previousBlockTime = block.timestamp; const message = await repository.prepareMessageToPresignEmote( await token.getAddress(), @@ -553,7 +557,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .presignedEmote( - await owner.getAddress(), + owner.address, await token.getAddress(), tokenId, emoji1, @@ -597,7 +601,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).presignedEmote( - await owner.getAddress(), + owner.address, addrs[2].address, // different collection tokenId, emoji1, @@ -611,7 +615,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).presignedEmote( - await owner.getAddress(), + owner.address, await token.getAddress(), tokenId + 1n, // different token emoji1, @@ -625,7 +629,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).presignedEmote( - await owner.getAddress(), + owner.address, await token.getAddress(), tokenId, emoji2, // different emoji @@ -639,7 +643,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).presignedEmote( - await owner.getAddress(), + owner.address, await token.getAddress(), tokenId, emoji1, @@ -653,7 +657,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).presignedEmote( - await owner.getAddress(), + owner.address, await token.getAddress(), tokenId, emoji1, @@ -689,7 +693,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -701,9 +705,9 @@ describe('RMRKEmotesRepository', async function () { ), ) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji1, true) + .withArgs(owner.address, await token.getAddress(), tokenId, emoji1, true) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji2, true); + .withArgs(owner.address, await token.getAddress(), tokenId, emoji2, true); }); it('can use presigned emotes to undo reaction to token', async function () { @@ -732,7 +736,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -744,9 +748,9 @@ describe('RMRKEmotesRepository', async function () { ), ) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji1, false) + .withArgs(owner.address, await token.getAddress(), tokenId, emoji1, false) .to.emit(repository, 'Emoted') - .withArgs(await owner.getAddress(), await token.getAddress(), tokenId, emoji2, false); + .withArgs(owner.address, await token.getAddress(), tokenId, emoji2, false); }); it('does nothing if new state is the same as old state on bulk presigned emote', async function () { @@ -773,7 +777,7 @@ describe('RMRKEmotesRepository', async function () { await repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -815,7 +819,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress()], + [owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -831,7 +835,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -847,7 +851,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId], [emoji1, emoji2], @@ -863,7 +867,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1], @@ -879,7 +883,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -895,7 +899,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -911,7 +915,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -927,7 +931,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -943,7 +947,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -958,6 +962,9 @@ describe('RMRKEmotesRepository', async function () { it('cannot use expired presigned to bulk emote', async function () { const block = await ethers.provider.getBlock('latest'); + if (!block) { + throw new Error('Block not found'); + } const previousBlockTime = block.timestamp; const messages = await repository.bulkPrepareMessagesToPresignEmote( @@ -982,7 +989,7 @@ describe('RMRKEmotesRepository', async function () { repository .connect(addrs[0]) .bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -997,6 +1004,9 @@ describe('RMRKEmotesRepository', async function () { it('cannot use bulk presigned emote for a different signer, collection, token, emoji, state or deadline', async function () { const block = await ethers.provider.getBlock('latest'); + if (!block) { + throw new Error('Block not found'); + } const previousBlockTime = block.timestamp; const messages = await repository.bulkPrepareMessagesToPresignEmote( @@ -1019,7 +1029,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).bulkPresignedEmote( - [await owner.getAddress(), addrs[1].address], // different signer + [owner.address, addrs[1].address], // different signer [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -1033,7 +1043,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), addrs[2].address], // different collection [tokenId, tokenId], [emoji1, emoji2], @@ -1047,7 +1057,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId + 1n], // different token [emoji1, emoji2], @@ -1061,7 +1071,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, '😎'], // different emoji @@ -1075,7 +1085,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], @@ -1089,7 +1099,7 @@ describe('RMRKEmotesRepository', async function () { await expect( repository.connect(addrs[0]).bulkPresignedEmote( - [await owner.getAddress(), await owner.getAddress()], + [owner.address, owner.address], [await token.getAddress(), await token.getAddress()], [tokenId, tokenId], [emoji1, emoji2], diff --git a/test/equippable.ts b/test/equippable.ts index c601aa6e..ff48ba58 100644 --- a/test/equippable.ts +++ b/test/equippable.ts @@ -114,7 +114,7 @@ async function equippableFixture() { // --------------- EQUIPPABLE BEHAVIOR ----------------------- -describe('MinifiedEquippableMock with Parts', async () => { +describe('EquippableMock with Parts', async () => { beforeEach(async function () { const { catalog, neon, mask, view } = await loadFixture(partsFixture); @@ -127,11 +127,10 @@ describe('MinifiedEquippableMock with Parts', async () => { shouldBehaveLikeEquippableWithParts(); }); -describe('MinifiedEquippableMock with Slots', async () => { +describe('EquippableMock with Slots', async () => { beforeEach(async function () { - const { catalog, soldier, weapon, weaponGem, background, view } = await loadFixture( - slotsFixture, - ); + const { catalog, soldier, weapon, weaponGem, background, view } = + await loadFixture(slotsFixture); this.catalog = catalog; this.soldier = soldier; @@ -144,7 +143,7 @@ describe('MinifiedEquippableMock with Slots', async () => { shouldBehaveLikeEquippableWithSlots(nestMintFromMock); }); -describe('MinifiedEquippableMock Assets', async () => { +describe('EquippableMock Assets', async () => { beforeEach(async function () { const { equip, renderUtils } = await loadFixture(equippableFixture); this.nestable = equip; @@ -159,7 +158,7 @@ describe('MinifiedEquippableMock Assets', async () => { // --------------- MULTI ASSET BEHAVIOR ----------------------- -describe('MinifiedEquippableMock MA behavior', async () => { +describe('EquippableMock MA behavior', async () => { let nextTokenId = 1n; let equip: RMRKEquippableMock; let renderUtils: RMRKMultiAssetRenderUtils; diff --git a/test/extensions/multiAssetAutoIndex.ts b/test/extensions/multiAssetAutoIndex.ts index 9262ae4f..e9e0ed9c 100644 --- a/test/extensions/multiAssetAutoIndex.ts +++ b/test/extensions/multiAssetAutoIndex.ts @@ -47,7 +47,7 @@ describe('RMRKMultiAssetAutoIndexMock', async function () { const assetId = bn(1); beforeEach(async function () { - await token.mint(await user.getAddress(), tokenId); + await token.mint(user.address, tokenId); await token.addAssetEntry(assetId, 'ipfs/something.json'); await token.addAssetToToken(tokenId, assetId, 0); }); diff --git a/test/extensions/nestableAutoIndex.ts b/test/extensions/nestableAutoIndex.ts index 48e86719..d6bea005 100644 --- a/test/extensions/nestableAutoIndex.ts +++ b/test/extensions/nestableAutoIndex.ts @@ -47,7 +47,7 @@ describe('RMRKNestableAutoIndexMock', async function () { describe('With minted tokens', async function () { beforeEach(async function () { - await token.mint(await owner.getAddress(), parentId); + await token.mint(owner.address, parentId); await token.nestMint(await token.getAddress(), childId1, parentId); await token.nestMint(await token.getAddress(), childId2, parentId); await token.nestMint(await token.getAddress(), childId3, parentId); @@ -107,7 +107,7 @@ describe('RMRKNestableAutoIndexMock', async function () { it('can transfer pending child in first position and result is ok', async function () { await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId1, @@ -123,7 +123,7 @@ describe('RMRKNestableAutoIndexMock', async function () { it('can transfer pending child in middle position and result is ok', async function () { await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId2, @@ -139,7 +139,7 @@ describe('RMRKNestableAutoIndexMock', async function () { it('can transfer pending child in last position and result is ok', async function () { await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId3, @@ -155,7 +155,7 @@ describe('RMRKNestableAutoIndexMock', async function () { it('can transfer all pending children result is ok', async function () { await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId1, @@ -164,7 +164,7 @@ describe('RMRKNestableAutoIndexMock', async function () { ); await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId2, @@ -173,7 +173,7 @@ describe('RMRKNestableAutoIndexMock', async function () { ); await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId3, @@ -189,7 +189,7 @@ describe('RMRKNestableAutoIndexMock', async function () { await expect( token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), otherChildId, @@ -222,7 +222,7 @@ describe('RMRKNestableAutoIndexMock', async function () { it('can transfer active child in first position and result is ok', async function () { await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId1, @@ -238,7 +238,7 @@ describe('RMRKNestableAutoIndexMock', async function () { it('can transfer active child in middle position and result is ok', async function () { await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId2, @@ -254,7 +254,7 @@ describe('RMRKNestableAutoIndexMock', async function () { it('can transfer active child in last position and result is ok', async function () { await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId3, @@ -270,7 +270,7 @@ describe('RMRKNestableAutoIndexMock', async function () { it('can transfer all active children result is ok', async function () { await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId1, @@ -279,7 +279,7 @@ describe('RMRKNestableAutoIndexMock', async function () { ); await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId2, @@ -288,7 +288,7 @@ describe('RMRKNestableAutoIndexMock', async function () { ); await token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), childId3, @@ -304,7 +304,7 @@ describe('RMRKNestableAutoIndexMock', async function () { await expect( token['transferChild(uint256,address,uint256,address,uint256,bool,bytes)']( parentId, - await owner.getAddress(), + owner.address, 0, await token.getAddress(), otherChildId, diff --git a/test/extensions/reclaimableChild.ts b/test/extensions/reclaimableChild.ts index 5c5de2fd..c23366fe 100644 --- a/test/extensions/reclaimableChild.ts +++ b/test/extensions/reclaimableChild.ts @@ -38,7 +38,7 @@ async function shouldBehaveLikeReclaimableChild() { addrs = await ethers.getSigners(); tokenOwner = addrs[1]; - parentId = await mintFromMock(this.parent, await tokenOwner.getAddress()); + parentId = await mintFromMock(this.parent, tokenOwner.address); childId = await nestMintFromMock(this.child, await this.parent.getAddress(), parentId); }); @@ -82,12 +82,8 @@ async function shouldBehaveLikeReclaimableChild() { await this.parent .connect(tokenOwner) .reclaimChild(parentId, await this.child.getAddress(), childId); - expect(await this.child.ownerOf(childId)).to.eql(await tokenOwner.getAddress()); - expect(await this.child.directOwnerOf(childId)).to.eql([ - await tokenOwner.getAddress(), - 0n, - false, - ]); + expect(await this.child.ownerOf(childId)).to.eql(tokenOwner.address); + expect(await this.child.directOwnerOf(childId)).to.eql([tokenOwner.address, 0n, false]); }); it('cannot reclaim active child', async function () { @@ -132,7 +128,7 @@ async function shouldBehaveLikeReclaimableChild() { false, '0x', ); - const otherParentId = await mintFromMock(this.parent, await tokenOwner.getAddress()); + const otherParentId = await mintFromMock(this.parent, tokenOwner.address); await expect( this.parent @@ -182,12 +178,8 @@ async function shouldBehaveLikeReclaimableChild() { await this.parent .connect(tokenOwner) .reclaimChild(parentId, await this.child.getAddress(), childId); - expect(await this.child.ownerOf(childId)).to.eql(await tokenOwner.getAddress()); - expect(await this.child.directOwnerOf(childId)).to.eql([ - await tokenOwner.getAddress(), - 0n, - false, - ]); + expect(await this.child.ownerOf(childId)).to.eql(tokenOwner.address); + expect(await this.child.directOwnerOf(childId)).to.eql([tokenOwner.address, 0n, false]); }); it('cannot reclaim pending child', async function () { @@ -232,7 +224,7 @@ async function shouldBehaveLikeReclaimableChild() { true, '0x', ); - const otherParentId = await mintFromMock(this.parent, await tokenOwner.getAddress()); + const otherParentId = await mintFromMock(this.parent, tokenOwner.address); await expect( this.parent diff --git a/test/extensions/revealable.ts b/test/extensions/revealable.ts index 74c2f3ea..4be20077 100644 --- a/test/extensions/revealable.ts +++ b/test/extensions/revealable.ts @@ -27,9 +27,9 @@ async function revealableFixture(): Promise<{ await revealable.setRevealer(await revealer.getAddress()); - await revealable.mint(await user1.getAddress(), 1); - await revealable.mint(await user1.getAddress(), 2); - await revealable.mint(await user2.getAddress(), 3); + await revealable.mint(user1.address, 1); + await revealable.mint(user1.address, 2); + await revealable.mint(user2.address, 3); await revealable.addAssetEntry(UNREVEALED_ASSET_ID, 'ipfs://unrevealed'); await revealable.addAssetEntry(REVEALED_ASSET_ID, 'ipfs://revealed'); diff --git a/test/extensions/soulbound.ts b/test/extensions/soulbound.ts index afba266e..4f8c17d6 100644 --- a/test/extensions/soulbound.ts +++ b/test/extensions/soulbound.ts @@ -2,7 +2,13 @@ import { ethers } from 'hardhat'; import { expect } from 'chai'; import { loadFixture, mine } from '@nomicfoundation/hardhat-network-helpers'; import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; -import { bn, mintFromMock, nestMintFromMock } from '../utils'; +import { + bn, + mintFromMock, + nestMintFromMock, + GenericMintableMock, + GenericNestMintableMock, +} from '../utils'; import { IERC165, IERC6454, IOtherInterface } from '../interfaces'; import { RMRKSoulboundAfterBlockNumberMock, @@ -18,7 +24,6 @@ type GenericSoulboundNestable = | RMRKSoulboundNestableMock | RMRKSoulboundNestableMultiAssetMock | RMRKSoulboundEquippableMock; -type GenericSoulbound = GenericSoulboundNestable | RMRKSoulboundMultiAssetMock; // --------------- FIXTURES ----------------------- @@ -108,7 +113,9 @@ describe('RMRKSoulbound variants', async function () { beforeEach(async function () { const factory = await ethers.getContractFactory('RMRKSoulboundAfterBlockNumberMock'); - initBlock = (await ethers.provider.getBlock('latest')).number; + const block = await ethers.provider.getBlock('latest'); + if (block === null) throw new Error('Block is null'); + initBlock = block.number; token = await factory.deploy(initBlock + blocksToTransfer); await token.waitForDeployment(); }); @@ -122,16 +129,16 @@ describe('RMRKSoulbound variants', async function () { }); it('can transfer before max block', async function () { - await token.mint(await owner.getAddress(), 1); - await token.transferFrom(await owner.getAddress(), await otherOwner.getAddress(), 1); - expect(await token.ownerOf(1)).to.equal(await otherOwner.getAddress()); + await token.mint(owner.address, 1); + await token.transferFrom(owner.address, otherOwner.address, 1); + expect(await token.ownerOf(1)).to.equal(otherOwner.address); }); it('cannot transfer after max block', async function () { - await token.mint(await owner.getAddress(), 1); + await token.mint(owner.address, 1); await mine(blocksToTransfer + 1); await expect( - token.transferFrom(await owner.getAddress(), await otherOwner.getAddress(), 1), + token.transferFrom(owner.address, otherOwner.address, 1), ).to.be.revertedWithCustomError(token, 'RMRKCannotTransferSoulbound'); }); }); @@ -155,20 +162,16 @@ describe('RMRKSoulbound variants', async function () { }); it('can transfer token only 2 times', async function () { - await token.mint(await owner.getAddress(), 1); - await token.transferFrom(await owner.getAddress(), await otherOwner.getAddress(), 1); - await expect( - token - .connect(otherOwner) - .transferFrom(await otherOwner.getAddress(), await owner.getAddress(), 1), - ) + await token.mint(owner.address, 1); + await token.transferFrom(owner.address, otherOwner.address, 1); + await expect(token.connect(otherOwner).transferFrom(otherOwner.address, owner.address, 1)) .to.emit(token, 'Soulbound') .withArgs(1); expect(await token.getTransfersPerToken(1)).to.equal(bn(2)); expect(await token.getMaxNumberOfTransfers()).to.equal(bn(2)); await expect( - token.transferFrom(await owner.getAddress(), await otherOwner.getAddress(), 1), + token.transferFrom(owner.address, otherOwner.address, 1), ).to.be.revertedWithCustomError(token, 'RMRKCannotTransferSoulbound'); }); }); @@ -192,16 +195,16 @@ describe('RMRKSoulbound variants', async function () { it('can transfer token if not soulbound', async function () { await expect(token.setSoulbound(1, false)).to.emit(token, 'Soulbound').withArgs(1, false); - await token.mint(await owner.getAddress(), 1); - await token.transferFrom(await owner.getAddress(), await otherOwner.getAddress(), 1); - expect(await token.ownerOf(1)).to.equal(await otherOwner.getAddress()); + await token.mint(owner.address, 1); + await token.transferFrom(owner.address, otherOwner.address, 1); + expect(await token.ownerOf(1)).to.equal(otherOwner.address); }); it('cannot transfer token if soulbound', async function () { await expect(token.setSoulbound(1, true)).to.emit(token, 'Soulbound').withArgs(1, true); - await token.mint(await owner.getAddress(), 1); + await token.mint(owner.address, 1); await expect( - token.transferFrom(await owner.getAddress(), await otherOwner.getAddress(), 1), + token.transferFrom(owner.address, otherOwner.address, 1), ).to.be.revertedWithCustomError(token, 'RMRKCannotTransferSoulbound'); }); @@ -215,7 +218,7 @@ describe('RMRKSoulbound variants', async function () { }); async function shouldBehaveLikeSoulboundBasic() { - let soulbound: GenericSoulbound; + let soulbound: GenericMintableMock; let owner: SignerWithAddress; let otherOwner: SignerWithAddress; let tokenId: bigint; @@ -226,7 +229,7 @@ async function shouldBehaveLikeSoulboundBasic() { otherOwner = signers[1]; soulbound = this.token; - tokenId = await mintFromMock(soulbound, await owner.getAddress()); + tokenId = await mintFromMock(soulbound, owner.address); }); it('can support IERC165', async function () { @@ -243,7 +246,7 @@ async function shouldBehaveLikeSoulboundBasic() { it('cannot transfer', async function () { expect( - soulbound.connect(owner).transfer(await otherOwner.getAddress(), tokenId), + soulbound.connect(owner).transfer(otherOwner.address, tokenId), ).to.be.revertedWithCustomError(soulbound, 'RMRKCannotTransferSoulbound'); }); @@ -257,7 +260,7 @@ async function shouldBehaveLikeSoulboundBasic() { } async function shouldBehaveLikeSoulboundNestable() { - let soulbound: GenericSoulboundNestable; + let soulbound: GenericNestMintableMock; let owner: SignerWithAddress; let tokenId: bigint; @@ -266,11 +269,11 @@ async function shouldBehaveLikeSoulboundNestable() { owner = signers[0]; soulbound = this.token; - tokenId = await mintFromMock(soulbound, await owner.getAddress()); + tokenId = await mintFromMock(soulbound, owner.address); }); it('cannot nest transfer', async function () { - const otherTokenId = await mintFromMock(soulbound, await owner.getAddress()); + const otherTokenId = await mintFromMock(soulbound, owner.address); expect( soulbound.connect(owner).nestTransfer(await soulbound.getAddress(), tokenId, otherTokenId), ).to.be.revertedWithCustomError(soulbound, 'RMRKCannotTransferSoulbound'); @@ -284,7 +287,7 @@ async function shouldBehaveLikeSoulboundNestable() { .connect(owner) .transferChild( tokenId, - await owner.getAddress(), + owner.address, 0, 0, await soulbound.getAddress(), diff --git a/test/extensions/tokenAttributesRepository.ts b/test/extensions/tokenAttributesRepository.ts index a9fc3c67..7af82d34 100644 --- a/test/extensions/tokenAttributesRepository.ts +++ b/test/extensions/tokenAttributesRepository.ts @@ -99,16 +99,11 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'owner', - await tokenOwner.getAddress(), + tokenOwner.address, ), ) .to.emit(tokenAttributes, 'AddressAttributeSet') - .withArgs( - await ownedCollection.getAddress(), - tokenId, - 'owner', - await tokenOwner.getAddress(), - ); + .withArgs(await ownedCollection.getAddress(), tokenId, 'owner', tokenOwner.address); expect( await tokenAttributes.setUintAttribute( await ownedCollection.getAddress(), @@ -183,7 +178,7 @@ describe('RMRKTokenAttributesRepository', async function () { tokenId, 'owner', ), - ).to.eql(await tokenOwner.getAddress()); + ).to.eql(tokenOwner.address); expect( await tokenAttributes.getUintAttribute(await ownedCollection.getAddress(), tokenId, 'atk'), ).to.eql(100n); @@ -235,7 +230,7 @@ describe('RMRKTokenAttributesRepository', async function () { { key: 'bool2', value: false }, ], [ - { key: 'address1', value: await tokenOwner.getAddress() }, + { key: 'address1', value: tokenOwner.address }, { key: 'address2', value: await collectionOwner.getAddress() }, ], [ @@ -257,12 +252,7 @@ describe('RMRKTokenAttributesRepository', async function () { .to.emit(tokenAttributes, 'BoolAttributeUpdated') .withArgs(await ownedCollection.getAddress(), tokenId, 'bool2', false) .to.emit(tokenAttributes, 'AddressAttributeUpdated') - .withArgs( - await ownedCollection.getAddress(), - tokenId, - 'address1', - await tokenOwner.getAddress(), - ) + .withArgs(await ownedCollection.getAddress(), tokenId, 'address1', tokenOwner.address) .to.emit(tokenAttributes, 'AddressAttributeUpdated') .withArgs( await ownedCollection.getAddress(), @@ -294,7 +284,7 @@ describe('RMRKTokenAttributesRepository', async function () { ], [ { key: 'address1', value: await collectionOwner.getAddress() }, - { key: 'address2', value: await tokenOwner.getAddress() }, + { key: 'address2', value: tokenOwner.address }, ], [ { key: 'bytes1', value: '0x5678' }, @@ -319,7 +309,7 @@ describe('RMRKTokenAttributesRepository', async function () { { key: 'bool2', value: false }, ], [ - { key: 'address1', value: await tokenOwner.getAddress() }, + { key: 'address1', value: tokenOwner.address }, { key: 'address2', value: await collectionOwner.getAddress() }, ], [ @@ -341,12 +331,7 @@ describe('RMRKTokenAttributesRepository', async function () { .to.emit(tokenAttributes, 'BoolAttributeUpdated') .withArgs(await ownedCollection.getAddress(), tokenId, 'bool2', false) .to.emit(tokenAttributes, 'AddressAttributeUpdated') - .withArgs( - await ownedCollection.getAddress(), - tokenId, - 'address1', - await tokenOwner.getAddress(), - ) + .withArgs(await ownedCollection.getAddress(), tokenId, 'address1', tokenOwner.address) .to.emit(tokenAttributes, 'AddressAttributeUpdated') .withArgs( await ownedCollection.getAddress(), @@ -375,7 +360,7 @@ describe('RMRKTokenAttributesRepository', async function () { ], [ { key: 'address1', value: await collectionOwner.getAddress() }, - { key: 'address2', value: await tokenOwner.getAddress() }, + { key: 'address2', value: tokenOwner.address }, ], [], ); @@ -394,7 +379,7 @@ describe('RMRKTokenAttributesRepository', async function () { { key: 'bool2', value: false }, ], [ - { key: 'address1', value: await tokenOwner.getAddress() }, + { key: 'address1', value: tokenOwner.address }, { key: 'address2', value: await collectionOwner.getAddress() }, ], [ @@ -412,12 +397,7 @@ describe('RMRKTokenAttributesRepository', async function () { .to.emit(tokenAttributes, 'BoolAttributeUpdated') .withArgs(await ownedCollection.getAddress(), tokenId, 'bool2', false) .to.emit(tokenAttributes, 'AddressAttributeUpdated') - .withArgs( - await ownedCollection.getAddress(), - tokenId, - 'address1', - await tokenOwner.getAddress(), - ) + .withArgs(await ownedCollection.getAddress(), tokenId, 'address1', tokenOwner.address) .to.emit(tokenAttributes, 'AddressAttributeUpdated') .withArgs( await ownedCollection.getAddress(), @@ -468,7 +448,7 @@ describe('RMRKTokenAttributesRepository', async function () { { key: 'bool2', value: false }, ], [ - { key: 'address1', value: await tokenOwner.getAddress() }, + { key: 'address1', value: tokenOwner.address }, { key: 'address2', value: await collectionOwner.getAddress() }, ], [ @@ -490,12 +470,7 @@ describe('RMRKTokenAttributesRepository', async function () { .to.emit(tokenAttributes, 'BoolAttributeUpdated') .withArgs(await ownedCollection.getAddress(), tokenId, 'bool2', false) .to.emit(tokenAttributes, 'AddressAttributeUpdated') - .withArgs( - await ownedCollection.getAddress(), - tokenId, - 'address1', - await tokenOwner.getAddress(), - ) + .withArgs(await ownedCollection.getAddress(), tokenId, 'address1', tokenOwner.address) .to.emit(tokenAttributes, 'AddressAttributeUpdated') .withArgs( await ownedCollection.getAddress(), @@ -526,7 +501,7 @@ describe('RMRKTokenAttributesRepository', async function () { { key: 'bool2', value: false }, ], [ - { key: 'address1', value: await tokenOwner.getAddress() }, + { key: 'address1', value: tokenOwner.address }, { key: 'address2', value: await collectionOwner.getAddress() }, ], [ @@ -559,7 +534,7 @@ describe('RMRKTokenAttributesRepository', async function () { ['bool2', false], ], [ - ['address1', await tokenOwner.getAddress()], + ['address1', tokenOwner.address], ['address2', await collectionOwner.getAddress()], ], [ @@ -674,17 +649,12 @@ describe('RMRKTokenAttributesRepository', async function () { it('can set multiple address attributes at the same time', async function () { await expect( tokenAttributes.setAddressAttributes(await ownedCollection.getAddress(), tokenId, [ - { key: 'address1', value: await tokenOwner.getAddress() }, + { key: 'address1', value: tokenOwner.address }, { key: 'address2', value: await collectionOwner.getAddress() }, ]), ) .to.emit(tokenAttributes, 'AddressAttributeUpdated') - .withArgs( - await ownedCollection.getAddress(), - tokenId, - 'address1', - await tokenOwner.getAddress(), - ) + .withArgs(await ownedCollection.getAddress(), tokenId, 'address1', tokenOwner.address) .to.emit(tokenAttributes, 'AddressAttributeUpdated') .withArgs( await ownedCollection.getAddress(), @@ -708,7 +678,7 @@ describe('RMRKTokenAttributesRepository', async function () { [], [], [ - ['address1', await tokenOwner.getAddress()], + ['address1', tokenOwner.address], ['address2', await collectionOwner.getAddress()], ], [], @@ -788,7 +758,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ); await tokenAttributes.setUintAttribute( await ownedCollection.getAddress(), @@ -811,7 +781,7 @@ describe('RMRKTokenAttributesRepository', async function () { ).to.eql(true); expect( await tokenAttributes.getAddressAttribute(await ownedCollection.getAddress(), tokenId, 'X'), - ).to.eql(await tokenOwner.getAddress()); + ).to.eql(tokenOwner.address); expect( await tokenAttributes.getUintAttribute(await ownedCollection.getAddress(), tokenId, 'X'), ).to.eql(100n); @@ -874,7 +844,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotCollectionIssuer'); }); @@ -943,7 +913,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), 'X', AccessType.IssuerOrCollaborator, - await tokenOwner.getAddress(), + tokenOwner.address, ), ) .to.emit(tokenAttributes, 'AccessControlUpdate') @@ -960,25 +930,17 @@ describe('RMRKTokenAttributesRepository', async function () { expect( await tokenAttributes .connect(collectionOwner) - .manageCollaborators( - await ownedCollection.getAddress(), - [await tokenOwner.getAddress()], - [true], - ), + .manageCollaborators(await ownedCollection.getAddress(), [tokenOwner.address], [true]), ) .to.emit(tokenAttributes, 'CollaboratorUpdate') - .withArgs(await ownedCollection.getAddress(), [await tokenOwner.getAddress()], [true]); + .withArgs(await ownedCollection.getAddress(), [tokenOwner.address], [true]); }); it('should not allow to manage collaborators of an unregistered collection', async function () { await expect( tokenAttributes .connect(collectionOwner) - .manageCollaborators( - await ownedCollection.getAddress(), - [await tokenOwner.getAddress()], - [true], - ), + .manageCollaborators(await ownedCollection.getAddress(), [tokenOwner.address], [true]), ).to.be.revertedWithCustomError(tokenAttributes, 'CollectionNotRegistered'); }); @@ -992,11 +954,7 @@ describe('RMRKTokenAttributesRepository', async function () { await expect( tokenAttributes .connect(tokenOwner) - .manageCollaborators( - await ownedCollection.getAddress(), - [await tokenOwner.getAddress()], - [true], - ), + .manageCollaborators(await ownedCollection.getAddress(), [tokenOwner.address], [true]), ).to.be.revertedWithCustomError(tokenAttributes, 'NotCollectionIssuer'); }); @@ -1012,7 +970,7 @@ describe('RMRKTokenAttributesRepository', async function () { .connect(collectionOwner) .manageCollaborators( await ownedCollection.getAddress(), - [await tokenOwner.getAddress(), await collectionOwner.getAddress()], + [tokenOwner.address, await collectionOwner.getAddress()], [true], ), ).to.be.revertedWithCustomError(tokenAttributes, 'CollaboratorArraysNotEqualLength'); @@ -1026,7 +984,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), 'X', AccessType.IssuerOrCollaborator, - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'CollectionNotRegistered'); }); @@ -1045,7 +1003,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), 'X', AccessType.IssuerOrCollaborator, - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotCollectionIssuer'); }); @@ -1064,7 +1022,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), 'X', AccessType.IssuerOrCollaborator, - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotCollectionIssuer'); }); @@ -1078,22 +1036,18 @@ describe('RMRKTokenAttributesRepository', async function () { expect( await tokenAttributes.isCollaborator( - await tokenOwner.getAddress(), + tokenOwner.address, await ownedCollection.getAddress(), ), ).to.be.false; await tokenAttributes .connect(collectionOwner) - .manageCollaborators( - await ownedCollection.getAddress(), - [await tokenOwner.getAddress()], - [true], - ); + .manageCollaborators(await ownedCollection.getAddress(), [tokenOwner.address], [true]); expect( await tokenAttributes.isCollaborator( - await tokenOwner.getAddress(), + tokenOwner.address, await ownedCollection.getAddress(), ), ).to.be.true; @@ -1108,7 +1062,7 @@ describe('RMRKTokenAttributesRepository', async function () { expect( await tokenAttributes.isSpecificAddress( - await tokenOwner.getAddress(), + tokenOwner.address, await ownedCollection.getAddress(), 'X', ), @@ -1120,12 +1074,12 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), 'X', AccessType.IssuerOrCollaborator, - await tokenOwner.getAddress(), + tokenOwner.address, ); expect( await tokenAttributes.isSpecificAddress( - await tokenOwner.getAddress(), + tokenOwner.address, await ownedCollection.getAddress(), 'X', ), @@ -1157,7 +1111,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotCollectionIssuer'); @@ -1168,7 +1122,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotCollectionIssuer'); }); @@ -1193,20 +1147,11 @@ describe('RMRKTokenAttributesRepository', async function () { await tokenAttributes .connect(collectionOwner) - .manageCollaborators( - await ownedCollection.getAddress(), - [await tokenOwner.getAddress()], - [true], - ); + .manageCollaborators(await ownedCollection.getAddress(), [tokenOwner.address], [true]); await tokenAttributes .connect(tokenOwner) - .setAddressAttribute( - await ownedCollection.getAddress(), - tokenId, - 'X', - await tokenOwner.getAddress(), - ); + .setAddressAttribute(await ownedCollection.getAddress(), tokenId, 'X', tokenOwner.address); await expect( tokenAttributes @@ -1215,7 +1160,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotCollectionCollaborator'); }); @@ -1240,12 +1185,7 @@ describe('RMRKTokenAttributesRepository', async function () { await tokenAttributes .connect(collectionOwner) - .setAddressAttribute( - await ownedCollection.getAddress(), - tokenId, - 'X', - await tokenOwner.getAddress(), - ); + .setAddressAttribute(await ownedCollection.getAddress(), tokenId, 'X', tokenOwner.address); await expect( tokenAttributes @@ -1254,26 +1194,17 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotCollectionIssuerOrCollaborator'); await tokenAttributes .connect(collectionOwner) - .manageCollaborators( - await ownedCollection.getAddress(), - [await tokenOwner.getAddress()], - [true], - ); + .manageCollaborators(await ownedCollection.getAddress(), [tokenOwner.address], [true]); await tokenAttributes .connect(tokenOwner) - .setAddressAttribute( - await ownedCollection.getAddress(), - tokenId, - 'X', - await tokenOwner.getAddress(), - ); + .setAddressAttribute(await ownedCollection.getAddress(), tokenId, 'X', tokenOwner.address); }); it('should only allow issuer and collaborator to modify the parameters if only issuer and collaborator is allowed to modify them even when using the ownable', async function () { @@ -1296,12 +1227,7 @@ describe('RMRKTokenAttributesRepository', async function () { await tokenAttributes .connect(collectionOwner) - .setAddressAttribute( - await ownedCollection.getAddress(), - tokenId, - 'X', - await tokenOwner.getAddress(), - ); + .setAddressAttribute(await ownedCollection.getAddress(), tokenId, 'X', tokenOwner.address); await expect( tokenAttributes @@ -1310,7 +1236,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotCollectionIssuerOrCollaborator'); @@ -1324,12 +1250,7 @@ describe('RMRKTokenAttributesRepository', async function () { await tokenAttributes .connect(collaborator) - .setAddressAttribute( - await ownedCollection.getAddress(), - tokenId, - 'X', - await tokenOwner.getAddress(), - ); + .setAddressAttribute(await ownedCollection.getAddress(), tokenId, 'X', tokenOwner.address); }); it('should only allow token owner to modify the parameters if only token owner is allowed to modify them', async function () { @@ -1357,7 +1278,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotTokenOwner'); @@ -1368,18 +1289,13 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotTokenOwner'); await tokenAttributes .connect(tokenOwner) - .setAddressAttribute( - await ownedCollection.getAddress(), - tokenId, - 'X', - await tokenOwner.getAddress(), - ); + .setAddressAttribute(await ownedCollection.getAddress(), tokenId, 'X', tokenOwner.address); }); it('should only allow specific address to modify the parameters if only specific address is allowed to modify them', async function () { @@ -1407,7 +1323,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, ), ).to.be.revertedWithCustomError(tokenAttributes, 'NotSpecificAddress'); @@ -1417,17 +1333,12 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), 'X', AccessType.SpecificAddress, - await tokenOwner.getAddress(), + tokenOwner.address, ); await tokenAttributes .connect(tokenOwner) - .setAddressAttribute( - await ownedCollection.getAddress(), - tokenId, - 'X', - await tokenOwner.getAddress(), - ); + .setAddressAttribute(await ownedCollection.getAddress(), tokenId, 'X', tokenOwner.address); }); it('should allow to use presigned message to modify the parameters', async function () { @@ -1471,7 +1382,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, 9999999999n, ); @@ -1577,7 +1488,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, 9999999999n, addressV, addressR, @@ -1585,7 +1496,7 @@ describe('RMRKTokenAttributesRepository', async function () { ), ) .to.emit(tokenAttributes, 'AddressAttributeUpdated') - .withArgs(await ownedCollection.getAddress(), 1, 'X', await tokenOwner.getAddress()); + .withArgs(await ownedCollection.getAddress(), 1, 'X', tokenOwner.address); }); it('should not allow to use presigned message to modify the parameters if the deadline has elapsed', async function () { @@ -1631,7 +1542,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, 10n, ); @@ -1729,7 +1640,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, 10n, addressV, addressR, @@ -1779,7 +1690,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, 9999999999n, ); @@ -1877,7 +1788,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, 9999999999n, addressV, addressR, @@ -1919,7 +1830,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, 9999999999n, ); @@ -2017,7 +1928,7 @@ describe('RMRKTokenAttributesRepository', async function () { await ownedCollection.getAddress(), tokenId, 'X', - await tokenOwner.getAddress(), + tokenOwner.address, 9999999999n, addressV, addressR, diff --git a/test/extensions/tokenHolder.ts b/test/extensions/tokenHolder.ts index e74fc833..a64faa84 100644 --- a/test/extensions/tokenHolder.ts +++ b/test/extensions/tokenHolder.ts @@ -58,10 +58,10 @@ describe('RMRKTokenHolder', async function () { describe('With minted tokens', async function () { beforeEach(async function () { - await tokenHolder.mint(await holder.getAddress(), tokenHolderId); - await tokenHolder.mint(await otherHolder.getAddress(), otherTokenHolderId); - await erc20A.mint(await holder.getAddress(), mockValue); - await erc20A.mint(await otherHolder.getAddress(), mockValue); + await tokenHolder.mint(holder.address, tokenHolderId); + await tokenHolder.mint(otherHolder.address, otherTokenHolderId); + await erc20A.mint(holder.address, mockValue); + await erc20A.mint(otherHolder.address, mockValue); }); it('can receive ERC-20 tokens', async function () { @@ -75,7 +75,7 @@ describe('RMRKTokenHolder', async function () { ), ) .to.emit(tokenHolder, 'ReceivedERC20') - .withArgs(await erc20A.getAddress(), tokenHolderId, await holder.getAddress(), mockValue); + .withArgs(await erc20A.getAddress(), tokenHolderId, holder.address, mockValue); expect(await erc20A.balanceOf(await tokenHolder.getAddress())).to.equal(mockValue); }); @@ -91,18 +91,13 @@ describe('RMRKTokenHolder', async function () { tokenHolder.transferHeldERC20FromToken( await erc20A.getAddress(), tokenHolderId, - await holder.getAddress(), + holder.address, mockValue / 2n, '0x00', ), ) .to.emit(tokenHolder, 'TransferredERC20') - .withArgs( - await erc20A.getAddress(), - tokenHolderId, - await holder.getAddress(), - mockValue / 2n, - ); + .withArgs(await erc20A.getAddress(), tokenHolderId, holder.address, mockValue / 2n); expect(await erc20A.balanceOf(await tokenHolder.getAddress())).to.equal(mockValue / 2n); expect(await tokenHolder.erc20TransferOutNonce(tokenHolderId)).to.equal(1); }); @@ -116,7 +111,7 @@ describe('RMRKTokenHolder', async function () { tokenHolder.transferHeldERC20FromToken( await erc20A.getAddress(), tokenId, - await holder.getAddress(), + holder.address, 0, '0x00', ), @@ -140,7 +135,7 @@ describe('RMRKTokenHolder', async function () { tokenHolder.transferHeldERC20FromToken( ethers.ZeroAddress, tokenId, - await holder.getAddress(), + holder.address, 1, '0x00', ), @@ -170,7 +165,7 @@ describe('RMRKTokenHolder', async function () { tokenHolder.transferHeldERC20FromToken( await erc20A.getAddress(), tokenId, - await holder.getAddress(), + holder.address, mockValue, // The token only owns half of this value '0x00', ), @@ -192,7 +187,7 @@ describe('RMRKTokenHolder', async function () { .transferHeldERC20FromToken( await erc20A.getAddress(), tokenHolderId, - await otherHolder.getAddress(), + otherHolder.address, mockValue, '0x00', ), @@ -200,7 +195,7 @@ describe('RMRKTokenHolder', async function () { }); it('can manage multiple ERC20s', async function () { - await erc20B.mint(await holder.getAddress(), mockValue); + await erc20B.mint(holder.address, mockValue); await erc20A.approve(await tokenHolder.getAddress(), mockValue); await erc20B.approve(await tokenHolder.getAddress(), mockValue); diff --git a/test/extensions/typedMultiasset.ts b/test/extensions/typedMultiasset.ts index c1293854..862d6546 100644 --- a/test/extensions/typedMultiasset.ts +++ b/test/extensions/typedMultiasset.ts @@ -69,7 +69,7 @@ describe('RMRKTypedMultiAssetMock', async function () { const signers = await ethers.getSigners(); owner = signers[0]; - tokenId = await mintFromMock(typedMultiAsset, await owner.getAddress()); + tokenId = await mintFromMock(typedMultiAsset, owner.address); }); it('can get top asset by priority and type', async function () { @@ -164,7 +164,7 @@ async function shouldBehaveLikeTypedMultiAsset( const signers = await ethers.getSigners(); owner = signers[0]; - tokenId = await mint(this.assets, await owner.getAddress()); + tokenId = await mint(this.assets, owner.address); }); it('can add typed assets', async function () { @@ -192,7 +192,7 @@ async function shouldBehaveLikeTypedEquippable( const signers = await ethers.getSigners(); owner = signers[0]; - tokenId = await mint(this.nestable, await owner.getAddress()); + tokenId = await mint(this.nestable, owner.address); }); it('can add typed assets', async function () { diff --git a/test/implementations/base.ts b/test/implementations/base.ts index 04c8d1ea..73c8073f 100644 --- a/test/implementations/base.ts +++ b/test/implementations/base.ts @@ -21,9 +21,8 @@ describe('Implementation Base', async () => { } beforeEach(async function () { - const { mintingUtilsContract, signersOwner, signersAddrs } = await loadFixture( - deployMintingUtilsFixture, - ); + const { mintingUtilsContract, signersOwner, signersAddrs } = + await loadFixture(deployMintingUtilsFixture); implementation_base = mintingUtilsContract; owner = signersOwner; addrs = signersAddrs; @@ -37,15 +36,15 @@ describe('Implementation Base', async () => { it('can transfer ownership', async function () { const newOwner = addrs[1]; - await implementation_base.connect(owner).transferOwnership(await newOwner.getAddress()); - expect(await implementation_base.owner()).to.eql(await newOwner.getAddress()); + await implementation_base.connect(owner).transferOwnership(newOwner.address); + expect(await implementation_base.owner()).to.eql(newOwner.address); }); it('emits OwnershipTransferred event when transferring ownership', async function () { const newOwner = addrs[1]; - await expect(implementation_base.connect(owner).transferOwnership(await newOwner.getAddress())) + await expect(implementation_base.connect(owner).transferOwnership(newOwner.address)) .to.emit(implementation_base, 'OwnershipTransferred') - .withArgs(await owner.getAddress(), await newOwner.getAddress()); + .withArgs(owner.address, newOwner.address); }); it('cannot transfer ownership to address 0', async function () { @@ -61,39 +60,29 @@ describe('Implementation Base', async () => { it('can add and revoke contributor', async function () { const contributor = addrs[1]; - await implementation_base - .connect(owner) - .manageContributor(await contributor.getAddress(), true); - expect( - await implementation_base.connect(owner).isContributor(await contributor.getAddress()), - ).to.eql(true); - await implementation_base - .connect(owner) - .manageContributor(await contributor.getAddress(), false); - expect( - await implementation_base.connect(owner).isContributor(await contributor.getAddress()), - ).to.eql(false); + await implementation_base.connect(owner).manageContributor(contributor.address, true); + expect(await implementation_base.connect(owner).isContributor(contributor.address)).to.eql( + true, + ); + await implementation_base.connect(owner).manageContributor(contributor.address, false); + expect(await implementation_base.connect(owner).isContributor(contributor.address)).to.eql( + false, + ); }); it('emits ContributorUpdate when adding a contributor', async function () { const contributor = addrs[1]; - await expect( - implementation_base.connect(owner).manageContributor(await contributor.getAddress(), true), - ) + await expect(implementation_base.connect(owner).manageContributor(contributor.address, true)) .to.emit(implementation_base, 'ContributorUpdate') - .withArgs(await contributor.getAddress(), true); + .withArgs(contributor.address, true); }); it('emits ContributorUpdate when removing a contributor', async function () { const contributor = addrs[1]; - await implementation_base - .connect(owner) - .manageContributor(await contributor.getAddress(), true); - await expect( - implementation_base.connect(owner).manageContributor(await contributor.getAddress(), false), - ) + await implementation_base.connect(owner).manageContributor(contributor.address, true); + await expect(implementation_base.connect(owner).manageContributor(contributor.address, false)) .to.emit(implementation_base, 'ContributorUpdate') - .withArgs(await contributor.getAddress(), false); + .withArgs(contributor.address, false); }); it('cannot add zero address as contributor', async function () { diff --git a/test/implementations/catalog.ts b/test/implementations/catalog.ts index 7d5b626e..51bd68d4 100644 --- a/test/implementations/catalog.ts +++ b/test/implementations/catalog.ts @@ -45,11 +45,11 @@ describe('CatalogImpl', async () => { ).to.be.revertedWithCustomError(catalog, 'RMRKNotOwnerOrContributor'); await expect( - catalog.connect(other).addEquippableAddresses(partId, [await other.getAddress()]), + catalog.connect(other).addEquippableAddresses(partId, [other.address]), ).to.be.revertedWithCustomError(catalog, 'RMRKNotOwnerOrContributor'); await expect( - catalog.connect(other).setEquippableAddresses(partId, [await other.getAddress()]), + catalog.connect(other).setEquippableAddresses(partId, [other.address]), ).to.be.revertedWithCustomError(catalog, 'RMRKNotOwnerOrContributor'); await expect(catalog.connect(other).setEquippableToAll(partId)).to.be.revertedWithCustomError( @@ -79,7 +79,7 @@ describe('CatalogImpl', async () => { }); it('can add part if contributor', async function () { - await catalog.connect(owner).manageContributor(await contributor.getAddress(), true); + await catalog.connect(owner).manageContributor(contributor.address, true); await catalog.connect(contributor).addPart({ partId: partId, part: partData }); expect(await catalog.getPart(partId)).to.eql([fixedType, 0n, [], 'ipfs://metadata']); }); diff --git a/test/implementations/generalBehavior.ts b/test/implementations/generalBehavior.ts index 54294b9c..06dbe3a8 100644 --- a/test/implementations/generalBehavior.ts +++ b/test/implementations/generalBehavior.ts @@ -116,7 +116,7 @@ describe('RMRKImplementations', async () => { const ERC20Factory = await ethers.getContractFactory('contracts/mocks/ERC20Mock.sol:ERC20Mock'); const rmrkERC20 = await ERC20Factory.deploy(); - await rmrkERC20.mint(await owner.getAddress(), ethers.parseEther('1000000')); + await rmrkERC20.mint(owner.address, ethers.parseEther('1000000')); // Pre Mint const multiAssetPreMintImplFactory = await ethers.getContractFactory('RMRKMultiAssetPreMint'); @@ -699,7 +699,7 @@ async function testMultiAssetBehavior(mintingType: MintingType) { }); it('cannot add asset to token if not owner or contributor', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); await contract.connect(owner).addAssetEntry('metadata'); const assetId = await contract.totalAssets(); const tokenId = await contract.totalSupply(); @@ -711,7 +711,7 @@ async function testMultiAssetBehavior(mintingType: MintingType) { describe('Auto Accept Behavior', async function () { it('auto accepts the first asset', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); await contract.addAssetEntry('metadata'); await contract.connect(owner).addAssetToToken(1, 1, 0); @@ -719,7 +719,7 @@ async function testMultiAssetBehavior(mintingType: MintingType) { }); it('auto accepts the other assets if sender is the holder', async function () { - await mint(await owner.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(owner.address, contract, owner, rmrkERC20, mintingType); await contract.addAssetEntry('metadata'); await contract.addAssetEntry('metadata2'); await contract.connect(owner).addAssetToToken(1, 1, 0); @@ -728,7 +728,7 @@ async function testMultiAssetBehavior(mintingType: MintingType) { }); it('does not auto accept the second asset', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); await contract.addAssetEntry('metadata'); await contract.addAssetEntry('metadata'); await contract.connect(owner).addAssetToToken(1, 1, 0); @@ -754,7 +754,7 @@ async function testEquippableBehavior(mintingType: MintingType) { describe('Equippable Behavior', async function () { it('can add equippable assets', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); const equippableGroupId = 1n; const catalogAddress = await rmrkERC20.getAddress(); // Could be any address const metadataURI = 'ipfs://asset-metadata'; @@ -833,27 +833,27 @@ async function testGeneralBehavior(mintingType: MintingType) { describe('General Behavior', async function () { it('can update royalties recepient if owner or owner', async function () { - await contract.connect(owner).updateRoyaltyRecipient(await holder.getAddress()); - expect(await contract.getRoyaltyRecipient()).to.eql(await holder.getAddress()); + await contract.connect(owner).updateRoyaltyRecipient(holder.address); + expect(await contract.getRoyaltyRecipient()).to.eql(holder.address); }); it('cannot update royalties recepient if owner or owner', async function () { await expect( - contract.connect(holder).updateRoyaltyRecipient(await holder.getAddress()), + contract.connect(holder).updateRoyaltyRecipient(holder.address), ).to.be.revertedWithCustomError(contract, 'RMRKNotOwner'); }); it('reduces total supply on burn and id not reduced', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); await (contract).connect(holder)['burn(uint256)'](1); expect(await contract.totalSupply()).to.eql(0n); - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); - expect(await contract.ownerOf(2)).to.eql(await holder.getAddress()); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); + expect(await contract.ownerOf(2)).to.eql(holder.address); }); it('cannot burn if not token owner', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); const expectedError = (await contract.supportsInterface(IERC7401)) ? 'RMRKNotApprovedOrDirectOwner' : 'ERC721NotApprovedOrOwner'; @@ -867,24 +867,24 @@ async function testGeneralBehavior(mintingType: MintingType) { await expect( (contract) .connect(owner) - .mint(await holder.getAddress(), 0, 'ipfs://tokenURI'), + .mint(holder.address, 0, 'ipfs://tokenURI'), ).to.be.revertedWithCustomError(contract, 'RMRKMintZero'); } else if (mintingType == MintingType.RMRKLazyMintNativeToken) { await expect( (contract) .connect(owner) - .mint(await holder.getAddress(), 0, { value: pricePerMint }), + .mint(holder.address, 0, { value: pricePerMint }), ).to.be.revertedWithCustomError(contract, 'RMRKMintZero'); } else if (mintingType == MintingType.RMRKLazyMintERC20) { await rmrkERC20.connect(owner).approve(await contract.getAddress(), pricePerMint); await expect( - (contract).connect(owner).mint(await holder.getAddress(), 0), + (contract).connect(owner).mint(holder.address, 0), ).to.be.revertedWithCustomError(contract, 'RMRKMintZero'); } }); it('has expected tokenURI', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); if (mintingType == MintingType.RMRKPreMint) { expect(await (contract).tokenURI(1)).to.eql('ipfs://tokenURI'); } else { @@ -902,25 +902,21 @@ async function testGeneralBehavior(mintingType: MintingType) { }); it('can withdraw raised', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); if (mintingType == MintingType.RMRKLazyMintNativeToken) { const balanceBefore = await ethers.provider.getBalance(holder.address); await (contract) .connect(owner) - .withdraw(await holder.getAddress(), pricePerMint * 2n); + .withdraw(holder.address, pricePerMint * 2n); const balanceAfter = await ethers.provider.getBalance(holder.address); expect(balanceAfter).to.eql(balanceBefore + pricePerMint * 2n); } else if (mintingType == MintingType.RMRKLazyMintERC20) { - const balanceBefore = await rmrkERC20.balanceOf(await holder.getAddress()); + const balanceBefore = await rmrkERC20.balanceOf(holder.address); await (contract) .connect(owner) - .withdrawRaisedERC20( - await rmrkERC20.getAddress(), - await holder.getAddress(), - pricePerMint * 2n, - ); - const balanceAfter = await rmrkERC20.balanceOf(await holder.getAddress()); + .withdrawRaisedERC20(await rmrkERC20.getAddress(), holder.address, pricePerMint * 2n); + const balanceAfter = await rmrkERC20.balanceOf(holder.address); expect(balanceAfter).to.eql(balanceBefore + pricePerMint * 2n); } else { // premint collects nothing @@ -928,22 +924,18 @@ async function testGeneralBehavior(mintingType: MintingType) { }); it('cannot withdraw raised if not owner', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); if (mintingType == MintingType.RMRKLazyMintNativeToken) { await expect( (contract) .connect(holder) - .withdraw(await holder.getAddress(), pricePerMint), + .withdraw(holder.address, pricePerMint), ).to.be.revertedWithCustomError(contract, 'RMRKNotOwner'); } else if (mintingType == MintingType.RMRKLazyMintERC20) { await expect( (contract) .connect(holder) - .withdrawRaisedERC20( - await rmrkERC20.getAddress(), - await holder.getAddress(), - pricePerMint, - ), + .withdrawRaisedERC20(await rmrkERC20.getAddress(), holder.address, pricePerMint), ).to.be.revertedWithCustomError(contract, 'RMRKNotOwner'); } else { // premint collects nothing @@ -958,7 +950,7 @@ async function testGeneralBehavior(mintingType: MintingType) { }); it('can get royalty info for token', async function () { - await mint(await holder.getAddress(), contract, owner, rmrkERC20, mintingType); + await mint(holder.address, contract, owner, rmrkERC20, mintingType); expect(await contract.royaltyInfo(1, 100n)).to.eql([await royaltyRecipient.getAddress(), 5n]); }); }); diff --git a/test/implementations/premint.ts b/test/implementations/premint.ts index a3199200..5308de49 100644 --- a/test/implementations/premint.ts +++ b/test/implementations/premint.ts @@ -113,7 +113,7 @@ async function shouldControlValidPreMinting(): Promise { it('cannot mint if not owner', async function () { const notOwner = addrs[0]; await expect( - this.token.connect(notOwner).mint(await notOwner.getAddress(), 1, 'ipfs://tokenURI'), + this.token.connect(notOwner).mint(notOwner.address, 1, 'ipfs://tokenURI'), ).to.be.revertedWithCustomError(this.token, 'RMRKNotOwnerOrContributor'); }); @@ -137,7 +137,7 @@ async function shouldControlValidPreMinting(): Promise { }); it('reduces total supply on burn', async function () { - await this.token.connect(owner).mint(await owner.getAddress(), 1, 'ipfs://tokenURI'); + await this.token.connect(owner).mint(owner.address, 1, 'ipfs://tokenURI'); const tokenId = this.token.totalSupply(); expect(await tokenId).to.equal(1); await this.token.connect(owner)['burn(uint256)'](tokenId); @@ -145,11 +145,11 @@ async function shouldControlValidPreMinting(): Promise { }); it('reduces total supply on burn and does not reuse ID', async function () { - let tx = await this.token.connect(owner).mint(await owner.getAddress(), 1, 'ipfs://tokenURI'); + let tx = await this.token.connect(owner).mint(owner.address, 1, 'ipfs://tokenURI'); const tokenId = await getTokenIdFromTx(tx); await this.token.connect(owner)['burn(uint256)'](tokenId); - tx = await this.token.connect(owner).mint(await owner.getAddress(), 1, 'ipfs://tokenURI'); + tx = await this.token.connect(owner).mint(owner.address, 1, 'ipfs://tokenURI'); const newTokenId = await getTokenIdFromTx(tx); expect(newTokenId).to.equal(tokenId + 1n); diff --git a/test/minifiedEquippable.ts b/test/minifiedEquippable.ts index c0f27777..7e2826fd 100644 --- a/test/minifiedEquippable.ts +++ b/test/minifiedEquippable.ts @@ -129,7 +129,8 @@ async function parentChildFixture(): Promise<{ parent: GenericEquippable; child: GenericEquippable; }> { - return parentChildFixtureWithArgs('RMRKMinifiedEquippableMock', [], []); + const { parent, child } = await parentChildFixtureWithArgs('RMRKMinifiedEquippableMock', [], []); + return { parent: parent, child: child }; } // --------------- END FIXTURES ----------------------- @@ -149,9 +150,8 @@ describe('MinifiedEquippableMock with Fixed Parts', async () => { describe('MinifiedEquippableMock with Slot Parts', async () => { beforeEach(async function () { - const { catalog, soldier, weapon, weaponGem, background, view } = await loadFixture( - slotsFixture, - ); + const { catalog, soldier, weapon, weaponGem, background, view } = + await loadFixture(slotsFixture); this.catalog = catalog; this.soldier = soldier; diff --git a/test/multiasset.ts b/test/multiasset.ts index d280a6f6..e81a6644 100644 --- a/test/multiasset.ts +++ b/test/multiasset.ts @@ -68,7 +68,7 @@ describe('MultiAssetMock Other Behavior', async function () { }); it('cannot get metadata for non existing asset or non existing token', async function () { - const tokenId = await mintFromMock(token, await tokenOwner.getAddress()); + const tokenId = await mintFromMock(token, tokenOwner.address); const resId = await addAssetEntryFromMock(token, 'metadata'); await token.addAssetToToken(tokenId, resId, 0); await expect(token.getAssetMetadata(tokenId, resId + 1n)).to.be.revertedWithCustomError( @@ -116,7 +116,7 @@ describe('MultiAssetMock Other Behavior', async function () { it('can add asset to token', async function () { const resId = await addAssetEntryFromMock(token, 'data1'); const resId2 = await addAssetEntryFromMock(token, 'data2'); - const tokenId = await mintFromMock(token, await tokenOwner.getAddress()); + const tokenId = await mintFromMock(token, tokenOwner.address); await expect(token.addAssetToToken(tokenId, resId, 0)).to.emit(token, 'AssetAddedToTokens'); await expect(token.addAssetToToken(tokenId, resId2, 0)).to.emit(token, 'AssetAddedToTokens'); @@ -129,7 +129,7 @@ describe('MultiAssetMock Other Behavior', async function () { it('cannot add non existing asset to token', async function () { const resId = bn(9999); - const tokenId = await mintFromMock(token, await tokenOwner.getAddress()); + const tokenId = await mintFromMock(token, tokenOwner.address); await expect(token.addAssetToToken(tokenId, resId, 0)).to.be.revertedWithCustomError( token, @@ -139,17 +139,17 @@ describe('MultiAssetMock Other Behavior', async function () { it('can add asset to non existing token and it is pending when minted', async function () { const resId = await addAssetEntryFromMock(token); - const lastTokenId = await mintFromMock(token, await tokenOwner.getAddress()); + const lastTokenId = await mintFromMock(token, tokenOwner.address); const nextTokenId = lastTokenId + 1n; // not existing yet await token.addAssetToToken(nextTokenId, resId, 0); - await mintFromMock(token, await tokenOwner.getAddress()); + await mintFromMock(token, tokenOwner.address); expect(await token.getPendingAssets(nextTokenId)).to.eql([resId]); }); it('cannot add asset twice to the same token', async function () { const resId = await addAssetEntryFromMock(token); - const tokenId = await mintFromMock(token, await tokenOwner.getAddress()); + const tokenId = await mintFromMock(token, tokenOwner.address); await token.addAssetToToken(tokenId, resId, 0); await expect(token.addAssetToToken(tokenId, resId, 0)).to.be.revertedWithCustomError( @@ -159,7 +159,7 @@ describe('MultiAssetMock Other Behavior', async function () { }); it('cannot add too many assets to the same token', async function () { - const tokenId = await mintFromMock(token, await tokenOwner.getAddress()); + const tokenId = await mintFromMock(token, tokenOwner.address); for (let i = 1; i <= 128; i++) { const resId = await addAssetEntryFromMock(token); @@ -176,8 +176,8 @@ describe('MultiAssetMock Other Behavior', async function () { it('can add same asset to 2 different tokens', async function () { const resId = await addAssetEntryFromMock(token); - const tokenId1 = await mintFromMock(token, await tokenOwner.getAddress()); - const tokenId2 = await mintFromMock(token, await tokenOwner.getAddress()); + const tokenId1 = await mintFromMock(token, tokenOwner.address); + const tokenId2 = await mintFromMock(token, tokenOwner.address); await token.addAssetToToken(tokenId1, resId, 0); await token.addAssetToToken(tokenId2, resId, 0); @@ -202,16 +202,14 @@ describe('MultiAssetMock Other Behavior', async function () { const tokenOwner = addrs[1]; const newOwner = addrs[2]; const approved = addrs[3]; - const tokenId = await mintFromMock(token, await tokenOwner.getAddress()); - await token.connect(tokenOwner).approve(await approved.getAddress(), tokenId); - await token.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); + const tokenId = await mintFromMock(token, tokenOwner.address); + await token.connect(tokenOwner).approve(approved.address, tokenId); + await token.connect(tokenOwner).approveForAssets(approved.address, tokenId); - expect(await token.getApproved(tokenId)).to.eql(await approved.getAddress()); - expect(await token.getApprovedForAssets(tokenId)).to.eql(await approved.getAddress()); + expect(await token.getApproved(tokenId)).to.eql(approved.address); + expect(await token.getApprovedForAssets(tokenId)).to.eql(approved.address); - await token - .connect(tokenOwner) - .transferFrom(await tokenOwner.getAddress(), await newOwner.getAddress(), tokenId); + await token.connect(tokenOwner).transferFrom(tokenOwner.address, newOwner.address, tokenId); expect(await token.getApproved(tokenId)).to.eql(ethers.ZeroAddress); expect(await token.getApprovedForAssets(tokenId)).to.eql(ethers.ZeroAddress); @@ -220,12 +218,12 @@ describe('MultiAssetMock Other Behavior', async function () { it('cleans token and assets approvals on burn', async function () { const tokenOwner = addrs[1]; const approved = addrs[3]; - const tokenId = await mintFromMock(token, await tokenOwner.getAddress()); - await token.connect(tokenOwner).approve(await approved.getAddress(), tokenId); - await token.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); + const tokenId = await mintFromMock(token, tokenOwner.address); + await token.connect(tokenOwner).approve(approved.address, tokenId); + await token.connect(tokenOwner).approveForAssets(approved.address, tokenId); - expect(await token.getApproved(tokenId)).to.eql(await approved.getAddress()); - expect(await token.getApprovedForAssets(tokenId)).to.eql(await approved.getAddress()); + expect(await token.getApproved(tokenId)).to.eql(approved.address); + expect(await token.getApprovedForAssets(tokenId)).to.eql(approved.address); await token.connect(tokenOwner).burn(tokenId); diff --git a/test/nestable.ts b/test/nestable.ts index 01c4d3cd..14af86ad 100644 --- a/test/nestable.ts +++ b/test/nestable.ts @@ -23,7 +23,8 @@ async function parentChildFixture(): Promise<{ parent: RMRKNestableMock; child: RMRKNestableMock; }> { - return await parentChildFixtureWithArgs('RMRKNestableMock', [], []); + const { parent, child } = await parentChildFixtureWithArgs('RMRKNestableMock', [], []); + return { parent: parent, child: child }; } describe('NestableMock', function () { @@ -44,14 +45,14 @@ describe('NestableMock', function () { describe('Minting', async function () { it('cannot mint id 0', async function () { const tokenId = 0; - await expect(child.mint(await owner.getAddress(), tokenId)).to.be.revertedWithCustomError( + await expect(child.mint(owner.address, tokenId)).to.be.revertedWithCustomError( child, 'RMRKIdZeroForbidden', ); }); it('cannot nest mint id 0', async function () { - const parentId = await mintFromMock(child, await owner.getAddress()); + const parentId = await mintFromMock(child, owner.address); const childId = 0; await expect( child.nestMint(await parent.getAddress(), childId, parentId), @@ -59,15 +60,15 @@ describe('NestableMock', function () { }); it('cannot mint already minted token', async function () { - const tokenId = await mintFromMock(child, await owner.getAddress()); - await expect(child.mint(await owner.getAddress(), tokenId)).to.be.revertedWithCustomError( + const tokenId = await mintFromMock(child, owner.address); + await expect(child.mint(owner.address, tokenId)).to.be.revertedWithCustomError( child, 'ERC721TokenAlreadyMinted', ); }); it('cannot nest mint already minted token', async function () { - const parentId = await mintFromMock(parent, await owner.getAddress()); + const parentId = await mintFromMock(parent, owner.address); const childId = await nestMintFromMock(child, await parent.getAddress(), parentId); await expect( @@ -76,7 +77,7 @@ describe('NestableMock', function () { }); it('cannot nest mint already minted token', async function () { - const parentId = await mintFromMock(parent, await owner.getAddress()); + const parentId = await mintFromMock(parent, owner.address); const childId = await nestMintFromMock(child, await parent.getAddress(), parentId); await expect( @@ -114,15 +115,15 @@ describe('NestableMock transfer hooks', function () { }); it('keeps track of balances per NFTs', async function () { - const parentId = await mintFromMock(parent, await owner.getAddress()); + const parentId = await mintFromMock(parent, owner.address); const childId = await nestMintFromMock(child, await parent.getAddress(), parentId); - expect(await parent.balancePerNftOf(await owner.getAddress(), 0)).to.eql(bn(1)); + expect(await parent.balancePerNftOf(owner.address, 0)).to.eql(bn(1)); expect(await child.balancePerNftOf(await parent.getAddress(), parentId)).to.eql(bn(1)); await parent.transferChild( parentId, - await otherOwner.getAddress(), + otherOwner.address, 0, 0, await child.getAddress(), @@ -131,27 +132,21 @@ describe('NestableMock transfer hooks', function () { '0x', ); expect(await child.balancePerNftOf(await parent.getAddress(), parentId)).to.eql(0n); - expect(await child.balancePerNftOf(await otherOwner.getAddress(), 0)).to.eql(bn(1)); + expect(await child.balancePerNftOf(otherOwner.address, 0)).to.eql(bn(1)); // Nest again await child .connect(otherOwner) - .nestTransferFrom( - await otherOwner.getAddress(), - await parent.getAddress(), - childId, - parentId, - '0x', - ); + .nestTransferFrom(otherOwner.address, await parent.getAddress(), childId, parentId, '0x'); expect(await child.balancePerNftOf(await parent.getAddress(), parentId)).to.eql(bn(1)); - expect(await child.balancePerNftOf(await otherOwner.getAddress(), 0)).to.eql(0n); + expect(await child.balancePerNftOf(otherOwner.address, 0)).to.eql(0n); await parent.acceptChild(parentId, 0, await child.getAddress(), childId); await parent['burn(uint256,uint256)'](parentId, 1); - expect(await parent.balancePerNftOf(await owner.getAddress(), 0)).to.eql(0n); + expect(await parent.balancePerNftOf(owner.address, 0)).to.eql(0n); expect(await child.balancePerNftOf(await parent.getAddress(), parentId)).to.eql(0n); - expect(await child.balancePerNftOf(await otherOwner.getAddress(), 0)).to.eql(0n); + expect(await child.balancePerNftOf(otherOwner.address, 0)).to.eql(0n); }); }); diff --git a/test/nestableMultiasset.ts b/test/nestableMultiasset.ts index 68c09045..5e1aed3c 100644 --- a/test/nestableMultiasset.ts +++ b/test/nestableMultiasset.ts @@ -35,7 +35,8 @@ async function parentChildFixture(): Promise<{ parent: RMRKNestableMultiAssetMock; child: RMRKNestableMultiAssetMock; }> { - return await parentChildFixtureWithArgs('RMRKNestableMultiAssetMock', [], []); + const { parent, child } = await parentChildFixtureWithArgs('RMRKNestableMultiAssetMock', [], []); + return { parent: parent, child: child }; } describe('NestableMultiAssetMock Nestable Behavior', function () { @@ -88,16 +89,14 @@ describe('NestableMultiAssetMock Other Behavior', function () { const tokenOwner = addrs[1]; const newOwner = addrs[2]; const approved = addrs[3]; - await token.mint(await tokenOwner.getAddress(), tokenId); - await token.connect(tokenOwner).approve(await approved.getAddress(), tokenId); - await token.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); + await token.mint(tokenOwner.address, tokenId); + await token.connect(tokenOwner).approve(approved.address, tokenId); + await token.connect(tokenOwner).approveForAssets(approved.address, tokenId); - expect(await token.getApproved(tokenId)).to.eql(await approved.getAddress()); - expect(await token.getApprovedForAssets(tokenId)).to.eql(await approved.getAddress()); + expect(await token.getApproved(tokenId)).to.eql(approved.address); + expect(await token.getApprovedForAssets(tokenId)).to.eql(approved.address); - await token - .connect(tokenOwner) - .transferFrom(await tokenOwner.getAddress(), await newOwner.getAddress(), tokenId); + await token.connect(tokenOwner).transferFrom(tokenOwner.address, newOwner.address, tokenId); expect(await token.getApproved(tokenId)).to.eql(ethers.ZeroAddress); expect(await token.getApprovedForAssets(tokenId)).to.eql(ethers.ZeroAddress); @@ -107,12 +106,12 @@ describe('NestableMultiAssetMock Other Behavior', function () { const tokenId = 1; const tokenOwner = addrs[1]; const approved = addrs[3]; - await token.mint(await tokenOwner.getAddress(), tokenId); - await token.connect(tokenOwner).approve(await approved.getAddress(), tokenId); - await token.connect(tokenOwner).approveForAssets(await approved.getAddress(), tokenId); + await token.mint(tokenOwner.address, tokenId); + await token.connect(tokenOwner).approve(approved.address, tokenId); + await token.connect(tokenOwner).approveForAssets(approved.address, tokenId); - expect(await token.getApproved(tokenId)).to.eql(await approved.getAddress()); - expect(await token.getApprovedForAssets(tokenId)).to.eql(await approved.getAddress()); + expect(await token.getApproved(tokenId)).to.eql(approved.address); + expect(await token.getApprovedForAssets(tokenId)).to.eql(approved.address); await token.connect(tokenOwner)['burn(uint256)'](tokenId); diff --git a/test/nestableSecTests.ts b/test/nestableSecTests.ts index cd32f8c6..c35096be 100644 --- a/test/nestableSecTests.ts +++ b/test/nestableSecTests.ts @@ -27,7 +27,7 @@ describe('Nestable with ChildAdder', function () { describe('add children', async function () { it('cannot add multiple children', async function () { - await parent.connect(owner).mint(await owner.getAddress(), 1); + await parent.connect(owner).mint(owner.address, 1); // Propose 10 children with the same params to the parent token await adder.addChild(await parent.getAddress(), 1, 1, 10); diff --git a/test/renderUtils.ts b/test/renderUtils.ts index cca7a06b..9d044413 100644 --- a/test/renderUtils.ts +++ b/test/renderUtils.ts @@ -102,7 +102,7 @@ async function extendedNftRenderUtilsFixture() { 'MA', 'ipfs://collection-meta', 10000, - await deployer.getAddress(), + deployer.address, 500, ) ); @@ -114,7 +114,7 @@ async function extendedNftRenderUtilsFixture() { 'NMAS', 'ipfs://collection-meta', 10000, - await deployer.getAddress(), + deployer.address, 500, ) ); @@ -126,7 +126,7 @@ async function extendedNftRenderUtilsFixture() { 'NMA', 'ipfs://collection-meta', 10000, - await deployer.getAddress(), + deployer.address, 500, ) ); @@ -141,7 +141,7 @@ async function extendedNftRenderUtilsFixture() { 'EQ', 'ipfs://collection-meta', 10000, - await deployer.getAddress(), + deployer.address, 500, ) ); @@ -182,7 +182,7 @@ describe('MultiAsset Nestable and Equip Render Utils', async function () { const signers = await ethers.getSigners(); owner = signers[0]; - tokenId = await mintFromMock(equip, await owner.getAddress()); + tokenId = await mintFromMock(equip, owner.address); await equip.addEquippableAssetEntry(resId, 0, ADDRESS_ZERO, 'ipfs://res1.jpg', []); await equip.addEquippableAssetEntry( resId2, @@ -246,7 +246,7 @@ describe('MultiAsset Nestable and Equip Render Utils', async function () { }); it('cannot get active assets if token has no assets', async function () { - const otherTokenId = await mintFromMock(equip, await owner.getAddress()); + const otherTokenId = await mintFromMock(equip, owner.address); await expect( renderUtils.getExtendedActiveAssets(await equip.getAddress(), otherTokenId), ).to.be.revertedWithCustomError(renderUtils, 'RMRKTokenHasNoAssets'); @@ -256,7 +256,7 @@ describe('MultiAsset Nestable and Equip Render Utils', async function () { }); it('cannot get pending assets if token has no assets', async function () { - const otherTokenId = await mintFromMock(equip, await owner.getAddress()); + const otherTokenId = await mintFromMock(equip, owner.address); await expect( renderUtils.getPendingAssets(await equip.getAddress(), otherTokenId), ).to.be.revertedWithCustomError(renderUtils, 'RMRKTokenHasNoAssets'); @@ -266,7 +266,7 @@ describe('MultiAsset Nestable and Equip Render Utils', async function () { }); it('cannot get top asset if token has no assets', async function () { - const otherTokenId = await mintFromMock(equip, await owner.getAddress()); + const otherTokenId = await mintFromMock(equip, owner.address); await expect( renderUtils.getTopAssetMetaForToken(await equip.getAddress(), otherTokenId), ).to.be.revertedWithCustomError(renderUtils, 'RMRKTokenHasNoAssets'); @@ -279,7 +279,7 @@ describe('MultiAsset Nestable and Equip Render Utils', async function () { let childId2: bigint; beforeEach(async function () { - parentId = await mintFromMock(equip, await owner.getAddress()); + parentId = await mintFromMock(equip, owner.address); childId1 = await nestMintFromMock(equip, await equip.getAddress(), parentId); childId2 = await nestMintFromMock(equip, await equip.getAddress(), parentId); await equip.acceptChild(parentId, 0, await equip.getAddress(), childId1); @@ -380,7 +380,7 @@ describe('Advanced Equip Render Utils', async function () { )); [owner] = await ethers.getSigners(); - kanariaId = await mintFromMock(kanaria, await owner.getAddress()); + kanariaId = await mintFromMock(kanaria, owner.address); gemId1 = await nestMintFromMock(gem, await kanaria.getAddress(), kanariaId); gemId2 = await nestMintFromMock(gem, await kanaria.getAddress(), kanariaId); gemId3 = await nestMintFromMock(gem, await kanaria.getAddress(), kanariaId); @@ -669,7 +669,7 @@ describe('Advanced Equip Render Utils', async function () { // Transfer a gem out and then back so it becomes pending await kanaria.transferChild( kanariaId, - await owner.getAddress(), + owner.address, 0, 2, await gem.getAddress(), @@ -677,13 +677,7 @@ describe('Advanced Equip Render Utils', async function () { false, '0x', ); - await gem.nestTransferFrom( - await owner.getAddress(), - await kanaria.getAddress(), - gemId3, - kanariaId, - '0x', - ); + await gem.nestTransferFrom(owner.address, await kanaria.getAddress(), gemId3, kanariaId, '0x'); expect( await renderUtilsEquip.getPendingChildIndex( @@ -911,7 +905,7 @@ describe('Extended NFT render utils', function () { }); it('renders correct data for MultiAsset', async function () { - const tokenId = await mintFromMockPremint(multiAsset, await rootOwner.getAddress()); + const tokenId = await mintFromMockPremint(multiAsset, rootOwner.address); await multiAsset.addAssetEntry(metaURI); await multiAsset.addAssetEntry(metaURI); await multiAsset.addAssetEntry(metaURI); @@ -926,14 +920,14 @@ describe('Extended NFT render utils', function () { const data = await renderUtils.getExtendedNft(tokenId, await multiAsset.getAddress()); expect(data.tokenMetadataUri).to.eql('ipfs://tokenURI'); - expect(data.directOwner).to.eql(await rootOwner.getAddress()); - expect(data.rootOwner).to.eql(await rootOwner.getAddress()); + expect(data.directOwner).to.eql(rootOwner.address); + expect(data.rootOwner).to.eql(rootOwner.address); expect(data.activeAssetCount).to.eql(bn(2)); expect(data.pendingAssetCount).to.eql(bn(2)); expect(data.priorities).to.eql([bn(10), bn(42)]); expect(data.maxSupply).to.eql(bn(10000)); expect(data.totalSupply).to.eql(bn(1)); - expect(data.issuer).to.eql(await issuer.getAddress()); + expect(data.issuer).to.eql(issuer.address); expect(data.name).to.eql('MultiAsset'); expect(data.symbol).to.eql('MA'); expect(data.activeChildrenNumber).to.eql(0n); @@ -945,10 +939,7 @@ describe('Extended NFT render utils', function () { }); it('renders correct data for soulbound Nestable', async function () { - const tokenId = await mintFromMockPremint( - nestableMultiAssetSoulbound, - await rootOwner.getAddress(), - ); + const tokenId = await mintFromMockPremint(nestableMultiAssetSoulbound, rootOwner.address); const child1 = await nestMintFromMockPreMint( nestableMultiAssetSoulbound, await nestableMultiAssetSoulbound.getAddress(), @@ -977,14 +968,14 @@ describe('Extended NFT render utils', function () { ); expect(data.tokenMetadataUri).to.eql('ipfs://tokenURI'); - expect(data.directOwner).to.eql(await rootOwner.getAddress()); - expect(data.rootOwner).to.eql(await rootOwner.getAddress()); + expect(data.directOwner).to.eql(rootOwner.address); + expect(data.rootOwner).to.eql(rootOwner.address); expect(data.activeAssetCount).to.eql(0n); expect(data.pendingAssetCount).to.eql(0n); expect(data.priorities).to.eql([]); expect(data.maxSupply).to.eql(bn(10000)); expect(data.totalSupply).to.eql(bn(4)); - expect(data.issuer).to.eql(await issuer.getAddress()); + expect(data.issuer).to.eql(issuer.address); expect(data.name).to.eql('NestableMultiAssetSoulbound'); expect(data.symbol).to.eql('NMAS'); expect(data.activeChildrenNumber).to.eql(bn(2)); @@ -996,8 +987,8 @@ describe('Extended NFT render utils', function () { }); it('renders correct data for Nestable with MultiAsset', async function () { - const parentId = await mintFromMockPremint(nestableMultiAsset, await rootOwner.getAddress()); - const tokenId = await mintFromMockPremint(nestableMultiAsset, await rootOwner.getAddress()); + const parentId = await mintFromMockPremint(nestableMultiAsset, rootOwner.address); + const tokenId = await mintFromMockPremint(nestableMultiAsset, rootOwner.address); await nestableMultiAsset.addAssetEntry(metaURI); await nestableMultiAsset.addAssetEntry(metaURI); await nestableMultiAsset.addAssetEntry(metaURI); @@ -1032,7 +1023,7 @@ describe('Extended NFT render utils', function () { await nestableMultiAsset .connect(rootOwner) .nestTransferFrom( - await rootOwner.getAddress(), + rootOwner.address, await nestableMultiAsset.getAddress(), tokenId, parentId, @@ -1046,13 +1037,13 @@ describe('Extended NFT render utils', function () { expect(data.tokenMetadataUri).to.eql('ipfs://tokenURI'); expect(data.directOwner).to.eql(await nestableMultiAsset.getAddress()); - expect(data.rootOwner).to.eql(await rootOwner.getAddress()); + expect(data.rootOwner).to.eql(rootOwner.address); expect(data.activeAssetCount).to.eql(bn(2)); expect(data.pendingAssetCount).to.eql(bn(2)); expect(data.priorities).to.eql([bn(10), bn(42)]); expect(data.maxSupply).to.eql(bn(10000)); expect(data.totalSupply).to.eql(bn(5)); - expect(data.issuer).to.eql(await issuer.getAddress()); + expect(data.issuer).to.eql(issuer.address); expect(data.name).to.eql('NestableMultiAsset'); expect(data.symbol).to.eql('NMA'); expect(data.activeChildrenNumber).to.eql(bn(2)); @@ -1064,8 +1055,8 @@ describe('Extended NFT render utils', function () { }); it('renders correct data for Equippable', async function () { - const parentId = await mintFromMockPremint(equip, await rootOwner.getAddress()); - const tokenId = await mintFromMockPremint(equip, await rootOwner.getAddress()); + const parentId = await mintFromMockPremint(equip, rootOwner.address); + const tokenId = await mintFromMockPremint(equip, rootOwner.address); await equip.addEquippableAssetEntry(0, ADDRESS_ZERO, 'ipfs://res1.jpg', []); await equip.addEquippableAssetEntry( 1, @@ -1088,26 +1079,20 @@ describe('Extended NFT render utils', function () { await equip.connect(rootOwner).acceptChild(tokenId, 0, await equip.getAddress(), child3); await equip .connect(rootOwner) - .nestTransferFrom( - await rootOwner.getAddress(), - await equip.getAddress(), - tokenId, - parentId, - '0x', - ); + .nestTransferFrom(rootOwner.address, await equip.getAddress(), tokenId, parentId, '0x'); await equip.connect(rootOwner).acceptChild(parentId, 0, await equip.getAddress(), tokenId); const data = await renderUtils.getExtendedNft(tokenId, await equip.getAddress()); expect(data.tokenMetadataUri).to.eql('ipfs://tokenURI'); expect(data.directOwner).to.eql(await equip.getAddress()); - expect(data.rootOwner).to.eql(await rootOwner.getAddress()); + expect(data.rootOwner).to.eql(rootOwner.address); expect(data.activeAssetCount).to.eql(bn(2)); expect(data.pendingAssetCount).to.eql(bn(2)); expect(data.priorities).to.eql([bn(10), bn(42)]); expect(data.maxSupply).to.eql(bn(10000)); expect(data.totalSupply).to.eql(bn(5)); - expect(data.issuer).to.eql(await issuer.getAddress()); + expect(data.issuer).to.eql(issuer.address); expect(data.name).to.eql('Equippable'); expect(data.symbol).to.eql('EQ'); expect(data.activeChildrenNumber).to.eql(bn(2)); @@ -1126,8 +1111,8 @@ describe('Extended NFT render utils', function () { let childTokenThree: bigint; beforeEach(async function () { - parentTokenOne = await mintFromMockPremint(nestableMultiAsset, await rootOwner.getAddress()); - parentTokenTwo = await mintFromMockPremint(nestableMultiAsset, await rootOwner.getAddress()); + parentTokenOne = await mintFromMockPremint(nestableMultiAsset, rootOwner.address); + parentTokenTwo = await mintFromMockPremint(nestableMultiAsset, rootOwner.address); childTokenOne = await nestMintFromMockPreMint( nestableMultiAsset, await nestableMultiAsset.getAddress(), @@ -1232,7 +1217,7 @@ describe('Extended NFT render utils', function () { await nestableMultiAsset.getAddress(), parentTokenOne, ), - ).to.eql([await rootOwner.getAddress(), 0n, false, false, false]); + ).to.eql([rootOwner.address, 0n, false, false, false]); }); it('can identify rejected children', async function () { diff --git a/test/royaltiesSplitter.ts b/test/royaltiesSplitter.ts index 899934f5..42f1d878 100644 --- a/test/royaltiesSplitter.ts +++ b/test/royaltiesSplitter.ts @@ -20,16 +20,14 @@ describe('RMRKRoyaltiesSplitter', () => { const royaltiesSplitterFactory = await ethers.getContractFactory('RMRKRoyaltiesSplitter'); royaltiesSplitter = await royaltiesSplitterFactory.deploy( - beneficiaries.map(async (b) => await b.getAddress()), + beneficiaries.map(async (b) => b.address), SHARES_BPS, ); await royaltiesSplitter.waitForDeployment(); }); it('can get beneficiaries and shares', async () => { - const beneficiariesAddresses = await Promise.all( - beneficiaries.map(async (b) => await b.getAddress()), - ); + const beneficiariesAddresses = await Promise.all(beneficiaries.map(async (b) => b.address)); expect(await royaltiesSplitter.getBenefiariesAndShares()).to.deep.equal([ beneficiariesAddresses, SHARES_BPS, @@ -61,7 +59,7 @@ describe('RMRKRoyaltiesSplitter', () => { await erc20Token.waitForDeployment(); const amount = ethers.parseUnits('100', 18); - await erc20Token.mint(await sender.getAddress(), amount); + await erc20Token.mint(sender.address, amount); await erc20Token.connect(sender).transfer(await royaltiesSplitter.getAddress(), amount); expect( @@ -70,16 +68,10 @@ describe('RMRKRoyaltiesSplitter', () => { .distributeERC20(await erc20Token.getAddress(), amount), ) .to.emit(royaltiesSplitter, 'ERCPaymentDistributed') - .withArgs(await sender.getAddress(), await erc20Token.getAddress(), amount); - expect(await erc20Token.balanceOf(await beneficiary1.getAddress())).to.equal( - (amount * 2500n) / 10000n, - ); - expect(await erc20Token.balanceOf(await beneficiary2.getAddress())).to.equal( - (amount * 2500n) / 10000n, - ); - expect(await erc20Token.balanceOf(await beneficiary3.getAddress())).to.equal( - (amount * 5000n) / 10000n, - ); + .withArgs(sender.address, await erc20Token.getAddress(), amount); + expect(await erc20Token.balanceOf(beneficiary1.address)).to.equal((amount * 2500n) / 10000n); + expect(await erc20Token.balanceOf(beneficiary2.address)).to.equal((amount * 2500n) / 10000n); + expect(await erc20Token.balanceOf(beneficiary3.address)).to.equal((amount * 5000n) / 10000n); }); it('cannot distribute ERC20 if not beneficary', async () => { @@ -88,7 +80,7 @@ describe('RMRKRoyaltiesSplitter', () => { await erc20Token.waitForDeployment(); const amount = ethers.parseUnits('100', 18); - await erc20Token.mint(await sender.getAddress(), amount); + await erc20Token.mint(sender.address, amount); await erc20Token.connect(sender).transfer(await royaltiesSplitter.getAddress(), amount); await expect( @@ -101,28 +93,28 @@ describe('RMRKRoyaltiesSplitter', () => { // Missmatch in length await expect( royaltiesSplitterFactory.deploy( - beneficiaries.map(async (b) => await b.getAddress()), + beneficiaries.map(async (b) => b.address), SHARES_BPS.slice(0, 2), ), ).to.be.reverted; // Missmatch in length await expect( royaltiesSplitterFactory.deploy( - beneficiaries.slice(0, 2).map(async (b) => await b.getAddress()), + beneficiaries.slice(0, 2).map(async (b) => b.address), SHARES_BPS, ), ).to.be.reverted; // Shares below 10000 await expect( royaltiesSplitterFactory.deploy( - beneficiaries.map(async (b) => await b.getAddress()), + beneficiaries.map(async (b) => b.address), [2500, 2500, 2500], ), ).to.be.reverted; // Shares over 10000 await expect( royaltiesSplitterFactory.deploy( - beneficiaries.map(async (b) => await b.getAddress()), + beneficiaries.map(async (b) => b.address), [2500, 2500, 5001], ), ).to.be.reverted; diff --git a/test/utils.ts b/test/utils.ts index 66f24790..94ccf5e0 100644 --- a/test/utils.ts +++ b/test/utils.ts @@ -108,6 +108,13 @@ type GenericMintable = | GenericNestMintable | RMRKMultiAssetMock | GenericTypedMultiAsset; +// Mock +type GenericNestMintableMock = + | RMRKNestableMock + | RMRKNestableMultiAssetMock + | RMRKEquippableMock + | RMRKMinifiedEquippableMock; +type GenericMintableMock = RMRKMultiAssetMock | GenericNestMintableMock; // Pre-mint type GenericNestMintablePreMint = @@ -150,7 +157,7 @@ function bn(x: number): bigint { return BigInt(x); } -async function mintFromMock(token: GenericMintable, to: string): Promise { +async function mintFromMock(token: GenericMintableMock, to: string): Promise { const tokenId = nextTokenId; nextTokenId++; await token.mint(to, tokenId); @@ -164,7 +171,7 @@ async function mintFromMockPremint(token: GenericMintablePreMint, to: string): P } async function nestMintFromMock( - token: GenericNestMintable, + token: GenericNestMintableMock, to: string, parentId: bigint, ): Promise { @@ -205,7 +212,7 @@ async function mintFromErc20Pay(token: GenericMintableERC20Pay, to: string): Pro const erc20 = erc20Factory.attach(erc20Address); const owner = (await ethers.getSigners())[0]; - await erc20.mint(await owner.getAddress(), ONE_ETH); + await erc20.mint(owner.address, ONE_ETH); await erc20.approve(await token.getAddress(), ONE_ETH); const tx = await token.mint(to, 1); @@ -227,7 +234,7 @@ async function nestMintFromErc20Pay( const erc20 = erc20Factory.attach(erc20Address); const owner = (await ethers.getSigners())[0]; - await erc20.mint(await owner.getAddress(), ONE_ETH); + await erc20.mint(owner.address, ONE_ETH); await erc20.approve(await token.getAddress(), ONE_ETH); const tx = await token.nestMint(to, 1, destinationId); @@ -252,7 +259,7 @@ async function transfer( to: string, tokenId: bigint, ): Promise { - await token.connect(caller).transferFrom(await caller.getAddress(), to, tokenId); + await token.connect(caller).transferFrom(caller.address, to, tokenId); } async function nestTransfer( @@ -262,17 +269,15 @@ async function nestTransfer( tokenId: bigint, parentId: bigint, ): Promise { - await token - .connect(caller) - .nestTransferFrom(await caller.getAddress(), to, tokenId, parentId, '0x'); + await token.connect(caller).nestTransferFrom(caller.address, to, tokenId, parentId, '0x'); } async function addAssetToToken( - token: Contract, + token: GenericMultiAsset, tokenId: bigint, resId: bigint, replaces: bigint | number, -): Promise { +): Promise { return await token.addAssetToToken(tokenId, resId, replaces); } @@ -332,12 +337,12 @@ async function parentChildFixtureWithArgs( contractName: string, parentArgs: any[], childArgs: any[], -): Promise<{ parent: GenericEquippable; child: GenericEquippable }> { +): Promise<{ parent: GenericNestMintable; child: GenericNestMintable }> { const factory = await ethers.getContractFactory(contractName); - const parent = await factory.deploy(...parentArgs); + const parent = await factory.deploy(...parentArgs); await parent.waitForDeployment(); - const child = await factory.deploy(...childArgs); + const child = await factory.deploy(...childArgs); await child.waitForDeployment(); return { parent, child }; @@ -382,4 +387,6 @@ export { GenericSafeTransferable, GenericTransferable, GenericTypedMultiAsset, + GenericMintableMock, + GenericNestMintableMock, }; diff --git a/tsconfig.json b/tsconfig.json index ec04951b..0f7a882d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,13 +3,14 @@ "target": "ES2020", "module": "commonjs", "moduleResolution": "node", - "lib": ["es2020", "esnext", "dom"], + "lib": ["ES2020", "esnext", "dom"], "strict": true, "esModuleInterop": true, "outDir": "dist", "declaration": true, - "resolveJsonModule": true + "resolveJsonModule": true, }, "include": ["./scripts", "./test", "./typechain-types"], - "files": ["./hardhat.config.ts"] + "files": ["./hardhat.config.ts"], } +