diff --git a/.prettierrc.json b/.prettierrc.json index 4295c33..cfce4dc 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,6 +1,7 @@ { "printWidth": 120, "useTabs": false, + "plugins": ["prettier-plugin-solidity"], "overrides": [ { "files": "*.sol", @@ -8,7 +9,7 @@ "bracketSpacing": true, "tabWidth": 4, "singleQuote": false, - "compiler": ">=0.8.0" + "parser": "solidity-parse" } } ] diff --git a/package.json b/package.json index 3f4068f..605232c 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "dependencies": { "@chainlink/contracts": "^0.6.1", "@openzeppelin/contracts": "^5.0.1", + "@solidity-parser/parser": "^0.17.0", "@types/fs-extra": "^11.0.1", "@types/node": "^18.15.11", "change-case": "^4.1.2", @@ -34,6 +35,7 @@ "solhint": "^3.4.0", "solhint-plugin-prettier": "^0.0.5", "solidity-bytes-utils": "github:GNSPS/solidity-bytes-utils", + "solidity-parser": "^0.4.0", "toml": "^3.0.0", "ts-node": "^10.9.1", "typescript": "^5.0.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7190a56..0980bdd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: "6.0" +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + dependencies: "@chainlink/contracts": specifier: ^0.6.1 @@ -7,6 +11,9 @@ dependencies: "@openzeppelin/contracts": specifier: ^5.0.1 version: 5.0.1 + "@solidity-parser/parser": + specifier: ^0.17.0 + version: 0.17.0 "@types/fs-extra": specifier: ^11.0.1 version: 11.0.4 @@ -57,7 +64,10 @@ dependencies: version: 0.0.5(prettier-plugin-solidity@1.2.0)(prettier@2.8.8) solidity-bytes-utils: specifier: github:GNSPS/solidity-bytes-utils - version: github.com/GNSPS/solidity-bytes-utils/42221d3ee53aff8888057fb9f3b7a8fc42c290f8 + version: github.com/GNSPS/solidity-bytes-utils/42221d3ee53aff8888057fb9f3b7a8fc42c290f8(@babel/core@7.23.7) + solidity-parser: + specifier: ^0.4.0 + version: 0.4.0 toml: specifier: ^3.0.0 version: 3.0.0 @@ -74,6 +84,15 @@ devDependencies: version: 10.3.10 packages: + /@ampproject/remapping@2.2.1: + resolution: + { integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== } + engines: { node: ">=6.0.0" } + dependencies: + "@jridgewell/gen-mapping": 0.3.3 + "@jridgewell/trace-mapping": 0.3.21 + dev: false + /@babel/code-frame@7.23.5: resolution: { integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== } @@ -89,9 +108,44 @@ packages: engines: { node: ">=6.9.0" } dev: false - /@babel/helper-compilation-targets@7.22.15: + /@babel/core@7.23.7: resolution: - { integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== } + { integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== } + engines: { node: ">=6.9.0" } + dependencies: + "@ampproject/remapping": 2.2.1 + "@babel/code-frame": 7.23.5 + "@babel/generator": 7.23.6 + "@babel/helper-compilation-targets": 7.23.6 + "@babel/helper-module-transforms": 7.23.3(@babel/core@7.23.7) + "@babel/helpers": 7.23.8 + "@babel/parser": 7.23.6 + "@babel/template": 7.22.15 + "@babel/traverse": 7.23.7 + "@babel/types": 7.23.6 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@5.5.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/generator@7.23.6: + resolution: + { integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.6 + "@jridgewell/gen-mapping": 0.3.3 + "@jridgewell/trace-mapping": 0.3.21 + jsesc: 2.5.2 + dev: false + + /@babel/helper-compilation-targets@7.23.6: + resolution: + { integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== } engines: { node: ">=6.9.0" } dependencies: "@babel/compat-data": 7.23.5 @@ -101,13 +155,14 @@ packages: semver: 6.3.1 dev: false - /@babel/helper-define-polyfill-provider@0.4.3: + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.7): resolution: { integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== } peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - "@babel/helper-compilation-targets": 7.22.15 + "@babel/core": 7.23.7 + "@babel/helper-compilation-targets": 7.23.6 "@babel/helper-plugin-utils": 7.22.5 debug: 4.3.4(supports-color@5.5.0) lodash.debounce: 4.0.8 @@ -116,12 +171,50 @@ packages: - supports-color dev: false + /@babel/helper-environment-visitor@7.22.20: + resolution: + { integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== } + engines: { node: ">=6.9.0" } + dev: false + + /@babel/helper-function-name@7.23.0: + resolution: + { integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/template": 7.22.15 + "@babel/types": 7.23.6 + dev: false + + /@babel/helper-hoist-variables@7.22.5: + resolution: + { integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.6 + dev: false + /@babel/helper-module-imports@7.22.15: resolution: { integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.23.5 + "@babel/types": 7.23.6 + dev: false + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): + resolution: + { integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.23.7 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-module-imports": 7.22.15 + "@babel/helper-simple-access": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/helper-validator-identifier": 7.22.20 dev: false /@babel/helper-plugin-utils@7.22.5: @@ -130,6 +223,22 @@ packages: engines: { node: ">=6.9.0" } dev: false + /@babel/helper-simple-access@7.22.5: + resolution: + { integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.6 + dev: false + + /@babel/helper-split-export-declaration@7.22.6: + resolution: + { integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.6 + dev: false + /@babel/helper-string-parser@7.23.4: resolution: { integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== } @@ -148,6 +257,18 @@ packages: engines: { node: ">=6.9.0" } dev: false + /@babel/helpers@7.23.8: + resolution: + { integrity: sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/template": 7.22.15 + "@babel/traverse": 7.23.7 + "@babel/types": 7.23.6 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/highlight@7.23.4: resolution: { integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== } @@ -158,18 +279,28 @@ packages: js-tokens: 4.0.0 dev: false - /@babel/plugin-transform-runtime@7.23.4: + /@babel/parser@7.23.6: + resolution: + { integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== } + engines: { node: ">=6.0.0" } + hasBin: true + dependencies: + "@babel/types": 7.23.6 + dev: false + + /@babel/plugin-transform-runtime@7.23.4(@babel/core@7.23.7): resolution: { integrity: sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw== } engines: { node: ">=6.9.0" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: + "@babel/core": 7.23.7 "@babel/helper-module-imports": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.6 - babel-plugin-polyfill-corejs3: 0.8.6 - babel-plugin-polyfill-regenerator: 0.5.3 + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.7) + babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.7) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.7) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -183,9 +314,38 @@ packages: regenerator-runtime: 0.14.0 dev: false - /@babel/types@7.23.5: + /@babel/template@7.22.15: resolution: - { integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== } + { integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/code-frame": 7.23.5 + "@babel/parser": 7.23.6 + "@babel/types": 7.23.6 + dev: false + + /@babel/traverse@7.23.7: + resolution: + { integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/code-frame": 7.23.5 + "@babel/generator": 7.23.6 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-function-name": 7.23.0 + "@babel/helper-hoist-variables": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/parser": 7.23.6 + "@babel/types": 7.23.6 + debug: 4.3.4(supports-color@5.5.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/types@7.23.6: + resolution: + { integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== } engines: { node: ">=6.9.0" } dependencies: "@babel/helper-string-parser": 7.23.4 @@ -645,17 +805,41 @@ packages: wrap-ansi-cjs: /wrap-ansi@7.0.0 dev: true + /@jridgewell/gen-mapping@0.3.3: + resolution: + { integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== } + engines: { node: ">=6.0.0" } + dependencies: + "@jridgewell/set-array": 1.1.2 + "@jridgewell/sourcemap-codec": 1.4.15 + "@jridgewell/trace-mapping": 0.3.21 + dev: false + /@jridgewell/resolve-uri@3.1.1: resolution: { integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== } engines: { node: ">=6.0.0" } dev: false + /@jridgewell/set-array@1.1.2: + resolution: + { integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== } + engines: { node: ">=6.0.0" } + dev: false + /@jridgewell/sourcemap-codec@1.4.15: resolution: { integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== } dev: false + /@jridgewell/trace-mapping@0.3.21: + resolution: + { integrity: sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g== } + dependencies: + "@jridgewell/resolve-uri": 3.1.1 + "@jridgewell/sourcemap-codec": 1.4.15 + dev: false + /@jridgewell/trace-mapping@0.3.9: resolution: { integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== } @@ -754,6 +938,11 @@ packages: antlr4ts: 0.5.0-alpha.4 dev: false + /@solidity-parser/parser@0.17.0: + resolution: + { integrity: sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw== } + dev: false + /@szmarczak/http-timer@4.0.6: resolution: { integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== } @@ -770,7 +959,7 @@ packages: defer-to-connect: 2.0.1 dev: false - /@truffle/hdwallet-provider@2.1.15: + /@truffle/hdwallet-provider@2.1.15(@babel/core@7.23.7): resolution: { integrity: sha512-I5cSS+5LygA3WFzru9aC5+yDXVowEEbLCx0ckl/RqJ2/SCiYXkzYlR5/DjjDJuCtYhivhrn2RP9AheeFlRF+qw== } engines: { node: ^16.20 || ^18.16 || >=20 } @@ -786,7 +975,7 @@ packages: ethereum-protocol: 1.0.1 ethereumjs-util: 7.1.5 web3: 1.10.0 - web3-provider-engine: 16.0.3 + web3-provider-engine: 16.0.3(@babel/core@7.23.7) transitivePeerDependencies: - "@babel/core" - bufferutil @@ -1015,6 +1204,12 @@ packages: type-fest: 1.4.0 dev: false + /ansi-regex@2.1.1: + resolution: + { integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== } + engines: { node: ">=0.10.0" } + dev: false + /ansi-regex@5.0.1: resolution: { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } @@ -1161,38 +1356,41 @@ packages: { integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== } dev: false - /babel-plugin-polyfill-corejs2@0.4.6: + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.7): resolution: { integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== } peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: "@babel/compat-data": 7.23.5 - "@babel/helper-define-polyfill-provider": 0.4.3 + "@babel/core": 7.23.7 + "@babel/helper-define-polyfill-provider": 0.4.3(@babel/core@7.23.7) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: false - /babel-plugin-polyfill-corejs3@0.8.6: + /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.7): resolution: { integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== } peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - "@babel/helper-define-polyfill-provider": 0.4.3 + "@babel/core": 7.23.7 + "@babel/helper-define-polyfill-provider": 0.4.3(@babel/core@7.23.7) core-js-compat: 3.34.0 transitivePeerDependencies: - supports-color dev: false - /babel-plugin-polyfill-regenerator@0.5.3: + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.7): resolution: { integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== } peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - "@babel/helper-define-polyfill-provider": 0.4.3 + "@babel/core": 7.23.7 + "@babel/helper-define-polyfill-provider": 0.4.3(@babel/core@7.23.7) transitivePeerDependencies: - supports-color dev: false @@ -1478,6 +1676,12 @@ packages: tslib: 2.6.2 dev: false + /camelcase@3.0.0: + resolution: + { integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== } + engines: { node: ">=0.10.0" } + dev: false + /caniuse-lite@1.0.30001566: resolution: { integrity: sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== } @@ -1632,6 +1836,15 @@ packages: string-width: 5.1.2 dev: false + /cliui@3.2.0: + resolution: + { integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== } + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + wrap-ansi: 2.1.0 + dev: false + /clone-response@1.0.3: resolution: { integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== } @@ -1645,6 +1858,12 @@ packages: engines: { node: ">=0.8" } dev: false + /code-point-at@1.1.0: + resolution: + { integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== } + engines: { node: ">=0.10.0" } + dev: false + /color-convert@1.9.3: resolution: { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== } @@ -1686,6 +1905,12 @@ packages: { integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== } dev: false + /commander@0.6.1: + resolution: + { integrity: sha512-0fLycpl1UMTGX257hRsu/arL/cUbcvQM4zMKwvLvzXtfdezIV4yotPS2dYtknF+NmEfWSoCEF6+hj9XLm/6hEw== } + engines: { node: ">= 0.4.x" } + dev: false + /commander@10.0.1: resolution: { integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== } @@ -1698,6 +1923,12 @@ packages: engines: { node: ">=16" } dev: false + /commander@2.3.0: + resolution: + { integrity: sha512-CD452fnk0jQyk3NfnK+KkR/hUPoHt5pVaKHogtyyv3N0U4QfAal9W0/rXLOg/vVZgQKa7jdtXypKs1YAip11uQ== } + engines: { node: ">= 0.6.x" } + dev: false + /commander@8.3.0: resolution: { integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== } @@ -1741,6 +1972,11 @@ packages: engines: { node: ">= 0.6" } dev: false + /convert-source-map@2.0.0: + resolution: + { integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== } + dev: false + /cookie-signature@1.0.6: resolution: { integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== } @@ -1882,6 +2118,19 @@ packages: "@babel/runtime": 7.23.5 dev: false + /debug@2.2.0(supports-color@1.2.0): + resolution: + { integrity: sha512-X0rGvJcskG1c3TgSCPqHJ0XJgwlcvOC7elJ5Y0hYuKBZoVqWpAMfLOeIh2UI/DCQ5ruodIjvsugZtjUYUw2pUw== } + peerDependencies: + supports-color: "*" + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 0.7.1 + supports-color: 1.2.0 + dev: false + /debug@2.6.9: resolution: { integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== } @@ -1908,6 +2157,12 @@ packages: supports-color: 5.5.0 dev: false + /decamelize@1.2.0: + resolution: + { integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== } + engines: { node: ">=0.10.0" } + dev: false + /decode-uri-component@0.2.2: resolution: { integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== } @@ -1979,6 +2234,12 @@ packages: engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } dev: false + /diff@1.4.0: + resolution: + { integrity: sha512-VzVc42hMZbYU9Sx/ltb7KYuQ6pqAw+cbFWVy4XKdkuEL2CFaRLGEnISPs7YdzaUGpi+CpIqvRmu7hPQ4T7EQ5w== } + engines: { node: ">=0.3.1" } + dev: false + /diff@4.0.2: resolution: { integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== } @@ -2113,6 +2374,12 @@ packages: { integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== } dev: false + /escape-string-regexp@1.0.2: + resolution: + { integrity: sha512-cQpUid7bdTUnFin8S7BnNdOk+/eDqQmKgCANSyd/jAhrKEvxUvr9VQ8XZzXiOtest8NLfk3FSBZzwvemZNQ6Vg== } + engines: { node: ">=0.8.0" } + dev: false + /escape-string-regexp@1.0.5: resolution: { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== } @@ -2125,11 +2392,11 @@ packages: engines: { node: ">= 0.6" } dev: false - /eth-block-tracker@4.4.3: + /eth-block-tracker@4.4.3(@babel/core@7.23.7): resolution: { integrity: sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== } dependencies: - "@babel/plugin-transform-runtime": 7.23.4 + "@babel/plugin-transform-runtime": 7.23.4(@babel/core@7.23.7) "@babel/runtime": 7.23.5 eth-query: 2.1.2 json-rpc-random-id: 1.0.1 @@ -2630,6 +2897,15 @@ packages: - supports-color dev: false + /find-up@1.1.2: + resolution: + { integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== } + engines: { node: ">=0.10.0" } + dependencies: + path-exists: 2.1.0 + pinkie-promise: 2.0.1 + dev: false + /follow-redirects@1.15.3: resolution: { integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== } @@ -2739,6 +3015,17 @@ packages: { integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== } dev: false + /gensync@1.0.0-beta.2: + resolution: + { integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== } + engines: { node: ">=6.9.0" } + dev: false + + /get-caller-file@1.0.3: + resolution: + { integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== } + dev: false + /get-func-name@2.0.2: resolution: { integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== } @@ -2796,6 +3083,14 @@ packages: path-scurry: 1.10.1 dev: true + /glob@3.2.11: + resolution: + { integrity: sha512-hVb0zwEZwC1FXSKRPFTeOtN7AArJcJlI6ULGLtrstaswKNlrTJqAA+1lYlSUop4vjA423xlBzqfVS3iWGlqJ+g== } + dependencies: + inherits: 2.0.4 + minimatch: 0.3.0 + dev: false + /glob@8.1.0: resolution: { integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== } @@ -2816,6 +3111,12 @@ packages: process: 0.11.10 dev: false + /globals@11.12.0: + resolution: + { integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== } + engines: { node: ">=4" } + dev: false + /gopd@1.0.1: resolution: { integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== } @@ -2866,6 +3167,11 @@ packages: { integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== } dev: false + /growl@1.9.2: + resolution: + { integrity: sha512-RTBwDHhNuOx4F0hqzItc/siXCasGfC4DeWcBamclWd+6jWtBaeB/SGbMkGf0eiQoW7ib8JpvOgnUsmgMHI3Mfw== } + dev: false + /har-schema@2.0.0: resolution: { integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== } @@ -2964,6 +3270,11 @@ packages: minimalistic-crypto-utils: 1.0.1 dev: false + /hosted-git-info@2.8.9: + resolution: + { integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== } + dev: false + /http-cache-semantics@4.1.1: resolution: { integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== } @@ -3086,6 +3397,12 @@ packages: { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } dev: false + /invert-kv@1.0.0: + resolution: + { integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== } + engines: { node: ">=0.10.0" } + dev: false + /ipaddr.js@1.9.1: resolution: { integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== } @@ -3139,6 +3456,14 @@ packages: engines: { node: ">=0.10.0" } dev: false + /is-fullwidth-code-point@1.0.0: + resolution: + { integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== } + engines: { node: ">=0.10.0" } + dependencies: + number-is-nan: 1.0.1 + dev: false + /is-fullwidth-code-point@3.0.0: resolution: { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } @@ -3202,6 +3527,11 @@ packages: { integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== } dev: false + /is-utf8@0.2.1: + resolution: + { integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== } + dev: false + /isarray@0.0.1: resolution: { integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== } @@ -3236,6 +3566,16 @@ packages: "@pkgjs/parseargs": 0.11.0 dev: true + /jade@0.26.3: + resolution: + { integrity: sha512-mkk3vzUHFjzKjpCXeu+IjXeZD+QOTjUUdubgmHtHTDwvAO2ZTkMTTVrapts5CWz3JvJryh/4KWZpjeZrCepZ3A== } + deprecated: Jade has been renamed to pug, please install the latest version of pug instead of jade + hasBin: true + dependencies: + commander: 0.6.1 + mkdirp: 0.3.0 + dev: false + /js-sha3@0.5.7: resolution: { integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== } @@ -3264,6 +3604,13 @@ packages: { integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== } dev: false + /jsesc@2.5.2: + resolution: + { integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== } + engines: { node: ">=4" } + hasBin: true + dev: false + /json-buffer@3.0.1: resolution: { integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== } @@ -3327,6 +3674,13 @@ packages: { integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== } dev: false + /json5@2.2.3: + resolution: + { integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== } + engines: { node: ">=6" } + hasBin: true + dev: false + /jsonfile@4.0.0: resolution: { integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== } @@ -3388,6 +3742,14 @@ packages: json-buffer: 3.0.1 dev: false + /lcid@1.0.0: + resolution: + { integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== } + engines: { node: ">=0.10.0" } + dependencies: + invert-kv: 1.0.0 + dev: false + /level-codec@7.0.1: resolution: { integrity: sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== } @@ -3481,6 +3843,23 @@ packages: wrap-ansi: 8.1.0 dev: false + /load-json-file@1.1.0: + resolution: + { integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== } + engines: { node: ">=0.10.0" } + dependencies: + graceful-fs: 4.2.11 + parse-json: 2.2.0 + pify: 2.3.0 + pinkie-promise: 2.0.1 + strip-bom: 2.0.0 + dev: false + + /lodash.assign@4.2.0: + resolution: + { integrity: sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw== } + dev: false + /lodash.debounce@4.0.8: resolution: { integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== } @@ -3540,6 +3919,11 @@ packages: engines: { node: 14 || >=16.14 } dev: true + /lru-cache@2.7.3: + resolution: + { integrity: sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ== } + dev: false + /lru-cache@5.1.1: resolution: { integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== } @@ -3699,6 +4083,15 @@ packages: { integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== } dev: false + /minimatch@0.3.0: + resolution: + { integrity: sha512-WFX1jI1AaxNTZVOHLBVazwTWKaQjoykSzCBNXB72vDTCzopQGtyP91tKdFK5cv1+qMwPyiTu1HqUriqplI8pcA== } + deprecated: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue + dependencies: + lru-cache: 2.7.3 + sigmund: 1.0.1 + dev: false + /minimatch@3.1.2: resolution: { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } @@ -3722,6 +4115,11 @@ packages: brace-expansion: 2.0.1 dev: true + /minimist@0.0.8: + resolution: + { integrity: sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q== } + dev: false + /minimist@1.2.8: resolution: { integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== } @@ -3757,6 +4155,21 @@ packages: mkdirp: 3.0.1 dev: false + /mkdirp@0.3.0: + resolution: + { integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew== } + deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) + dev: false + + /mkdirp@0.5.1: + resolution: + { integrity: sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA== } + deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) + hasBin: true + dependencies: + minimist: 0.0.8 + dev: false + /mkdirp@0.5.6: resolution: { integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== } @@ -3772,11 +4185,34 @@ packages: hasBin: true dev: false + /mocha@2.5.3: + resolution: + { integrity: sha512-jNt2iEk9FPmZLzL+sm4FNyOIDYXf2wUU6L4Cc8OIKK/kzgMHKPi4YhTZqG4bW4kQVdIv6wutDybRhXfdnujA1Q== } + engines: { node: ">= 0.8.x" } + hasBin: true + dependencies: + commander: 2.3.0 + debug: 2.2.0(supports-color@1.2.0) + diff: 1.4.0 + escape-string-regexp: 1.0.2 + glob: 3.2.11 + growl: 1.9.2 + jade: 0.26.3 + mkdirp: 0.5.1 + supports-color: 1.2.0 + to-iso-string: 0.0.2 + dev: false + /mock-fs@4.14.0: resolution: { integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== } dev: false + /ms@0.7.1: + resolution: + { integrity: sha512-lRLiIR9fSNpnP6TC4v8+4OU7oStC01esuNowdQ34L+Gk8e5Puoc88IqJ+XAY/B3Mn2ZKis8l8HX90oU8ivzUHg== } + dev: false + /ms@2.0.0: resolution: { integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== } @@ -3922,6 +4358,16 @@ packages: abbrev: 1.1.1 dev: false + /normalize-package-data@2.5.0: + resolution: + { integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== } + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: false + /normalize-path@3.0.0: resolution: { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== } @@ -3942,6 +4388,12 @@ packages: path-key: 4.0.0 dev: false + /number-is-nan@1.0.1: + resolution: + { integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== } + engines: { node: ">=0.10.0" } + dev: false + /number-to-bn@1.7.0: resolution: { integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== } @@ -4016,6 +4468,14 @@ packages: mimic-fn: 4.0.0 dev: false + /os-locale@1.4.0: + resolution: + { integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== } + engines: { node: ">=0.10.0" } + dependencies: + lcid: 1.0.0 + dev: false + /os-tmpdir@1.0.2: resolution: { integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== } @@ -4055,6 +4515,14 @@ packages: { integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== } dev: false + /parse-json@2.2.0: + resolution: + { integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== } + engines: { node: ">=0.10.0" } + dependencies: + error-ex: 1.3.2 + dev: false + /parse-json@5.2.0: resolution: { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== } @@ -4088,6 +4556,14 @@ packages: tslib: 2.6.2 dev: false + /path-exists@2.1.0: + resolution: + { integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== } + engines: { node: ">=0.10.0" } + dependencies: + pinkie-promise: 2.0.1 + dev: false + /path-key@3.1.1: resolution: { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } @@ -4118,6 +4594,16 @@ packages: { integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== } dev: false + /path-type@1.1.0: + resolution: + { integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== } + engines: { node: ">=0.10.0" } + dependencies: + graceful-fs: 4.2.11 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: false + /path-type@4.0.0: resolution: { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } @@ -4141,6 +4627,13 @@ packages: sha.js: 2.4.11 dev: false + /pegjs@0.10.0: + resolution: + { integrity: sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow== } + engines: { node: ">=0.10" } + hasBin: true + dev: false + /performance-now@2.1.0: resolution: { integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== } @@ -4164,6 +4657,12 @@ packages: hasBin: true dev: false + /pify@2.3.0: + resolution: + { integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== } + engines: { node: ">=0.10.0" } + dev: false + /pify@3.0.0: resolution: { integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== } @@ -4176,6 +4675,20 @@ packages: engines: { node: ">=10" } dev: false + /pinkie-promise@2.0.1: + resolution: + { integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== } + engines: { node: ">=0.10.0" } + dependencies: + pinkie: 2.0.4 + dev: false + + /pinkie@2.0.4: + resolution: + { integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== } + engines: { node: ">=0.10.0" } + dev: false + /pluralize@8.0.0: resolution: { integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== } @@ -4345,6 +4858,25 @@ packages: unpipe: 1.0.0 dev: false + /read-pkg-up@1.0.1: + resolution: + { integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== } + engines: { node: ">=0.10.0" } + dependencies: + find-up: 1.1.2 + read-pkg: 1.1.0 + dev: false + + /read-pkg@1.1.0: + resolution: + { integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== } + engines: { node: ">=0.10.0" } + dependencies: + load-json-file: 1.1.0 + normalize-package-data: 2.5.0 + path-type: 1.1.0 + dev: false + /readable-stream@1.0.34: resolution: { integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== } @@ -4429,12 +4961,23 @@ packages: uuid: 3.4.0 dev: false + /require-directory@2.1.1: + resolution: + { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== } + engines: { node: ">=0.10.0" } + dev: false + /require-from-string@2.0.2: resolution: { integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== } engines: { node: ">=0.10.0" } dev: false + /require-main-filename@1.0.1: + resolution: + { integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== } + dev: false + /resolve-alpn@1.2.1: resolution: { integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== } @@ -4628,6 +5171,11 @@ packages: - supports-color dev: false + /set-blocking@2.0.0: + resolution: + { integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== } + dev: false + /set-function-length@1.1.1: resolution: { integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== } @@ -4685,6 +5233,11 @@ packages: object-inspect: 1.13.1 dev: false + /sigmund@1.0.1: + resolution: + { integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== } + dev: false + /signal-exit@3.0.7: resolution: { integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== } @@ -4808,6 +5361,42 @@ packages: { integrity: sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== } dev: false + /solidity-parser@0.4.0: + resolution: + { integrity: sha512-kMmbEZ5vDoK+0JFHvC/sVrAB3yQs1u8g+Eeo/Q+G2oAiqCxpKQHgESbOYNBRXYCyXJgtpTlCoNjtpV2x+tfodg== } + hasBin: true + dependencies: + mocha: 2.5.3 + pegjs: 0.10.0 + yargs: 4.8.1 + dev: false + + /spdx-correct@3.2.0: + resolution: + { integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== } + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.16 + dev: false + + /spdx-exceptions@2.3.0: + resolution: + { integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== } + dev: false + + /spdx-expression-parse@3.0.1: + resolution: + { integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== } + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + dev: false + + /spdx-license-ids@3.0.16: + resolution: + { integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== } + dev: false + /sshpk@1.18.0: resolution: { integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== } @@ -4843,6 +5432,16 @@ packages: engines: { node: ">=0.6.19" } dev: false + /string-width@1.0.2: + resolution: + { integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== } + engines: { node: ">=0.10.0" } + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + dev: false + /string-width@4.2.3: resolution: { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } @@ -4880,6 +5479,14 @@ packages: safe-buffer: 5.2.1 dev: false + /strip-ansi@3.0.1: + resolution: + { integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== } + engines: { node: ">=0.10.0" } + dependencies: + ansi-regex: 2.1.1 + dev: false + /strip-ansi@6.0.1: resolution: { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } @@ -4894,6 +5501,14 @@ packages: dependencies: ansi-regex: 6.0.1 + /strip-bom@2.0.0: + resolution: + { integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== } + engines: { node: ">=0.10.0" } + dependencies: + is-utf8: 0.2.1 + dev: false + /strip-final-newline@3.0.0: resolution: { integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== } @@ -4908,6 +5523,13 @@ packages: is-hex-prefixed: 1.0.0 dev: false + /supports-color@1.2.0: + resolution: + { integrity: sha512-mS5xsnjTh5b7f2DM6bch6lR582UCOTphzINlZnDsfpIRrwI6r58rb6YSSGsdexkm8qw2bBVO2ID2fnJOTuLiPA== } + engines: { node: ">=0.10.0" } + hasBin: true + dev: false + /supports-color@5.5.0: resolution: { integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== } @@ -5002,6 +5624,12 @@ packages: engines: { node: ">=4" } dev: false + /to-iso-string@0.0.2: + resolution: + { integrity: sha512-oeHLgfWA7d0CPQa6h0+i5DAJZISz5un0d5SHPkw+Untclcvzv9T+AC3CvGXlZJdOlIbxbTfyyzlqCXc5hjpXYg== } + deprecated: to-iso-string has been deprecated, use @segment/to-iso-string instead. + dev: false + /to-regex-range@5.0.1: resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } @@ -5272,6 +5900,14 @@ packages: { integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== } dev: false + /validate-npm-package-license@3.0.4: + resolution: + { integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== } + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: false + /varint@5.0.2: resolution: { integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== } @@ -5503,7 +6139,7 @@ packages: - supports-color dev: false - /web3-provider-engine@16.0.3: + /web3-provider-engine@16.0.3(@babel/core@7.23.7): resolution: { integrity: sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA== } engines: { node: ">=12.0.0" } @@ -5513,7 +6149,7 @@ packages: backoff: 2.5.0 clone: 2.1.2 cross-fetch: 2.2.6 - eth-block-tracker: 4.4.3 + eth-block-tracker: 4.4.3(@babel/core@7.23.7) eth-json-rpc-filters: 4.2.2 eth-json-rpc-infura: 5.1.0 eth-json-rpc-middleware: 6.0.0 @@ -5654,6 +6290,11 @@ packages: webidl-conversions: 3.0.1 dev: false + /which-module@1.0.0: + resolution: + { integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== } + dev: false + /which-typed-array@1.1.13: resolution: { integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== } @@ -5674,6 +6315,22 @@ packages: dependencies: isexe: 2.0.0 + /window-size@0.2.0: + resolution: + { integrity: sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw== } + engines: { node: ">= 0.10.0" } + hasBin: true + dev: false + + /wrap-ansi@2.1.0: + resolution: + { integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== } + engines: { node: ">=0.10.0" } + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + dev: false + /wrap-ansi@7.0.0: resolution: { integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== } @@ -5788,6 +6445,11 @@ packages: engines: { node: ">=0.4" } dev: false + /y18n@3.2.2: + resolution: + { integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== } + dev: false + /yaeti@0.0.6: resolution: { integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== } @@ -5810,21 +6472,50 @@ packages: engines: { node: ">= 14" } dev: false + /yargs-parser@2.4.1: + resolution: + { integrity: sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA== } + dependencies: + camelcase: 3.0.0 + lodash.assign: 4.2.0 + dev: false + + /yargs@4.8.1: + resolution: + { integrity: sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA== } + dependencies: + cliui: 3.2.0 + decamelize: 1.2.0 + get-caller-file: 1.0.3 + lodash.assign: 4.2.0 + os-locale: 1.4.0 + read-pkg-up: 1.0.1 + require-directory: 2.1.1 + require-main-filename: 1.0.1 + set-blocking: 2.0.0 + string-width: 1.0.2 + which-module: 1.0.0 + window-size: 0.2.0 + y18n: 3.2.2 + yargs-parser: 2.4.1 + dev: false + /yn@3.1.1: resolution: { integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== } engines: { node: ">=6" } dev: false - github.com/GNSPS/solidity-bytes-utils/42221d3ee53aff8888057fb9f3b7a8fc42c290f8: + github.com/GNSPS/solidity-bytes-utils/42221d3ee53aff8888057fb9f3b7a8fc42c290f8(@babel/core@7.23.7): resolution: { tarball: https://codeload.github.com/GNSPS/solidity-bytes-utils/tar.gz/42221d3ee53aff8888057fb9f3b7a8fc42c290f8, } + id: github.com/GNSPS/solidity-bytes-utils/42221d3ee53aff8888057fb9f3b7a8fc42c290f8 name: solidity-bytes-utils version: 0.8.1 dependencies: - "@truffle/hdwallet-provider": 2.1.15 + "@truffle/hdwallet-provider": 2.1.15(@babel/core@7.23.7) transitivePeerDependencies: - "@babel/core" - bufferutil @@ -5855,7 +6546,3 @@ packages: name: forge-std version: 1.5.6 dev: false - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false diff --git a/src/FraxTest.sol b/src/FraxTest.sol index fd31c95..7dc28a1 100644 --- a/src/FraxTest.sol +++ b/src/FraxTest.sol @@ -1,31 +1,16 @@ // SPDX-License-Identifier: ISC pragma solidity >=0.8.0; -import { - console2 as console, - StdAssertions, - StdChains, - StdCheats, - stdError, - StdInvariant, - stdJson, - stdMath, - StdStorage, - stdStorage, - StdUtils, - Vm, - StdStyle, - TestBase, - DSTest, - Test -} from "forge-std/Test.sol"; +import { console2 as console, StdAssertions, StdChains, StdCheats, stdError, StdInvariant, stdJson, stdMath, StdStorage, stdStorage, StdUtils, Vm, StdStyle, TestBase, DSTest, Test } from "forge-std/Test.sol"; import { VmHelper } from "./VmHelper.sol"; abstract contract FraxTest is VmHelper, Test { uint256[] internal snapShotIds; + function()[] internal setupFunctions; modifier useMultipleSetupFunctions() { + require(snapShotIds.length > 0, "No Snapshots to load"); for (uint256 i = 0; i < snapShotIds.length; i++) { if (!vm.revertTo(snapShotIds[i])) { revert VmDidNotRevert(snapShotIds[i]); @@ -40,7 +25,6 @@ abstract contract FraxTest is VmHelper, Test { for (uint256 i = 0; i < _setupFunctions.length; i++) { _setupFunctions[i](); snapShotIds.push(vm.snapshot()); - vm.revertTo(_originalSnapshotId); vm.clearMockedCalls(); } }