diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 383d73b65..2dacf0a14 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -15,7 +15,6 @@ jobs: uses: actions/checkout@v2 with: ref: develop - submodules: "recursive" - name: Install nix uses: cachix/install-nix-action@v13 diff --git a/.github/workflows/publish-npm.yaml b/.github/workflows/publish-npm.yaml new file mode 100644 index 000000000..badd8350c --- /dev/null +++ b/.github/workflows/publish-npm.yaml @@ -0,0 +1,28 @@ +name: Publish npm package + +on: + create: + tags: ["v[0-9]+.[0-9]+.[0-9]+*"] + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Checkout + uses: actions/checkout@v2 + with: + token: ${{ secrets.ACCESS_TOKEN }} + + - name: Install nix + uses: cachix/install-nix-action@v13 + with: + nix_path: nixpkgs=channel:nixos-unstable + + - name: Prepack for npm + run: nix-shell --run prepack + + - name: Publish to npm + run: nix-shell --run publish diff --git a/.gitignore b/.gitignore index 7f8996b27..c32597957 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ bin !dist/**/artifacts docs/api bin +*.tgz +.npmrc \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index a53576587..e69de29bb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "contracts/configurable-rights-pool"] - path = contracts/configurable-rights-pool - url = git@github.com:balancer-labs/configurable-rights-pool.git \ No newline at end of file diff --git a/README.md b/README.md index 8d69be5a4..97ddaf048 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,44 @@ Rain Protocol supports fair value capture for intangible or physical assets in a permissionless way in any decentralised environment. -Documentation can be found [here](https://beehive-innovation.github.io/rain-protocol). +## Installation + +```console +npm install rain-protocol +``` -## Development setup (contributors) +## Usage -### Git submodules +### Importing contracts -As we are wrapping balancer contracts, we have git submodules pointing to their repositories. +```solidity +pragma solidity ^0.6.12; + +import "rain-protocol/contracts/ReadWriteTier.sol"; + +contract MyContract is ReadWriteTier { + ... +} +``` -When you clone this repository make sure to use `--recurse-submodules` +### Importing contract [artifact](https://hardhat.org/guides/compile-contracts.html#artifacts) (e.g. abi, bytecode) +```typescript +const trustJson = require("rain-protocol/artifacts/Trust.json"); ``` -git clone --recurse-submodules git@github.com:thedavidmeister/tv-balancer.git + +### Using with [TypeChain](https://github.com/dethcrypto/TypeChain) + +```typescript +import type { Trust } from "rain-protocol/typechain/Trust"; ``` +## Documentation + +Documentation can be found [here](https://beehive-innovation.github.io/rain-protocol). + +## Development setup (for contributors) + ### Nix Shell Install the nix shell if you haven't already. diff --git a/contracts/RedeemableERC20Pool.sol b/contracts/RedeemableERC20Pool.sol index d458e4aad..c854e6d99 100644 --- a/contracts/RedeemableERC20Pool.sol +++ b/contracts/RedeemableERC20Pool.sol @@ -9,23 +9,23 @@ import { Math } from "@openzeppelin/contracts/math/Math.sol"; import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/SafeERC20.sol"; -import { IBPool } from "./configurable-rights-pool/contracts/IBFactory.sol"; -import { BPool } from "./configurable-rights-pool/contracts/test/BPool.sol"; +import { IBPool } from "configurable-rights-pool/contracts/IBFactory.sol"; +import { BPool } from "configurable-rights-pool/contracts/test/BPool.sol"; import { RightsManager -} from "./configurable-rights-pool/libraries/RightsManager.sol"; +} from "configurable-rights-pool/libraries/RightsManager.sol"; import { BalancerConstants -} from "./configurable-rights-pool/libraries/BalancerConstants.sol"; +} from "configurable-rights-pool/libraries/BalancerConstants.sol"; import { ConfigurableRightsPool -} from "./configurable-rights-pool/contracts/ConfigurableRightsPool.sol"; +} from "configurable-rights-pool/contracts/ConfigurableRightsPool.sol"; import { CRPFactory -} from "./configurable-rights-pool/contracts/CRPFactory.sol"; +} from "configurable-rights-pool/contracts/CRPFactory.sol"; import { BFactory -} from "./configurable-rights-pool/contracts/test/BFactory.sol"; +} from "configurable-rights-pool/contracts/test/BFactory.sol"; import { Phase, Phased } from "./Phased.sol"; import { RedeemableERC20 } from "./RedeemableERC20.sol"; diff --git a/contracts/RedeemableERC20PoolFactory.sol b/contracts/RedeemableERC20PoolFactory.sol index 0acfe42b9..735e54749 100644 --- a/contracts/RedeemableERC20PoolFactory.sol +++ b/contracts/RedeemableERC20PoolFactory.sol @@ -10,10 +10,10 @@ import { } from "./RedeemableERC20Pool.sol"; import { CRPFactory -} from "./configurable-rights-pool/contracts/CRPFactory.sol"; +} from "configurable-rights-pool/contracts/CRPFactory.sol"; import { BFactory -} from "./configurable-rights-pool/contracts/test/BFactory.sol"; +} from "configurable-rights-pool/contracts/test/BFactory.sol"; import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import { RedeemableERC20 } from "./RedeemableERC20.sol"; diff --git a/contracts/Trust.sol b/contracts/Trust.sol index d355f9355..397451e34 100644 --- a/contracts/Trust.sol +++ b/contracts/Trust.sol @@ -15,10 +15,10 @@ import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/SafeERC20.sol"; import { CRPFactory -} from "./configurable-rights-pool/contracts/CRPFactory.sol"; +} from "configurable-rights-pool/contracts/CRPFactory.sol"; import { BFactory -} from "./configurable-rights-pool/contracts/test/BFactory.sol"; +} from "configurable-rights-pool/contracts/test/BFactory.sol"; import { ITier } from "./tier/ITier.sol"; diff --git a/contracts/configurable-rights-pool b/contracts/configurable-rights-pool deleted file mode 160000 index 5bd63657a..000000000 --- a/contracts/configurable-rights-pool +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5bd63657ac71a9e5f8484ea561de572193b3317b diff --git a/package-lock.json b/package-lock.json index 4224360f2..7bdf2167f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "tv-balancer", - "version": "1.0.0", + "name": "rain-protocol", + "version": "0.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -17,7 +17,6 @@ "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", - "dev": true, "requires": { "@babel/types": "^7.12.5" } @@ -25,14 +24,12 @@ "@babel/helper-plugin-utils": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" }, "@babel/helper-validator-identifier": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" }, "@babel/highlight": { "version": "7.10.4", @@ -49,7 +46,6 @@ "version": "7.12.10", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz", "integrity": "sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA==", - "dev": true, "requires": { "@babel/helper-module-imports": "^7.12.5", "@babel/helper-plugin-utils": "^7.10.4", @@ -59,8 +55,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, @@ -68,7 +63,6 @@ "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -77,7 +71,6 @@ "version": "7.12.12", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", @@ -836,6 +829,7 @@ "version": "2.0.22", "resolved": "https://registry.npmjs.org/@maticnetwork/maticjs/-/maticjs-2.0.22.tgz", "integrity": "sha512-NpwANbM2Xs9Fj44diy/YE/h692W6duaeN0aIaw+QSiwKkegOzXdAmYhF+IeqjZedhV85ishO1eQf8SARxBtwRg==", + "dev": true, "requires": { "@maticnetwork/meta": "^2.4.3", "@types/bluebird": "^3.5.29", @@ -857,14 +851,16 @@ "bn.js": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.0.0.tgz", - "integrity": "sha512-bVwDX8AF+72fIUNuARelKAlQUNtPOfG2fRxorbVvFk4zpHbqLrPdOGfVg5vrKwVzLLePqPBiATaOZNELQzmS0A==" + "integrity": "sha512-bVwDX8AF+72fIUNuARelKAlQUNtPOfG2fRxorbVvFk4zpHbqLrPdOGfVg5vrKwVzLLePqPBiATaOZNELQzmS0A==", + "dev": true } } }, "@maticnetwork/meta": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/@maticnetwork/meta/-/meta-2.4.5.tgz", - "integrity": "sha512-fSU3mkmPpzuqK1A35i7MhHDp9pjK+IywA9dNMpKomcTEogXiREWsgUQOxvveHFBbWa8OhOhIba4ISSjSPFYi6Q==" + "integrity": "sha512-fSU3mkmPpzuqK1A35i7MhHDp9pjK+IywA9dNMpKomcTEogXiREWsgUQOxvveHFBbWa8OhOhIba4ISSjSPFYi6Q==", + "dev": true }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -1382,7 +1378,8 @@ "@polka/url": { "version": "1.0.0-next.11", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.11.tgz", - "integrity": "sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA==" + "integrity": "sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA==", + "dev": true }, "@remixproject/plugin": { "version": "0.3.0-beta.5", @@ -1755,7 +1752,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.2.1.tgz", "integrity": "sha512-EijX9JgcR3IaM1978ysHqJpObZNBgFWyBPzwy7YxMfWUaCp6PyM/g2w/b/DGmMHT56D56KVu+1PtHpEG0sbjtg==", - "dev": true, "requires": { "@trufflesuite/web3-provider-engine": "15.0.13-1", "@types/web3": "^1.0.20", @@ -1773,7 +1769,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.2.2.tgz", "integrity": "sha512-eFiYJKggNrOl0nsD+9cMh2MLk4zVBfXfGnVeRFbpiZzBE20eet4KLA3fXcjSuHaBn0RnQzwLAGdgzgzdet4C0A==", - "dev": true, "requires": { "web3": "*" } @@ -1781,14 +1776,12 @@ "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "ethereumjs-util": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -1805,7 +1798,6 @@ "version": "4.1.2-1", "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", - "dev": true, "requires": { "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", "await-semaphore": "^0.1.3", @@ -1819,7 +1811,6 @@ "version": "4.0.3-0", "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", - "dev": true, "requires": { "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", "cross-fetch": "^2.1.1", @@ -1831,7 +1822,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "dev": true, "requires": { "fast-safe-stringify": "^2.0.6" } @@ -1842,7 +1832,6 @@ "version": "4.4.2-1", "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", - "dev": true, "requires": { "@trufflesuite/eth-sig-util": "^1.4.2", "btoa": "^1.2.1", @@ -1864,7 +1853,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", - "dev": true, "requires": { "fast-safe-stringify": "^2.0.6" } @@ -1872,14 +1860,12 @@ "ethereum-common": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "dev": true + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" }, "ethereumjs-block": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "dev": true, "requires": { "async": "^2.0.1", "ethereum-common": "0.2.0", @@ -1894,7 +1880,6 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", - "dev": true, "requires": { "ethereumjs-abi": "^0.6.8", "ethereumjs-util": "^5.1.1" @@ -1903,14 +1888,12 @@ "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "ethereumjs-abi": { "version": "0.6.8", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dev": true, "requires": { "bn.js": "^4.11.8", "ethereumjs-util": "^6.0.0" @@ -1920,7 +1903,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -1939,7 +1921,6 @@ "version": "15.0.13-1", "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-1.tgz", "integrity": "sha512-6u3x/iIN5fyj8pib5QTUDmIOUiwAGhaqdSTXdqCu6v9zo2BEwdCqgEJd1uXDh3DBmPRDfiZ/ge8oUPy7LerpHg==", - "dev": true, "requires": { "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", @@ -1968,14 +1949,12 @@ "ethereum-common": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "dev": true + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" }, "ethereumjs-block": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "dev": true, "requires": { "async": "^2.0.1", "ethereum-common": "0.2.0", @@ -1987,14 +1966,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -2008,14 +1985,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -2024,7 +1999,6 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "dev": true, "requires": { "async-limiter": "~1.0.0" } @@ -2075,7 +2049,8 @@ "@types/bluebird": { "version": "3.5.33", "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.33.tgz", - "integrity": "sha512-ndEo1xvnYeHxm7I/5sF6tBvnsA4Tdi3zj1keRKRs12SP+2ye2A27NDJ1B6PqkfMbGAcT+mqQVqbZRIrhfOp5PQ==" + "integrity": "sha512-ndEo1xvnYeHxm7I/5sF6tBvnsA4Tdi3zj1keRKRs12SP+2ye2A27NDJ1B6PqkfMbGAcT+mqQVqbZRIrhfOp5PQ==", + "dev": true }, "@types/bn.js": { "version": "4.11.5", @@ -2256,12 +2231,14 @@ "@types/underscore": { "version": "1.10.24", "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.10.24.tgz", - "integrity": "sha512-T3NQD8hXNW2sRsSbLNjF/aBo18MyJlbw0lSpQHB/eZZtScPdexN4HSa8cByYwTw9Wy7KuOFr81mlDQcQQaZ79w==" + "integrity": "sha512-T3NQD8hXNW2sRsSbLNjF/aBo18MyJlbw0lSpQHB/eZZtScPdexN4HSa8cByYwTw9Wy7KuOFr81mlDQcQQaZ79w==", + "dev": true }, "@types/web3": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.0.19.tgz", "integrity": "sha512-fhZ9DyvDYDwHZUp5/STa9XW2re0E8GxoioYJ4pEUZ13YHpApSagixj7IAdoYH5uAK+UalGq6Ml8LYzmgRA/q+A==", + "dev": true, "requires": { "@types/bn.js": "*", "@types/underscore": "*" @@ -2337,8 +2314,7 @@ "aes-js": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", - "dev": true + "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" }, "agent-base": { "version": "6.0.2", @@ -2396,11 +2372,15 @@ "integrity": "sha512-haHyTW7Y9joE5MVs37P2lNYfU2RWBLfcRDD8OWldcdZm5TiCE91B5Xl1oWSwiDUSd4rlExpt2pu1fksYQjRBYQ==", "dev": true }, + "antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==" + }, "any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" }, "anymatch": { "version": "3.1.1", @@ -2586,7 +2566,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, "requires": { "async": "^2.4.0" } @@ -2638,8 +2617,7 @@ "await-semaphore": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz", - "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==", - "dev": true + "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==" }, "aws-sign2": { "version": "0.7.0", @@ -2655,6 +2633,7 @@ "version": "0.21.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "dev": true, "requires": { "follow-redirects": "^1.10.0" } @@ -2663,7 +2642,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", - "dev": true, "requires": { "precond": "0.2" } @@ -2671,8 +2649,17 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "balancer-core": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/balancer-core/-/balancer-core-0.0.8.tgz", + "integrity": "sha512-XXX14gqmUP6ezA/d/aSBgTb9guxUGol/pbM3ItbXypqgqsy/j/boWVw9ySy1jgrjKUMXo4+6QhS+cL9QJQRCmw==", + "requires": { + "decimal.js": "^10.2.0", + "ganache-cli": "^6.7.0", + "global": "^4.4.0" + } }, "base": { "version": "0.11.2", @@ -2778,7 +2765,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, "requires": { "file-uri-to-path": "1.0.0" } @@ -2863,7 +2849,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2989,8 +2974,7 @@ "btoa": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "dev": true + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" }, "buffer": { "version": "5.7.1", @@ -3026,8 +3010,7 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-to-arraybuffer": { "version": "0.0.5", @@ -3215,7 +3198,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", - "dev": true, "requires": { "functional-red-black-tree": "^1.0.1" } @@ -3279,6 +3261,11 @@ "safe-buffer": "^5.0.1" } }, + "circular": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/circular/-/circular-1.0.5.tgz", + "integrity": "sha1-fad6+Yu96c5LWzWM1Va13e0tMUk=" + }, "class-is": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", @@ -3324,6 +3311,26 @@ } } }, + "cli-color": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz", + "integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==", + "requires": { + "ansi-regex": "^2.1.1", + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "memoizee": "^0.4.14", + "timers-ext": "^0.1.5" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -3333,6 +3340,20 @@ "restore-cursor": "^2.0.0" } }, + "cli-logger": { + "version": "0.5.40", + "resolved": "https://registry.npmjs.org/cli-logger/-/cli-logger-0.5.40.tgz", + "integrity": "sha1-CX8OEbByx8aYomxH9YiinCC0iws=", + "requires": { + "circular": "^1.0.5", + "cli-util": "~1.1.27" + } + }, + "cli-regexp": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-regexp/-/cli-regexp-0.1.2.tgz", + "integrity": "sha1-a82TsJ+y7RAl0woRVdWZeVSlNRI=" + }, "cli-table3": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", @@ -3344,6 +3365,14 @@ "string-width": "^2.1.1" } }, + "cli-util": { + "version": "1.1.27", + "resolved": "https://registry.npmjs.org/cli-util/-/cli-util-1.1.27.tgz", + "integrity": "sha1-QtaeNqBAoyH8nPhRwVE8rcUJMFQ=", + "requires": { + "cli-regexp": "~0.1.0" + } + }, "cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", @@ -3392,8 +3421,7 @@ "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "clone-response": { "version": "1.0.2", @@ -3512,8 +3540,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -3565,10 +3592,96 @@ } } }, + "configurable-rights-pool": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/configurable-rights-pool/-/configurable-rights-pool-0.0.2.tgz", + "integrity": "sha512-gbVF45ysoz785+ZCRuSoZJanGwHEJIw11w8weMhVryvw4yag4ixRChYVl+e+SbxU0TvFWFyRbsxvFb39Wh7JfA==", + "requires": { + "@truffle/hdwallet-provider": "^1.0.43", + "decimal.js": "^10.2.0", + "dotenv": "^8.2.0", + "ethers": "^4.0.40", + "ganache-cli": "^6.7.0", + "truffle-plugin-verify": "^0.4.0", + "yarn": "^1.22.5" + }, + "dependencies": { + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "requires": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + } + } + }, "console-clear": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", - "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==" + "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==", + "dev": true }, "content-disposition": { "version": "0.5.3", @@ -3705,7 +3818,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.3.tgz", "integrity": "sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw==", - "dev": true, "requires": { "node-fetch": "2.1.2", "whatwg-fetch": "2.0.4" @@ -3714,8 +3826,7 @@ "node-fetch": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", - "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=", - "dev": true + "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" } } }, @@ -3816,6 +3927,11 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -3925,6 +4041,11 @@ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, + "delay": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-4.3.0.tgz", + "integrity": "sha512-Lwaf3zVFDMBop1yDuFZ19F9WyGcZcGacsbdlZtWjQmM50tOcMntm1njF/Nb/Vjij3KaSvCF+sEYGKrrjObu2NA==" + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -4018,6 +4139,11 @@ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, + "dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" + }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", @@ -4084,7 +4210,8 @@ "encode-utf8": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", - "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -4095,7 +4222,6 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, "requires": { "iconv-lite": "^0.6.2" }, @@ -4104,7 +4230,6 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -4288,6 +4413,17 @@ "ext": "^1.1.2" } }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -4489,7 +4625,6 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", - "dev": true, "requires": { "@babel/plugin-transform-runtime": "^7.5.5", "@babel/runtime": "^7.5.5", @@ -4885,7 +5020,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz", "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==", - "dev": true, "requires": { "fast-safe-stringify": "^2.0.6" } @@ -4914,7 +5048,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", - "dev": true, "requires": { "json-rpc-random-id": "^1.0.0", "xtend": "^4.0.1" @@ -4924,7 +5057,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", - "dev": true, "requires": { "fast-safe-stringify": "^2.0.6" } @@ -4933,6 +5065,7 @@ "version": "2.5.3", "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.3.tgz", "integrity": "sha512-KpXbCKmmBUNUTGh9MRKmNkIPietfhzBqqYqysDavLseIiMUGl95k6UcPEkALAZlj41e9E6yioYXc1PC333RKqw==", + "dev": true, "requires": { "buffer": "^5.2.1", "elliptic": "^6.4.0", @@ -5017,8 +5150,7 @@ "ethereum-protocol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", - "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==", - "dev": true + "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==" }, "ethereum-waffle": { "version": "3.2.1", @@ -5037,6 +5169,7 @@ "version": "0.6.5", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz", "integrity": "sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE=", + "dev": true, "requires": { "bn.js": "^4.10.0", "ethereumjs-util": "^4.3.0" @@ -5045,12 +5178,14 @@ "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true }, "ethereumjs-util": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz", "integrity": "sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w==", + "dev": true, "requires": { "bn.js": "^4.8.0", "create-hash": "^1.1.2", @@ -5065,7 +5200,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dev": true, "requires": { "ethereumjs-util": "^5.0.0", "rlp": "^2.0.0", @@ -5204,7 +5338,6 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "dev": true, "requires": { "async": "^2.1.2", "async-eventemitter": "^0.2.2", @@ -5222,14 +5355,12 @@ "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "ethereumjs-util": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -5246,7 +5377,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.1.tgz", "integrity": "sha512-3Z5g1hG1das0JWU6cQ9HWWTY2nt9nXCcwj7eXVNAHKbo00XAZO8+NHlwdgXDWrL0SXVQMvTWN8Q/82DRH/JhPw==", - "dev": true, "requires": { "aes-js": "^3.1.1", "bs58check": "^2.1.2", @@ -5262,7 +5392,6 @@ "version": "7.0.7", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.7.tgz", "integrity": "sha512-vU5rtZBlZsgkTw3o6PDKyB8li2EgLavnAbsKcfsH2YhHH1Le+PP8vEiMnAnvgc1B6uMoaM5GDCrVztBw0Q5K9g==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^5.1.2", @@ -5356,6 +5485,15 @@ "strip-hex-prefix": "1.0.0" } }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", @@ -5370,8 +5508,7 @@ "events": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" }, "evp_bytestokey": { "version": "1.0.3", @@ -5696,7 +5833,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", - "dev": true, "requires": { "checkpoint-store": "^1.1.0" } @@ -5766,8 +5902,7 @@ "fast-safe-stringify": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", - "dev": true + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" }, "fastq": { "version": "1.12.0", @@ -5782,7 +5917,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", - "dev": true, "requires": { "node-fetch": "~1.7.1" }, @@ -5791,7 +5925,6 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, "requires": { "encoding": "^0.1.11", "is-stream": "^1.0.1" @@ -5820,8 +5953,7 @@ "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "fill-range": { "version": "7.0.1", @@ -5977,6 +6109,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz", "integrity": "sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw=", + "dev": true, "requires": { "imul": "^1.0.0" } @@ -5984,7 +6117,8 @@ "follow-redirects": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==" + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "dev": true }, "for-each": { "version": "0.3.3", @@ -6081,8 +6215,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", @@ -6105,7 +6238,6 @@ "version": "6.12.2", "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz", "integrity": "sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw==", - "dev": true, "requires": { "ethereumjs-util": "6.2.1", "source-map-support": "0.5.12", @@ -6116,7 +6248,6 @@ "version": "4.11.6", "resolved": false, "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, "requires": { "@types/node": "*" } @@ -6124,14 +6255,12 @@ "@types/node": { "version": "14.11.2", "resolved": false, - "integrity": "sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA==", - "dev": true + "integrity": "sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA==" }, "@types/pbkdf2": { "version": "3.1.0", "resolved": false, "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dev": true, "requires": { "@types/node": "*" } @@ -6140,7 +6269,6 @@ "version": "4.0.1", "resolved": false, "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", - "dev": true, "requires": { "@types/node": "*" } @@ -6148,14 +6276,12 @@ "ansi-regex": { "version": "4.1.0", "resolved": false, - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "ansi-styles": { "version": "3.2.1", "resolved": false, "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -6164,7 +6290,6 @@ "version": "3.0.8", "resolved": false, "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -6172,26 +6297,22 @@ "blakejs": { "version": "1.1.0", "resolved": false, - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=", - "dev": true + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" }, "bn.js": { "version": "4.11.9", "resolved": false, - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "brorand": { "version": "1.1.0", "resolved": false, - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "browserify-aes": { "version": "1.2.0", "resolved": false, "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -6205,7 +6326,6 @@ "version": "4.0.1", "resolved": false, "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dev": true, "requires": { "base-x": "^3.0.2" } @@ -6214,7 +6334,6 @@ "version": "2.1.2", "resolved": false, "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dev": true, "requires": { "bs58": "^4.0.0", "create-hash": "^1.1.0", @@ -6224,26 +6343,22 @@ "buffer-from": { "version": "1.1.1", "resolved": false, - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-xor": { "version": "1.0.3", "resolved": false, - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, "camelcase": { "version": "5.3.1", "resolved": false, - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "cipher-base": { "version": "1.0.4", "resolved": false, "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -6253,7 +6368,6 @@ "version": "5.0.0", "resolved": false, "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -6264,7 +6378,6 @@ "version": "1.9.3", "resolved": false, "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -6272,14 +6385,12 @@ "color-name": { "version": "1.1.3", "resolved": false, - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "create-hash": { "version": "1.2.0", "resolved": false, "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -6292,7 +6403,6 @@ "version": "1.1.7", "resolved": false, "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -6306,7 +6416,6 @@ "version": "6.0.5", "resolved": false, "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -6318,14 +6427,12 @@ "decamelize": { "version": "1.2.0", "resolved": false, - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "elliptic": { "version": "6.5.3", "resolved": false, "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -6339,14 +6446,12 @@ "emoji-regex": { "version": "7.0.3", "resolved": false, - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "end-of-stream": { "version": "1.4.4", "resolved": false, "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -6355,7 +6460,6 @@ "version": "0.1.3", "resolved": false, "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, "requires": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -6378,7 +6482,6 @@ "version": "6.2.1", "resolved": false, "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -6393,7 +6496,6 @@ "version": "0.1.6", "resolved": false, "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, "requires": { "is-hex-prefixed": "1.0.0", "strip-hex-prefix": "1.0.0" @@ -6403,7 +6505,6 @@ "version": "1.0.3", "resolved": false, "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -6413,7 +6514,6 @@ "version": "1.0.0", "resolved": false, "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -6428,7 +6528,6 @@ "version": "3.0.0", "resolved": false, "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -6436,14 +6535,12 @@ "get-caller-file": { "version": "2.0.5", "resolved": false, - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-stream": { "version": "4.1.0", "resolved": false, "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -6452,7 +6549,6 @@ "version": "3.1.0", "resolved": false, "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, "requires": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -6463,7 +6559,6 @@ "version": "1.1.7", "resolved": false, "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -6473,7 +6568,6 @@ "version": "1.0.1", "resolved": false, "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -6483,44 +6577,37 @@ "inherits": { "version": "2.0.4", "resolved": false, - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "invert-kv": { "version": "2.0.0", "resolved": false, - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": false, - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-hex-prefixed": { "version": "1.0.0", "resolved": false, - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" }, "is-stream": { "version": "1.1.0", "resolved": false, - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "isexe": { "version": "2.0.0", "resolved": false, - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "keccak": { "version": "3.0.1", "resolved": false, "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", - "dev": true, "requires": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0" @@ -6530,7 +6617,6 @@ "version": "2.0.0", "resolved": false, "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, "requires": { "invert-kv": "^2.0.0" } @@ -6539,7 +6625,6 @@ "version": "3.0.0", "resolved": false, "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -6549,7 +6634,6 @@ "version": "0.1.3", "resolved": false, "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, "requires": { "p-defer": "^1.0.0" } @@ -6558,7 +6642,6 @@ "version": "1.3.5", "resolved": false, "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -6569,7 +6652,6 @@ "version": "4.3.0", "resolved": false, "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, "requires": { "map-age-cleaner": "^0.1.1", "mimic-fn": "^2.0.0", @@ -6579,44 +6661,37 @@ "mimic-fn": { "version": "2.1.0", "resolved": false, - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "minimalistic-assert": { "version": "1.0.1", "resolved": false, - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": false, - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "nice-try": { "version": "1.0.5", "resolved": false, - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "node-addon-api": { "version": "2.0.2", "resolved": false, - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, "node-gyp-build": { "version": "4.2.3", "resolved": false, - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", - "dev": true + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" }, "npm-run-path": { "version": "2.0.2", "resolved": false, "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, "requires": { "path-key": "^2.0.0" } @@ -6625,7 +6700,6 @@ "version": "1.4.0", "resolved": false, "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -6634,7 +6708,6 @@ "version": "3.1.0", "resolved": false, "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, "requires": { "execa": "^1.0.0", "lcid": "^2.0.0", @@ -6644,26 +6717,22 @@ "p-defer": { "version": "1.0.0", "resolved": false, - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" }, "p-finally": { "version": "1.0.0", "resolved": false, - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-is-promise": { "version": "2.1.0", "resolved": false, - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" }, "p-limit": { "version": "2.3.0", "resolved": false, "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -6672,7 +6741,6 @@ "version": "3.0.0", "resolved": false, "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, "requires": { "p-limit": "^2.0.0" } @@ -6680,26 +6748,22 @@ "p-try": { "version": "2.2.0", "resolved": false, - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "path-exists": { "version": "3.0.0", "resolved": false, - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-key": { "version": "2.0.1", "resolved": false, - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "pbkdf2": { "version": "3.1.1", "resolved": false, "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -6712,7 +6776,6 @@ "version": "3.0.0", "resolved": false, "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -6722,7 +6785,6 @@ "version": "2.1.0", "resolved": false, "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -6731,7 +6793,6 @@ "version": "3.6.0", "resolved": false, "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -6741,20 +6802,17 @@ "require-directory": { "version": "2.1.1", "resolved": false, - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "2.0.0", "resolved": false, - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "ripemd160": { "version": "2.0.2", "resolved": false, "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -6764,7 +6822,6 @@ "version": "2.2.6", "resolved": false, "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dev": true, "requires": { "bn.js": "^4.11.1" } @@ -6772,20 +6829,17 @@ "safe-buffer": { "version": "5.2.1", "resolved": false, - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "scrypt-js": { "version": "3.0.1", "resolved": false, - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, "secp256k1": { "version": "4.0.2", "resolved": false, "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "dev": true, "requires": { "elliptic": "^6.5.2", "node-addon-api": "^2.0.0", @@ -6795,26 +6849,22 @@ "semver": { "version": "5.7.1", "resolved": false, - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "set-blocking": { "version": "2.0.0", "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "setimmediate": { "version": "1.0.5", "resolved": false, - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "sha.js": { "version": "2.4.11", "resolved": false, "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -6824,7 +6874,6 @@ "version": "1.2.0", "resolved": false, "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -6832,26 +6881,22 @@ "shebang-regex": { "version": "1.0.0", "resolved": false, - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.3", "resolved": false, - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "source-map": { "version": "0.6.1", "resolved": false, - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { "version": "0.5.12", "resolved": false, "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -6861,7 +6906,6 @@ "version": "3.1.0", "resolved": false, "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -6872,7 +6916,6 @@ "version": "1.3.0", "resolved": false, "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -6881,7 +6924,6 @@ "version": "5.2.0", "resolved": false, "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -6889,14 +6931,12 @@ "strip-eof": { "version": "1.0.0", "resolved": false, - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-hex-prefix": { "version": "1.0.0", "resolved": false, "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, "requires": { "is-hex-prefixed": "1.0.0" } @@ -6904,14 +6944,12 @@ "util-deprecate": { "version": "1.0.2", "resolved": false, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "which": { "version": "1.3.1", "resolved": false, "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -6919,14 +6957,12 @@ "which-module": { "version": "2.0.0", "resolved": false, - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wrap-ansi": { "version": "5.1.0", "resolved": false, "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -6936,20 +6972,17 @@ "wrappy": { "version": "1.0.2", "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "y18n": { "version": "4.0.0", "resolved": false, - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yargs": { "version": "13.2.4", "resolved": false, "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", - "dev": true, "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -6968,7 +7001,6 @@ "version": "13.1.2", "resolved": false, "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -15875,7 +15907,8 @@ "get-port": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "dev": true }, "get-stream": { "version": "4.1.0", @@ -15903,7 +15936,6 @@ "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -16576,6 +16608,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/hardhat-preprocessor/-/hardhat-preprocessor-0.1.4.tgz", "integrity": "sha512-TeIi9y5xXf6oKa2BMqXAFQV0tAJRy9MKDElu0VrHMsEVpiUXRh47AEJqWkFpWr2lVLFweif40n1RGxGIEFOPXw==", + "dev": true, "requires": { "murmur-128": "^0.2.1" } @@ -16897,7 +16930,8 @@ "imul": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz", - "integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk=" + "integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk=", + "dev": true }, "imurmurhash": { "version": "0.1.4", @@ -16921,7 +16955,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -17151,8 +17184,7 @@ "is-fn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", - "dev": true + "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=" }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -17226,6 +17258,11 @@ "isobject": "^3.0.1" } }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, "is-reference": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", @@ -17448,7 +17485,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", - "dev": true, "requires": { "eth-rpc-errors": "^3.0.0", "safe-event-emitter": "^1.0.1" @@ -17457,8 +17493,7 @@ "json-rpc-random-id": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=", - "dev": true + "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=" }, "json-schema": { "version": "0.2.3", @@ -17474,7 +17509,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, "requires": { "jsonify": "~0.0.0" } @@ -17520,8 +17554,7 @@ "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsprim": { "version": "1.4.1", @@ -17578,7 +17611,8 @@ "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true }, "lcid": { "version": "1.0.0", @@ -17904,7 +17938,8 @@ "local-access": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", - "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==" + "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==", + "dev": true }, "locate-path": { "version": "6.0.0", @@ -17935,8 +17970,7 @@ "lodash.flatmap": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", - "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=", - "dev": true + "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=" }, "lodash.template": { "version": "4.5.0", @@ -18037,6 +18071,14 @@ "yallist": "^3.0.2" } }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "requires": { + "es5-ext": "~0.10.2" + } + }, "lru_map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", @@ -18127,6 +18169,28 @@ } } }, + "memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + }, + "dependencies": { + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + } + } + }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -18339,7 +18403,8 @@ "mime": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==" + "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", + "dev": true }, "mime-db": { "version": "1.45.0", @@ -18393,7 +18458,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -18593,7 +18657,8 @@ "mri": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", - "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==" + "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", + "dev": true }, "ms": { "version": "2.1.2", @@ -18655,6 +18720,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/murmur-128/-/murmur-128-0.2.1.tgz", "integrity": "sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg==", + "dev": true, "requires": { "encode-utf8": "^1.0.2", "fmix": "^0.1.0", @@ -18766,7 +18832,8 @@ "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true }, "node-gyp-build": { "version": "4.2.3", @@ -19209,8 +19276,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -19273,8 +19339,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { "version": "2.0.4", @@ -19395,8 +19460,7 @@ "precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", - "dev": true + "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=" }, "prelude-ls": { "version": "1.1.2", @@ -19558,7 +19622,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", - "dev": true, "requires": { "is-fn": "^1.0.0", "set-immediate-shim": "^1.0.1" @@ -19686,6 +19749,7 @@ "version": "6.8.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.8.1.tgz", "integrity": "sha512-g6y0Lbq10a5pPQpjlFuojfMfV1Pd2Jw9h75ypiYPPia3Gcq2rgkKiIwbkS6JxH7c5f5u/B/sB+d13PU+g1eu4Q==", + "dev": true, "requires": { "decode-uri-component": "^0.2.0", "split-on-first": "^1.0.0", @@ -19695,8 +19759,7 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "queue-microtask": { "version": "1.2.3", @@ -19838,8 +19901,7 @@ "regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, "regex-not": { "version": "1.0.2", @@ -20438,8 +20500,7 @@ "rustbn.js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "dev": true + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" }, "rxjs": { "version": "6.6.7", @@ -20462,6 +20523,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", + "dev": true, "requires": { "mri": "^1.1.0" } @@ -20475,7 +20537,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "dev": true, "requires": { "events": "^3.0.0" } @@ -20517,7 +20578,8 @@ "semiver": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", - "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==" + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", + "dev": true }, "semver": { "version": "5.4.1", @@ -20612,8 +20674,7 @@ "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, "set-value": { "version": "2.0.1", @@ -20730,6 +20791,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.10.tgz", "integrity": "sha512-H5EZCoZaggEUQy8ocKsF7WAToGuZhjJlLvM3XOef46CbdIgbNeQ1p32N1PCuCjkVYwrAVOSMacN6CXXgIzuspg==", + "dev": true, "requires": { "@polka/url": "^1.0.0-next.9", "mime": "^2.3.1", @@ -20740,6 +20802,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-1.0.10.tgz", "integrity": "sha512-8mLTRkvzpZXMyUZJ1whf84YHN/mm2r2+j5sU1ZYr5n2jA8VkFItNPk53oysOo+0QxBVp9aUjggkAsQp1d7L3OQ==", + "dev": true, "requires": { "console-clear": "^1.1.0", "get-port": "^3.2.0", @@ -20902,6 +20965,50 @@ } } }, + "sol-merger": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/sol-merger/-/sol-merger-3.1.0.tgz", + "integrity": "sha512-4/JELeFlB8bcyqttRZ7pE/EGpevft9Q7IPjMaKLKMrj1exmdyt+1qSfuSXxueFXRZQxSd21u6DjEedDkOtQ5yQ==", + "requires": { + "antlr4ts": "^0.5.0-alpha.3", + "cli-color": "^1.4.0", + "commander": "^4.0.1", + "debug": "^4.1.1", + "fs-extra": "^8.0.1", + "glob": "^7.1.2", + "strip-json-comments": "^3.0.1" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, "solc": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", @@ -21212,8 +21319,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-resolve": { "version": "0.5.3", @@ -21232,7 +21338,6 @@ "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -21285,7 +21390,8 @@ "split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true }, "split-string": { "version": "3.1.0", @@ -21377,7 +21483,8 @@ "strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "dev": true }, "string-width": { "version": "2.1.1", @@ -21459,8 +21566,7 @@ "strip-json-comments": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==" }, "supports-color": { "version": "5.5.0", @@ -21565,7 +21671,8 @@ "svelte-routing": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/svelte-routing/-/svelte-routing-1.5.0.tgz", - "integrity": "sha512-4ftcSO2x5kzCUWQKm9Td6/C+t7lRjMEo72utRO0liS/aWZuRwAXOBl3y+hWZw8tV+DTGElqaAAyi44AuWXcVBg==" + "integrity": "sha512-4ftcSO2x5kzCUWQKm9Td6/C+t7lRjMEo72utRO0liS/aWZuRwAXOBl3y+hWZw8tV+DTGElqaAAyi44AuWXcVBg==", + "dev": true }, "swarm-js": { "version": "0.1.40", @@ -21907,10 +22014,20 @@ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, "tinydate": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", - "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==" + "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", + "dev": true }, "tmp": { "version": "0.0.33", @@ -21924,8 +22041,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", @@ -21987,7 +22103,8 @@ "totalist": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true }, "tough-cookie": { "version": "2.5.0", @@ -22015,6 +22132,49 @@ "original-require": "1.0.1" } }, + "truffle-plugin-verify": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/truffle-plugin-verify/-/truffle-plugin-verify-0.4.6.tgz", + "integrity": "sha512-s+wjeTFThgMET+ZS6GFszpWY8iUe2rp1CT3c4BjFW4lcjauQ9uVSWZElWgAib7ACwmsczKyWiLEPZ8vVSy4hTw==", + "requires": { + "axios": "0.19.2", + "cli-logger": "0.5.40", + "delay": "4.3.0", + "querystring": "0.2.0", + "sol-merger": "3.1.0" + }, + "dependencies": { + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "requires": { + "follow-redirects": "1.5.10" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "ts-essentials": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz", @@ -22095,12 +22255,14 @@ "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true }, "tweetnacl-util": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true }, "type": { "version": "1.2.0", @@ -22832,8 +22994,7 @@ "whatwg-fetch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" }, "which": { "version": "2.0.2", @@ -23088,8 +23249,7 @@ "xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" }, "xtend": { "version": "4.0.2", @@ -23330,6 +23490,11 @@ } } }, + "yarn": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.11.tgz", + "integrity": "sha512-AWje4bzqO9RUn3sdnM5N8n4ZJ0BqCc/kqFJvpOI5/EVkINXui0yuvU7NDCEF//+WaxHuNay2uOHxA4+tq1P3cg==" + }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/package.json b/package.json index 22720ec16..c606fb600 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,25 @@ { - "name": "tv-balancer", - "version": "1.0.0", + "name": "rain-protocol", + "description": "Fair value capture for intangible or physical assets in a permissionless way in any decentralised environment", + "version": "0.0.0", + "files": [ + "/contracts/*.sol", + "/contracts/**/*.sol", + "/artifacts/*.json", + "/typechain/*.d.ts", + "/typechain/**/*.ts" + ], + "author": "Beehive Innovation", "license": "CAL", + "repository": { + "type": "git", + "url": "https://github.com/beehive-innovation/rain-protocol.git" + }, + "keywords": [], + "bugs": { + "url": "https://github.com/beehive-innovation/rain-protocol/issues" + }, + "homepage": "http://beehive-innovation.github.io/rain-protocol/", "scripts": { "build": "hardhat compile", "test": "hardhat test", @@ -9,7 +27,7 @@ "docgen": "solidity-docgen -o ./docs/api/ --solc-module solc-0.6 --exclude ./contracts/test/,./contracts/tv-prestige/ -t ./.templates/" }, "devDependencies": { - "normalize-url": "4.5.1", + "@maticnetwork/maticjs": "^2.0.22", "@nomiclabs/hardhat-ethers": "^2.0.2", "@nomiclabs/hardhat-waffle": "^2.0.1", "@rollup/plugin-commonjs": "^16.0.0", @@ -22,15 +40,19 @@ "@types/mocha": "^8.2.0", "@types/node": "^14.14.22", "autoprefixer": "^10.1.0", + "bn.js": "^5.1.3", "chai": "^4.2.0", "ethereum-waffle": "^3.2.1", "ethers": "^5.0.26", "ganache-cli": "^6.12.2", "hardhat": "^2.0.8", "hardhat-gas-reporter": "^1.0.4", + "hardhat-preprocessor": "^0.1.3", "hardhat-typechain": "^0.3.4", "husky": "^7.0.1", "mnemonics": "^1.1.3", + "node-fetch": "^2.6.1", + "normalize-url": "4.5.1", "postcss": "^8.2.2", "postcss-load-config": "^3.0.0", "prettier": "^2.3.2", @@ -45,9 +67,11 @@ "solc-0.6": "npm:solc@^0.6.12", "solhint": "^3.3.4", "solidity-docgen": "^0.5.13", + "sirv-cli": "^1.0.0", "svelte": "^3.0.0", "svelte-check": "^1.0.0", "svelte-preprocess": "^4.0.0", + "svelte-routing": "^1.5.0", "tailwindcss": "^2.0.2", "truffle": "^5.1.62", "ts-generator": "^0.1.1", @@ -57,13 +81,9 @@ "typescript": "^3.9.3" }, "dependencies": { - "@maticnetwork/maticjs": "^2.0.22", "@openzeppelin/contracts": "^3.3.0", - "bn.js": "^5.1.3", - "hardhat-preprocessor": "^0.1.3", - "node-fetch": "^2.6.1", - "sirv-cli": "^1.0.0", - "svelte-routing": "^1.5.0" + "balancer-core": "0.0.8", + "configurable-rights-pool": "0.0.2" }, "husky": { "hooks": { diff --git a/shell.nix b/shell.nix index 988a32fab..39b74c366 100644 --- a/shell.nix +++ b/shell.nix @@ -1,121 +1,158 @@ let - pkgs = import {}; - - local-node = pkgs.writeShellScriptBin "local-node" '' - hardhat node - ''; - - local-fork = pkgs.writeShellScriptBin "local-fork" '' - hardhat node --fork https://eth-mainnet.alchemyapi.io/v2/G0Vg_iZFiAuUD6hjXqcVg-Nys-NGiTQy --fork-block-number 11833335 - ''; - - local-test = pkgs.writeShellScriptBin "local-test" '' - hardhat test --network localhost - ''; - - local-deploy = pkgs.writeShellScriptBin "local-deploy" '' - hardhat run --network localhost scripts/deploy.ts - ''; - - prettier-check = pkgs.writeShellScriptBin "prettier-check" '' - prettier --check . - ''; - - prettier-write = pkgs.writeShellScriptBin "prettier-write" '' - prettier --write . - ''; - - ci-lint = pkgs.writeShellScriptBin "ci-lint" '' - solhint 'contracts/**/*.sol' - prettier-check - ''; - - security-check = pkgs.writeShellScriptBin "security-check" '' - # Slither does not like there being two IERC20. - # One is from Balancer the other is from Open Zeppelin. - # This patch swaps all the Balancer IERC20 imports with an Open Zeppelin IERC20 import. - patch -p1 < slither-hack-balancer-ierc20.patch - - # Balancer has PoolParams struct defined inside a contract which slither does not like. - # This patch moves PoolParams outside the contract and upates import references to it. - patch -p1 < slither-hack-balancer-pool-params.patch - patch -p1 < slither-hack-local-pool-params.patch - - # Workaround a slither bug due to stale compiled artifacts. - # https://github.com/crytic/slither/issues/860 - rm -rf artifacts - rm -rf typechain - rm -rf cache - - # Install slither to a fresh tmp dir to workaround nix-shell immutability. - export td=$(mktemp -d) - python3 -m venv ''${td}/venv - source ''${td}/venv/bin/activate - pip install slither-analyzer - - # Run slither against all our contracts. - # Disable npx as nix-shell already handles availability of what we nee. - # Some contracts are explicitly out of scope for slither: - # - The balancer configurable-rights-pool git submodule - # - The test contracts that only exist so the test harness can drive unit tests and will never be deployed - # - Open Zeppelin contracts - slither . --npx-disable --filter-paths="contracts/configurable-rights-pool|contracts/test|openzeppelin" --exclude-dependencies - - # Rollback all the slither specific patches. - patch -R -p1 < slither-hack-local-pool-params.patch - patch -R -p1 < slither-hack-balancer-pool-params.patch - patch -R -p1 < slither-hack-balancer-ierc20.patch - ''; - - ci-test = pkgs.writeShellScriptBin "ci-test" '' - hardhat test - ''; - - docgen = pkgs.writeShellScriptBin "docgen" '' - rm -rf docs/api && npm run docgen - ''; - - docs-dev = pkgs.writeShellScriptBin "docs-dev" '' - docgen && npm run start --prefix docusaurus - ''; - - docs-build = pkgs.writeShellScriptBin "docs-build" '' - docgen && npm run build --prefix docusaurus - ''; - - docs-serve = pkgs.writeShellScriptBin "docs-serve" '' - npm run serve --prefix docusaurus - ''; - - docs-version = pkgs.writeShellScriptBin "docs-version" '' - docs-build && npm run docusaurus --prefix docusaurus docs:version ''${GIT_TAG} - ''; + pkgs = import { }; + + local-node = pkgs.writeShellScriptBin "local-node" '' + hardhat node + ''; + + local-fork = pkgs.writeShellScriptBin "local-fork" '' + hardhat node --fork https://eth-mainnet.alchemyapi.io/v2/G0Vg_iZFiAuUD6hjXqcVg-Nys-NGiTQy --fork-block-number 11833335 + ''; + + local-test = pkgs.writeShellScriptBin "local-test" '' + hardhat test --network localhost + ''; + + local-deploy = pkgs.writeShellScriptBin "local-deploy" '' + hardhat run --network localhost scripts/deploy.ts + ''; + + prettier-check = pkgs.writeShellScriptBin "prettier-check" '' + prettier --check . + ''; + + prettier-write = pkgs.writeShellScriptBin "prettier-write" '' + prettier --write . + ''; + + ci-lint = pkgs.writeShellScriptBin "ci-lint" '' + solhint 'contracts/**/*.sol' + prettier-check + ''; + + security-check = pkgs.writeShellScriptBin "security-check" '' + # Slither does not like there being two IERC20. + # One is from Balancer the other is from Open Zeppelin. + # This patch swaps all the Balancer IERC20 imports with an Open Zeppelin IERC20 import. + patch -p1 < slither-hack-balancer-ierc20.patch + + # Balancer has PoolParams struct defined inside a contract which slither does not like. + # This patch moves PoolParams outside the contract and upates import references to it. + patch -p1 < slither-hack-balancer-pool-params.patch + patch -p1 < slither-hack-local-pool-params.patch + + # Workaround a slither bug due to stale compiled artifacts. + # https://github.com/crytic/slither/issues/860 + rm -rf artifacts + rm -rf typechain + rm -rf cache + + # Install slither to a fresh tmp dir to workaround nix-shell immutability. + export td=$(mktemp -d) + python3 -m venv ''${td}/venv + source ''${td}/venv/bin/activate + pip install slither-analyzer + + # Run slither against all our contracts. + # Disable npx as nix-shell already handles availability of what we need. + # Some contracts are explicitly out of scope for slither: + # - configurable-rights-pool contracts + # - The test contracts that only exist so the test harness can drive unit tests and will never be deployed + # - Open Zeppelin contracts + slither . --npx-disable --filter-paths="configurable-rights-pool|contracts/test|openzeppelin" --exclude-dependencies + + # Rollback all the slither specific patches. + patch -R -p1 < slither-hack-balancer-ierc20.patch + patch -R -p1 < slither-hack-balancer-pool-params.patch + patch -R -p1 < slither-hack-local-pool-params.patch + ''; + + ci-test = pkgs.writeShellScriptBin "ci-test" '' + hardhat test + ''; + + docgen = pkgs.writeShellScriptBin "docgen" '' + rm -rf docs/api && npm run docgen + ''; + + docs-dev = pkgs.writeShellScriptBin "docs-dev" '' + docgen && npm run start --prefix docusaurus + ''; + + docs-build = pkgs.writeShellScriptBin "docs-build" '' + docgen && npm run build --prefix docusaurus + ''; + + docs-serve = pkgs.writeShellScriptBin "docs-serve" '' + npm run serve --prefix docusaurus + ''; + + docs-version = pkgs.writeShellScriptBin "docs-version" '' + docs-build && npm run docusaurus --prefix docusaurus docs:version ''${GIT_TAG} + ''; + + prepack = pkgs.writeShellScriptBin "prepack" '' + set -euo pipefail + shopt -s globstar + + npm run build + + cp artifacts/contracts/**/*.json artifacts + rm artifacts/*.dbg.json + rm artifacts/*Test* + rm artifacts/*Reentrant* + rm artifacts/*ForceSendEther* + rm artifacts/*Mock* + + rm typechain/**/*Test* + rm typechain/**/*Reentrant* + rm typechain/**/*ForceSendEther* + rm typechain/**/*Mock* + ''; + + prepublish = pkgs.writeShellScriptBin "prepublish" '' + npm version patch --no-git-tag-version + # manually commit and tag + ''; + + publish = pkgs.writeShellScriptBin "publish" '' + echo "//registry.npmjs.org/:_authToken=''${NPM_TOKEN}" > .npmrc + + PACKAGE_NAME=$(node -p "require('./package.json').name") + PACKAGE_VERSION=$(node -p "require('./package.json').version") + npm pack + npm publish ./$PACKAGE_NAME-$PACKAGE_VERSION.tgz --access public + ''; in pkgs.stdenv.mkDerivation { - name = "shell"; - buildInputs = [ - pkgs.nodejs-14_x - pkgs.python3 - local-node - local-fork - local-test - local-deploy - prettier-check - prettier-write - security-check - ci-test - ci-lint - docgen - docs-dev - docs-build - docs-serve - docs-version - ]; - - shellHook = '' - export PATH=$( npm bin ):$PATH - # keep it fresh - npm install - npm install --prefix docusaurus - ''; + name = "shell"; + buildInputs = [ + pkgs.nixpkgs-fmt + pkgs.nodejs-14_x + pkgs.python3 + local-node + local-fork + local-test + local-deploy + prettier-check + prettier-write + security-check + ci-test + ci-lint + docgen + docs-dev + docs-build + docs-serve + docs-version + prepack + prepublish + publish + ]; + + shellHook = '' + export PATH=$( npm bin ):$PATH + # keep it fresh + npm install + npm install --prefix docusaurus + ''; } diff --git a/slither-hack-balancer-ierc20.patch b/slither-hack-balancer-ierc20.patch index 37b196183..e3c6aeb17 100644 --- a/slither-hack-balancer-ierc20.patch +++ b/slither-hack-balancer-ierc20.patch @@ -1,38 +1,37 @@ -Submodule contracts/configurable-rights-pool contains modified content -diff --git a/contracts/configurable-rights-pool/contracts/PCToken.sol b/contracts/configurable-rights-pool/contracts/PCToken.sol +diff --git a/node_modules/configurable-rights-pool/contracts/PCToken.sol b/node_modules/configurable-rights-pool/contracts/PCToken.sol index 6017bf7..eeb4fbe 100644 ---- a/contracts/configurable-rights-pool/contracts/PCToken.sol -+++ b/contracts/configurable-rights-pool/contracts/PCToken.sol +--- a/node_modules/configurable-rights-pool/contracts/PCToken.sol ++++ b/node_modules/configurable-rights-pool/contracts/PCToken.sol @@ -4,7 +4,7 @@ pragma solidity 0.6.12; // Imports - + import "../libraries/BalancerSafeMath.sol"; -import "../interfaces/IERC20.sol"; +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; - + // Contracts - -diff --git a/contracts/configurable-rights-pool/libraries/SafeApprove.sol b/contracts/configurable-rights-pool/libraries/SafeApprove.sol + +diff --git a/node_modules/configurable-rights-pool/libraries/SafeApprove.sol b/node_modules/configurable-rights-pool/libraries/SafeApprove.sol index 6cbe34f..9b8fbcc 100644 ---- a/contracts/configurable-rights-pool/libraries/SafeApprove.sol -+++ b/contracts/configurable-rights-pool/libraries/SafeApprove.sol +--- a/node_modules/configurable-rights-pool/libraries/SafeApprove.sol ++++ b/node_modules/configurable-rights-pool/libraries/SafeApprove.sol @@ -3,7 +3,7 @@ pragma solidity 0.6.12; - + // Imports - + -import "../interfaces/IERC20.sol"; +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; - + // Libraries - -diff --git a/contracts/configurable-rights-pool/libraries/SmartPoolManager.sol b/contracts/configurable-rights-pool/libraries/SmartPoolManager.sol + +diff --git a/node_modules/configurable-rights-pool/libraries/SmartPoolManager.sol b/node_modules/configurable-rights-pool/libraries/SmartPoolManager.sol index f26ee15..68e3580 100644 ---- a/contracts/configurable-rights-pool/libraries/SmartPoolManager.sol -+++ b/contracts/configurable-rights-pool/libraries/SmartPoolManager.sol +--- a/node_modules/configurable-rights-pool/libraries/SmartPoolManager.sol ++++ b/node_modules/configurable-rights-pool/libraries/SmartPoolManager.sol @@ -6,7 +6,7 @@ pragma experimental ABIEncoderV2; - + // Imports - + -import "../interfaces/IERC20.sol"; +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "../interfaces/IConfigurableRightsPool.sol"; diff --git a/slither-hack-balancer-pool-params.patch b/slither-hack-balancer-pool-params.patch index 82676e350..4dd234aa5 100644 --- a/slither-hack-balancer-pool-params.patch +++ b/slither-hack-balancer-pool-params.patch @@ -1,8 +1,7 @@ -Submodule contracts/configurable-rights-pool contains modified content -diff --git a/contracts/configurable-rights-pool/contracts/CRPFactory.sol b/contracts/configurable-rights-pool/contracts/CRPFactory.sol +diff --git a/node_modules/configurable-rights-pool/contracts/CRPFactory.sol b/node_modules/configurable-rights-pool/contracts/CRPFactory.sol index 52ef23b..532f5a1 100644 ---- a/contracts/configurable-rights-pool/contracts/CRPFactory.sol -+++ b/contracts/configurable-rights-pool/contracts/CRPFactory.sol +--- a/node_modules/configurable-rights-pool/contracts/CRPFactory.sol ++++ b/node_modules/configurable-rights-pool/contracts/CRPFactory.sol @@ -49,7 +49,7 @@ contract CRPFactory { */ function newCrp( @@ -12,14 +11,14 @@ index 52ef23b..532f5a1 100644 RightsManager.Rights calldata rights ) external -diff --git a/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol b/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol +diff --git a/node_modules/configurable-rights-pool/contracts/ConfigurableRightsPool.sol b/node_modules/configurable-rights-pool/contracts/ConfigurableRightsPool.sol index e3df626..e98f5c7 100644 ---- a/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol -+++ b/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol +--- a/node_modules/configurable-rights-pool/contracts/ConfigurableRightsPool.sol ++++ b/node_modules/configurable-rights-pool/contracts/ConfigurableRightsPool.sol @@ -18,6 +18,17 @@ import { RightsManager } from "../libraries/RightsManager.sol"; import "../libraries/SmartPoolManager.sol"; import "../libraries/SafeApprove.sol"; - + +struct PoolParams { + // Balancer Pool Token (representing shares of the pool) + string poolTokenSymbol; @@ -32,12 +31,12 @@ index e3df626..e98f5c7 100644 +} + // Contracts - + /** @@ -44,16 +55,7 @@ contract ConfigurableRightsPool is PCToken, BalancerOwnable, BalancerReentrancyG - + // Type declarations - + - struct PoolParams { - // Balancer Pool Token (representing shares of the pool) - string poolTokenSymbol; @@ -49,13 +48,13 @@ index e3df626..e98f5c7 100644 - uint swapFee; - } + - + // State variables -diff --git a/contracts/configurable-rights-pool/contracts/templates/ESPFactory.sol b/contracts/configurable-rights-pool/contracts/templates/ESPFactory.sol +diff --git a/node_modules/configurable-rights-pool/contracts/templates/ESPFactory.sol b/node_modules/configurable-rights-pool/contracts/templates/ESPFactory.sol index 6fe5b44..8a3fa1e 100644 ---- a/contracts/configurable-rights-pool/contracts/templates/ESPFactory.sol -+++ b/contracts/configurable-rights-pool/contracts/templates/ESPFactory.sol +--- a/node_modules/configurable-rights-pool/contracts/templates/ESPFactory.sol ++++ b/node_modules/configurable-rights-pool/contracts/templates/ESPFactory.sol @@ -48,7 +48,7 @@ contract ESPFactory { */ function newEsp( @@ -65,10 +64,10 @@ index 6fe5b44..8a3fa1e 100644 RightsManager.Rights calldata rights ) external -diff --git a/contracts/configurable-rights-pool/contracts/templates/ElasticSupplyPool.sol b/contracts/configurable-rights-pool/contracts/templates/ElasticSupplyPool.sol +diff --git a/node_modules/configurable-rights-pool/contracts/templates/ElasticSupplyPool.sol b/node_modules/configurable-rights-pool/contracts/templates/ElasticSupplyPool.sol index 9d58e72..c183f1e 100644 ---- a/contracts/configurable-rights-pool/contracts/templates/ElasticSupplyPool.sol -+++ b/contracts/configurable-rights-pool/contracts/templates/ElasticSupplyPool.sol +--- a/node_modules/configurable-rights-pool/contracts/templates/ElasticSupplyPool.sol ++++ b/node_modules/configurable-rights-pool/contracts/templates/ElasticSupplyPool.sol @@ -88,7 +88,7 @@ contract ElasticSupplyPool is ConfigurableRightsPool { */ constructor( diff --git a/slither-hack-local-pool-params.patch b/slither-hack-local-pool-params.patch index 5ccb1c41a..0aee6e45f 100644 --- a/slither-hack-local-pool-params.patch +++ b/slither-hack-local-pool-params.patch @@ -4,15 +4,15 @@ index 354a491..efb13c3 100644 +++ b/contracts/RedeemableERC20Pool.sol @@ -18,7 +18,7 @@ import { BalancerConstants - } from "./configurable-rights-pool/libraries/BalancerConstants.sol"; + } from "configurable-rights-pool/libraries/BalancerConstants.sol"; import { - ConfigurableRightsPool + ConfigurableRightsPool, PoolParams - } from "./configurable-rights-pool/contracts/ConfigurableRightsPool.sol"; + } from "configurable-rights-pool/contracts/ConfigurableRightsPool.sol"; import { CRPFactory -@@ -170,7 +170,7 @@ contract RedeemableERC20Pool is Ownable, Phased { - +@@ -202,7 +202,7 @@ contract RedeemableERC20Pool is Ownable, Phased { + ConfigurableRightsPool crp_ = config_.crpFactory.newCrp( address(config_.balancerFactory), - ConfigurableRightsPool.PoolParams( diff --git a/test/Trust/Trust.sol.ts b/test/Trust/Trust.sol.ts index dc46e6a7f..04ed4c2ff 100644 --- a/test/Trust/Trust.sol.ts +++ b/test/Trust/Trust.sol.ts @@ -16,10 +16,10 @@ const { expect, assert } = chai; const trustJson = require("../../artifacts/contracts/Trust.sol/Trust.json"); const poolJson = require("../../artifacts/contracts/RedeemableERC20Pool.sol/RedeemableERC20Pool.json"); -const bPoolJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/test/BPool.sol/BPool.json"); +const bPoolJson = require("configurable-rights-pool/artifacts/BPool.json"); const reserveJson = require("../../artifacts/contracts/test/ReserveToken.sol/ReserveToken.json"); const redeemableTokenJson = require("../../artifacts/contracts/RedeemableERC20.sol/RedeemableERC20.json"); -const crpJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol/ConfigurableRightsPool.json"); +const crpJson = require("configurable-rights-pool/artifacts/ConfigurableRightsPool.json"); enum Tier { NIL, diff --git a/test/Trust/TrustConstruction.sol.ts b/test/Trust/TrustConstruction.sol.ts index dae472bb0..5f5fb1c45 100644 --- a/test/Trust/TrustConstruction.sol.ts +++ b/test/Trust/TrustConstruction.sol.ts @@ -18,10 +18,10 @@ const { expect, assert } = chai; const trustJson = require("../../artifacts/contracts/Trust.sol/Trust.json"); const poolJson = require("../../artifacts/contracts/RedeemableERC20Pool.sol/RedeemableERC20Pool.json"); -const bPoolJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/test/BPool.sol/BPool.json"); +const bPoolJson = require("configurable-rights-pool/artifacts/BPool.json"); const reserveJson = require("../../artifacts/contracts/test/ReserveToken.sol/ReserveToken.json"); const redeemableTokenJson = require("../../artifacts/contracts/RedeemableERC20.sol/RedeemableERC20.json"); -const crpJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol/ConfigurableRightsPool.json"); +const crpJson = require("configurable-rights-pool/artifacts/ConfigurableRightsPool.json"); enum Tier { NIL, diff --git a/test/Trust/TrustDistribute.sol.ts b/test/Trust/TrustDistribute.sol.ts index 509fb4caa..841106171 100644 --- a/test/Trust/TrustDistribute.sol.ts +++ b/test/Trust/TrustDistribute.sol.ts @@ -16,10 +16,10 @@ const { expect, assert } = chai; const trustJson = require("../../artifacts/contracts/Trust.sol/Trust.json"); const poolJson = require("../../artifacts/contracts/RedeemableERC20Pool.sol/RedeemableERC20Pool.json"); -const bPoolJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/test/BPool.sol/BPool.json"); +const bPoolJson = require("configurable-rights-pool/artifacts/BPool.json"); const reserveJson = require("../../artifacts/contracts/test/ReserveToken.sol/ReserveToken.json"); const redeemableTokenJson = require("../../artifacts/contracts/RedeemableERC20.sol/RedeemableERC20.json"); -const crpJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol/ConfigurableRightsPool.json"); +const crpJson = require("configurable-rights-pool/artifacts/ConfigurableRightsPool.json"); enum Tier { NIL, diff --git a/test/Trust/TrustReentrant.sol.ts b/test/Trust/TrustReentrant.sol.ts index edad43f87..c36d448f5 100644 --- a/test/Trust/TrustReentrant.sol.ts +++ b/test/Trust/TrustReentrant.sol.ts @@ -16,9 +16,9 @@ chai.use(solidity); const { expect, assert } = chai; const poolJson = require("../../artifacts/contracts/RedeemableERC20Pool.sol/RedeemableERC20Pool.json"); -const bPoolJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/test/BPool.sol/BPool.json"); +const bPoolJson = require("configurable-rights-pool/artifacts/BPool.json"); const redeemableTokenJson = require("../../artifacts/contracts/RedeemableERC20.sol/RedeemableERC20.json"); -const crpJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol/ConfigurableRightsPool.json"); +const crpJson = require("configurable-rights-pool/artifacts/ConfigurableRightsPool.json"); enum Tier { NIL, diff --git a/test/Trust/TrustRewards.sol.ts b/test/Trust/TrustRewards.sol.ts index 402490616..bba6d2f58 100644 --- a/test/Trust/TrustRewards.sol.ts +++ b/test/Trust/TrustRewards.sol.ts @@ -15,10 +15,10 @@ const { expect, assert } = chai; const trustJson = require("../../artifacts/contracts/Trust.sol/Trust.json"); const poolJson = require("../../artifacts/contracts/RedeemableERC20Pool.sol/RedeemableERC20Pool.json"); -const bPoolJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/test/BPool.sol/BPool.json"); +const bPoolJson = require("configurable-rights-pool/artifacts/BPool.json"); const reserveJson = require("../../artifacts/contracts/test/ReserveToken.sol/ReserveToken.json"); const redeemableTokenJson = require("../../artifacts/contracts/RedeemableERC20.sol/RedeemableERC20.json"); -const crpJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol/ConfigurableRightsPool.json"); +const crpJson = require("configurable-rights-pool/artifacts/ConfigurableRightsPool.json"); enum Tier { NIL, diff --git a/test/Trust/TrustSeed.sol.ts b/test/Trust/TrustSeed.sol.ts index ecb80ee5c..bd0525469 100644 --- a/test/Trust/TrustSeed.sol.ts +++ b/test/Trust/TrustSeed.sol.ts @@ -40,10 +40,10 @@ enum Phase { const trustJson = require("../../artifacts/contracts/Trust.sol/Trust.json"); const poolJson = require("../../artifacts/contracts/RedeemableERC20Pool.sol/RedeemableERC20Pool.json"); const seedERC20Json = require("../../artifacts/contracts/SeedERC20.sol/SeedERC20.json"); -const bPoolJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/test/BPool.sol/BPool.json"); +const bPoolJson = require("configurable-rights-pool/artifacts/BPool.json"); const reserveJson = require("../../artifacts/contracts/test/ReserveToken.sol/ReserveToken.json"); const redeemableTokenJson = require("../../artifacts/contracts/RedeemableERC20.sol/RedeemableERC20.json"); -const crpJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol/ConfigurableRightsPool.json"); +const crpJson = require("configurable-rights-pool/artifacts/ConfigurableRightsPool.json"); describe("TrustSeed", async function () { it("should allow unseeding only after unseed delay period", async function () { diff --git a/test/Trust/TrustTrade.sol.ts b/test/Trust/TrustTrade.sol.ts index 1063c0d54..8782cba7d 100644 --- a/test/Trust/TrustTrade.sol.ts +++ b/test/Trust/TrustTrade.sol.ts @@ -16,10 +16,10 @@ const { expect, assert } = chai; const trustJson = require("../../artifacts/contracts/Trust.sol/Trust.json"); const poolJson = require("../../artifacts/contracts/RedeemableERC20Pool.sol/RedeemableERC20Pool.json"); -const bPoolJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/test/BPool.sol/BPool.json"); +const bPoolJson = require("configurable-rights-pool/artifacts/BPool.json"); const reserveJson = require("../../artifacts/contracts/test/ReserveToken.sol/ReserveToken.json"); const redeemableTokenJson = require("../../artifacts/contracts/RedeemableERC20.sol/RedeemableERC20.json"); -const crpJson = require("../../artifacts/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol/ConfigurableRightsPool.json"); +const crpJson = require("configurable-rights-pool/artifacts/ConfigurableRightsPool.json"); enum Tier { NIL, diff --git a/test/Util.ts b/test/Util.ts index 760066213..b128d76a9 100644 --- a/test/Util.ts +++ b/test/Util.ts @@ -148,8 +148,8 @@ export const assertError = async (f: Function, s: string, e: string) => { assert(didError, e); }; -export const crpJson = require("../artifacts/contracts/configurable-rights-pool/contracts/ConfigurableRightsPool.sol/ConfigurableRightsPool.json"); -export const bPoolJson = require("../artifacts/contracts/configurable-rights-pool/contracts/test/BPool.sol/BPool.json"); +export const crpJson = require("configurable-rights-pool/artifacts/ConfigurableRightsPool.json"); +export const bPoolJson = require("configurable-rights-pool/artifacts/BPool.json"); export const poolContracts = async ( signers: any,