From 3163459b3bb97d1e15bb698764bd9be0bec6facb Mon Sep 17 00:00:00 2001 From: Christopher Dedominici <18092467+ChristopherDedominici@users.noreply.github.com> Date: Fri, 3 Nov 2023 17:16:43 +0100 Subject: [PATCH 01/11] convert env variables to configuration variables --- .env.example | 10 ---------- .github/workflows/ci.yml | 12 +++++++++++- .solcover.js | 3 --- README.md | 27 ++++++++++++++++++++------- hardhat.config.ts | 36 +++++++++++++----------------------- package.json | 5 ++--- 6 files changed, 46 insertions(+), 47 deletions(-) delete mode 100644 .env.example diff --git a/.env.example b/.env.example deleted file mode 100644 index 4633c545..00000000 --- a/.env.example +++ /dev/null @@ -1,10 +0,0 @@ -export INFURA_API_KEY="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" -export MNEMONIC="here is where your twelve words mnemonic should be put my friend" - -# Block explorer API keys -export ARBISCAN_API_KEY="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" -export BSCSCAN_API_KEY="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" -export ETHERSCAN_API_KEY="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" -export OPTIMISM_API_KEY="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" -export POLYGONSCAN_API_KEY="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" -export SNOWTRACE_API_KEY="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5cd627e..5cc0326c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,17 @@ name: "CI" +# For more information on how to set up GitHub secrets, check the following link: +# https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions + env: - DOTENV_CONFIG_PATH: "./.env.example" + HARDHAT_VAR_INFURA_API_KEY: ${{ secrets.InfuraApiKey }} + HARDHAT_VAR_MNEMONIC: ${{ secrets.Mnemonic }} + HARDHAT_VAR_ARBISCAN_API_KEY: ${{ secrets.ArbiscanApiKey }} + HARDHAT_VAR_BSCSCAN_API_KEY: ${{ secrets.BscscanApiKey }} + HARDHAT_VAR_ETHERSCAN_API_KEY: ${{ secrets.EtherscanApiKey }} + HARDHAT_VAR_OPTIMISM_API_KEY: ${{ secrets.OptimismApiKey }} + HARDHAT_VAR_POLYGONSCAN_API_KEY: ${{ secrets.PolygonscanApiKey }} + HARDHAT_VAR_SNOWTRACE_API_KEY: ${{ secrets.SnowtraceApiKey }} on: workflow_dispatch: diff --git a/.solcover.js b/.solcover.js index d71a6697..c61d16c7 100644 --- a/.solcover.js +++ b/.solcover.js @@ -1,7 +1,4 @@ module.exports = { istanbulReporter: ["html", "lcov"], - providerOptions: { - mnemonic: process.env.MNEMONIC, - }, skipFiles: ["test"], }; diff --git a/README.md b/README.md index aa1332c1..2c68392b 100644 --- a/README.md +++ b/README.md @@ -66,16 +66,26 @@ You can edit the CI script in [.github/workflows/ci.yml](./.github/workflows/ci. ### Pre Requisites -Before being able to run any command, you need to create a `.env` file and set a BIP-39 compatible mnemonic as an -environment variable. You can follow the example in `.env.example`. If you don't already have a mnemonic, you can use -this [website](https://iancoleman.io/bip39/) to generate one. - -Then, proceed with installing dependencies: +First, you need to install the dependencies: ```sh $ pnpm install ``` +Then, you need to set up all the required configuration variables and, if necessary, the optional ones. To assist with +the setup process, run `npx hardhat vars setup`. For example, to set a BIP-39 compatible mnemonic variable, execute +`npx hardhat vars set MNEMONIC`. If you do not already have a mnemonic, you can generate one using this +[website](https://iancoleman.io/bip39/). + +Example: + +```sh +npx hardhat vars set MNEMONIC "here is where your twelve words mnemonic should be put my friend" +``` + +For more info on how to set the `Hardhat Configuration Variables` visit the docs +[here](https://hardhat.org/hardhat-runner/docs/guides/configuration-variables). + ### Compile Compile the smart contracts with Hardhat: @@ -126,12 +136,15 @@ $ pnpm coverage ### Report Gas -See the gas usage per unit test and average gas per method call: +See the gas usage per unit test and average gas per method call by providing the optional configuration variable +`REPORT_GAS`: ```sh -$ REPORT_GAS=true pnpm test +$ HARDHAT_VAR_REPORT_GAS=true pnpm test ``` +The prefix `HARDHAT_VAR_` is needed to temporarily set a Hardhat Configuration Variable via ENV variables. + ### Clean Delete the smart contract artifacts, the coverage reports and the Hardhat cache: diff --git a/hardhat.config.ts b/hardhat.config.ts index 58f12d03..3422b97d 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,27 +1,17 @@ import "@nomicfoundation/hardhat-toolbox"; -import { config as dotenvConfig } from "dotenv"; import "hardhat-deploy"; import type { HardhatUserConfig } from "hardhat/config"; +import { vars } from "hardhat/config"; import type { NetworkUserConfig } from "hardhat/types"; -import { resolve } from "path"; import "./tasks/accounts"; import "./tasks/greet"; import "./tasks/taskDeploy"; -const dotenvConfigPath: string = process.env.DOTENV_CONFIG_PATH || "./.env"; -dotenvConfig({ path: resolve(__dirname, dotenvConfigPath) }); +// Run 'npx hardhat vars setup' to see the list of variables that need to be set -// Ensure that we have all the environment variables we need. -const mnemonic: string | undefined = process.env.MNEMONIC; -if (!mnemonic) { - throw new Error("Please set your MNEMONIC in a .env file"); -} - -const infuraApiKey: string | undefined = process.env.INFURA_API_KEY; -if (!infuraApiKey) { - throw new Error("Please set your INFURA_API_KEY in a .env file"); -} +const mnemonic: string = vars.get("MNEMONIC"); +const infuraApiKey: string = vars.get("INFURA_API_KEY"); const chainIds = { "arbitrum-mainnet": 42161, @@ -66,19 +56,19 @@ const config: HardhatUserConfig = { }, etherscan: { apiKey: { - arbitrumOne: process.env.ARBISCAN_API_KEY || "", - avalanche: process.env.SNOWTRACE_API_KEY || "", - bsc: process.env.BSCSCAN_API_KEY || "", - mainnet: process.env.ETHERSCAN_API_KEY || "", - optimisticEthereum: process.env.OPTIMISM_API_KEY || "", - polygon: process.env.POLYGONSCAN_API_KEY || "", - polygonMumbai: process.env.POLYGONSCAN_API_KEY || "", - sepolia: process.env.ETHERSCAN_API_KEY || "", + arbitrumOne: vars.get("ARBISCAN_API_KEY", ""), + avalanche: vars.get("SNOWTRACE_API_KEY", ""), + bsc: vars.get("BSCSCAN_API_KEY", ""), + mainnet: vars.get("ETHERSCAN_API_KEY", ""), + optimisticEthereum: vars.get("OPTIMISM_API_KEY", ""), + polygon: vars.get("POLYGONSCAN_API_KEY", ""), + polygonMumbai: vars.get("POLYGONSCAN_API_KEY", ""), + sepolia: vars.get("ETHERSCAN_API_KEY", ""), }, }, gasReporter: { currency: "USD", - enabled: process.env.REPORT_GAS ? true : false, + enabled: vars.has("REPORT_GAS"), excludeContracts: [], src: "./contracts", }, diff --git a/package.json b/package.json index 861559c0..cb8beef8 100644 --- a/package.json +++ b/package.json @@ -23,12 +23,11 @@ "@typescript-eslint/parser": "^5.44.0", "chai": "^4.3.7", "cross-env": "^7.0.3", - "dotenv": "^16.0.3", "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "ethers": "^6.4.0", "fs-extra": "^10.1.0", - "hardhat": "^2.12.2", + "hardhat": "^2.19.0", "hardhat-deploy": "^0.11.29", "hardhat-gas-reporter": "^1.0.9", "lodash": "^4.17.21", @@ -69,7 +68,7 @@ "lint": "pnpm lint:sol && pnpm lint:ts && pnpm prettier:check", "lint:sol": "solhint --max-warnings 0 \"contracts/**/*.sol\"", "lint:ts": "eslint --ignore-path ./.eslintignore --ext .js,.ts .", - "postinstall": "DOTENV_CONFIG_PATH=./.env.example pnpm typechain", + "postinstall": "pnpm typechain", "prettier:check": "prettier --check \"**/*.{js,json,md,sol,ts,yml}\"", "prettier:write": "prettier --write \"**/*.{js,json,md,sol,ts,yml}\"", "task:deployGreeter": "hardhat task:deployGreeter", From ca72766786f5db55b41294934b94e9cedab5fc09 Mon Sep 17 00:00:00 2001 From: Christopher Dedominici <18092467+ChristopherDedominici@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:39:38 +0100 Subject: [PATCH 02/11] modify docs and re-add env variable for test scenario --- .github/workflows/ci.yml | 14 +++++++------- README.md | 23 +++++++++-------------- hardhat.config.ts | 7 ++++++- package.json | 1 + 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5cc0326c..7c11c275 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,14 +4,14 @@ name: "CI" # https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions env: - HARDHAT_VAR_INFURA_API_KEY: ${{ secrets.InfuraApiKey }} HARDHAT_VAR_MNEMONIC: ${{ secrets.Mnemonic }} - HARDHAT_VAR_ARBISCAN_API_KEY: ${{ secrets.ArbiscanApiKey }} - HARDHAT_VAR_BSCSCAN_API_KEY: ${{ secrets.BscscanApiKey }} - HARDHAT_VAR_ETHERSCAN_API_KEY: ${{ secrets.EtherscanApiKey }} - HARDHAT_VAR_OPTIMISM_API_KEY: ${{ secrets.OptimismApiKey }} - HARDHAT_VAR_POLYGONSCAN_API_KEY: ${{ secrets.PolygonscanApiKey }} - HARDHAT_VAR_SNOWTRACE_API_KEY: ${{ secrets.SnowtraceApiKey }} + # HARDHAT_VAR_INFURA_API_KEY: ${{ secrets.InfuraApiKey }} + # HARDHAT_VAR_ARBISCAN_API_KEY: ${{ secrets.ArbiscanApiKey }} + # HARDHAT_VAR_BSCSCAN_API_KEY: ${{ secrets.BscscanApiKey }} + # HARDHAT_VAR_ETHERSCAN_API_KEY: ${{ secrets.EtherscanApiKey }} + # HARDHAT_VAR_OPTIMISM_API_KEY: ${{ secrets.OptimismApiKey }} + # HARDHAT_VAR_POLYGONSCAN_API_KEY: ${{ secrets.PolygonscanApiKey }} + # HARDHAT_VAR_SNOWTRACE_API_KEY: ${{ secrets.SnowtraceApiKey }} on: workflow_dispatch: diff --git a/README.md b/README.md index 2c68392b..996037e7 100644 --- a/README.md +++ b/README.md @@ -72,19 +72,17 @@ First, you need to install the dependencies: $ pnpm install ``` -Then, you need to set up all the required configuration variables and, if necessary, the optional ones. To assist with -the setup process, run `npx hardhat vars setup`. For example, to set a BIP-39 compatible mnemonic variable, execute -`npx hardhat vars set MNEMONIC`. If you do not already have a mnemonic, you can generate one using this -[website](https://iancoleman.io/bip39/). - -Example: +Then, you need to set up all the required +[Hardhat Configuration Variables](https://hardhat.org/hardhat-runner/docs/guides/configuration-variables) and, if +necessary, the optional ones. To assist with the setup process, run `npx hardhat vars setup`. For example, to set a +BIP-39 compatible mnemonic variable, execute: ```sh -npx hardhat vars set MNEMONIC "here is where your twelve words mnemonic should be put my friend" +$ npx hardhat vars set MNEMONIC +? Enter value: ‣ "here is where your twelve words mnemonic should be put my friend" ``` -For more info on how to set the `Hardhat Configuration Variables` visit the docs -[here](https://hardhat.org/hardhat-runner/docs/guides/configuration-variables). +If you do not already have a mnemonic, you can generate one using this [website](https://iancoleman.io/bip39/). ### Compile @@ -136,15 +134,12 @@ $ pnpm coverage ### Report Gas -See the gas usage per unit test and average gas per method call by providing the optional configuration variable -`REPORT_GAS`: +See the gas usage per unit test and average gas per method call: ```sh -$ HARDHAT_VAR_REPORT_GAS=true pnpm test +$ REPORT_GAS=true pnpm test ``` -The prefix `HARDHAT_VAR_` is needed to temporarily set a Hardhat Configuration Variable via ENV variables. - ### Clean Delete the smart contract artifacts, the coverage reports and the Hardhat cache: diff --git a/hardhat.config.ts b/hardhat.config.ts index 3422b97d..6b9fd05f 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,13 +1,18 @@ import "@nomicfoundation/hardhat-toolbox"; +import { config as dotenvConfig } from "dotenv"; import "hardhat-deploy"; import type { HardhatUserConfig } from "hardhat/config"; import { vars } from "hardhat/config"; import type { NetworkUserConfig } from "hardhat/types"; +import { resolve } from "path"; import "./tasks/accounts"; import "./tasks/greet"; import "./tasks/taskDeploy"; +const dotenvConfigPath: string = process.env.DOTENV_CONFIG_PATH || "./.env"; +dotenvConfig({ path: resolve(__dirname, dotenvConfigPath) }); + // Run 'npx hardhat vars setup' to see the list of variables that need to be set const mnemonic: string = vars.get("MNEMONIC"); @@ -68,7 +73,7 @@ const config: HardhatUserConfig = { }, gasReporter: { currency: "USD", - enabled: vars.has("REPORT_GAS"), + enabled: process.env.REPORT_GAS ? true : false, excludeContracts: [], src: "./contracts", }, diff --git a/package.json b/package.json index cb8beef8..7956470d 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@typescript-eslint/parser": "^5.44.0", "chai": "^4.3.7", "cross-env": "^7.0.3", + "dotenv": "^16.0.3", "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "ethers": "^6.4.0", From cc8171b235e733de29cee96e33b51259b619a4aa Mon Sep 17 00:00:00 2001 From: Christopher Dedominici <18092467+ChristopherDedominici@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:43:30 +0100 Subject: [PATCH 03/11] update lock file --- pnpm-lock.yaml | 324 +++++++++++++++++++++++++++---------------------- 1 file changed, 180 insertions(+), 144 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8b96b79..d5e9aa64 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,21 +1,25 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + devDependencies: '@nomicfoundation/hardhat-chai-matchers': specifier: ^2.0.0 - version: 2.0.0(@nomicfoundation/hardhat-ethers@3.0.0)(chai@4.3.7)(ethers@6.4.0)(hardhat@2.12.2) + version: 2.0.0(@nomicfoundation/hardhat-ethers@3.0.0)(chai@4.3.7)(ethers@6.4.0)(hardhat@2.19.0) '@nomicfoundation/hardhat-ethers': specifier: ^3.0.0 - version: 3.0.0(ethers@6.4.0)(hardhat@2.12.2) + version: 3.0.0(ethers@6.4.0)(hardhat@2.19.0) '@nomicfoundation/hardhat-network-helpers': specifier: ^1.0.6 - version: 1.0.6(hardhat@2.12.2) + version: 1.0.6(hardhat@2.19.0) '@nomicfoundation/hardhat-toolbox': specifier: ^3.0.0 - version: 3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.0)(@nomicfoundation/hardhat-ethers@3.0.0)(@nomicfoundation/hardhat-network-helpers@1.0.6)(@nomicfoundation/hardhat-verify@1.0.0)(@typechain/ethers-v6@0.4.0)(@typechain/hardhat@8.0.0)(@types/chai@4.3.4)(@types/mocha@10.0.0)(@types/node@18.11.9)(chai@4.3.7)(ethers@6.4.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.12.2)(solidity-coverage@0.8.2)(ts-node@10.9.1)(typechain@8.2.0)(typescript@4.9.3) + version: 3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.0)(@nomicfoundation/hardhat-ethers@3.0.0)(@nomicfoundation/hardhat-network-helpers@1.0.6)(@nomicfoundation/hardhat-verify@1.0.0)(@typechain/ethers-v6@0.4.0)(@typechain/hardhat@8.0.0)(@types/chai@4.3.4)(@types/mocha@10.0.0)(@types/node@18.11.9)(chai@4.3.7)(ethers@6.4.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.0)(solidity-coverage@0.8.2)(ts-node@10.9.1)(typechain@8.2.0)(typescript@4.9.3) '@nomicfoundation/hardhat-verify': specifier: ^1.0.0 - version: 1.0.0(hardhat@2.12.2) + version: 1.0.0(hardhat@2.19.0) '@trivago/prettier-plugin-sort-imports': specifier: ^4.0.0 version: 4.0.0(@vue/compiler-sfc@3.3.4)(prettier@2.8.4) @@ -24,7 +28,7 @@ devDependencies: version: 0.4.0(ethers@6.4.0)(typechain@8.2.0)(typescript@4.9.3) '@typechain/hardhat': specifier: ^8.0.0 - version: 8.0.0(@typechain/ethers-v6@0.4.0)(ethers@6.4.0)(hardhat@2.12.2)(typechain@8.2.0) + version: 8.0.0(@typechain/ethers-v6@0.4.0)(ethers@6.4.0)(hardhat@2.19.0)(typechain@8.2.0) '@types/chai': specifier: ^4.3.4 version: 4.3.4 @@ -65,14 +69,14 @@ devDependencies: specifier: ^10.1.0 version: 10.1.0 hardhat: - specifier: ^2.12.2 - version: 2.12.2(ts-node@10.9.1)(typescript@4.9.3) + specifier: ^2.19.0 + version: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) hardhat-deploy: specifier: ^0.11.29 version: 0.11.29 hardhat-gas-reporter: specifier: ^1.0.9 - version: 1.0.9(hardhat@2.12.2) + version: 1.0.9(hardhat@2.19.0) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -96,7 +100,7 @@ devDependencies: version: 0.0.5(prettier-plugin-solidity@1.1.2)(prettier@2.8.4) solidity-coverage: specifier: ^0.8.2 - version: 0.8.2(hardhat@2.12.2) + version: 0.8.2(hardhat@2.19.0) ts-generator: specifier: ^0.1.1 version: 0.1.1 @@ -358,6 +362,37 @@ packages: to-fast-properties: 2.0.0 dev: true + /@chainsafe/as-sha256@0.3.1: + resolution: {integrity: sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==} + dev: true + + /@chainsafe/persistent-merkle-tree@0.4.2: + resolution: {integrity: sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==} + dependencies: + '@chainsafe/as-sha256': 0.3.1 + dev: true + + /@chainsafe/persistent-merkle-tree@0.5.0: + resolution: {integrity: sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==} + dependencies: + '@chainsafe/as-sha256': 0.3.1 + dev: true + + /@chainsafe/ssz@0.10.2: + resolution: {integrity: sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==} + dependencies: + '@chainsafe/as-sha256': 0.3.1 + '@chainsafe/persistent-merkle-tree': 0.5.0 + dev: true + + /@chainsafe/ssz@0.9.4: + resolution: {integrity: sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==} + dependencies: + '@chainsafe/as-sha256': 0.3.1 + '@chainsafe/persistent-merkle-tree': 0.4.2 + case: 1.6.3 + dev: true + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -824,28 +859,33 @@ packages: fastq: 1.15.0 dev: true - /@nomicfoundation/ethereumjs-block@4.2.2: - resolution: {integrity: sha512-atjpt4gc6ZGZUPHBAQaUJsm1l/VCo7FmyQ780tMGO8QStjLdhz09dXynmhwVTy5YbRr0FOh/uX3QaEM0yIB2Zg==} + /@nomicfoundation/ethereumjs-block@5.0.2: + resolution: {integrity: sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==} engines: {node: '>=14'} dependencies: - '@nomicfoundation/ethereumjs-common': 3.1.2 - '@nomicfoundation/ethereumjs-rlp': 4.0.3 - '@nomicfoundation/ethereumjs-trie': 5.0.5 - '@nomicfoundation/ethereumjs-tx': 4.1.2 - '@nomicfoundation/ethereumjs-util': 8.0.6 + '@nomicfoundation/ethereumjs-common': 4.0.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 + '@nomicfoundation/ethereumjs-trie': 6.0.2 + '@nomicfoundation/ethereumjs-tx': 5.0.2 + '@nomicfoundation/ethereumjs-util': 9.0.2 ethereum-cryptography: 0.1.3 + ethers: 5.7.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate dev: true - /@nomicfoundation/ethereumjs-blockchain@6.2.2: - resolution: {integrity: sha512-6AIB2MoTEPZJLl6IRKcbd8mUmaBAQ/NMe3O7OsAOIiDjMNPPH5KaUQiLfbVlegT4wKIg/GOsFH7XlH2KDVoJNg==} + /@nomicfoundation/ethereumjs-blockchain@7.0.2: + resolution: {integrity: sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==} engines: {node: '>=14'} dependencies: - '@nomicfoundation/ethereumjs-block': 4.2.2 - '@nomicfoundation/ethereumjs-common': 3.1.2 - '@nomicfoundation/ethereumjs-ethash': 2.0.5 - '@nomicfoundation/ethereumjs-rlp': 4.0.3 - '@nomicfoundation/ethereumjs-trie': 5.0.5 - '@nomicfoundation/ethereumjs-util': 8.0.6 + '@nomicfoundation/ethereumjs-block': 5.0.2 + '@nomicfoundation/ethereumjs-common': 4.0.2 + '@nomicfoundation/ethereumjs-ethash': 3.0.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 + '@nomicfoundation/ethereumjs-trie': 6.0.2 + '@nomicfoundation/ethereumjs-tx': 5.0.2 + '@nomicfoundation/ethereumjs-util': 9.0.2 abstract-level: 1.0.3 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 @@ -853,117 +893,131 @@ packages: lru-cache: 5.1.1 memory-level: 1.0.0 transitivePeerDependencies: + - bufferutil - supports-color + - utf-8-validate dev: true - /@nomicfoundation/ethereumjs-common@3.1.2: - resolution: {integrity: sha512-JAEBpIua62dyObHM9KI2b4wHZcRQYYge9gxiygTWa3lNCr2zo+K0TbypDpgiNij5MCGNWP1eboNfNfx1a3vkvA==} + /@nomicfoundation/ethereumjs-common@4.0.2: + resolution: {integrity: sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==} dependencies: - '@nomicfoundation/ethereumjs-util': 8.0.6 + '@nomicfoundation/ethereumjs-util': 9.0.2 crc-32: 1.2.2 dev: true - /@nomicfoundation/ethereumjs-ethash@2.0.5: - resolution: {integrity: sha512-xlLdcICGgAYyYmnI3r1t0R5fKGBJNDQSOQxXNjVO99JmxJIdXR5MgPo5CSJO1RpyzKOgzi3uIFn8agv564dZEQ==} + /@nomicfoundation/ethereumjs-ethash@3.0.2: + resolution: {integrity: sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==} engines: {node: '>=14'} dependencies: - '@nomicfoundation/ethereumjs-block': 4.2.2 - '@nomicfoundation/ethereumjs-rlp': 4.0.3 - '@nomicfoundation/ethereumjs-util': 8.0.6 + '@nomicfoundation/ethereumjs-block': 5.0.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 + '@nomicfoundation/ethereumjs-util': 9.0.2 abstract-level: 1.0.3 bigint-crypto-utils: 3.2.2 ethereum-cryptography: 0.1.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate dev: true - /@nomicfoundation/ethereumjs-evm@1.3.2: - resolution: {integrity: sha512-I00d4MwXuobyoqdPe/12dxUQxTYzX8OckSaWsMcWAfQhgVDvBx6ffPyP/w1aL0NW7MjyerySPcSVfDJAMHjilw==} + /@nomicfoundation/ethereumjs-evm@2.0.2: + resolution: {integrity: sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==} engines: {node: '>=14'} dependencies: - '@nomicfoundation/ethereumjs-common': 3.1.2 - '@nomicfoundation/ethereumjs-util': 8.0.6 - '@types/async-eventemitter': 0.2.1 - async-eventemitter: 0.2.4 + '@ethersproject/providers': 5.7.2 + '@nomicfoundation/ethereumjs-common': 4.0.2 + '@nomicfoundation/ethereumjs-tx': 5.0.2 + '@nomicfoundation/ethereumjs-util': 9.0.2 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 mcl-wasm: 0.7.9 rustbn.js: 0.2.0 transitivePeerDependencies: + - bufferutil - supports-color + - utf-8-validate dev: true - /@nomicfoundation/ethereumjs-rlp@4.0.3: - resolution: {integrity: sha512-DZMzB/lqPK78T6MluyXqtlRmOMcsZbTTbbEyAjo0ncaff2mqu/k8a79PBcyvpgAhWD/R59Fjq/x3ro5Lof0AtA==} + /@nomicfoundation/ethereumjs-rlp@5.0.2: + resolution: {integrity: sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==} engines: {node: '>=14'} hasBin: true dev: true - /@nomicfoundation/ethereumjs-statemanager@1.0.5: - resolution: {integrity: sha512-CAhzpzTR5toh/qOJIZUUOnWekUXuRqkkzaGAQrVcF457VhtCmr+ddZjjK50KNZ524c1XP8cISguEVNqJ6ij1sA==} + /@nomicfoundation/ethereumjs-statemanager@2.0.2: + resolution: {integrity: sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==} dependencies: - '@nomicfoundation/ethereumjs-common': 3.1.2 - '@nomicfoundation/ethereumjs-rlp': 4.0.3 - '@nomicfoundation/ethereumjs-trie': 5.0.5 - '@nomicfoundation/ethereumjs-util': 8.0.6 + '@nomicfoundation/ethereumjs-common': 4.0.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 - functional-red-black-tree: 1.0.1 + ethers: 5.7.2 + js-sdsl: 4.4.0 transitivePeerDependencies: + - bufferutil - supports-color + - utf-8-validate dev: true - /@nomicfoundation/ethereumjs-trie@5.0.5: - resolution: {integrity: sha512-+8sNZrXkzvA1NH5F4kz5RSYl1I6iaRz7mAZRsyxOm0IVY4UaP43Ofvfp/TwOalFunurQrYB5pRO40+8FBcxFMA==} + /@nomicfoundation/ethereumjs-trie@6.0.2: + resolution: {integrity: sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==} engines: {node: '>=14'} dependencies: - '@nomicfoundation/ethereumjs-rlp': 4.0.3 - '@nomicfoundation/ethereumjs-util': 8.0.6 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 + '@nomicfoundation/ethereumjs-util': 9.0.2 + '@types/readable-stream': 2.3.15 ethereum-cryptography: 0.1.3 readable-stream: 3.6.2 dev: true - /@nomicfoundation/ethereumjs-tx@4.1.2: - resolution: {integrity: sha512-emJBJZpmTdUa09cqxQqHaysbBI9Od353ZazeH7WgPb35miMgNY6mb7/3vBA98N5lUW/rgkiItjX0KZfIzihSoQ==} + /@nomicfoundation/ethereumjs-tx@5.0.2: + resolution: {integrity: sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==} engines: {node: '>=14'} dependencies: - '@nomicfoundation/ethereumjs-common': 3.1.2 - '@nomicfoundation/ethereumjs-rlp': 4.0.3 - '@nomicfoundation/ethereumjs-util': 8.0.6 + '@chainsafe/ssz': 0.9.4 + '@ethersproject/providers': 5.7.2 + '@nomicfoundation/ethereumjs-common': 4.0.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 + '@nomicfoundation/ethereumjs-util': 9.0.2 ethereum-cryptography: 0.1.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate dev: true - /@nomicfoundation/ethereumjs-util@8.0.6: - resolution: {integrity: sha512-jOQfF44laa7xRfbfLXojdlcpkvxeHrE2Xu7tSeITsWFgoII163MzjOwFEzSNozHYieFysyoEMhCdP+NY5ikstw==} + /@nomicfoundation/ethereumjs-util@9.0.2: + resolution: {integrity: sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==} engines: {node: '>=14'} dependencies: - '@nomicfoundation/ethereumjs-rlp': 4.0.3 + '@chainsafe/ssz': 0.10.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 ethereum-cryptography: 0.1.3 dev: true - /@nomicfoundation/ethereumjs-vm@6.4.2: - resolution: {integrity: sha512-PRTyxZMP6kx+OdAzBhuH1LD2Yw+hrSpaytftvaK//thDy2OI07S0nrTdbrdk7b8ZVPAc9H9oTwFBl3/wJ3w15g==} + /@nomicfoundation/ethereumjs-vm@7.0.2: + resolution: {integrity: sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==} engines: {node: '>=14'} dependencies: - '@nomicfoundation/ethereumjs-block': 4.2.2 - '@nomicfoundation/ethereumjs-blockchain': 6.2.2 - '@nomicfoundation/ethereumjs-common': 3.1.2 - '@nomicfoundation/ethereumjs-evm': 1.3.2 - '@nomicfoundation/ethereumjs-rlp': 4.0.3 - '@nomicfoundation/ethereumjs-statemanager': 1.0.5 - '@nomicfoundation/ethereumjs-trie': 5.0.5 - '@nomicfoundation/ethereumjs-tx': 4.1.2 - '@nomicfoundation/ethereumjs-util': 8.0.6 - '@types/async-eventemitter': 0.2.1 - async-eventemitter: 0.2.4 + '@nomicfoundation/ethereumjs-block': 5.0.2 + '@nomicfoundation/ethereumjs-blockchain': 7.0.2 + '@nomicfoundation/ethereumjs-common': 4.0.2 + '@nomicfoundation/ethereumjs-evm': 2.0.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 + '@nomicfoundation/ethereumjs-statemanager': 2.0.2 + '@nomicfoundation/ethereumjs-trie': 6.0.2 + '@nomicfoundation/ethereumjs-tx': 5.0.2 + '@nomicfoundation/ethereumjs-util': 9.0.2 debug: 4.3.4(supports-color@8.1.1) ethereum-cryptography: 0.1.3 - functional-red-black-tree: 1.0.1 mcl-wasm: 0.7.9 rustbn.js: 0.2.0 transitivePeerDependencies: + - bufferutil - supports-color + - utf-8-validate dev: true - /@nomicfoundation/hardhat-chai-matchers@2.0.0(@nomicfoundation/hardhat-ethers@3.0.0)(chai@4.3.7)(ethers@6.4.0)(hardhat@2.12.2): + /@nomicfoundation/hardhat-chai-matchers@2.0.0(@nomicfoundation/hardhat-ethers@3.0.0)(chai@4.3.7)(ethers@6.4.0)(hardhat@2.19.0): resolution: {integrity: sha512-e2ZFunJBIWDcFKIxQt6GpFRRKUn8ZshoiZ5cmgaKOR1S9XwimiCs2aLUCZ/xjNrdl049kPqdVKYDj6aYeR6WuQ==} peerDependencies: '@nomicfoundation/hardhat-ethers': ^3.0.0 @@ -972,36 +1026,36 @@ packages: hardhat: ^2.9.4 dependencies: '@ethersproject/abi': 5.7.0 - '@nomicfoundation/hardhat-ethers': 3.0.0(ethers@6.4.0)(hardhat@2.12.2) + '@nomicfoundation/hardhat-ethers': 3.0.0(ethers@6.4.0)(hardhat@2.19.0) '@types/chai-as-promised': 7.1.5 chai: 4.3.7 chai-as-promised: 7.1.1(chai@4.3.7) deep-eql: 4.1.3 ethers: 6.4.0 - hardhat: 2.12.2(ts-node@10.9.1)(typescript@4.9.3) + hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) ordinal: 1.0.3 dev: true - /@nomicfoundation/hardhat-ethers@3.0.0(ethers@6.4.0)(hardhat@2.12.2): + /@nomicfoundation/hardhat-ethers@3.0.0(ethers@6.4.0)(hardhat@2.19.0): resolution: {integrity: sha512-0A2hs39YUta//O9EcITnFw/iGzUztJ4FB4UIc2mgdZ2nXvDZUmkQO+Vtdt/guJ6gP66EPbwvFW7t1SRReMGrvg==} peerDependencies: ethers: ^6.1.0 hardhat: ^2.0.0 dependencies: ethers: 6.4.0 - hardhat: 2.12.2(ts-node@10.9.1)(typescript@4.9.3) + hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) dev: true - /@nomicfoundation/hardhat-network-helpers@1.0.6(hardhat@2.12.2): + /@nomicfoundation/hardhat-network-helpers@1.0.6(hardhat@2.19.0): resolution: {integrity: sha512-a35iVD4ycF6AoTfllAnKm96IPIzzHpgKX/ep4oKc2bsUKFfMlacWdyntgC/7d5blyCTXfFssgNAvXDZfzNWVGQ==} peerDependencies: hardhat: ^2.9.5 dependencies: ethereumjs-util: 7.1.5 - hardhat: 2.12.2(ts-node@10.9.1)(typescript@4.9.3) + hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) dev: true - /@nomicfoundation/hardhat-toolbox@3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.0)(@nomicfoundation/hardhat-ethers@3.0.0)(@nomicfoundation/hardhat-network-helpers@1.0.6)(@nomicfoundation/hardhat-verify@1.0.0)(@typechain/ethers-v6@0.4.0)(@typechain/hardhat@8.0.0)(@types/chai@4.3.4)(@types/mocha@10.0.0)(@types/node@18.11.9)(chai@4.3.7)(ethers@6.4.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.12.2)(solidity-coverage@0.8.2)(ts-node@10.9.1)(typechain@8.2.0)(typescript@4.9.3): + /@nomicfoundation/hardhat-toolbox@3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.0)(@nomicfoundation/hardhat-ethers@3.0.0)(@nomicfoundation/hardhat-network-helpers@1.0.6)(@nomicfoundation/hardhat-verify@1.0.0)(@typechain/ethers-v6@0.4.0)(@typechain/hardhat@8.0.0)(@types/chai@4.3.4)(@types/mocha@10.0.0)(@types/node@18.11.9)(chai@4.3.7)(ethers@6.4.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.0)(solidity-coverage@0.8.2)(ts-node@10.9.1)(typechain@8.2.0)(typescript@4.9.3): resolution: {integrity: sha512-MsteDXd0UagMksqm9KvcFG6gNKYNa3GGNCy73iQ6bEasEgg2v8Qjl6XA5hjs8o5UD5A3153B6W2BIVJ8SxYUtA==} peerDependencies: '@nomicfoundation/hardhat-chai-matchers': ^2.0.0 @@ -1022,26 +1076,26 @@ packages: typechain: ^8.2.0 typescript: '>=4.5.0' dependencies: - '@nomicfoundation/hardhat-chai-matchers': 2.0.0(@nomicfoundation/hardhat-ethers@3.0.0)(chai@4.3.7)(ethers@6.4.0)(hardhat@2.12.2) - '@nomicfoundation/hardhat-ethers': 3.0.0(ethers@6.4.0)(hardhat@2.12.2) - '@nomicfoundation/hardhat-network-helpers': 1.0.6(hardhat@2.12.2) - '@nomicfoundation/hardhat-verify': 1.0.0(hardhat@2.12.2) + '@nomicfoundation/hardhat-chai-matchers': 2.0.0(@nomicfoundation/hardhat-ethers@3.0.0)(chai@4.3.7)(ethers@6.4.0)(hardhat@2.19.0) + '@nomicfoundation/hardhat-ethers': 3.0.0(ethers@6.4.0)(hardhat@2.19.0) + '@nomicfoundation/hardhat-network-helpers': 1.0.6(hardhat@2.19.0) + '@nomicfoundation/hardhat-verify': 1.0.0(hardhat@2.19.0) '@typechain/ethers-v6': 0.4.0(ethers@6.4.0)(typechain@8.2.0)(typescript@4.9.3) - '@typechain/hardhat': 8.0.0(@typechain/ethers-v6@0.4.0)(ethers@6.4.0)(hardhat@2.12.2)(typechain@8.2.0) + '@typechain/hardhat': 8.0.0(@typechain/ethers-v6@0.4.0)(ethers@6.4.0)(hardhat@2.19.0)(typechain@8.2.0) '@types/chai': 4.3.4 '@types/mocha': 10.0.0 '@types/node': 18.11.9 chai: 4.3.7 ethers: 6.4.0 - hardhat: 2.12.2(ts-node@10.9.1)(typescript@4.9.3) - hardhat-gas-reporter: 1.0.9(hardhat@2.12.2) - solidity-coverage: 0.8.2(hardhat@2.12.2) + hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) + hardhat-gas-reporter: 1.0.9(hardhat@2.19.0) + solidity-coverage: 0.8.2(hardhat@2.19.0) ts-node: 10.9.1(@types/node@18.11.9)(typescript@4.9.3) typechain: 8.2.0(typescript@4.9.3) typescript: 4.9.3 dev: true - /@nomicfoundation/hardhat-verify@1.0.0(hardhat@2.12.2): + /@nomicfoundation/hardhat-verify@1.0.0(hardhat@2.19.0): resolution: {integrity: sha512-R3UM/w2+e4D9PZRaeJHbC0caHSu/FV3ykAFBFg+RPNsfSzNgtHeRJXS+V+2HnVJYPaucBUD0v/6qtU8BZAouoQ==} peerDependencies: hardhat: ^2.0.4 @@ -1051,7 +1105,7 @@ packages: cbor: 8.1.0 chalk: 2.4.2 debug: 4.3.4(supports-color@8.1.1) - hardhat: 2.12.2(ts-node@10.9.1)(typescript@4.9.3) + hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) lodash.clonedeep: 4.5.0 semver: 6.3.0 table: 6.8.1 @@ -1316,7 +1370,7 @@ packages: typescript: 4.9.3 dev: true - /@typechain/hardhat@8.0.0(@typechain/ethers-v6@0.4.0)(ethers@6.4.0)(hardhat@2.12.2)(typechain@8.2.0): + /@typechain/hardhat@8.0.0(@typechain/ethers-v6@0.4.0)(ethers@6.4.0)(hardhat@2.19.0)(typechain@8.2.0): resolution: {integrity: sha512-XUVbqlMx8tJTOmzZCD/r196CidtNWAnTBZRcYxjLTKgcJMvc/kHQpWBnVMMB5QHxVKpYpCiz8g07FYCpG8rrjA==} peerDependencies: '@typechain/ethers-v6': ^0.4.0 @@ -1327,24 +1381,20 @@ packages: '@typechain/ethers-v6': 0.4.0(ethers@6.4.0)(typechain@8.2.0)(typescript@4.9.3) ethers: 6.4.0 fs-extra: 9.1.0 - hardhat: 2.12.2(ts-node@10.9.1)(typescript@4.9.3) + hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) typechain: 8.2.0(typescript@4.9.3) dev: true - /@types/async-eventemitter@0.2.1: - resolution: {integrity: sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg==} - dev: true - /@types/bn.js@4.11.6: resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} dependencies: - '@types/node': 18.11.9 + '@types/node': 18.15.13 dev: true /@types/bn.js@5.1.1: resolution: {integrity: sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==} dependencies: - '@types/node': 18.11.9 + '@types/node': 18.15.13 dev: true /@types/chai-as-promised@7.1.5: @@ -1434,6 +1484,13 @@ packages: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} dev: true + /@types/readable-stream@2.3.15: + resolution: {integrity: sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==} + dependencies: + '@types/node': 18.15.13 + safe-buffer: 5.1.2 + dev: true + /@types/resolve@0.0.8: resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} dependencies: @@ -1635,13 +1692,6 @@ packages: resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} dev: true - /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - dependencies: - event-target-shim: 5.0.1 - dev: true - /abstract-level@1.0.3: resolution: {integrity: sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==} engines: {node: '>=12'} @@ -1730,6 +1780,7 @@ packages: /amdefine@1.0.1: resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} engines: {node: '>=0.4.2'} + requiresBuild: true dev: true optional: true @@ -1881,22 +1932,10 @@ packages: engines: {node: '>=8'} dev: true - /async-eventemitter@0.2.4: - resolution: {integrity: sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==} - dependencies: - async: 2.6.4 - dev: true - /async@1.5.2: resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} dev: true - /async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - dependencies: - lodash: 4.17.21 - dev: true - /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true @@ -2103,6 +2142,11 @@ packages: resolution: {integrity: sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==} dev: true + /case@1.6.3: + resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} + engines: {node: '>= 0.8.0'} + dev: true + /caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true @@ -3009,11 +3053,6 @@ packages: strip-hex-prefix: 1.0.0 dev: true - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - dev: true - /evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} dependencies: @@ -3552,22 +3591,21 @@ packages: - utf-8-validate dev: true - /hardhat-gas-reporter@1.0.9(hardhat@2.12.2): + /hardhat-gas-reporter@1.0.9(hardhat@2.19.0): resolution: {integrity: sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==} peerDependencies: hardhat: ^2.0.2 dependencies: array-uniq: 1.0.3 eth-gas-reporter: 0.2.25 - hardhat: 2.12.2(ts-node@10.9.1)(typescript@4.9.3) + hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) sha1: 1.1.1 transitivePeerDependencies: - '@codechecks/client' dev: true - /hardhat@2.12.2(ts-node@10.9.1)(typescript@4.9.3): - resolution: {integrity: sha512-f3ZhzXy1uyQv0UXnAQ8GCBOWjzv++WJNb7bnm10SsyC3dB7vlPpsMWBNhq7aoRxKrNhX9tCev81KFV3i5BTeMQ==} - engines: {node: ^14.0.0 || ^16.0.0 || ^18.0.0} + /hardhat@2.19.0(ts-node@10.9.1)(typescript@4.9.3): + resolution: {integrity: sha512-kMpwovOEfrFRQXEopCP+JTcKVwSYVj8rnXE0LynxDqnh06yvyKCQknmXL6IVYTHQL6Csysc/yNbCHQbjSeJGpA==} hasBin: true peerDependencies: ts-node: '*' @@ -3580,21 +3618,20 @@ packages: dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/ethereumjs-block': 4.2.2 - '@nomicfoundation/ethereumjs-blockchain': 6.2.2 - '@nomicfoundation/ethereumjs-common': 3.1.2 - '@nomicfoundation/ethereumjs-evm': 1.3.2 - '@nomicfoundation/ethereumjs-rlp': 4.0.3 - '@nomicfoundation/ethereumjs-statemanager': 1.0.5 - '@nomicfoundation/ethereumjs-trie': 5.0.5 - '@nomicfoundation/ethereumjs-tx': 4.1.2 - '@nomicfoundation/ethereumjs-util': 8.0.6 - '@nomicfoundation/ethereumjs-vm': 6.4.2 + '@nomicfoundation/ethereumjs-block': 5.0.2 + '@nomicfoundation/ethereumjs-blockchain': 7.0.2 + '@nomicfoundation/ethereumjs-common': 4.0.2 + '@nomicfoundation/ethereumjs-evm': 2.0.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 + '@nomicfoundation/ethereumjs-statemanager': 2.0.2 + '@nomicfoundation/ethereumjs-trie': 6.0.2 + '@nomicfoundation/ethereumjs-tx': 5.0.2 + '@nomicfoundation/ethereumjs-util': 9.0.2 + '@nomicfoundation/ethereumjs-vm': 7.0.2 '@nomicfoundation/solidity-analyzer': 0.1.1 '@sentry/node': 5.30.0 '@types/bn.js': 5.1.1 '@types/lru-cache': 5.1.1 - abort-controller: 3.0.0 adm-zip: 0.4.16 aggregate-error: 3.1.0 ansi-escapes: 4.3.2 @@ -3617,7 +3654,6 @@ packages: mnemonist: 0.38.5 mocha: 10.1.0 p-map: 4.0.0 - qs: 6.11.2 raw-body: 2.5.2 resolve: 1.17.0 semver: 6.3.0 @@ -5105,7 +5141,7 @@ packages: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} hasBin: true dependencies: - glob: 7.2.0 + glob: 7.2.3 dev: true /rimraf@3.0.2: @@ -5377,7 +5413,7 @@ packages: resolution: {integrity: sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==} dev: true - /solidity-coverage@0.8.2(hardhat@2.12.2): + /solidity-coverage@0.8.2(hardhat@2.19.0): resolution: {integrity: sha512-cv2bWb7lOXPE9/SSleDO6czkFiMHgP4NXPj+iW9W7iEKLBk7Cj0AGBiNmGX3V1totl9wjPrT0gHmABZKZt65rQ==} hasBin: true peerDependencies: @@ -5393,7 +5429,7 @@ packages: ghost-testrpc: 0.0.2 global-modules: 2.0.0 globby: 10.0.2 - hardhat: 2.12.2(ts-node@10.9.1)(typescript@4.9.3) + hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) jsonschema: 1.4.1 lodash: 4.17.21 mocha: 7.1.2 From c92a306cdfdd911b001e5abfa743be27825c0419 Mon Sep 17 00:00:00 2001 From: Christopher Dedominici <18092467+ChristopherDedominici@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:55:20 +0100 Subject: [PATCH 04/11] add infura api key in ci --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7c11c275..6be3bf0b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ name: "CI" env: HARDHAT_VAR_MNEMONIC: ${{ secrets.Mnemonic }} - # HARDHAT_VAR_INFURA_API_KEY: ${{ secrets.InfuraApiKey }} + HARDHAT_VAR_INFURA_API_KEY: ${{ secrets.InfuraApiKey }} # HARDHAT_VAR_ARBISCAN_API_KEY: ${{ secrets.ArbiscanApiKey }} # HARDHAT_VAR_BSCSCAN_API_KEY: ${{ secrets.BscscanApiKey }} # HARDHAT_VAR_ETHERSCAN_API_KEY: ${{ secrets.EtherscanApiKey }} From 3f0316783b3504327aa4f4a84839a63b75348ba9 Mon Sep 17 00:00:00 2001 From: Christopher Dedominici <18092467+ChristopherDedominici@users.noreply.github.com> Date: Tue, 7 Nov 2023 00:08:21 +0100 Subject: [PATCH 05/11] update solidity-coverage package --- package.json | 2 +- pnpm-lock.yaml | 64 ++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 50 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 7956470d..47b0eb1b 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "rimraf": "^4.1.2", "solhint": "^3.4.0", "solhint-plugin-prettier": "^0.0.5", - "solidity-coverage": "^0.8.2", + "solidity-coverage": "^0.8.5", "ts-generator": "^0.1.1", "ts-node": "^10.9.1", "typechain": "^8.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d5e9aa64..0d58e830 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ devDependencies: version: 1.0.6(hardhat@2.19.0) '@nomicfoundation/hardhat-toolbox': specifier: ^3.0.0 - version: 3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.0)(@nomicfoundation/hardhat-ethers@3.0.0)(@nomicfoundation/hardhat-network-helpers@1.0.6)(@nomicfoundation/hardhat-verify@1.0.0)(@typechain/ethers-v6@0.4.0)(@typechain/hardhat@8.0.0)(@types/chai@4.3.4)(@types/mocha@10.0.0)(@types/node@18.11.9)(chai@4.3.7)(ethers@6.4.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.0)(solidity-coverage@0.8.2)(ts-node@10.9.1)(typechain@8.2.0)(typescript@4.9.3) + version: 3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.0)(@nomicfoundation/hardhat-ethers@3.0.0)(@nomicfoundation/hardhat-network-helpers@1.0.6)(@nomicfoundation/hardhat-verify@1.0.0)(@typechain/ethers-v6@0.4.0)(@typechain/hardhat@8.0.0)(@types/chai@4.3.4)(@types/mocha@10.0.0)(@types/node@18.11.9)(chai@4.3.7)(ethers@6.4.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.0)(solidity-coverage@0.8.5)(ts-node@10.9.1)(typechain@8.2.0)(typescript@4.9.3) '@nomicfoundation/hardhat-verify': specifier: ^1.0.0 version: 1.0.0(hardhat@2.19.0) @@ -99,8 +99,8 @@ devDependencies: specifier: ^0.0.5 version: 0.0.5(prettier-plugin-solidity@1.1.2)(prettier@2.8.4) solidity-coverage: - specifier: ^0.8.2 - version: 0.8.2(hardhat@2.19.0) + specifier: ^0.8.5 + version: 0.8.5(hardhat@2.19.0) ts-generator: specifier: ^0.1.1 version: 0.1.1 @@ -1055,7 +1055,7 @@ packages: hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) dev: true - /@nomicfoundation/hardhat-toolbox@3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.0)(@nomicfoundation/hardhat-ethers@3.0.0)(@nomicfoundation/hardhat-network-helpers@1.0.6)(@nomicfoundation/hardhat-verify@1.0.0)(@typechain/ethers-v6@0.4.0)(@typechain/hardhat@8.0.0)(@types/chai@4.3.4)(@types/mocha@10.0.0)(@types/node@18.11.9)(chai@4.3.7)(ethers@6.4.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.0)(solidity-coverage@0.8.2)(ts-node@10.9.1)(typechain@8.2.0)(typescript@4.9.3): + /@nomicfoundation/hardhat-toolbox@3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.0)(@nomicfoundation/hardhat-ethers@3.0.0)(@nomicfoundation/hardhat-network-helpers@1.0.6)(@nomicfoundation/hardhat-verify@1.0.0)(@typechain/ethers-v6@0.4.0)(@typechain/hardhat@8.0.0)(@types/chai@4.3.4)(@types/mocha@10.0.0)(@types/node@18.11.9)(chai@4.3.7)(ethers@6.4.0)(hardhat-gas-reporter@1.0.9)(hardhat@2.19.0)(solidity-coverage@0.8.5)(ts-node@10.9.1)(typechain@8.2.0)(typescript@4.9.3): resolution: {integrity: sha512-MsteDXd0UagMksqm9KvcFG6gNKYNa3GGNCy73iQ6bEasEgg2v8Qjl6XA5hjs8o5UD5A3153B6W2BIVJ8SxYUtA==} peerDependencies: '@nomicfoundation/hardhat-chai-matchers': ^2.0.0 @@ -1089,7 +1089,7 @@ packages: ethers: 6.4.0 hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) hardhat-gas-reporter: 1.0.9(hardhat@2.19.0) - solidity-coverage: 0.8.2(hardhat@2.19.0) + solidity-coverage: 0.8.5(hardhat@2.19.0) ts-node: 10.9.1(@types/node@18.11.9)(typescript@4.9.3) typechain: 8.2.0(typescript@4.9.3) typescript: 4.9.3 @@ -1321,6 +1321,12 @@ packages: antlr4ts: 0.5.0-alpha.4 dev: true + /@solidity-parser/parser@0.16.1: + resolution: {integrity: sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==} + dependencies: + antlr4ts: 0.5.0-alpha.4 + dev: true + /@trivago/prettier-plugin-sort-imports@4.0.0(@vue/compiler-sfc@3.3.4)(prettier@2.8.4): resolution: {integrity: sha512-Tyuk5ZY4a0e2MNFLdluQO9F6d1awFQYXVVujEPFfvKPPXz8DADNHzz73NMhwCSXGSuGGZcA/rKOyZBrxVNMxaA==} peerDependencies: @@ -1410,13 +1416,13 @@ packages: /@types/concat-stream@1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: - '@types/node': 18.11.9 + '@types/node': 18.15.13 dev: true /@types/form-data@0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: - '@types/node': 18.11.9 + '@types/node': 18.15.13 dev: true /@types/fs-extra@9.0.13: @@ -1429,7 +1435,7 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.11.9 + '@types/node': 18.15.13 dev: true /@types/json-schema@7.0.11: @@ -1473,7 +1479,7 @@ packages: /@types/pbkdf2@3.1.0: resolution: {integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==} dependencies: - '@types/node': 18.11.9 + '@types/node': 18.15.13 dev: true /@types/prettier@2.7.2: @@ -1500,7 +1506,7 @@ packages: /@types/secp256k1@4.0.3: resolution: {integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==} dependencies: - '@types/node': 18.11.9 + '@types/node': 18.15.13 dev: true /@types/semver@7.5.0: @@ -3402,7 +3408,7 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 dev: true @@ -4488,6 +4494,34 @@ packages: yargs-unparser: 2.0.0 dev: true + /mocha@10.2.0: + resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + engines: {node: '>= 14.0.0'} + hasBin: true + dependencies: + ansi-colors: 4.1.1 + browser-stdout: 1.3.1 + chokidar: 3.5.3 + debug: 4.3.4(supports-color@8.1.1) + diff: 5.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 7.2.0 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 5.0.1 + ms: 2.1.3 + nanoid: 3.3.3 + serialize-javascript: 6.0.0 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.2.1 + yargs: 16.2.0 + yargs-parser: 20.2.4 + yargs-unparser: 2.0.0 + dev: true + /mocha@7.1.2: resolution: {integrity: sha512-o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA==} engines: {node: '>= 8.10.0'} @@ -5413,14 +5447,14 @@ packages: resolution: {integrity: sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==} dev: true - /solidity-coverage@0.8.2(hardhat@2.19.0): - resolution: {integrity: sha512-cv2bWb7lOXPE9/SSleDO6czkFiMHgP4NXPj+iW9W7iEKLBk7Cj0AGBiNmGX3V1totl9wjPrT0gHmABZKZt65rQ==} + /solidity-coverage@0.8.5(hardhat@2.19.0): + resolution: {integrity: sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==} hasBin: true peerDependencies: hardhat: ^2.11.0 dependencies: '@ethersproject/abi': 5.7.0 - '@solidity-parser/parser': 0.14.5 + '@solidity-parser/parser': 0.16.1 chalk: 2.4.2 death: 1.1.0 detect-port: 1.5.1 @@ -5432,7 +5466,7 @@ packages: hardhat: 2.19.0(ts-node@10.9.1)(typescript@4.9.3) jsonschema: 1.4.1 lodash: 4.17.21 - mocha: 7.1.2 + mocha: 10.2.0 node-emoji: 1.11.0 pify: 4.0.1 recursive-readdir: 2.2.3 From 801960cdce0f742a2b0dbb837975f5275297c5c1 Mon Sep 17 00:00:00 2001 From: Christopher Dedominici <18092467+ChristopherDedominici@users.noreply.github.com> Date: Tue, 7 Nov 2023 10:08:28 +0100 Subject: [PATCH 06/11] update readme with GitHub secrets --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 996037e7..7804a882 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,9 @@ request made to the `main` branch. Note though that to make this work, you must use your `INFURA_API_KEY` and your `MNEMONIC` as GitHub secrets. +For more information on how to set up GitHub secrets, check the +[following link](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions). + You can edit the CI script in [.github/workflows/ci.yml](./.github/workflows/ci.yml). ## Usage From d616a6b5155a5ea48ef88aec04bca35c22cb5a44 Mon Sep 17 00:00:00 2001 From: Christopher Dedominici <18092467+ChristopherDedominici@users.noreply.github.com> Date: Tue, 7 Nov 2023 10:10:40 +0100 Subject: [PATCH 07/11] remove quotes from mnemonic command --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7804a882..74adf401 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ BIP-39 compatible mnemonic variable, execute: ```sh $ npx hardhat vars set MNEMONIC -? Enter value: ‣ "here is where your twelve words mnemonic should be put my friend" +? Enter value: ‣ here is where your twelve words mnemonic should be put my friend ``` If you do not already have a mnemonic, you can generate one using this [website](https://iancoleman.io/bip39/). From 0f3dc31b25415d499b54719d731712b14040d0d5 Mon Sep 17 00:00:00 2001 From: Franco Victorio Date: Tue, 7 Nov 2023 11:21:45 +0100 Subject: [PATCH 08/11] Remove dotenv --- hardhat.config.ts | 5 ----- package.json | 1 - pnpm-lock.yaml | 16 ++++------------ 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index 6b9fd05f..12f70bbb 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,18 +1,13 @@ import "@nomicfoundation/hardhat-toolbox"; -import { config as dotenvConfig } from "dotenv"; import "hardhat-deploy"; import type { HardhatUserConfig } from "hardhat/config"; import { vars } from "hardhat/config"; import type { NetworkUserConfig } from "hardhat/types"; -import { resolve } from "path"; import "./tasks/accounts"; import "./tasks/greet"; import "./tasks/taskDeploy"; -const dotenvConfigPath: string = process.env.DOTENV_CONFIG_PATH || "./.env"; -dotenvConfig({ path: resolve(__dirname, dotenvConfigPath) }); - // Run 'npx hardhat vars setup' to see the list of variables that need to be set const mnemonic: string = vars.get("MNEMONIC"); diff --git a/package.json b/package.json index 47b0eb1b..c8213ffc 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,6 @@ "@typescript-eslint/parser": "^5.44.0", "chai": "^4.3.7", "cross-env": "^7.0.3", - "dotenv": "^16.0.3", "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "ethers": "^6.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d58e830..8d719095 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,5 @@ lockfileVersion: '6.0' -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - devDependencies: '@nomicfoundation/hardhat-chai-matchers': specifier: ^2.0.0 @@ -53,9 +49,6 @@ devDependencies: cross-env: specifier: ^7.0.3 version: 7.0.3 - dotenv: - specifier: ^16.0.3 - version: 16.0.3 eslint: specifier: ^8.28.0 version: 8.28.0 @@ -2585,11 +2578,6 @@ packages: esutils: 2.0.3 dev: true - /dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} - engines: {node: '>=12'} - dev: true - /ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} dependencies: @@ -6327,3 +6315,7 @@ packages: name: '@adraffy/ens-normalize' version: 1.9.0 dev: true + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false From 3980209b3de5a9b3d171559903d681582be5ebbc Mon Sep 17 00:00:00 2001 From: Franco Victorio Date: Tue, 7 Nov 2023 11:26:00 +0100 Subject: [PATCH 09/11] Run typechain in postcompile instead of postinstall --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c8213ffc..f62dabca 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "lint": "pnpm lint:sol && pnpm lint:ts && pnpm prettier:check", "lint:sol": "solhint --max-warnings 0 \"contracts/**/*.sol\"", "lint:ts": "eslint --ignore-path ./.eslintignore --ext .js,.ts .", - "postinstall": "pnpm typechain", + "postcompile": "pnpm typechain", "prettier:check": "prettier --check \"**/*.{js,json,md,sol,ts,yml}\"", "prettier:write": "prettier --write \"**/*.{js,json,md,sol,ts,yml}\"", "task:deployGreeter": "hardhat task:deployGreeter", From 36e325b7a87e6b61c664f51113365d0f90380c07 Mon Sep 17 00:00:00 2001 From: Franco Victorio Date: Fri, 10 Nov 2023 11:11:11 +0100 Subject: [PATCH 10/11] Update ci.yml --- .github/workflows/ci.yml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6be3bf0b..3fc021af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,17 +1,18 @@ name: "CI" -# For more information on how to set up GitHub secrets, check the following link: -# https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions - env: - HARDHAT_VAR_MNEMONIC: ${{ secrets.Mnemonic }} - HARDHAT_VAR_INFURA_API_KEY: ${{ secrets.InfuraApiKey }} - # HARDHAT_VAR_ARBISCAN_API_KEY: ${{ secrets.ArbiscanApiKey }} - # HARDHAT_VAR_BSCSCAN_API_KEY: ${{ secrets.BscscanApiKey }} - # HARDHAT_VAR_ETHERSCAN_API_KEY: ${{ secrets.EtherscanApiKey }} - # HARDHAT_VAR_OPTIMISM_API_KEY: ${{ secrets.OptimismApiKey }} - # HARDHAT_VAR_POLYGONSCAN_API_KEY: ${{ secrets.PolygonscanApiKey }} - # HARDHAT_VAR_SNOWTRACE_API_KEY: ${{ secrets.SnowtraceApiKey }} + HARDHAT_VAR_MNEMONIC: "test test test test test test test test test test test junk" + HARDHAT_VAR_INFURA_API_KEY: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" +# Uncomment the following lines to set your configuration variables using +# GitHub secrets (https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions) +# HARDHAT_VAR_MNEMONIC: ${{ secrets.Mnemonic }} +# HARDHAT_VAR_INFURA_API_KEY: ${{ secrets.InfuraApiKey }} +# HARDHAT_VAR_ARBISCAN_API_KEY: ${{ secrets.ArbiscanApiKey }} +# HARDHAT_VAR_BSCSCAN_API_KEY: ${{ secrets.BscscanApiKey }} +# HARDHAT_VAR_ETHERSCAN_API_KEY: ${{ secrets.EtherscanApiKey }} +# HARDHAT_VAR_OPTIMISM_API_KEY: ${{ secrets.OptimismApiKey }} +# HARDHAT_VAR_POLYGONSCAN_API_KEY: ${{ secrets.PolygonscanApiKey }} +# HARDHAT_VAR_SNOWTRACE_API_KEY: ${{ secrets.SnowtraceApiKey }} on: workflow_dispatch: From fd1ca5f99b7da9fdf9ee7d7e75dcdb2c6feefa4c Mon Sep 17 00:00:00 2001 From: Paul Razvan Berg Date: Mon, 27 Nov 2023 00:04:41 +0200 Subject: [PATCH 11/11] docs: polish README --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 74adf401..b2050628 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,8 @@ request made to the `main` branch. Note though that to make this work, you must use your `INFURA_API_KEY` and your `MNEMONIC` as GitHub secrets. -For more information on how to set up GitHub secrets, check the -[following link](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions). +For more information on how to set up GitHub secrets, check out the +[docs](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions). You can edit the CI script in [.github/workflows/ci.yml](./.github/workflows/ci.yml). @@ -76,12 +76,14 @@ $ pnpm install ``` Then, you need to set up all the required -[Hardhat Configuration Variables](https://hardhat.org/hardhat-runner/docs/guides/configuration-variables) and, if -necessary, the optional ones. To assist with the setup process, run `npx hardhat vars setup`. For example, to set a -BIP-39 compatible mnemonic variable, execute: +[Hardhat Configuration Variables](https://hardhat.org/hardhat-runner/docs/guides/configuration-variables). You might +also want to install some that are optional. + +To assist with the setup process, run `pnpm dlx hardhat vars setup`. To set a particular value, such as a BIP-39 +mnemonic variable, execute this: ```sh -$ npx hardhat vars set MNEMONIC +$ pnpm dlx hardhat vars set MNEMONIC ? Enter value: ‣ here is where your twelve words mnemonic should be put my friend ```