diff --git a/CHANGELOG.md b/CHANGELOG.md index 40d2b56..d804062 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.2.0 + +- **Breaking change**: Exposed contracts and functions now use a `$` prefix by default. + +The previous prefix `x` can be restored by configuring the plugin as explained in the README. + ## 0.1.11 - Expose internal variables. diff --git a/README.md b/README.md index d31ed19..a3f794c 100644 --- a/README.md +++ b/README.md @@ -20,18 +20,18 @@ Note: After setting up for the first time, you may need to recompile with `hardh ## Usage -The plugin will create "exposed" versions of your contracts that will be prefixed with an `X`, and its internal functions will be exposed as external functions with an `x` prefix. +The plugin will create "exposed" versions of your contracts that will be prefixed with the symbol `$`, and its internal functions will be exposed as external functions with a `$` prefix as well. These exposed contracts will be created in a `contracts-exposed` directory. We strongly suggest adding this directory to `.gitignore`. If you have a contract called `Foo`, with an internal function called `_get`: ```javascript -const Foo = ethers.getContractFactory('XFoo'); -// or const Foo = artifacts.require('XFoo'); +const Foo = ethers.getContractFactory('$Foo'); +// or const Foo = artifacts.require('$Foo'); const foo = Foo.deploy(); -await foo.x_get(); +await foo.$_get(); ``` The plugin will also generate a constructor to initialize your abstract contracts. @@ -53,7 +53,7 @@ contract C is A, B { In the plugin-generated exposed version of `C`, there will be an additional parameter to initialize `B`. ```solidity -contract XC is C { +contract $C is C { constructor(uint256 b, uint256 c) B(b) C(c) {} } ``` @@ -61,3 +61,11 @@ contract XC is C { The order of parameters in this generated constructor will be according to the linearization of the parent contracts, starting with the most base contract and ending with the most derived one. This order can be unintuitive, so in these cases make sure you test the contract was initialized as desired. Note that if a contract is abstract because it's missing an implementation for a virtual function, the exposed contract will remain abstract too. + +## Configuration + +The prefix can be configured in your Hardhat config. For example, to use the `X`/`x` prefix + +``` +exposed: { prefix: 'x' }, +``` diff --git a/package-lock.json b/package-lock.json index ea9e7c3..8d3a164 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "@types/mocha": "^7.0.2", "@types/node": "^10.17.60", "ava": "^4.0.1", - "ethers": "^5.3.0", + "ethers": "^5.5.4", "hardhat": "^2.3.0", "mocha": "^8.4.0", "rimraf": "^3.0.2", @@ -180,9 +180,9 @@ "dev": true }, "node_modules/@ethersproject/abi": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.3.0.tgz", - "integrity": "sha512-NaT4UacjOwca8qCG/gv8k+DgTcWu49xlrvdhr/p8PTFnoS8e3aMWqjI3znFME5Txa/QWXDrg2/heufIUue9rtw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.5.0.tgz", + "integrity": "sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w==", "dev": true, "funding": [ { @@ -195,21 +195,21 @@ } ], "dependencies": { - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/hash": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "node_modules/@ethersproject/abstract-provider": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.3.0.tgz", - "integrity": "sha512-1+MLhGP1GwxBDBNwMWVmhCsvKwh4gK7oIfOrmlmePNeskg1NhIrYssraJBieaFNHUYfKEd/1DjiVZMw8Qu5Cxw==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz", + "integrity": "sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg==", "dev": true, "funding": [ { @@ -222,19 +222,19 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/networks": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", - "@ethersproject/web": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/networks": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/web": "^5.5.0" } }, "node_modules/@ethersproject/abstract-signer": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.3.0.tgz", - "integrity": "sha512-w8IFwOYqiPrtvosPuArZ3+QPR2nmdVTRrVY8uJYL3NNfMmQfTy3V3l2wbzX47UUlNbPJY+gKvzJAyvK1onZxJg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz", + "integrity": "sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA==", "dev": true, "funding": [ { @@ -247,17 +247,17 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0" + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0" } }, "node_modules/@ethersproject/address": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", - "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.5.0.tgz", + "integrity": "sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw==", "dev": true, "funding": [ { @@ -270,17 +270,17 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/rlp": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/rlp": "^5.5.0" } }, "node_modules/@ethersproject/base64": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.3.0.tgz", - "integrity": "sha512-JIqgtOmgKcbc2sjGWTXyXktqUhvFUDte8fPVsAaOrcPiJf6YotNF+nsrOYGC9pbHBEGSuSBp3QR0varkO8JHEw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.5.0.tgz", + "integrity": "sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA==", "dev": true, "funding": [ { @@ -293,13 +293,13 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0" + "@ethersproject/bytes": "^5.5.0" } }, "node_modules/@ethersproject/basex": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.3.0.tgz", - "integrity": "sha512-8J4nS6t/SOnoCgr3DF5WCSRLC5YwTKYpZWJqeyYQLX+86TwPhtzvHXacODzcDII9tWKhVg6g0Bka8JCBWXsCiQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.5.0.tgz", + "integrity": "sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ==", "dev": true, "funding": [ { @@ -312,14 +312,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/properties": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/properties": "^5.5.0" } }, "node_modules/@ethersproject/bignumber": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", - "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.5.0.tgz", + "integrity": "sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg==", "dev": true, "funding": [ { @@ -332,8 +332,8 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", "bn.js": "^4.11.9" } }, @@ -344,9 +344,9 @@ "dev": true }, "node_modules/@ethersproject/bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", - "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.5.0.tgz", + "integrity": "sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==", "dev": true, "funding": [ { @@ -359,13 +359,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.3.0" + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/constants": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", - "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.5.0.tgz", + "integrity": "sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ==", "dev": true, "funding": [ { @@ -378,13 +378,13 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0" } }, "node_modules/@ethersproject/contracts": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.3.0.tgz", - "integrity": "sha512-eDyQ8ltykvyQqnGZxb/c1e0OnEtzqXhNNC4BX8nhYBCaoBrYYuK/1fLmyEvc5+XUMoxNhwpYkoSSwvPLci7/Zg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.5.0.tgz", + "integrity": "sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg==", "dev": true, "funding": [ { @@ -397,22 +397,22 @@ } ], "dependencies": { - "@ethersproject/abi": "^5.3.0", - "@ethersproject/abstract-provider": "^5.3.0", - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/transactions": "^5.3.0" + "@ethersproject/abi": "^5.5.0", + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/transactions": "^5.5.0" } }, "node_modules/@ethersproject/hash": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", - "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.5.0.tgz", + "integrity": "sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg==", "dev": true, "funding": [ { @@ -425,20 +425,20 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "node_modules/@ethersproject/hdnode": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.3.0.tgz", - "integrity": "sha512-zLmmtLNoDMGoYRdjOab01Zqkvp+TmZyCGDAMQF1Bs3yZyBs/kzTNi1qJjR1jVUcPP5CWGtjFwY8iNG8oNV9J8g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.5.0.tgz", + "integrity": "sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q==", "dev": true, "funding": [ { @@ -451,24 +451,24 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/basex": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/pbkdf2": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/sha2": "^5.3.0", - "@ethersproject/signing-key": "^5.3.0", - "@ethersproject/strings": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", - "@ethersproject/wordlists": "^5.3.0" + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/basex": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/pbkdf2": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/sha2": "^5.5.0", + "@ethersproject/signing-key": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/wordlists": "^5.5.0" } }, "node_modules/@ethersproject/json-wallets": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.3.0.tgz", - "integrity": "sha512-/xwbqaIb5grUIGNmeEaz8GdcpmDr++X8WT4Jqcclnxow8PXCUHFeDxjf3O+nSuoqOYG/Ds0+BI5xuQKbva6Xkw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz", + "integrity": "sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ==", "dev": true, "funding": [ { @@ -481,25 +481,25 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/hdnode": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/pbkdf2": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/random": "^5.3.0", - "@ethersproject/strings": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/hdnode": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/pbkdf2": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/random": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", "aes-js": "3.0.0", "scrypt-js": "3.0.1" } }, "node_modules/@ethersproject/keccak256": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", - "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.5.0.tgz", + "integrity": "sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg==", "dev": true, "funding": [ { @@ -512,20 +512,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "js-sha3": "0.5.7" + "@ethersproject/bytes": "^5.5.0", + "js-sha3": "0.8.0" } }, - "node_modules/@ethersproject/keccak256/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true - }, "node_modules/@ethersproject/logger": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", - "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz", + "integrity": "sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg==", "dev": true, "funding": [ { @@ -539,9 +533,9 @@ ] }, "node_modules/@ethersproject/networks": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.3.0.tgz", - "integrity": "sha512-XGbD9MMgqrR7SYz8o6xVgdG+25v7YT5vQG8ZdlcLj2I7elOBM7VNeQrnxfSN7rWQNcqu2z80OM29gGbQz+4Low==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.5.2.tgz", + "integrity": "sha512-NEqPxbGBfy6O3x4ZTISb90SjEDkWYDUbEeIFhJly0F7sZjoQMnj5KYzMSkMkLKZ+1fGpx00EDpHQCy6PrDupkQ==", "dev": true, "funding": [ { @@ -554,13 +548,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.3.0" + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/pbkdf2": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.3.0.tgz", - "integrity": "sha512-Q9ChVU6gBFiex0FSdtzo4b0SAKz3ZYcYVFLrEWHL0FnHvNk3J3WgAtRNtBQGQYn/T5wkoTdZttMbfBkFlaiWcA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz", + "integrity": "sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg==", "dev": true, "funding": [ { @@ -573,14 +567,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/sha2": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/sha2": "^5.5.0" } }, "node_modules/@ethersproject/properties": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", - "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.5.0.tgz", + "integrity": "sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA==", "dev": true, "funding": [ { @@ -593,13 +587,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.3.0" + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/providers": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.3.0.tgz", - "integrity": "sha512-HtL+DEbzPcRyfrkrMay7Rk/4he+NbUpzI/wHXP4Cqtra82nQOnqqCgTQc4HbdDrl75WVxG/JRMFhyneIPIMZaA==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.5.3.tgz", + "integrity": "sha512-ZHXxXXXWHuwCQKrgdpIkbzMNJMvs+9YWemanwp1fA7XZEv7QlilseysPvQe0D7Q7DlkJX/w/bGA1MdgK2TbGvA==", "dev": true, "funding": [ { @@ -612,31 +606,31 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.3.0", - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/basex": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/hash": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/networks": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/random": "^5.3.0", - "@ethersproject/rlp": "^5.3.0", - "@ethersproject/sha2": "^5.3.0", - "@ethersproject/strings": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", - "@ethersproject/web": "^5.3.0", + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/basex": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/networks": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/random": "^5.5.0", + "@ethersproject/rlp": "^5.5.0", + "@ethersproject/sha2": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/web": "^5.5.0", "bech32": "1.1.4", "ws": "7.4.6" } }, "node_modules/@ethersproject/random": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.3.0.tgz", - "integrity": "sha512-A5SL/4inutSwt3Fh2OD0x2gz+x6GHmuUnIPkR7zAiTidMD2N8F6tZdMF1hlQKWVCcVMWhEQg8mWijhEzm6BBYw==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.5.1.tgz", + "integrity": "sha512-YaU2dQ7DuhL5Au7KbcQLHxcRHfgyNgvFV4sQOo0HrtW3Zkrc9ctWNz8wXQ4uCSfSDsqX2vcjhroxU5RQRV0nqA==", "dev": true, "funding": [ { @@ -649,14 +643,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/rlp": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", - "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.5.0.tgz", + "integrity": "sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA==", "dev": true, "funding": [ { @@ -669,14 +663,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/sha2": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.3.0.tgz", - "integrity": "sha512-r5ftlwKcocYEuFz2JbeKOT5SAsCV4m1RJDsTOEfQ5L67ZC7NFDK5i7maPdn1bx4nPhylF9VAwxSrQ1esmwzylg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.5.0.tgz", + "integrity": "sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==", "dev": true, "funding": [ { @@ -689,15 +683,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", "hash.js": "1.1.7" } }, "node_modules/@ethersproject/signing-key": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.3.0.tgz", - "integrity": "sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.5.0.tgz", + "integrity": "sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng==", "dev": true, "funding": [ { @@ -710,9 +704,9 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", "bn.js": "^4.11.9", "elliptic": "6.5.4", "hash.js": "1.1.7" @@ -725,9 +719,9 @@ "dev": true }, "node_modules/@ethersproject/solidity": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.3.0.tgz", - "integrity": "sha512-uLRBaNUiISHbut94XKewJgQh6UmydWTBp71I7I21pkjVXfZO2dJ5EOo3jCnumJc01M4LOm79dlNNmF3oGIvweQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.5.0.tgz", + "integrity": "sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw==", "dev": true, "funding": [ { @@ -740,17 +734,18 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/sha2": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/sha2": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "node_modules/@ethersproject/strings": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", - "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.5.0.tgz", + "integrity": "sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ==", "dev": true, "funding": [ { @@ -763,15 +758,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/logger": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/transactions": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.3.0.tgz", - "integrity": "sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.5.0.tgz", + "integrity": "sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA==", "dev": true, "funding": [ { @@ -784,21 +779,21 @@ } ], "dependencies": { - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/rlp": "^5.3.0", - "@ethersproject/signing-key": "^5.3.0" + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/rlp": "^5.5.0", + "@ethersproject/signing-key": "^5.5.0" } }, "node_modules/@ethersproject/units": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.3.0.tgz", - "integrity": "sha512-BkfccZGwfJ6Ob+AelpIrgAzuNhrN2VLp3AILnkqTOv+yBdsc83V4AYf25XC/u0rHnWl6f4POaietPwlMqP2vUg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.5.0.tgz", + "integrity": "sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag==", "dev": true, "funding": [ { @@ -811,15 +806,15 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/logger": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "node_modules/@ethersproject/wallet": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.3.0.tgz", - "integrity": "sha512-boYBLydG6671p9QoG6EinNnNzbm7DNOjVT20eV8J6HQEq4aUaGiA2CytF2vK+2rOEWbzhZqoNDt6AlkE1LlsTg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.5.0.tgz", + "integrity": "sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q==", "dev": true, "funding": [ { @@ -832,27 +827,27 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.3.0", - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/hash": "^5.3.0", - "@ethersproject/hdnode": "^5.3.0", - "@ethersproject/json-wallets": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/random": "^5.3.0", - "@ethersproject/signing-key": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", - "@ethersproject/wordlists": "^5.3.0" + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/hdnode": "^5.5.0", + "@ethersproject/json-wallets": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/random": "^5.5.0", + "@ethersproject/signing-key": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/wordlists": "^5.5.0" } }, "node_modules/@ethersproject/web": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.3.0.tgz", - "integrity": "sha512-Ni6/DHnY6k/TD41LEkv0RQDx4jqWz5e/RZvrSecsxGYycF+MFy2z++T/yGc2peRunLOTIFwEksgEGGlbwfYmhQ==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.5.1.tgz", + "integrity": "sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg==", "dev": true, "funding": [ { @@ -865,17 +860,17 @@ } ], "dependencies": { - "@ethersproject/base64": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/base64": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "node_modules/@ethersproject/wordlists": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.3.0.tgz", - "integrity": "sha512-JcwumCZcsUxgWpiFU/BRy6b4KlTRdOmYvOKZcAw/3sdF93/pZyPW5Od2hFkHS8oWp4xS06YQ+qHqQhdcxdHafQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.5.0.tgz", + "integrity": "sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q==", "dev": true, "funding": [ { @@ -888,11 +883,11 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/hash": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "node_modules/@nodelib/fs.scandir": { @@ -4504,9 +4499,9 @@ "dev": true }, "node_modules/ethers": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.3.0.tgz", - "integrity": "sha512-myN+338S4sFQZvQ9trii7xit8Hu/LnUtjA0ROFOHpUreQc3fgLZEMNVqF3vM1u2D78DIIeG1TbuozVCVlXQWvQ==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.5.4.tgz", + "integrity": "sha512-N9IAXsF8iKhgHIC6pquzRgPBJEzc9auw3JoRkaKe+y4Wl/LFBtDDunNe7YmdomontECAcC5APaAgWZBiu1kirw==", "dev": true, "funding": [ { @@ -4519,36 +4514,36 @@ } ], "dependencies": { - "@ethersproject/abi": "5.3.0", - "@ethersproject/abstract-provider": "5.3.0", - "@ethersproject/abstract-signer": "5.3.0", - "@ethersproject/address": "5.3.0", - "@ethersproject/base64": "5.3.0", - "@ethersproject/basex": "5.3.0", - "@ethersproject/bignumber": "5.3.0", - "@ethersproject/bytes": "5.3.0", - "@ethersproject/constants": "5.3.0", - "@ethersproject/contracts": "5.3.0", - "@ethersproject/hash": "5.3.0", - "@ethersproject/hdnode": "5.3.0", - "@ethersproject/json-wallets": "5.3.0", - "@ethersproject/keccak256": "5.3.0", - "@ethersproject/logger": "5.3.0", - "@ethersproject/networks": "5.3.0", - "@ethersproject/pbkdf2": "5.3.0", - "@ethersproject/properties": "5.3.0", - "@ethersproject/providers": "5.3.0", - "@ethersproject/random": "5.3.0", - "@ethersproject/rlp": "5.3.0", - "@ethersproject/sha2": "5.3.0", - "@ethersproject/signing-key": "5.3.0", - "@ethersproject/solidity": "5.3.0", - "@ethersproject/strings": "5.3.0", - "@ethersproject/transactions": "5.3.0", - "@ethersproject/units": "5.3.0", - "@ethersproject/wallet": "5.3.0", - "@ethersproject/web": "5.3.0", - "@ethersproject/wordlists": "5.3.0" + "@ethersproject/abi": "5.5.0", + "@ethersproject/abstract-provider": "5.5.1", + "@ethersproject/abstract-signer": "5.5.0", + "@ethersproject/address": "5.5.0", + "@ethersproject/base64": "5.5.0", + "@ethersproject/basex": "5.5.0", + "@ethersproject/bignumber": "5.5.0", + "@ethersproject/bytes": "5.5.0", + "@ethersproject/constants": "5.5.0", + "@ethersproject/contracts": "5.5.0", + "@ethersproject/hash": "5.5.0", + "@ethersproject/hdnode": "5.5.0", + "@ethersproject/json-wallets": "5.5.0", + "@ethersproject/keccak256": "5.5.0", + "@ethersproject/logger": "5.5.0", + "@ethersproject/networks": "5.5.2", + "@ethersproject/pbkdf2": "5.5.0", + "@ethersproject/properties": "5.5.0", + "@ethersproject/providers": "5.5.3", + "@ethersproject/random": "5.5.1", + "@ethersproject/rlp": "5.5.0", + "@ethersproject/sha2": "5.5.0", + "@ethersproject/signing-key": "5.5.0", + "@ethersproject/solidity": "5.5.0", + "@ethersproject/strings": "5.5.0", + "@ethersproject/transactions": "5.5.0", + "@ethersproject/units": "5.5.0", + "@ethersproject/wallet": "5.5.0", + "@ethersproject/web": "5.5.1", + "@ethersproject/wordlists": "5.5.0" } }, "node_modules/ethjs-unit": { @@ -10739,90 +10734,90 @@ } }, "@ethersproject/abi": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.3.0.tgz", - "integrity": "sha512-NaT4UacjOwca8qCG/gv8k+DgTcWu49xlrvdhr/p8PTFnoS8e3aMWqjI3znFME5Txa/QWXDrg2/heufIUue9rtw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.5.0.tgz", + "integrity": "sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w==", "dev": true, "requires": { - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/hash": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "@ethersproject/abstract-provider": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.3.0.tgz", - "integrity": "sha512-1+MLhGP1GwxBDBNwMWVmhCsvKwh4gK7oIfOrmlmePNeskg1NhIrYssraJBieaFNHUYfKEd/1DjiVZMw8Qu5Cxw==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz", + "integrity": "sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg==", "dev": true, "requires": { - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/networks": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", - "@ethersproject/web": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/networks": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/web": "^5.5.0" } }, "@ethersproject/abstract-signer": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.3.0.tgz", - "integrity": "sha512-w8IFwOYqiPrtvosPuArZ3+QPR2nmdVTRrVY8uJYL3NNfMmQfTy3V3l2wbzX47UUlNbPJY+gKvzJAyvK1onZxJg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz", + "integrity": "sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA==", "dev": true, "requires": { - "@ethersproject/abstract-provider": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0" + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0" } }, "@ethersproject/address": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz", - "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.5.0.tgz", + "integrity": "sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw==", "dev": true, "requires": { - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/rlp": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/rlp": "^5.5.0" } }, "@ethersproject/base64": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.3.0.tgz", - "integrity": "sha512-JIqgtOmgKcbc2sjGWTXyXktqUhvFUDte8fPVsAaOrcPiJf6YotNF+nsrOYGC9pbHBEGSuSBp3QR0varkO8JHEw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.5.0.tgz", + "integrity": "sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0" + "@ethersproject/bytes": "^5.5.0" } }, "@ethersproject/basex": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.3.0.tgz", - "integrity": "sha512-8J4nS6t/SOnoCgr3DF5WCSRLC5YwTKYpZWJqeyYQLX+86TwPhtzvHXacODzcDII9tWKhVg6g0Bka8JCBWXsCiQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.5.0.tgz", + "integrity": "sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/properties": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/properties": "^5.5.0" } }, "@ethersproject/bignumber": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz", - "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.5.0.tgz", + "integrity": "sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", "bn.js": "^4.11.9" }, "dependencies": { @@ -10835,217 +10830,209 @@ } }, "@ethersproject/bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz", - "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.5.0.tgz", + "integrity": "sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==", "dev": true, "requires": { - "@ethersproject/logger": "^5.3.0" + "@ethersproject/logger": "^5.5.0" } }, "@ethersproject/constants": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz", - "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.5.0.tgz", + "integrity": "sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ==", "dev": true, "requires": { - "@ethersproject/bignumber": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0" } }, "@ethersproject/contracts": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.3.0.tgz", - "integrity": "sha512-eDyQ8ltykvyQqnGZxb/c1e0OnEtzqXhNNC4BX8nhYBCaoBrYYuK/1fLmyEvc5+XUMoxNhwpYkoSSwvPLci7/Zg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.5.0.tgz", + "integrity": "sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg==", "dev": true, "requires": { - "@ethersproject/abi": "^5.3.0", - "@ethersproject/abstract-provider": "^5.3.0", - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/transactions": "^5.3.0" + "@ethersproject/abi": "^5.5.0", + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/transactions": "^5.5.0" } }, "@ethersproject/hash": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz", - "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.5.0.tgz", + "integrity": "sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg==", "dev": true, "requires": { - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "@ethersproject/hdnode": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.3.0.tgz", - "integrity": "sha512-zLmmtLNoDMGoYRdjOab01Zqkvp+TmZyCGDAMQF1Bs3yZyBs/kzTNi1qJjR1jVUcPP5CWGtjFwY8iNG8oNV9J8g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.5.0.tgz", + "integrity": "sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q==", "dev": true, "requires": { - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/basex": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/pbkdf2": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/sha2": "^5.3.0", - "@ethersproject/signing-key": "^5.3.0", - "@ethersproject/strings": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", - "@ethersproject/wordlists": "^5.3.0" + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/basex": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/pbkdf2": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/sha2": "^5.5.0", + "@ethersproject/signing-key": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/wordlists": "^5.5.0" } }, "@ethersproject/json-wallets": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.3.0.tgz", - "integrity": "sha512-/xwbqaIb5grUIGNmeEaz8GdcpmDr++X8WT4Jqcclnxow8PXCUHFeDxjf3O+nSuoqOYG/Ds0+BI5xuQKbva6Xkw==", - "dev": true, - "requires": { - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/hdnode": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/pbkdf2": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/random": "^5.3.0", - "@ethersproject/strings": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz", + "integrity": "sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/hdnode": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/pbkdf2": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/random": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", "aes-js": "3.0.0", "scrypt-js": "3.0.1" } }, "@ethersproject/keccak256": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz", - "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.5.0.tgz", + "integrity": "sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "js-sha3": "0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true - } + "@ethersproject/bytes": "^5.5.0", + "js-sha3": "0.8.0" } }, "@ethersproject/logger": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz", - "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz", + "integrity": "sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg==", "dev": true }, "@ethersproject/networks": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.3.0.tgz", - "integrity": "sha512-XGbD9MMgqrR7SYz8o6xVgdG+25v7YT5vQG8ZdlcLj2I7elOBM7VNeQrnxfSN7rWQNcqu2z80OM29gGbQz+4Low==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.5.2.tgz", + "integrity": "sha512-NEqPxbGBfy6O3x4ZTISb90SjEDkWYDUbEeIFhJly0F7sZjoQMnj5KYzMSkMkLKZ+1fGpx00EDpHQCy6PrDupkQ==", "dev": true, "requires": { - "@ethersproject/logger": "^5.3.0" + "@ethersproject/logger": "^5.5.0" } }, "@ethersproject/pbkdf2": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.3.0.tgz", - "integrity": "sha512-Q9ChVU6gBFiex0FSdtzo4b0SAKz3ZYcYVFLrEWHL0FnHvNk3J3WgAtRNtBQGQYn/T5wkoTdZttMbfBkFlaiWcA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz", + "integrity": "sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/sha2": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/sha2": "^5.5.0" } }, "@ethersproject/properties": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz", - "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.5.0.tgz", + "integrity": "sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA==", "dev": true, "requires": { - "@ethersproject/logger": "^5.3.0" + "@ethersproject/logger": "^5.5.0" } }, "@ethersproject/providers": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.3.0.tgz", - "integrity": "sha512-HtL+DEbzPcRyfrkrMay7Rk/4he+NbUpzI/wHXP4Cqtra82nQOnqqCgTQc4HbdDrl75WVxG/JRMFhyneIPIMZaA==", - "dev": true, - "requires": { - "@ethersproject/abstract-provider": "^5.3.0", - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/basex": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/hash": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/networks": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/random": "^5.3.0", - "@ethersproject/rlp": "^5.3.0", - "@ethersproject/sha2": "^5.3.0", - "@ethersproject/strings": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", - "@ethersproject/web": "^5.3.0", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.5.3.tgz", + "integrity": "sha512-ZHXxXXXWHuwCQKrgdpIkbzMNJMvs+9YWemanwp1fA7XZEv7QlilseysPvQe0D7Q7DlkJX/w/bGA1MdgK2TbGvA==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/basex": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/networks": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/random": "^5.5.0", + "@ethersproject/rlp": "^5.5.0", + "@ethersproject/sha2": "^5.5.0", + "@ethersproject/strings": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/web": "^5.5.0", "bech32": "1.1.4", "ws": "7.4.6" } }, "@ethersproject/random": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.3.0.tgz", - "integrity": "sha512-A5SL/4inutSwt3Fh2OD0x2gz+x6GHmuUnIPkR7zAiTidMD2N8F6tZdMF1hlQKWVCcVMWhEQg8mWijhEzm6BBYw==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.5.1.tgz", + "integrity": "sha512-YaU2dQ7DuhL5Au7KbcQLHxcRHfgyNgvFV4sQOo0HrtW3Zkrc9ctWNz8wXQ4uCSfSDsqX2vcjhroxU5RQRV0nqA==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "@ethersproject/rlp": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz", - "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.5.0.tgz", + "integrity": "sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "@ethersproject/sha2": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.3.0.tgz", - "integrity": "sha512-r5ftlwKcocYEuFz2JbeKOT5SAsCV4m1RJDsTOEfQ5L67ZC7NFDK5i7maPdn1bx4nPhylF9VAwxSrQ1esmwzylg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.5.0.tgz", + "integrity": "sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", "hash.js": "1.1.7" } }, "@ethersproject/signing-key": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.3.0.tgz", - "integrity": "sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.5.0.tgz", + "integrity": "sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", "bn.js": "^4.11.9", "elliptic": "6.5.4", "hash.js": "1.1.7" @@ -11060,104 +11047,105 @@ } }, "@ethersproject/solidity": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.3.0.tgz", - "integrity": "sha512-uLRBaNUiISHbut94XKewJgQh6UmydWTBp71I7I21pkjVXfZO2dJ5EOo3jCnumJc01M4LOm79dlNNmF3oGIvweQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.5.0.tgz", + "integrity": "sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw==", "dev": true, "requires": { - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/sha2": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/sha2": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "@ethersproject/strings": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz", - "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.5.0.tgz", + "integrity": "sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/logger": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "@ethersproject/transactions": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.3.0.tgz", - "integrity": "sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.5.0.tgz", + "integrity": "sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA==", "dev": true, "requires": { - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/rlp": "^5.3.0", - "@ethersproject/signing-key": "^5.3.0" + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/rlp": "^5.5.0", + "@ethersproject/signing-key": "^5.5.0" } }, "@ethersproject/units": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.3.0.tgz", - "integrity": "sha512-BkfccZGwfJ6Ob+AelpIrgAzuNhrN2VLp3AILnkqTOv+yBdsc83V4AYf25XC/u0rHnWl6f4POaietPwlMqP2vUg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.5.0.tgz", + "integrity": "sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag==", "dev": true, "requires": { - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/constants": "^5.3.0", - "@ethersproject/logger": "^5.3.0" + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/constants": "^5.5.0", + "@ethersproject/logger": "^5.5.0" } }, "@ethersproject/wallet": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.3.0.tgz", - "integrity": "sha512-boYBLydG6671p9QoG6EinNnNzbm7DNOjVT20eV8J6HQEq4aUaGiA2CytF2vK+2rOEWbzhZqoNDt6AlkE1LlsTg==", - "dev": true, - "requires": { - "@ethersproject/abstract-provider": "^5.3.0", - "@ethersproject/abstract-signer": "^5.3.0", - "@ethersproject/address": "^5.3.0", - "@ethersproject/bignumber": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/hash": "^5.3.0", - "@ethersproject/hdnode": "^5.3.0", - "@ethersproject/json-wallets": "^5.3.0", - "@ethersproject/keccak256": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/random": "^5.3.0", - "@ethersproject/signing-key": "^5.3.0", - "@ethersproject/transactions": "^5.3.0", - "@ethersproject/wordlists": "^5.3.0" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.5.0.tgz", + "integrity": "sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.5.0", + "@ethersproject/abstract-signer": "^5.5.0", + "@ethersproject/address": "^5.5.0", + "@ethersproject/bignumber": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/hdnode": "^5.5.0", + "@ethersproject/json-wallets": "^5.5.0", + "@ethersproject/keccak256": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/random": "^5.5.0", + "@ethersproject/signing-key": "^5.5.0", + "@ethersproject/transactions": "^5.5.0", + "@ethersproject/wordlists": "^5.5.0" } }, "@ethersproject/web": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.3.0.tgz", - "integrity": "sha512-Ni6/DHnY6k/TD41LEkv0RQDx4jqWz5e/RZvrSecsxGYycF+MFy2z++T/yGc2peRunLOTIFwEksgEGGlbwfYmhQ==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.5.1.tgz", + "integrity": "sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg==", "dev": true, "requires": { - "@ethersproject/base64": "^5.3.0", - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/base64": "^5.5.0", + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "@ethersproject/wordlists": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.3.0.tgz", - "integrity": "sha512-JcwumCZcsUxgWpiFU/BRy6b4KlTRdOmYvOKZcAw/3sdF93/pZyPW5Od2hFkHS8oWp4xS06YQ+qHqQhdcxdHafQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.5.0.tgz", + "integrity": "sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.3.0", - "@ethersproject/hash": "^5.3.0", - "@ethersproject/logger": "^5.3.0", - "@ethersproject/properties": "^5.3.0", - "@ethersproject/strings": "^5.3.0" + "@ethersproject/bytes": "^5.5.0", + "@ethersproject/hash": "^5.5.0", + "@ethersproject/logger": "^5.5.0", + "@ethersproject/properties": "^5.5.0", + "@ethersproject/strings": "^5.5.0" } }, "@nodelib/fs.scandir": { @@ -14163,41 +14151,41 @@ } }, "ethers": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.3.0.tgz", - "integrity": "sha512-myN+338S4sFQZvQ9trii7xit8Hu/LnUtjA0ROFOHpUreQc3fgLZEMNVqF3vM1u2D78DIIeG1TbuozVCVlXQWvQ==", - "dev": true, - "requires": { - "@ethersproject/abi": "5.3.0", - "@ethersproject/abstract-provider": "5.3.0", - "@ethersproject/abstract-signer": "5.3.0", - "@ethersproject/address": "5.3.0", - "@ethersproject/base64": "5.3.0", - "@ethersproject/basex": "5.3.0", - "@ethersproject/bignumber": "5.3.0", - "@ethersproject/bytes": "5.3.0", - "@ethersproject/constants": "5.3.0", - "@ethersproject/contracts": "5.3.0", - "@ethersproject/hash": "5.3.0", - "@ethersproject/hdnode": "5.3.0", - "@ethersproject/json-wallets": "5.3.0", - "@ethersproject/keccak256": "5.3.0", - "@ethersproject/logger": "5.3.0", - "@ethersproject/networks": "5.3.0", - "@ethersproject/pbkdf2": "5.3.0", - "@ethersproject/properties": "5.3.0", - "@ethersproject/providers": "5.3.0", - "@ethersproject/random": "5.3.0", - "@ethersproject/rlp": "5.3.0", - "@ethersproject/sha2": "5.3.0", - "@ethersproject/signing-key": "5.3.0", - "@ethersproject/solidity": "5.3.0", - "@ethersproject/strings": "5.3.0", - "@ethersproject/transactions": "5.3.0", - "@ethersproject/units": "5.3.0", - "@ethersproject/wallet": "5.3.0", - "@ethersproject/web": "5.3.0", - "@ethersproject/wordlists": "5.3.0" + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.5.4.tgz", + "integrity": "sha512-N9IAXsF8iKhgHIC6pquzRgPBJEzc9auw3JoRkaKe+y4Wl/LFBtDDunNe7YmdomontECAcC5APaAgWZBiu1kirw==", + "dev": true, + "requires": { + "@ethersproject/abi": "5.5.0", + "@ethersproject/abstract-provider": "5.5.1", + "@ethersproject/abstract-signer": "5.5.0", + "@ethersproject/address": "5.5.0", + "@ethersproject/base64": "5.5.0", + "@ethersproject/basex": "5.5.0", + "@ethersproject/bignumber": "5.5.0", + "@ethersproject/bytes": "5.5.0", + "@ethersproject/constants": "5.5.0", + "@ethersproject/contracts": "5.5.0", + "@ethersproject/hash": "5.5.0", + "@ethersproject/hdnode": "5.5.0", + "@ethersproject/json-wallets": "5.5.0", + "@ethersproject/keccak256": "5.5.0", + "@ethersproject/logger": "5.5.0", + "@ethersproject/networks": "5.5.2", + "@ethersproject/pbkdf2": "5.5.0", + "@ethersproject/properties": "5.5.0", + "@ethersproject/providers": "5.5.3", + "@ethersproject/random": "5.5.1", + "@ethersproject/rlp": "5.5.0", + "@ethersproject/sha2": "5.5.0", + "@ethersproject/signing-key": "5.5.0", + "@ethersproject/solidity": "5.5.0", + "@ethersproject/strings": "5.5.0", + "@ethersproject/transactions": "5.5.0", + "@ethersproject/units": "5.5.0", + "@ethersproject/wallet": "5.5.0", + "@ethersproject/web": "5.5.1", + "@ethersproject/wordlists": "5.5.0" } }, "ethjs-unit": { diff --git a/package.json b/package.json index 4af5364..d2087c5 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@types/mocha": "^7.0.2", "@types/node": "^10.17.60", "ava": "^4.0.1", - "ethers": "^5.3.0", + "ethers": "^5.5.4", "hardhat": "^2.3.0", "mocha": "^8.4.0", "rimraf": "^3.0.2", diff --git a/src/core.test.ts.md b/src/core.test.ts.md index 50d9318..9144ab6 100644 --- a/src/core.test.ts.md +++ b/src/core.test.ts.md @@ -14,206 +14,206 @@ Generated by [AVA](https://avajs.dev). ␊ import "../contracts/Test.sol";␊ ␊ - contract XFoo is Foo {␊ + contract $Foo is Foo {␊ constructor() {}␊ ␊ - function xs() external view returns (Foo.S memory) {␊ + function $s() external view returns (Foo.S memory) {␊ return s;␊ }␊ ␊ - function x_testFoo() external pure returns (uint256) {␊ + function $_testFoo() external pure returns (uint256) {␊ return super._testFoo();␊ }␊ ␊ - function x_testString() external pure returns (string memory) {␊ + function $_testString() external pure returns (string memory) {␊ return super._testString();␊ }␊ ␊ - function x_testStruct() external pure returns (Foo.S memory) {␊ + function $_testStruct() external pure returns (Foo.S memory) {␊ return super._testStruct();␊ }␊ ␊ - function x_testStructStorageOutput() external view returns (Foo.S memory) {␊ + function $_testStructStorageOutput() external view returns (Foo.S memory) {␊ return super._testStructStorageOutput();␊ }␊ }␊ ␊ - contract XBar is Bar {␊ + contract $Bar is Bar {␊ constructor() {}␊ ␊ - function xs() external view returns (Foo.S memory) {␊ + function $s() external view returns (Foo.S memory) {␊ return s;␊ }␊ ␊ - function x_testBar() external pure returns (uint256) {␊ + function $_testBar() external pure returns (uint256) {␊ return super._testBar();␊ }␊ ␊ - function x_testFoo() external pure returns (uint256) {␊ + function $_testFoo() external pure returns (uint256) {␊ return super._testFoo();␊ }␊ ␊ - function x_testString() external pure returns (string memory) {␊ + function $_testString() external pure returns (string memory) {␊ return super._testString();␊ }␊ ␊ - function x_testStruct() external pure returns (Foo.S memory) {␊ + function $_testStruct() external pure returns (Foo.S memory) {␊ return super._testStruct();␊ }␊ ␊ - function x_testStructStorageOutput() external view returns (Foo.S memory) {␊ + function $_testStructStorageOutput() external view returns (Foo.S memory) {␊ return super._testStructStorageOutput();␊ }␊ }␊ ␊ - contract XLib {␊ + contract $Lib {␊ constructor() {}␊ ␊ - function x_testLib() external pure returns (uint256) {␊ + function $_testLib() external pure returns (uint256) {␊ return Lib._testLib();␊ }␊ ␊ - function x_testExt() external pure returns (uint256) {␊ + function $_testExt() external pure returns (uint256) {␊ return Lib._testExt();␊ }␊ }␊ ␊ - abstract contract XIface is Iface {␊ + abstract contract $Iface is Iface {␊ constructor() {}␊ }␊ ␊ - abstract contract XAbs is Abs {␊ + abstract contract $Abs is Abs {␊ constructor() {}␊ }␊ ␊ - contract XConcrete1 is Concrete1 {␊ + contract $Concrete1 is Concrete1 {␊ constructor() {}␊ }␊ ␊ - contract XConcrete2 is Concrete2 {␊ + contract $Concrete2 is Concrete2 {␊ constructor() {}␊ }␊ ␊ - contract XParent1 is Parent1 {␊ + contract $Parent1 is Parent1 {␊ constructor(uint256 x) Parent1(x) {}␊ ␊ - function x_testParent1() external {␊ + function $_testParent1() external {␊ return super._testParent1();␊ }␊ }␊ ␊ - contract XParent2 is Parent2 {␊ + contract $Parent2 is Parent2 {␊ constructor(uint256 y) Parent2(y) {}␊ }␊ ␊ - contract XParent3 is Parent3 {␊ + contract $Parent3 is Parent3 {␊ constructor(uint256 z) Parent3(z) {}␊ }␊ ␊ - contract XChild1 is Child1 {␊ + contract $Child1 is Child1 {␊ constructor(uint256 x) Parent1(x) {}␊ ␊ - function x_testParent1() external {␊ + function $_testParent1() external {␊ return super._testParent1();␊ }␊ }␊ ␊ - contract XChild2 is Child2 {␊ + contract $Child2 is Child2 {␊ constructor(uint256 x, uint256 y) Parent1(x) Parent2(y) {}␊ ␊ - function x_testParent1() external {␊ + function $_testParent1() external {␊ return super._testParent1();␊ }␊ }␊ ␊ - contract XChild3 is Child3 {␊ + contract $Child3 is Child3 {␊ constructor(uint256 x, uint256 y) Parent1(x) Parent2(y) {}␊ ␊ - function x_testParent1() external {␊ + function $_testParent1() external {␊ return super._testParent1();␊ }␊ }␊ ␊ - contract XChild4 is Child4 {␊ + contract $Child4 is Child4 {␊ constructor(uint256 x, uint256 y, uint256 z, uint256 c) Parent1(x) Parent2(y) Parent3(z) Child4(c) {}␊ ␊ - function x_testParent1() external {␊ + function $_testParent1() external {␊ return super._testParent1();␊ }␊ }␊ ␊ - contract XTypes is Types {␊ + contract $Types is Types {␊ constructor() {}␊ ␊ - function x_testEnumType(Types.Enum e) external {␊ + function $_testEnumType(Types.Enum e) external {␊ return super._testEnumType(e);␊ }␊ ␊ - function x_testContractType(Types t) external {␊ + function $_testContractType(Types t) external {␊ return super._testContractType(t);␊ }␊ }␊ ␊ - contract XConstructorStorageLocation is ConstructorStorageLocation {␊ + contract $ConstructorStorageLocation is ConstructorStorageLocation {␊ constructor(string memory name) ConstructorStorageLocation(name) {}␊ }␊ ␊ - contract XChained0 is Chained0 {␊ + contract $Chained0 is Chained0 {␊ constructor() {}␊ ␊ - function x_chained() external {␊ + function $_chained() external {␊ return super._chained();␊ }␊ }␊ ␊ - contract XChained1 is Chained1 {␊ + contract $Chained1 is Chained1 {␊ constructor() {}␊ ␊ - function x_chained() external {␊ + function $_chained() external {␊ return super._chained();␊ }␊ }␊ ␊ - contract XChained2 is Chained2 {␊ + contract $Chained2 is Chained2 {␊ constructor() {}␊ ␊ - function x_chained() external {␊ + function $_chained() external {␊ return super._chained();␊ }␊ }␊ ␊ - contract XWithVars is WithVars {␊ + contract $WithVars is WithVars {␊ constructor() {}␊ ␊ - function xvar1() external view returns (uint256) {␊ + function $var1() external view returns (uint256) {␊ return var1;␊ }␊ ␊ - function xvar2() external view returns (uint256[] memory) {␊ + function $var2() external view returns (uint256[] memory) {␊ return var2;␊ }␊ ␊ - function xvar3(uint256 arg0) external view returns (uint8) {␊ + function $var3(uint256 arg0) external view returns (uint8) {␊ return var3[arg0];␊ }␊ ␊ - function xvar4() external view returns (WithVars.Struct memory) {␊ + function $var4() external view returns (WithVars.Struct memory) {␊ return var4;␊ }␊ ␊ - function xvar5() external view returns (WithVars.Struct[] memory) {␊ + function $var5() external view returns (WithVars.Struct[] memory) {␊ return var5;␊ }␊ ␊ - function xvar6(uint256 arg0) external view returns (WithVars.Struct memory) {␊ + function $var6(uint256 arg0) external view returns (WithVars.Struct memory) {␊ return var6[arg0];␊ }␊ ␊ - function xvar7(uint256 arg0, bool arg1) external view returns (WithVars.Struct memory) {␊ + function $var7(uint256 arg0, bool arg1) external view returns (WithVars.Struct memory) {␊ return var7[arg0][arg1];␊ }␊ ␊ - function xvar8(uint256 arg0, bool arg1) external view returns (WithVars.Struct[] memory) {␊ + function $var8(uint256 arg0, bool arg1) external view returns (WithVars.Struct[] memory) {␊ return var8[arg0][arg1];␊ }␊ }␊ diff --git a/src/core.test.ts.snap b/src/core.test.ts.snap index ad4c1e0..1681f9a 100644 Binary files a/src/core.test.ts.snap and b/src/core.test.ts.snap differ diff --git a/src/core.ts b/src/core.ts index f8ae92e..d1f5469 100644 --- a/src/core.ts +++ b/src/core.ts @@ -21,8 +21,9 @@ const sourcesPath = hre.config.paths.sources; const rootRelativeSourcesPath = path.relative(rootPath, sourcesPath); export const exposedPath = path.join(rootPath, 'contracts-exposed'); const exposedVersionPragma = '>=0.6.0'; +const defaultPrefix = '$'; -export function getExposed(solcOutput: SolcOutput, isUserFile: (sourceName: string) => boolean): Map { +export function getExposed(solcOutput: SolcOutput, isUserFile: (sourceName: string) => boolean, prefix?: string): Map { const res = new Map(); const contractMap = mapContracts(solcOutput); @@ -31,18 +32,18 @@ export function getExposed(solcOutput: SolcOutput, isUserFile: (sourceName: stri continue; } const destPath = path.join(exposedPath, path.relative(rootRelativeSourcesPath, ast.absolutePath)); - res.set(destPath, getExposedFile(destPath, ast, contractMap)); + res.set(destPath, getExposedFile(destPath, ast, contractMap, prefix)); } return res; } -function getExposedFile(absolutePath: string, ast: SourceUnit, contractMap: ContractMap): ResolvedFile { +function getExposedFile(absolutePath: string, ast: SourceUnit, contractMap: ContractMap, prefix?: string): ResolvedFile { const sourceName = path.relative(rootPath, absolutePath); const inputPath = path.relative(path.dirname(absolutePath), ast.absolutePath).replace(/\\/g, '/'); const content: FileContent = { - rawContent: getExposedContent(ast, inputPath, contractMap), + rawContent: getExposedContent(ast, inputPath, contractMap, prefix), imports: [inputPath], versionPragmas: [exposedVersionPragma], }; @@ -59,7 +60,13 @@ function getExposedFile(absolutePath: string, ast: SourceUnit, contractMap: Cont }; } -function getExposedContent(ast: SourceUnit, inputPath: string, contractMap: ContractMap): string { +function getExposedContent(ast: SourceUnit, inputPath: string, contractMap: ContractMap, prefix = defaultPrefix): string { + if (prefix === '' || /^\d|[^0-9a-z_$]/i.test(prefix)) { + throw new Error(`Prefix '${prefix}' is not valid`); + } + + const contractPrefix = prefix.replace(/^./, c => c.toUpperCase()); + return formatLines( ...spaceBetween( ['// SPDX-License-Identifier: UNLICENSED'], @@ -68,7 +75,7 @@ function getExposedContent(ast: SourceUnit, inputPath: string, contractMap: Cont ...Array.from(findAll('ContractDefinition', ast), c => { const isLibrary = c.contractKind === 'library'; - const contractHeader = [`contract X${c.name}`]; + const contractHeader = [`contract ${contractPrefix}${c.name}`]; if (!areFunctionsFullyImplemented(c, contractMap)) { contractHeader.unshift('abstract'); } @@ -85,7 +92,7 @@ function getExposedContent(ast: SourceUnit, inputPath: string, contractMap: Cont return [ [ 'function', - `x${v.name}(${getVarGetterArgs(v).map(a => `${a.type} ${a.name}`).join(', ')})`, + `${prefix}${v.name}(${getVarGetterArgs(v).map(a => `${a.type} ${a.name}`).join(', ')})`, 'external', 'view', 'returns', @@ -102,7 +109,7 @@ function getExposedContent(ast: SourceUnit, inputPath: string, contractMap: Cont const args = getFunctionArguments(fn); const header = [ 'function', - `x${fn.name}(${args.map(a => `${a.type} ${a.name}`)})`, + `${prefix}${fn.name}(${args.map(a => `${a.type} ${a.name}`)})`, 'external', ]; if (fn.stateMutability !== 'nonpayable') { diff --git a/src/plugin.test.ts b/src/plugin.test.ts index 495247b..b3375a6 100644 --- a/src/plugin.test.ts +++ b/src/plugin.test.ts @@ -6,30 +6,30 @@ import { BigNumber } from 'ethers'; import hre from 'hardhat'; test('ethers', async t => { - const Foo = await hre.ethers.getContractFactory('XFoo'); + const Foo = await hre.ethers.getContractFactory('$Foo'); const foo = await Foo.deploy(); - t.is((await foo.x_testFoo()).toHexString(), '0x0f00'); + t.is((await foo.$_testFoo()).toHexString(), '0x0f00'); - const XWithVars = await hre.ethers.getContractFactory('XWithVars'); - const withVars = await XWithVars.deploy(); - t.is((await withVars.xvar1()).toNumber(), 55); - t.deepEqual(await withVars.xvar2(), [BigNumber.from(1), BigNumber.from(2), BigNumber.from(3)]); - t.is((await withVars.xvar3(1)), 2); - t.like(await withVars.xvar4(), { a: BigNumber.from(1) }); - t.like(await withVars.xvar5(), { + const WithVars = await hre.ethers.getContractFactory('$WithVars'); + const withVars = await WithVars.deploy(); + t.is((await withVars.$var1()).toNumber(), 55); + t.deepEqual(await withVars.$var2(), [BigNumber.from(1), BigNumber.from(2), BigNumber.from(3)]); + t.is((await withVars.$var3(1)), 2); + t.like(await withVars.$var4(), { a: BigNumber.from(1) }); + t.like(await withVars.$var5(), { 0: { a: BigNumber.from(1) }, 1: { a: BigNumber.from(2) }, 2: { a: BigNumber.from(3) }, }); - t.like(await withVars.xvar6(1), { a: BigNumber.from(2) }); - t.like(await withVars.xvar7(1, true), { a: BigNumber.from(10) }); - t.like(await withVars.xvar8(1, true), { + t.like(await withVars.$var6(1), { a: BigNumber.from(2) }); + t.like(await withVars.$var7(1, true), { a: BigNumber.from(10) }); + t.like(await withVars.$var8(1, true), { 0: { a: BigNumber.from(11) }, }); }); test('truffle', async t => { - const XFoo = hre.artifacts.require('XFoo'); - const foo = await XFoo.new(); - t.is((await foo.x_testFoo()).toString('hex'), 'f00'); + const Foo = hre.artifacts.require('$Foo'); + const foo = await Foo.new(); + t.is((await foo.$_testFoo()).toString('hex'), 'f00'); }); diff --git a/src/plugin.ts b/src/plugin.ts index 3b577fc..114f7f2 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -1,4 +1,4 @@ -import { task } from 'hardhat/config'; +import { extendConfig, task } from 'hardhat/config'; import { TASK_COMPILE_SOLIDITY_COMPILE, TASK_COMPILE_SOLIDITY_COMPILE_JOB, @@ -7,6 +7,10 @@ import { } from 'hardhat/builtin-tasks/task-names'; import type { CompilationJob, CompilerInput, CompilerOutput, SolcBuild } from 'hardhat/types'; +extendConfig((config, userConfig) => { + config.exposed = userConfig.exposed ?? {}; +}); + task(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS, async (_0, _1, superCall: () => Promise) => { const path = await import('path'); const { exposedPath } = await import('./core'); @@ -63,7 +67,7 @@ async function getExposedJob(compilationJob: CompilationJob, output: CompilerOut const inputFiles = Object.fromEntries(compilationJob.getResolvedFiles().map(rf => [rf.sourceName, rf.absolutePath])); const isUserFile = (sourceName: string) => Boolean(inputFiles[sourceName]?.startsWith(hre.config.paths.sources)); - const exposed = getExposed(output, isUserFile); + const exposed = getExposed(output, isUserFile, hre.config.exposed.prefix); const cj: CompilationJob = { getResolvedFiles: () => [...exposed.values()], diff --git a/src/type-extensions.ts b/src/type-extensions.ts new file mode 100644 index 0000000..62eded3 --- /dev/null +++ b/src/type-extensions.ts @@ -0,0 +1,16 @@ +import "hardhat/types/config"; +import "hardhat/types/runtime"; + +declare module "hardhat/types/config" { + export interface HardhatUserConfig { + exposed?: { + prefix?: string; + }; + } + + export interface HardhatConfig { + exposed: { + prefix?: string; + }; + } +}