diff --git a/.changeset/big-dancers-listen.md b/.changeset/big-dancers-listen.md deleted file mode 100644 index 1b2ae9d976..0000000000 --- a/.changeset/big-dancers-listen.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"hardhat": patch ---- - -Upgrade @solidity-parser/parser (fixes #1801) diff --git a/.changeset/config.json b/.changeset/config.json index c4d3b3af61..4f60bd4846 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -6,8 +6,8 @@ "access": "public", "baseBranch": "master", "updateInternalDependencies": "minor", - "ignore": [], + "ignore": ["docs", "@nomiclabs/common", "@nomiclabs/hardhat-e2e-tests"], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { - "onlyUpdatePeerDependentsWhenOutOfRange": false + "onlyUpdatePeerDependentsWhenOutOfRange": true } } diff --git a/.changeset/eight-frogs-peel.md b/.changeset/eight-frogs-peel.md deleted file mode 100644 index cad1d66bff..0000000000 --- a/.changeset/eight-frogs-peel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nomiclabs/hardhat-etherscan": patch ---- - -Added support for Arbitrum Testnet diff --git a/.changeset/funny-rings-explode.md b/.changeset/funny-rings-explode.md deleted file mode 100644 index 59607ed356..0000000000 --- a/.changeset/funny-rings-explode.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nomiclabs/hardhat-etherscan": patch ---- - -Add support for FTM testnet. diff --git a/.changeset/nasty-deers-sleep.md b/.changeset/nasty-deers-sleep.md deleted file mode 100644 index f754abb774..0000000000 --- a/.changeset/nasty-deers-sleep.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"hardhat": patch ---- - -Fix `eth_feeHistory` computation (issue #1848) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 6ca521b208..bdc60c6df5 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -9,7 +9,10 @@ Please: - DELETE the items that DON'T make sense for your PR. --> -- [ ] Because this PR includes a **documentation change**, its branch was created from the `website` branch, and this PR uses the `website` branch as its base branch. +- [ ] Because this PR includes a **documentation change**, it uses the `master` branch as its base branch. +- [ ] Because this PR includes a **small bug fix**, it uses the `master` branch as its base branch. +- [ ] Because this PR includes a **major bug fix**, it uses the `development` branch as its base branch. +- [ ] Because this PR includes a **new feature**, it uses the `development` branch as its base branch. - [ ] Because this PR includes a **bug fix**, relevant tests have been included. - [ ] Because this PR includes a **new feature**, the change was previously discussed on an Issue or with someone from the team. - [x] I didn't do anything of this. diff --git a/.github/workflows/LATEST_DEPENDENCY_VERSIONS.yml b/.github/workflows/LATEST_DEPENDENCY_VERSIONS.yml index ae2de924e6..c72e03ed62 100644 --- a/.github/workflows/LATEST_DEPENDENCY_VERSIONS.yml +++ b/.github/workflows/LATEST_DEPENDENCY_VERSIONS.yml @@ -9,7 +9,7 @@ jobs: name: Test without yarn.lock runs-on: ubuntu-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v2 with: node-version: 12 - name: install vyper diff --git a/.github/workflows/e2e-ci.yml b/.github/workflows/e2e-ci.yml index ef28d8f42d..0013d4095e 100644 --- a/.github/workflows/e2e-ci.yml +++ b/.github/workflows/e2e-ci.yml @@ -33,10 +33,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-core-ci.yml b/.github/workflows/hardhat-core-ci.yml index 3507db56de..a612785512 100644 --- a/.github/workflows/hardhat-core-ci.yml +++ b/.github/workflows/hardhat-core-ci.yml @@ -28,10 +28,11 @@ jobs: name: Test hardhat-core on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -46,10 +47,11 @@ jobs: name: Test hardhat-core on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -67,10 +69,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-ethers-ci.yml b/.github/workflows/hardhat-ethers-ci.yml index bd0bed76b2..7aba22c5ef 100644 --- a/.github/workflows/hardhat-ethers-ci.yml +++ b/.github/workflows/hardhat-ethers-ci.yml @@ -30,10 +30,11 @@ jobs: name: Test hardhat-ethers on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -45,10 +46,11 @@ jobs: name: Test hardhat-ethers on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -63,10 +65,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-etherscan-ci.yml b/.github/workflows/hardhat-etherscan-ci.yml index 70b3fa490b..4f70143f56 100644 --- a/.github/workflows/hardhat-etherscan-ci.yml +++ b/.github/workflows/hardhat-etherscan-ci.yml @@ -30,10 +30,11 @@ jobs: name: Test hardhat-etherscan on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -45,10 +46,11 @@ jobs: name: Test hardhat-etherscan on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -63,10 +65,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-ganache-ci.yml b/.github/workflows/hardhat-ganache-ci.yml index d807a5d269..5828069301 100644 --- a/.github/workflows/hardhat-ganache-ci.yml +++ b/.github/workflows/hardhat-ganache-ci.yml @@ -30,10 +30,11 @@ jobs: name: Test hardhat-ganache on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -45,10 +46,11 @@ jobs: name: Test hardhat-ganache on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -63,10 +65,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-network-forking-ci.yml b/.github/workflows/hardhat-network-forking-ci.yml index 2f3188ef5e..2ccfffd9a1 100644 --- a/.github/workflows/hardhat-network-forking-ci.yml +++ b/.github/workflows/hardhat-network-forking-ci.yml @@ -36,10 +36,11 @@ jobs: name: Test Hardhat Network's forking functionality runs-on: ubuntu-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Cache network requests diff --git a/.github/workflows/hardhat-network-tracing-ci.yml b/.github/workflows/hardhat-network-tracing-ci.yml index 53f338f8a2..74de301534 100644 --- a/.github/workflows/hardhat-network-tracing-ci.yml +++ b/.github/workflows/hardhat-network-tracing-ci.yml @@ -31,10 +31,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-shorthand-ci.yml b/.github/workflows/hardhat-shorthand-ci.yml index fd082dcbe8..abaa287bad 100644 --- a/.github/workflows/hardhat-shorthand-ci.yml +++ b/.github/workflows/hardhat-shorthand-ci.yml @@ -30,10 +30,11 @@ jobs: name: Test hardhat-shorthand on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -45,10 +46,11 @@ jobs: name: Test hardhat-shorthand on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -63,10 +65,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-solhint-ci.yml b/.github/workflows/hardhat-solhint-ci.yml index f168502466..85da76956b 100644 --- a/.github/workflows/hardhat-solhint-ci.yml +++ b/.github/workflows/hardhat-solhint-ci.yml @@ -30,10 +30,11 @@ jobs: name: Test hardhat-solhint on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -45,10 +46,11 @@ jobs: name: Test hardhat-solhint on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -63,10 +65,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-solpp-ci.yml b/.github/workflows/hardhat-solpp-ci.yml index 8e5ac47827..5d58b3e504 100644 --- a/.github/workflows/hardhat-solpp-ci.yml +++ b/.github/workflows/hardhat-solpp-ci.yml @@ -30,10 +30,11 @@ jobs: name: Test hardhat-solpp on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -48,10 +49,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-truffle4-ci.yml b/.github/workflows/hardhat-truffle4-ci.yml index 98f99e1025..50dc9cce65 100644 --- a/.github/workflows/hardhat-truffle4-ci.yml +++ b/.github/workflows/hardhat-truffle4-ci.yml @@ -32,10 +32,11 @@ jobs: name: Test hardhat-truffle4 on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -47,10 +48,11 @@ jobs: name: Test hardhat-truffle4 on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -65,10 +67,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-truffle5-ci.yml b/.github/workflows/hardhat-truffle5-ci.yml index a234f95137..e78866866a 100644 --- a/.github/workflows/hardhat-truffle5-ci.yml +++ b/.github/workflows/hardhat-truffle5-ci.yml @@ -32,10 +32,11 @@ jobs: name: Test hardhat-truffle5 on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -47,10 +48,11 @@ jobs: name: Test hardhat-truffle5 on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -65,10 +67,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-vyper-ci.yml b/.github/workflows/hardhat-vyper-ci.yml index 431448f993..8d4ec6b423 100644 --- a/.github/workflows/hardhat-vyper-ci.yml +++ b/.github/workflows/hardhat-vyper-ci.yml @@ -35,10 +35,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: install vyper run: docker pull vyperlang/vyper:0.1.0b10 - name: Install diff --git a/.github/workflows/hardhat-waffle-ci.yml b/.github/workflows/hardhat-waffle-ci.yml index 58804136ee..51bda01931 100644 --- a/.github/workflows/hardhat-waffle-ci.yml +++ b/.github/workflows/hardhat-waffle-ci.yml @@ -32,10 +32,11 @@ jobs: name: Test hardhat-waffle on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -47,10 +48,11 @@ jobs: name: Test hardhat-waffle on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -65,10 +67,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-web3-ci.yml b/.github/workflows/hardhat-web3-ci.yml index 929ff2159d..62765a0b06 100644 --- a/.github/workflows/hardhat-web3-ci.yml +++ b/.github/workflows/hardhat-web3-ci.yml @@ -30,10 +30,11 @@ jobs: name: Test hardhat-web3 on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -45,10 +46,11 @@ jobs: name: Test hardhat-web3 on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -63,10 +65,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/hardhat-web3-legacy-ci.yml b/.github/workflows/hardhat-web3-legacy-ci.yml index aa982607b4..e846bca819 100644 --- a/.github/workflows/hardhat-web3-legacy-ci.yml +++ b/.github/workflows/hardhat-web3-legacy-ci.yml @@ -30,10 +30,11 @@ jobs: name: Test hardhat-web3-legacy on Windows with Node 12 runs-on: windows-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -45,10 +46,11 @@ jobs: name: Test hardhat-web3-legacy on MacOS with Node 12 runs-on: macos-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build @@ -63,10 +65,11 @@ jobs: matrix: node: [12, 14, 16] steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 34c6583889..9bedbcf2c6 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -17,10 +17,11 @@ jobs: name: Lint runs-on: ubuntu-latest steps: - - uses: actions/setup-node@v1 + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 with: node-version: 12 - - uses: actions/checkout@v2 + cache: yarn - name: Install run: yarn --frozen-lockfile - name: Build diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f324777e4c..f9ab931a9d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,17 +50,19 @@ The linter is always run in the CI, so make sure it passes before pushing code. ## Branching -We work on the branch [`master`](https://github.com/nomiclabs/hardhat/tree/master). Versions of the different packages are always tagged and pushed to GitHub. So if you are looking for the latests released version of something, please refer to the tags. +We work on two branches, [`master`](https://github.com/nomiclabs/hardhat/tree/master) and [`development`](https://github.com/nomiclabs/hardhat/tree/development). -Please, branch from `master` when implementing a new feature or fixing a bug, and use it as the base branch in pull requests. +The `master` branch is meant to be kept in sync with the latest released version of each package. Only small changes should be based on `master` and use it as the base branch of a PR. This allows us to quickly release any change that gets merged into `master`. Examples of things that should be based on `master` are documentation changes and small bug fixes. + +The `development` branch is meant to be used for major changes that are ready, but we can't or don't want to release yet. We never release new versions from `development`. When we want to release the changes from `development`, we go through a stricter QA process, merge those changes into `master`, and release from `master`. Examples of things that should be based on `development` are new features and bug fixes that require significant changes to the codebase. ### Website and documentation branching If you are modifying the default config, adding a feature, or doing any kind of technical work that should be reflected in the documentation, the documentation change should be contained in the same branch and PR as the change. -If you are working purely on the website or documentation, not as a result of a technical change, you should branch from [`website`](https://github.com/nomiclabs/hardhat/tree/website) and use it as the base branch in your pull request. Anything merged into `website` this way should also be merged into `master`. +If you are working purely on the website or documentation, not as a result of a technical change, you should branch from [`master`](https://github.com/nomiclabs/hardhat/tree/master) and use it as the base branch in your pull request. -Note that the `website` branch is automatically deployed, so take care when merging into it. +Note that the `master` branch is automatically deployed, so take care when merging into it. ## Dependencies @@ -75,7 +77,7 @@ Hardhat and its plugins are optimized for keeping startup time low. This is done by selectively requiring dependencies when needed using `import` or `require` following this criteria: 1. If something is only imported for its type, and NOT its value, use a top-level `import ... from "mod"` -1. If a module is in the "Essential modules" list below, use a top-level `import ... from "mod""`. +1. If a module is in the "Essential modules" list below, use a top-level `import ... from "mod"`. 1. Otherwise, use `await import` or `require` locally in the functions that use it. 1. If the function is sync, use node's `require` 2. If the function is an async, use `await import` diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index f78439ce5b..008ec8b31a 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -1,7 +1,7 @@ const defaultSlugify = require("@vuepress/shared-utils/lib/slugify"); const plugins = require("./sorted-plugins.js"); -const pluginsChildren = plugins.map((p) => [ +const officialPlugins = plugins.officialPlugins.map((p) => [ "/plugins/" + p.normalizedName + ".md", p.name, 0, @@ -24,7 +24,7 @@ module.exports = { lastUpdated: true, repo: "nomiclabs/hardhat", docsDir: "docs", - docsBranch: "website", + docsBranch: "master", editLinkText: "Help us improve this page!", editLinks: true, sidebarDepth: 1, @@ -150,7 +150,10 @@ module.exports = { { title: "Plugins", collapsable: false, - children: pluginsChildren, + children: [ + ...officialPlugins, + ["/plugins/#community-plugins", "Community plugins", 0], + ], }, ], }, diff --git a/docs/.vuepress/plugins.js b/docs/.vuepress/plugins.js index 8f2083c259..f87ca847d2 100644 --- a/docs/.vuepress/plugins.js +++ b/docs/.vuepress/plugins.js @@ -4,106 +4,11 @@ // // If your plugin's `name` is not it's package name, you can add an optional // `npmPackage` field. -// -// Note that the `url` is an URL to the **branch** the website should get your -// plugin's the README.md from, not the repository. - -const plugins = [ - { - name: "@nomiclabs/hardhat-ethers", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-ethers", - description: "Injects ethers.js into the Hardhat Runtime Environment", - tags: ["Ethers.js", "Testing", "Tasks", "Scripts"], - }, - { - name: "@nomiclabs/hardhat-waffle", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-waffle", - description: - "Adds a Waffle-compatible provider to the Hardhat Runtime Environment and automatically initializes the Waffle Chai matchers", - tags: ["Waffle", "Testing"], - }, - { - name: "@nomiclabs/hardhat-truffle4", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-truffle4", - description: "Integration with TruffleContract from Truffle 4", - tags: ["Truffle", "Testing"], - }, - { - name: "@nomiclabs/hardhat-truffle5", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-truffle5", - description: "Integration with TruffleContract from Truffle 5", - tags: ["Truffle", "Testing"], - }, - { - name: "@nomiclabs/hardhat-web3", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-web3", - description: "Injects Web3 1.x into the Hardhat Runtime Environment", - tags: ["Web3.js", "Testing", "Tasks", "Scripts"], - }, - { - name: "@nomiclabs/hardhat-web3-legacy", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-web3-legacy", - description: "Injects Web3 0.20.x into the Hardhat Runtime Environment", - tags: ["Web3.js", "Legacy", "Testing", "Tasks", "Scripts"], - }, - { - name: "@nomiclabs/hardhat-etherscan", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-etherscan", - description: "Automatically verify contracts on Etherscan", - tags: ["Etherscan", "Verification"], - }, - { - name: "@nomiclabs/hardhat-ganache", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-ganache", - description: "Hardhat plugin for managing Ganache", - tags: ["Ganache", "Testing network"], - }, - { - name: "@nomiclabs/hardhat-solpp", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-solpp", - description: - "Automatically run the solpp preprocessor before each compilation", - tags: ["Solpp", "Preprocessor"], - }, - { - name: "@nomiclabs/hardhat-solhint", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-solhint", - description: "Easily run solhint to lint your Solidity code", - tags: ["Solhint", "Linter"], - }, - { - name: "@nomiclabs/hardhat-vyper", - author: "Nomic Labs", - authorUrl: "https://twitter.com/nomiclabs", - url: "https://github.com/nomiclabs/hardhat/tree/master/packages/hardhat-vyper", - description: "Adds support to compile Vyper smart contracts", - tags: ["Vyper", "Compiler"], - }, +module.exports.communityPlugins = [ { name: "hardhat-deploy", author: "Ronan Sandford", authorUrl: "https://github.com/wighawag", - url: "https://github.com/wighawag/hardhat-deploy/tree/master", description: "Hardhat plugin for Deployments", tags: ["Deployment", "Testing"], }, @@ -111,7 +16,6 @@ const plugins = [ name: "hardhat-preprocessor", author: "Ronan Sandford", authorUrl: "https://github.com/wighawag", - url: "https://github.com/wighawag/hardhat-preprocessor/tree/master", description: "An hardhat plugin to pre-process contract source code before compilation", tags: ["Solidity", "Preprocessor"], @@ -120,7 +24,6 @@ const plugins = [ name: "hardhat-deploy-ethers", author: "Ronan Sandford", authorUrl: "https://github.com/wighawag", - url: "https://github.com/wighawag/hardhat-deploy-ethers/tree/main", description: "A hardhat-deploy plugin for Ethers.js v5", tags: ["Ethers.js", "hardhat-deploy"], }, @@ -128,7 +31,6 @@ const plugins = [ name: "@openzeppelin/hardhat-upgrades", author: "OpenZeppelin", authorUrl: "https://openzeppelin.com", - url: "https://github.com/OpenZeppelin/openzeppelin-upgrades/tree/master/packages/plugin-hardhat", description: "Hardhat plugin for deploying and managing upgradeable contracts.", tags: ["Security", "Upgrades", "OpenZeppelin"], @@ -137,7 +39,6 @@ const plugins = [ name: "@tenderly/hardhat-tenderly", author: "Tenderly", authorUrl: "https://tenderly.co/", - url: "https://github.com/Tenderly/hardhat-tenderly/tree/master", description: "Easily integrate your Hardhat project with Tenderly. Tenderly is an Ethereum monitoring, debugging and analytics platform.", tags: ["Debuggin", "Monitoring", "Alerting", "Tasks", "Scripts"], @@ -146,7 +47,6 @@ const plugins = [ name: "hardhat-ethernal", author: "Ethernal", authorUrl: "https://www.tryethernal.com", - url: "https://github.com/tryethernal/hardhat-ethernal/tree/master", description: "Integrate your Hardhat project and Hardhat network with Ethernal. Ethernal is a block explorer for private chains.", tags: ["explorer", "debugging", "development-tool"], @@ -155,7 +55,6 @@ const plugins = [ name: "@typechain/hardhat", author: "Rahul Sethuram", authorUrl: "https://twitter.com/rhlsthrm", - url: "https://github.com/ethereum-ts/TypeChain/tree/master/packages/hardhat", description: "Zero-config TypeChain support for Hardhat.", tags: ["Testing", "Tasks"], }, @@ -163,7 +62,6 @@ const plugins = [ name: "hardhat-spdx-license-identifier", author: "Nick Barry", authorUrl: "https://github.com/ItsNickBarry", - url: "https://github.com/ItsNickBarry/hardhat-spdx-license-identifier/tree/master", description: "Automatically prepend local Solidity source files with an SPDX License Identifier", tags: ["License"], @@ -172,7 +70,6 @@ const plugins = [ name: "hardhat-abi-exporter", author: "Nick Barry", authorUrl: "https://github.com/ItsNickBarry", - url: "https://github.com/ItsNickBarry/hardhat-abi-exporter/tree/master", description: "Automatically export Solidity contract ABIs on compilation", tags: ["Compiling", "ABI"], }, @@ -180,7 +77,6 @@ const plugins = [ name: "hardhat-contract-sizer", author: "Nick Barry", authorUrl: "https://github.com/ItsNickBarry", - url: "https://github.com/ItsNickBarry/hardhat-contract-sizer/tree/master", description: "Calculate compiled contract sizes", tags: ["Compiling", "Bytecode"], }, @@ -188,7 +84,6 @@ const plugins = [ name: "hardhat-log-remover", author: "Nick Barry", authorUrl: "https://github.com/ItsNickBarry", - url: "https://github.com/ItsNickBarry/hardhat-log-remover/tree/master", description: "Remove Hardhat console.log imports and calls from Solidity source files", tags: ["Logging", "Console", "Deployment"], @@ -197,7 +92,6 @@ const plugins = [ name: "hardhat-dependency-compiler", author: "Nick Barry", authorUrl: "https://github.com/ItsNickBarry", - url: "https://github.com/ItsNickBarry/hardhat-dependency-compiler/tree/master", description: "Compile Solidity sources directly from NPM dependencies", tags: ["Compiling", "Dependencies"], }, @@ -205,7 +99,6 @@ const plugins = [ name: "hardhat-docgen", author: "Nick Barry, samuveth", authorUrl: "https://github.com/ItsNickBarry", - url: "https://github.com/ItsNickBarry/hardhat-docgen/tree/master", description: "Generate a static documentation site from NatSpec comments", tags: ["Documentation", "NatSpec"], }, @@ -213,7 +106,6 @@ const plugins = [ name: "hardhat-watcher", author: "Xander Deseyn", authorUrl: "https://github.com/N1ghtly", - url: "https://github.com/N1ghtly/hardhat-watcher/tree/main", description: "Automatically run Hardhat actions on file changes.", tags: ["Tasks", "Testing"], }, @@ -221,9 +113,6 @@ const plugins = [ name: "solidity-coverage", author: "Chris Gewecke", authorUrl: "https://github.com/cgewecke", - url: "https://github.com/sc-forks/solidity-coverage/tree/master/HARDHAT_README.md", - readmeUrl: - "https://raw.githubusercontent.com/sc-forks/solidity-coverage/master/HARDHAT_README.md", description: "Code coverage for Solidity", tags: ["Testing", "Coverage", "Hardhat plugin"], }, @@ -231,7 +120,6 @@ const plugins = [ name: "hardhat-gas-reporter", author: "Chris Gewecke", authorUrl: "https://github.com/cgewecke", - url: "https://github.com/cgewecke/hardhat-gas-reporter/tree/master", description: "Gas usage per unit test. Average gas usage per method. A mocha reporter.", tags: ["Testing", "Gas", "Hardhat plugin"], @@ -240,7 +128,6 @@ const plugins = [ name: "hardhat-erc1820", author: "David Mihal", authorUrl: "https://twitter.com/dmihal", - url: "https://github.com/dmihal/hardhat-erc1820/tree/master", description: "Automatically deploy the ERC-1820 registry contract to Hardhat EVM chains.", tags: ["Testing"], @@ -249,7 +136,6 @@ const plugins = [ name: "@aragon/buidler-aragon", author: "Aragon One", authorUrl: "https://twitter.com/aragononeteam", - url: "https://github.com/aragon/buidler-aragon/tree/master", description: "Buidler plugin for Aragon App development", tags: ["Aragon", "Apps", "Buidler plugin"], }, @@ -257,7 +143,6 @@ const plugins = [ name: "buidler-source-descriptor", author: "Kendrick Tan", authorUrl: "https://github.com/kendricktan", - url: "https://github.com/kendricktan/buidler-source-descriptor/tree/master", description: "A Buidler plugin to generate a descriptor of your Solidity source code", tags: ["Compiling", "Documentation", "Buidler plugin"], @@ -266,26 +151,15 @@ const plugins = [ name: "hardhat-local-networks-config-plugin", author: "Facu Spagnuolo", authorUrl: "https://twitter.com/facuspagnuolo", - url: "https://github.com/facuspagnuolo/hardhat-local-networks-config-plugin/tree/master", description: "Allow loading network configs for Hardhat projects in home file", tags: ["Networks", "Config"], }, - { - name: "@eth-optimism/smock", - author: "Optimism", - authorUrl: "https://github.com/ethereum-optimism", - url: "https://github.com/ethereum-optimism/smock/tree/master", - description: - "smock is a utility package that can generate mock Solidity contracts written entirely in JavaScript.", - tags: ["Testing", "Mocking", "Buidler plugin"], - }, { name: "@eth-optimism/plugins/hardhat/compiler", npmPackage: "@eth-optimism/plugins", author: "Optimism", authorUrl: "https://github.com/ethereum-optimism", - url: "https://github.com/ethereum-optimism/plugins/tree/master/src/hardhat/compiler", description: "Automatically compiles your Solidity contracts with the OVM compiler.", tags: ["Optimism", "Solidity", "Compiler", "OVM"], @@ -295,7 +169,6 @@ const plugins = [ npmPackage: "@eth-optimism/plugins", author: "Optimism", authorUrl: "https://github.com/ethereum-optimism", - url: "https://github.com/ethereum-optimism/plugins/tree/master", description: "Integrates Hardhat and ethers.js with Optimism's L2 network.", tags: ["Optimism", "ethers.js", "OVM"], }, @@ -304,7 +177,6 @@ const plugins = [ npmPackage: "@symfoni/hardhat-react", author: "Symfoni", authorUrl: "https://github.com/symfoni/", - url: "https://github.com/symfoni/symfoni-monorepo/tree/master/packages/hardhat-react", description: "A Hardhat plugin that generates a React hook component from your smart contracts. Hot reloaded into your React app. Deployed or not deployed. And everything typed and initialized.", tags: ["Ethers", "React", "Deploy", "Typechain", "Frontend", "Web3modal"], @@ -313,7 +185,6 @@ const plugins = [ name: "hardhat-etherscan-abi", author: "Roman Semenov", authorUrl: "https://github.com/poma", - url: "https://github.com/poma/hardhat-etherscan-abi/tree/master", description: "Automatically fetch contract ABI from Etherscan", tags: ["Etherscan", "ABI"], }, @@ -321,7 +192,6 @@ const plugins = [ name: "hardhat-tracer", author: "Soham Zemse", authorUrl: "https://github.com/zemse/", - url: "https://github.com/zemse/hardhat-tracer/tree/master", description: "See emitted events during your hardhat tests in the console", tags: ["Events", "Logs", "Trace", "Console", "Testing"], }, @@ -329,7 +199,6 @@ const plugins = [ name: "hardhat-circom", author: "Project Sophon", authorUrl: "https://github.com/projectsophon", - url: "https://github.com/projectsophon/hardhat-circom/tree/master", description: "Provide tasks to integrate Circom and SnarkJS", tags: [ "Circom", @@ -344,7 +213,6 @@ const plugins = [ name: "hardhat-storage-layout", author: "Aurora Labs", authorUrl: "https://github.com/aurora-is-near", - url: "https://github.com/aurora-is-near/hardhat-storage-layout/tree/main", description: "Exporting solidity contract storage layout", tags: ["solidity", "storage-layout"], }, @@ -352,7 +220,6 @@ const plugins = [ name: "hardhat-change-network", author: "David Mihal", authorUrl: "https://github.com/dmihal", - url: "https://github.com/dmihal/hardhat-change-network/tree/master", description: "Allows changing the current network in Hardhat.", tags: ["Testing"], }, @@ -360,14 +227,140 @@ const plugins = [ name: "hardhat-packager", author: "Paul Razvan Berg", authorUrl: "https://github.com/paulrberg", - url: "https://github.com/paulrberg/hardhat-packager/tree/main", description: "Prepare the contract artifacts and the TypeChain bindings for registry deployment.", tags: ["Deployment", "Tasks", "TypeChain"], }, + { + name: "hardhat-time-n-mine", + author: "Gonzalo Petraglia & Alan Verbner", + authorUrl: "https://github.com/atixlabs", + description: + "Helper plugin to manipulate blocks timestamp and trigger mining. It can be used from the command line and in the tests.", + tags: ["Testing"], + }, + { + name: "hardhat-proxy", + author: "Jinyang Liu", + authorUrl: "https://github.com/jinyang1994", + description: + "This plugin brings the proxy contract to Hardhat, which allows you to manage the proxy contract in a simple way.", + tags: ["Proxy Contract", "Tasks", "Scripts"], + }, + { + name: "hardhat-fund-link", + author: "Applied Blockchain", + npmPackage: "@appliedblockchain/chainlink-plugins-fund-link", + authorUrl: "https://github.com/appliedblockchain", + description: "Transfers Link token amount between accounts.", + tags: ["Chainlink", "Link"], + }, + { + name: "@defi-wonderland/smock", + author: "DeFi Wonderland and Optimism PBC", + authorUrl: "https://github.com/defi-wonderland", + description: + "The Solidity mocking library. Smock is a utility package that can generate mock Solidity contracts written entirely in JavaScript.", + tags: ["Testing", "Mocking"], + }, + { + name: "hardhat-secure-signer", + author: "Anthony Daniel Martin", + authorUrl: "https://github.com/anthonymartin", + description: + "Enhanced hardhat credential security using an interactive prompt and password-encrypted credentials", + tags: [ + "private key", + "encryption", + "security", + "developer experience", + "convenience", + "ethers.js", + ], + }, ]; -module.exports = plugins.map((p) => ({ +module.exports.officialPlugins = [ + { + name: "@nomiclabs/hardhat-ethers", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: "Injects ethers.js into the Hardhat Runtime Environment", + tags: ["Ethers.js", "Testing", "Tasks", "Scripts"], + }, + { + name: "@nomiclabs/hardhat-waffle", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: + "Adds a Waffle-compatible provider to the Hardhat Runtime Environment and automatically initializes the Waffle Chai matchers", + tags: ["Waffle", "Testing"], + }, + { + name: "@nomiclabs/hardhat-truffle4", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: "Integration with TruffleContract from Truffle 4", + tags: ["Truffle", "Testing"], + }, + { + name: "@nomiclabs/hardhat-truffle5", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: "Integration with TruffleContract from Truffle 5", + tags: ["Truffle", "Testing"], + }, + { + name: "@nomiclabs/hardhat-web3", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: "Injects Web3 1.x into the Hardhat Runtime Environment", + tags: ["Web3.js", "Testing", "Tasks", "Scripts"], + }, + { + name: "@nomiclabs/hardhat-web3-legacy", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: "Injects Web3 0.20.x into the Hardhat Runtime Environment", + tags: ["Web3.js", "Legacy", "Testing", "Tasks", "Scripts"], + }, + { + name: "@nomiclabs/hardhat-etherscan", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: "Automatically verify contracts on Etherscan", + tags: ["Etherscan", "Verification"], + }, + { + name: "@nomiclabs/hardhat-ganache", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: "Hardhat plugin for managing Ganache", + tags: ["Ganache", "Testing network"], + }, + { + name: "@nomiclabs/hardhat-solpp", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: + "Automatically run the solpp preprocessor before each compilation", + tags: ["Solpp", "Preprocessor"], + }, + { + name: "@nomiclabs/hardhat-solhint", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: "Easily run solhint to lint your Solidity code", + tags: ["Solhint", "Linter"], + }, + { + name: "@nomiclabs/hardhat-vyper", + author: "Nomic Labs", + authorUrl: "https://twitter.com/nomiclabs", + description: "Adds support to compile Vyper smart contracts", + tags: ["Vyper", "Compiler"], + }, +].map((p) => ({ ...p, normalizedName: p.name.split("/").join("-").replace(/^@/, ""), })); diff --git a/docs/.vuepress/sorted-plugins.js b/docs/.vuepress/sorted-plugins.js index 6a75b01a48..598869a632 100644 --- a/docs/.vuepress/sorted-plugins.js +++ b/docs/.vuepress/sorted-plugins.js @@ -3,7 +3,13 @@ const plugins = require("./plugins.js"); try { const downloads = require("./plugin-downloads.json"); - plugins.sort((p1, p2) => downloads[p2.name] - downloads[p1.name]); + plugins.officialPlugins.sort( + (p1, p2) => downloads[p2.name] - downloads[p1.name] + ); + + plugins.communityPlugins.sort( + (p1, p2) => downloads[p2.name] - downloads[p1.name] + ); } catch (e) { // we just don't sort here } diff --git a/docs/.vuepress/theme/components/HHWhosUsingHardhat.vue b/docs/.vuepress/theme/components/HHWhosUsingHardhat.vue index 527a8fa6bb..97d02c0c52 100644 --- a/docs/.vuepress/theme/components/HHWhosUsingHardhat.vue +++ b/docs/.vuepress/theme/components/HHWhosUsingHardhat.vue @@ -3,7 +3,6 @@ .padded-container h1.section-title Trusted by top teams section.banner-container.banner-container-desktop - .marquee-container(v-for="group of desktopUsers") .marquee-content .marquee @@ -136,6 +135,66 @@ import UmaMobileImage from "../img/company_logos/mobile/logo-uma@2x.png"; import UnlockDesktopImage from "../img/company_logos/2x/logo-unlock@2x.png"; import UnlockMobileImage from "../img/company_logos/mobile/logo-unlock@2x.png"; +// Mainframe +import MainframeDesktopImage from "../img/company_logos/2x/logo-mainframe@2x.png"; +import MainframeMobileImage from "../img/company_logos/mobile/logo-mainframe@2x.png"; + +// ChainLink +import ChainlinkDesktopImage from "../img/company_logos/2x/logo-chainlink@2x.png"; +import ChainlinkMobileImage from "../img/company_logos/mobile/logo-chainlink@2x.png"; + +// Gnosis +import GnosisDesktopImage from "../img/company_logos/2x/logo-gnosis@2x.png"; +import GnosisMobileImage from "../img/company_logos/mobile/logo-gnosis@2x.png"; + +// SushiSwap +import SushiSwapDesktopImage from "../img/company_logos/2x/logo-sushiswap@2x.png"; +import SushiSwapMobileImage from "../img/company_logos/mobile/logo-sushiswap@2x.png"; + +// ENS +import ENSDesktopImage from "../img/company_logos/2x/logo-ens@2x.png"; +import ENSMobileImage from "../img/company_logos/mobile/logo-ens@2x.png"; + +// Yearn +import YearnDesktopImage from "../img/company_logos/2x/logo-yearn@2x.png"; +import YearnMobileImage from "../img/company_logos/mobile/logo-yearn@2x.png"; + +// Reflexer +import ReflexerDesktopImage from "../img/company_logos/2x/logo-reflexer@2x.png"; +import ReflexerMobileImage from "../img/company_logos/mobile/logo-reflexer@2x.png"; + +// Dharma +import DharmaDesktopImage from "../img/company_logos/2x/logo-dharma@2x.png"; +import DharmaMobileImage from "../img/company_logos/mobile/logo-dharma@2x.png"; + +// 1Inch +import _1InchDesktopImage from "../img/company_logos/2x/logo-1inch@2x.png"; +import _1InchMobileImage from "../img/company_logos/mobile/logo-1inch@2x.png"; + +// Uniswap +import UniswapDesktopImage from "../img/company_logos/2x/logo-uniswap@2x.png"; +import UniswapMobileImage from "../img/company_logos/mobile/logo-uniswap@2x.png"; + +// Hegic +import HegicDesktopImage from "../img/company_logos/2x/logo-hegic@2x.png"; +import HegicMobileImage from "../img/company_logos/mobile/logo-hegic@2x.png"; + +// Augur +import AugurDesktopImage from "../img/company_logos/2x/logo-augur@2x.png"; +import AugurMobileImage from "../img/company_logos/mobile/logo-augur@2x.png"; + +// ZkSync +import ZkSyncDesktopImage from "../img/company_logos/2x/logo-zksync@2x.png"; +import ZkSyncMobileImage from "../img/company_logos/mobile/logo-zksync@2x.png"; + +// Livepeer +import LivepeerDesktopImage from "../img/company_logos/2x/logo-livepeer@2x.png"; +import LivepeerMobileImage from "../img/company_logos/mobile/logo-livepeer@2x.png"; + +// Loopring +import LoopringDesktopImage from "../img/company_logos/2x/logo-loopring@2x.png"; +import LoopringMobileImage from "../img/company_logos/mobile/logo-loopring@2x.png"; + export default { name: "HHWhosUsingHardhat", data() { @@ -143,10 +202,11 @@ export default { return { users: [ { - company: "Decentraland", - href: "https://decentraland.org/", - desktopImage: DecentralandDesktopImage, - mobileImage: DecentralandMobileImage, + company: "Lodestar", + image_filename: "company_logos/mobile/logo-Lodestar@2x.png", + href: "#", + desktopImage: LodestarDesktopImage, + mobileImage: LodestarMobileImage, }, { company: "Connext", @@ -156,11 +216,32 @@ export default { mobileImage: ConnextMobileImage, }, { - company: "Aragon One", - image_filename: "company_logos/mobile/logo-aone@2x.png", - href: "https://aragon.one/", - desktopImage: AragonDesktopImage, - mobileImage: AragonMobileImage, + company: "Set", + image_filename: "company_logos/mobile/logo-set@2x.png", + href: "#", + desktopImage: SetDesktopImage, + mobileImage: SetMobileImage, + }, + { + company: "Opyn", + image_filename: "company_logos/mobile/logo-Opyn@2x.png", + href: "#", + desktopImage: OpynDesktopImage, + mobileImage: OpynMobileImage, + }, + { + company: "Balancer", + image_filename: "company_logos/mobile/logo-Balancer@2x.png", + href: "#", + desktopImage: BalancerDesktopImage, + mobileImage: BalancerMobileImage, + }, + { + company: "Moloch Dao", + image_filename: "company_logos/mobile/logo-molochdao@2x.png", + href: "#", + desktopImage: MolochDesktopImage, + mobileImage: MolochMobileImage, }, { company: "Kyber Network", @@ -170,54 +251,38 @@ export default { mobileImage: KyberMobileImage, }, { - company: "AAVE", - image_filename: "company_logos/mobile/logo-aave@2x.png", + company: "OpenZeppelin", + image_filename: "company_logos/mobile/logo-openzeppelin@2x.png", href: "#", - desktopImage: AaveDesktopImage, - mobileImage: AaveMobileImage, + desktopImage: OpenZeppelinDesktopImage, + mobileImage: OpenZeppelinMobileImage, }, { - company: "Synthetix", - image_filename: "company_logos/mobile/logo-synthetix@2x.png", + company: "PieDao", + image_filename: "company_logos/mobile/logo-pieado@2x.png", href: "#", - desktopImage: SynthetixDesktopImage, - mobileImage: SynthetixMobileImage, + desktopImage: PieDaoDesktopImage, + mobileImage: PieDaoMobileImage, }, { - company: "PoolTogether", - image_filename: "company_logos/mobile/logo-pool@2x.png", + company: "Optimism", + image_filename: "company_logos/mobile/logo-Optimism@2x.png", href: "#", - desktopImage: PoolTogetherDesktopImage, - mobileImage: PoolTogetherMobileImage, - }, - { - company: "Celer", - image_filename: "company_logos/mobile/logo-celer@2x.png", - href: "https://www.celer.network/", - desktopImage: CelerDesktopImage, - mobileImage: CelerMobileImage, - }, - { - company: "Skale", - image_filename: "company_logos/mobile/logo-skale@2x.png", - href: "https://skale.network/", - desktopImage: SkaleDesktopImage, - mobileImage: SkaleMobileImage, + desktopImage: OptimismDesktopImage, + mobileImage: OptimismMobileImage, }, - // SECOND LINE { - company: "Set", - image_filename: "company_logos/mobile/logo-set@2x.png", - href: "#", - desktopImage: SetDesktopImage, - mobileImage: SetMobileImage, + company: "Decentraland", + href: "https://decentraland.org/", + desktopImage: DecentralandDesktopImage, + mobileImage: DecentralandMobileImage, }, { - company: "InstaDapp", - image_filename: "company_logos/mobile/logo-instadapp@2x.png", - href: "#", - desktopImage: InstadappDesktopImage, - mobileImage: InstadappMobileImage, + company: "Aragon One", + image_filename: "company_logos/mobile/logo-aone@2x.png", + href: "https://aragon.one/", + desktopImage: AragonDesktopImage, + mobileImage: AragonMobileImage, }, { company: "Kleros", @@ -227,12 +292,20 @@ export default { mobileImage: KlerosMobileImage, }, { - company: "Balancer", - image_filename: "company_logos/mobile/logo-Balancer@2x.png", + company: "mStable", + image_filename: "company_logos/mobile/logo-mstable@2x.png", href: "#", - desktopImage: BalancerDesktopImage, - mobileImage: BalancerMobileImage, + desktopImage: MStableDesktopImage, + mobileImage: MStableMobileImage, + }, + { + company: "Celo", + image_filename: "company_logos/mobile/logo-celo@2x.png", + href: "#", + desktopImage: CeloDesktopImage, + mobileImage: CeloMobileImage, }, + // SECOND LINE { company: "MyCrypto", image_filename: "company_logos/mobile/logo-mycrypto@2x.png", @@ -241,48 +314,96 @@ export default { mobileImage: MyCryptoMobileImage, }, { - company: "Horizon", - image_filename: "company_logos/mobile/logo-horizon@2x.png", + company: "POAP", + image_filename: "company_logos/mobile/logo-poap@2x.png", href: "#", - desktopImage: HorizonDesktopImage, - mobileImage: HorizonMobileImage, + desktopImage: PoapDesktopImage, + mobileImage: PoapMobileImage, }, + // { + // company: "Melon", + // image_filename: "company_logos/mobile/logo-melon@2x.png", + // href: "#", + // desktopImage: MelonDesktopImage, + // mobileImage: MelonMobileImage, + // }, { - company: "Lodestar", - image_filename: "company_logos/mobile/logo-Lodestar@2x.png", + company: "AAVE", + image_filename: "company_logos/mobile/logo-aave@2x.png", href: "#", - desktopImage: LodestarDesktopImage, - mobileImage: LodestarMobileImage, + desktopImage: AaveDesktopImage, + mobileImage: AaveMobileImage, }, { - company: "mStable", - image_filename: "company_logos/mobile/logo-mstable@2x.png", + company: "OpenGSN", + image_filename: "company_logos/mobile/logo-OpenGSN@2x.png", href: "#", - desktopImage: MStableDesktopImage, - mobileImage: MStableMobileImage, + desktopImage: OpenGSNDesktopImage, + mobileImage: OpenGSNMobileImage, }, { - company: "Melon", - image_filename: "company_logos/mobile/logo-melon@2x.png", + company: "Synthetix", + image_filename: "company_logos/mobile/logo-synthetix@2x.png", href: "#", - desktopImage: MelonDesktopImage, - mobileImage: MelonMobileImage, + desktopImage: SynthetixDesktopImage, + mobileImage: SynthetixMobileImage, }, { - company: "Moloch Dao", - image_filename: "company_logos/mobile/logo-molochdao@2x.png", + company: "Unlock", + image_filename: "company_logos/mobile/logo-unlock@2x.png", href: "#", - desktopImage: MolochDesktopImage, - mobileImage: MolochMobileImage, + desktopImage: UnlockDesktopImage, + mobileImage: UnlockMobileImage, }, { - company: "Celo", - image_filename: "company_logos/mobile/logo-celo@2x.png", + company: "Status", + image_filename: "company_logos/mobile/logo-Status@2x.png", href: "#", - desktopImage: CeloDesktopImage, - mobileImage: CeloMobileImage, + desktopImage: StatusDesktopImage, + mobileImage: StatusMobileImage, + }, + { + company: "PoolTogether", + image_filename: "company_logos/mobile/logo-pool@2x.png", + href: "#", + desktopImage: PoolTogetherDesktopImage, + mobileImage: PoolTogetherMobileImage, }, - // THIRD LINE + { + company: "InstaDapp", + image_filename: "company_logos/mobile/logo-instadapp@2x.png", + href: "#", + desktopImage: InstadappDesktopImage, + mobileImage: InstadappMobileImage, + }, + // { + // company: "Mainframe", + // image_filename: "company_logos/mobile/logo-mainframe@2x.png", + // href: "#", + // desktopImage: MainframeDesktopImage, + // mobileImage: MainframeMobileImage, + // }, + { + company: "Horizon", + image_filename: "company_logos/mobile/logo-horizon@2x.png", + href: "#", + desktopImage: HorizonDesktopImage, + mobileImage: HorizonMobileImage, + }, + // { + // company: "Skale", + // image_filename: "company_logos/mobile/logo-skale@2x.png", + // href: "https://skale.network/", + // desktopImage: SkaleDesktopImage, + // mobileImage: SkaleMobileImage, + // }, + // { + // company: "Celer", + // image_filename: "company_logos/mobile/logo-celer@2x.png", + // href: "https://www.celer.network/", + // desktopImage: CelerDesktopImage, + // mobileImage: CelerMobileImage, + // }, { company: "UMA", image_filename: "company_logos/mobile/logo-uma@2x.png", @@ -290,71 +411,114 @@ export default { desktopImage: UmaDesktopImage, mobileImage: UmaMobileImage, }, + // THIRD LINE { - company: "OpenGSN", - image_filename: "company_logos/mobile/logo-OpenGSN@2x.png", + company: "Chainlink", + image_filename: "company_logos/mobile/logo-chainlink@2x.png", href: "#", - desktopImage: OpenGSNDesktopImage, - mobileImage: OpenGSNMobileImage, + desktopImage: ChainlinkDesktopImage, + mobileImage: ChainlinkMobileImage, }, { - company: "OpenZeppelin", - image_filename: "company_logos/mobile/logo-openzeppelin@2x.png", + company: "Gnosis", + image_filename: "company_logos/mobile/logo-gnosis@2x.png", href: "#", - desktopImage: OpenZeppelinDesktopImage, - mobileImage: OpenZeppelinMobileImage, + desktopImage: GnosisDesktopImage, + mobileImage: GnosisMobileImage, }, { - company: "Optimism", - image_filename: "company_logos/mobile/logo-Optimism@2x.png", + company: "SushiSwap", + image_filename: "company_logos/mobile/logo-sushiswap@2x.png", href: "#", - desktopImage: OptimismDesktopImage, - mobileImage: OptimismMobileImage, + desktopImage: SushiSwapDesktopImage, + mobileImage: SushiSwapMobileImage, }, { - company: "Opyn", - image_filename: "company_logos/mobile/logo-Opyn@2x.png", + company: "ENS", + image_filename: "company_logos/mobile/logo-ens@2x.png", href: "#", - desktopImage: OpynDesktopImage, - mobileImage: OpynMobileImage, + desktopImage: ENSDesktopImage, + mobileImage: ENSMobileImage, }, { - company: "PieDao", - image_filename: "company_logos/mobile/logo-pieado@2x.png", + company: "Yearn", + image_filename: "company_logos/mobile/logo-yearn@2x.png", href: "#", - desktopImage: PieDaoDesktopImage, - mobileImage: PieDaoMobileImage, + desktopImage: YearnDesktopImage, + mobileImage: YearnMobileImage, }, { - company: "POAP", - image_filename: "company_logos/mobile/logo-poap@2x.png", + company: "Reflexer", + image_filename: "company_logos/mobile/logo-reflexer@2x.png", href: "#", - desktopImage: PoapDesktopImage, - mobileImage: PoapMobileImage, + desktopImage: ReflexerDesktopImage, + mobileImage: ReflexerMobileImage, + }, + { + company: "Uniswap", + image_filename: "company_logos/mobile/logo-uniswap@2x.png", + href: "#", + desktopImage: UniswapDesktopImage, + mobileImage: UniswapMobileImage, }, { - company: "Status", - image_filename: "company_logos/mobile/logo-Status@2x.png", + company: "Dharma", + image_filename: "company_logos/mobile/logo-dharma@2x.png", href: "#", - desktopImage: StatusDesktopImage, - mobileImage: StatusMobileImage, + desktopImage: DharmaDesktopImage, + mobileImage: DharmaMobileImage, }, { - company: "Unlock", - image_filename: "company_logos/mobile/logo-unlock@2x.png", + company: "1Inch", + image_filename: "company_logos/mobile/logo-1inch@2x.png", href: "#", - desktopImage: UnlockDesktopImage, - mobileImage: UnlockMobileImage, + desktopImage: _1InchDesktopImage, + mobileImage: _1InchMobileImage, + }, + { + company: "HEGIC", + image_filename: "company_logos/mobile/logo-hegic@2x.png", + href: "#", + desktopImage: HegicDesktopImage, + mobileImage: HegicMobileImage, + }, + // { + // company: "Augur", + // image_filename: "company_logos/mobile/logo-augur@2x.png", + // href: "#", + // desktopImage: AugurDesktopImage, + // mobileImage: AugurMobileImage, + // }, + { + company: "zkSync", + image_filename: "company_logos/mobile/logo-zkSync@2x.png", + href: "#", + desktopImage: ZkSyncDesktopImage, + mobileImage: ZkSyncMobileImage, + }, + { + company: "Livepeer", + image_filename: "company_logos/mobile/logo-livepeer@2x.png", + href: "#", + desktopImage: LivepeerDesktopImage, + mobileImage: LivepeerMobileImage, + }, + { + company: "Loopring", + image_filename: "company_logos/mobile/logo-loopring@2x.png", + href: "#", + desktopImage: LoopringDesktopImage, + mobileImage: LoopringMobileImage, }, ], }; }, computed: { desktopUsers() { - return splitInChunks(this.users, 10); + return splitInChunks(this.users, 15); }, mobileUsers() { - return splitInChunks(this.users, 6); + return splitInChunks(this.users, 9); }, }, }; @@ -369,8 +533,10 @@ function splitInChunks(arr, chunkSize) {