From 781392da22bab1453c0c0d9eeea9a762bc28c3ff Mon Sep 17 00:00:00 2001 From: CedarMist <134699267+CedarMist@users.noreply.github.com> Date: Sun, 17 Sep 2023 14:54:16 +0200 Subject: [PATCH] integrations/hardhat: remove oasislabs/hardhat fork (#182) --- .github/workflows/ci-test.yaml | 4 - integrations/hardhat/.mocharc.json | 5 - integrations/hardhat/package.json | 24 +- integrations/hardhat/src/index.ts | 58 +-- .../hardhat-project/contracts/Lock.sol | 34 -- .../hardhat-project/hardhat.config.ts | 18 - integrations/hardhat/test/helpers.ts | 29 -- integrations/hardhat/test/project.test.ts | 57 --- pnpm-lock.yaml | 352 +++++++++--------- 9 files changed, 182 insertions(+), 399 deletions(-) delete mode 100644 integrations/hardhat/.mocharc.json delete mode 100644 integrations/hardhat/test/fixture-projects/hardhat-project/contracts/Lock.sol delete mode 100644 integrations/hardhat/test/fixture-projects/hardhat-project/hardhat.config.ts delete mode 100644 integrations/hardhat/test/helpers.ts delete mode 100644 integrations/hardhat/test/project.test.ts diff --git a/.github/workflows/ci-test.yaml b/.github/workflows/ci-test.yaml index 3851be63..649f29f1 100644 --- a/.github/workflows/ci-test.yaml +++ b/.github/workflows/ci-test.yaml @@ -174,10 +174,6 @@ jobs: path: | integrations/hardhat/dist - - name: Test Integration Hardhat - run: pnpm test - - test-client-go: name: test-client-go runs-on: ubuntu-latest diff --git a/integrations/hardhat/.mocharc.json b/integrations/hardhat/.mocharc.json deleted file mode 100644 index 79ba35dd..00000000 --- a/integrations/hardhat/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "require": "ts-node/register/files", - "ignore": ["test/fixture-projects/**/*"], - "timeout": 6000 -} diff --git a/integrations/hardhat/package.json b/integrations/hardhat/package.json index 0bb4aba0..6f8d4e6b 100644 --- a/integrations/hardhat/package.json +++ b/integrations/hardhat/package.json @@ -1,7 +1,7 @@ { "name": "@oasisprotocol/sapphire-hardhat", "license": "Apache-2.0", - "version": "2.16.1", + "version": "2.17.3", "description": "A Hardhat plugin for developing on the Sapphire ParaTime.", "homepage": "https://github.com/oasisprotocol/sapphire-paratime/tree/main/integrations/hardhat", "repository": { @@ -13,33 +13,23 @@ "paratime", "hardhat" ], - "main": "dist/src/index.js", - "types": "dist/src/index.d.ts", + "main": "dist/index.js", + "types": "dist/index.d.ts", "files": [ - "dist/src/", + "dist/", "src/" ], "scripts": { "lint": "prettier --cache --ignore-path .gitignore --check .", "format": "prettier --cache --ignore-path .gitignore --write .", - "build": "tsc -b", - "test": "mocha --exit --recursive 'test/**/*.test.ts'" + "build": "tsc -b" }, "dependencies": { - "@oasislabs/hardhat": "^2.16.1", "@oasisprotocol/sapphire-paratime": "workspace:^" }, "devDependencies": { - "@nomicfoundation/hardhat-chai-matchers": "^1.0.5", - "@nomicfoundation/hardhat-network-helpers": "^1.0.7", - "@nomiclabs/hardhat-ethers": "^2.2.2", - "@types/chai": "^4.3.4", - "@types/mocha": "^9.1.1", - "@types/node": "^18.11.18", - "chai": "^4.3.7", - "ethers": "^5.7.2", - "hardhat": "^2.16.1", - "mocha": "^10.2.0", + "@types/node": "^18.7.18", + "hardhat": "^2.17.3", "prettier": "^2.8.3", "ts-node": "^8.10.2", "typescript": "^4.9.4" diff --git a/integrations/hardhat/src/index.ts b/integrations/hardhat/src/index.ts index e833b0c2..a1065b49 100644 --- a/integrations/hardhat/src/index.ts +++ b/integrations/hardhat/src/index.ts @@ -1,7 +1,5 @@ import * as sapphire from '@oasisprotocol/sapphire-paratime'; -import { extendEnvironment, subtask } from 'hardhat/config'; -import { TASK_NODE_GET_PROVIDER } from 'hardhat/builtin-tasks/task-names'; -import { EthereumProvider } from 'hardhat/types'; +import { extendEnvironment } from 'hardhat/config'; import './type-extensions'; @@ -23,57 +21,3 @@ extendEnvironment((hre) => { } hre.network.provider = sapphire.wrap(hre.network.provider); }); - -subtask(TASK_NODE_GET_PROVIDER).setAction( - async ( - args: { - forkBlockNumber?: number; - forkUrl?: string; - }, - { artifacts, config, network, userConfig }, - runSuper, - ): Promise => { - const HARDHAT_NETWORK_NAME = 'hardhat'; - const { forkBlockNumber: forkBlockNumberParam, forkUrl: forkUrlParam } = - args; - if ( - network.name !== HARDHAT_NETWORK_NAME || - (network.config as any).confidential !== true - ) { - return runSuper(); - } - - const hardhatNetworkConfig = config.networks[HARDHAT_NETWORK_NAME]; - const { createProvider } = await import( - '@oasislabs/hardhat/internal/core/providers/construction' - ); - const provider = await createProvider( - config, - HARDHAT_NETWORK_NAME, - artifacts, - ); - - const forkUrlConfig = hardhatNetworkConfig.forking?.url; - const forkBlockNumberConfig = hardhatNetworkConfig.forking?.blockNumber; - - const forkUrl = forkUrlParam ?? forkUrlConfig; - const forkBlockNumber = forkBlockNumberParam ?? forkBlockNumberConfig; - - if (forkBlockNumber || forkUrl) { - throw new Error( - 'Sapphire forking is not yet supported. Please file an issue if you see this error!', - ); - } - - const hardhatNetworkUserConfig = - userConfig.networks?.[HARDHAT_NETWORK_NAME] ?? {}; - - // enable logging - await provider.request({ - method: 'hardhat_setLoggingEnabled', - params: [hardhatNetworkUserConfig.loggingEnabled ?? true], - }); - - return provider; - }, -); diff --git a/integrations/hardhat/test/fixture-projects/hardhat-project/contracts/Lock.sol b/integrations/hardhat/test/fixture-projects/hardhat-project/contracts/Lock.sol deleted file mode 100644 index 50935f61..00000000 --- a/integrations/hardhat/test/fixture-projects/hardhat-project/contracts/Lock.sol +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.9; - -// Uncomment this line to use console.log -// import "hardhat/console.sol"; - -contract Lock { - uint public unlockTime; - address payable public owner; - - event Withdrawal(uint amount, uint when); - - constructor(uint _unlockTime) payable { - require( - block.timestamp < _unlockTime, - "Unlock time should be in the future" - ); - - unlockTime = _unlockTime; - owner = payable(msg.sender); - } - - function withdraw() public { - // Uncomment this line, and the import of "hardhat/console.sol", to print a log in your terminal - // console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp); - - require(block.timestamp >= unlockTime, "You can't withdraw yet"); - require(msg.sender == owner, "You aren't the owner"); - - emit Withdrawal(address(this).balance, block.timestamp); - - owner.transfer(address(this).balance); - } -} diff --git a/integrations/hardhat/test/fixture-projects/hardhat-project/hardhat.config.ts b/integrations/hardhat/test/fixture-projects/hardhat-project/hardhat.config.ts deleted file mode 100644 index ba4bbcc8..00000000 --- a/integrations/hardhat/test/fixture-projects/hardhat-project/hardhat.config.ts +++ /dev/null @@ -1,18 +0,0 @@ -// We load the plugin here. -import { HardhatUserConfig } from 'hardhat/types'; - -import '@nomiclabs/hardhat-ethers'; -import '@nomicfoundation/hardhat-chai-matchers'; - -import '../../../src/index'; - -const config: HardhatUserConfig = { - solidity: '0.8.17', - networks: { - hardhat: { - confidential: true, - }, - }, -}; - -export default config; diff --git a/integrations/hardhat/test/helpers.ts b/integrations/hardhat/test/helpers.ts deleted file mode 100644 index f0919081..00000000 --- a/integrations/hardhat/test/helpers.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { resetHardhatContext } from 'hardhat/plugins-testing'; -import { HardhatRuntimeEnvironment } from 'hardhat/types'; -import path from 'path'; -import '@nomiclabs/hardhat-ethers/internal/type-extensions'; -import '@nomicfoundation/hardhat-chai-matchers/types'; - -declare module 'mocha' { - interface Context { - hre: HardhatRuntimeEnvironment; - } -} - -export function useEnvironment(fixtureProjectName: string) { - before( - 'Loading hardhat environment and compiling the contract', - async function () { - process.chdir( - path.join(__dirname, 'fixture-projects', fixtureProjectName), - ); - - this.hre = require('@oasislabs/hardhat'); - await this.hre.run('compile', { quiet: true }); - }, - ); - - afterEach('Resetting hardhat', function () { - resetHardhatContext(); - }); -} diff --git a/integrations/hardhat/test/project.test.ts b/integrations/hardhat/test/project.test.ts deleted file mode 100644 index ff31713f..00000000 --- a/integrations/hardhat/test/project.test.ts +++ /dev/null @@ -1,57 +0,0 @@ -// tslint:disable-next-line no-implicit-dependencies -import { assert, expect } from 'chai'; -import { useEnvironment } from './helpers'; -import { time, loadFixture } from '@nomicfoundation/hardhat-network-helpers'; -import * as sapphire from '@oasisprotocol/sapphire-paratime'; - -describe('Hardhat Runtime Environment Oasis Extension', function () { - useEnvironment('hardhat-project'); - - it('Should handle get public key request', async function () { - const result = await this.hre.network.provider.send( - 'oasis_callDataPublicKey', - [], - ); - assert.isNotNull(result.key); - }); - - it('Should return zero for getStorageAt request', async function () { - const [owner] = await this.hre.ethers.getSigners(); - let signer = sapphire.wrap(owner); - const Lock = await this.hre.ethers.getContractFactory('Lock', signer); - const unlockTime = (await time.latest()) + 60; - const lock = await Lock.deploy(unlockTime, { value: 1_000 }); - const result = await this.hre.network.provider.send('eth_getStorageAt', [ - lock.address, - '0x0', - 'latest', - ]); - expect(result).to.equal(`0x${'0'.repeat(64)}`); - }); - - it('Should deploy to hardhat local node and query for sapphire', async function () { - const [owner] = await this.hre.ethers.getSigners(); - let signer = sapphire.wrap(owner); - const Lock = await this.hre.ethers.getContractFactory('Lock', signer); - const unlockTime = (await time.latest()) + 60; - const lock = await Lock.deploy(unlockTime, { value: 1_000 }); - expect(await lock.owner()).to.equal(owner.address); - - // do the signed query - const result = await lock.unlockTime(); - expect(result).to.equal(unlockTime); - }); - - it('Should not deploy to hardhat for non-sapphire', async function () { - const Lock = await this.hre.ethers.getContractFactory('Lock'); - const unlockTime = (await time.latest()) + 60; - - try { - await Lock.deploy(unlockTime, { value: 1_000 }); - } catch (e: any) { - expect(e.message).to.equal( - 'CBOR decode error: too many terminals, data makes no sense', - ); - } - }); -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 08542e3e..164c11cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -454,43 +454,16 @@ importers: integrations/hardhat: dependencies: - '@oasislabs/hardhat': - specifier: ^2.16.1 - version: 2.16.1(ts-node@8.10.2)(typescript@4.9.5) '@oasisprotocol/sapphire-paratime': specifier: workspace:^ version: link:../../clients/js devDependencies: - '@nomicfoundation/hardhat-chai-matchers': - specifier: ^1.0.5 - version: 1.0.6(@nomiclabs/hardhat-ethers@2.2.3)(chai@4.3.7)(ethers@5.7.2)(hardhat@2.16.1) - '@nomicfoundation/hardhat-network-helpers': - specifier: ^1.0.7 - version: 1.0.8(hardhat@2.16.1) - '@nomiclabs/hardhat-ethers': - specifier: ^2.2.2 - version: 2.2.3(ethers@5.7.2)(hardhat@2.16.1) - '@types/chai': - specifier: ^4.3.4 - version: 4.3.5 - '@types/mocha': - specifier: ^9.1.1 - version: 9.1.1 '@types/node': - specifier: ^18.11.18 + specifier: ^18.7.18 version: 18.16.18 - chai: - specifier: ^4.3.7 - version: 4.3.7 - ethers: - specifier: ^5.7.2 - version: 5.7.2 hardhat: - specifier: ^2.16.1 - version: 2.16.1(ts-node@8.10.2)(typescript@4.9.5) - mocha: - specifier: ^10.2.0 - version: 10.2.0 + specifier: ^2.17.3 + version: 2.17.3(ts-node@8.10.2)(typescript@4.9.5) prettier: specifier: ^2.8.3 version: 2.8.8 @@ -3433,6 +3406,22 @@ packages: - bufferutil - utf-8-validate + /@nomicfoundation/ethereumjs-block@5.0.2: + resolution: {integrity: sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==} + engines: {node: '>=14'} + dependencies: + '@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@7.0.1: resolution: {integrity: sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==} engines: {node: '>=14'} @@ -3455,12 +3444,42 @@ packages: - supports-color - utf-8-validate + /@nomicfoundation/ethereumjs-blockchain@7.0.2: + resolution: {integrity: sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==} + engines: {node: '>=14'} + dependencies: + '@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 + level: 8.0.0 + lru-cache: 5.1.1 + memory-level: 1.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /@nomicfoundation/ethereumjs-common@4.0.1: resolution: {integrity: sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==} dependencies: '@nomicfoundation/ethereumjs-util': 9.0.1 crc-32: 1.2.2 + /@nomicfoundation/ethereumjs-common@4.0.2: + resolution: {integrity: sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==} + dependencies: + '@nomicfoundation/ethereumjs-util': 9.0.2 + crc-32: 1.2.2 + dev: true + /@nomicfoundation/ethereumjs-ethash@3.0.1: resolution: {integrity: sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==} engines: {node: '>=14'} @@ -3475,6 +3494,21 @@ packages: - bufferutil - utf-8-validate + /@nomicfoundation/ethereumjs-ethash@3.0.2: + resolution: {integrity: sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==} + engines: {node: '>=14'} + dependencies: + '@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.3.0 + ethereum-cryptography: 0.1.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + /@nomicfoundation/ethereumjs-evm@2.0.1: resolution: {integrity: sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==} engines: {node: '>=14'} @@ -3492,11 +3526,35 @@ packages: - supports-color - utf-8-validate + /@nomicfoundation/ethereumjs-evm@2.0.2: + resolution: {integrity: sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==} + engines: {node: '>=14'} + dependencies: + '@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@5.0.1: resolution: {integrity: sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==} engines: {node: '>=14'} hasBin: true + /@nomicfoundation/ethereumjs-rlp@5.0.2: + resolution: {integrity: sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==} + engines: {node: '>=14'} + hasBin: true + dev: true + /@nomicfoundation/ethereumjs-statemanager@2.0.1: resolution: {integrity: sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==} dependencies: @@ -3511,6 +3569,21 @@ packages: - supports-color - utf-8-validate + /@nomicfoundation/ethereumjs-statemanager@2.0.2: + resolution: {integrity: sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==} + dependencies: + '@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 + ethers: 5.7.2 + js-sdsl: 4.4.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /@nomicfoundation/ethereumjs-trie@6.0.1: resolution: {integrity: sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==} engines: {node: '>=14'} @@ -3521,6 +3594,17 @@ packages: ethereum-cryptography: 0.1.3 readable-stream: 3.6.2 + /@nomicfoundation/ethereumjs-trie@6.0.2: + resolution: {integrity: sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==} + engines: {node: '>=14'} + dependencies: + '@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@5.0.1: resolution: {integrity: sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==} engines: {node: '>=14'} @@ -3535,6 +3619,21 @@ packages: - bufferutil - utf-8-validate + /@nomicfoundation/ethereumjs-tx@5.0.2: + resolution: {integrity: sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==} + engines: {node: '>=14'} + dependencies: + '@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@9.0.1: resolution: {integrity: sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==} engines: {node: '>=14'} @@ -3543,6 +3642,15 @@ packages: '@nomicfoundation/ethereumjs-rlp': 5.0.1 ethereum-cryptography: 0.1.3 + /@nomicfoundation/ethereumjs-util@9.0.2: + resolution: {integrity: sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==} + engines: {node: '>=14'} + dependencies: + '@chainsafe/ssz': 0.10.2 + '@nomicfoundation/ethereumjs-rlp': 5.0.2 + ethereum-cryptography: 0.1.3 + dev: true + /@nomicfoundation/ethereumjs-vm@7.0.1: resolution: {integrity: sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==} engines: {node: '>=14'} @@ -3565,6 +3673,29 @@ packages: - supports-color - utf-8-validate + /@nomicfoundation/ethereumjs-vm@7.0.2: + resolution: {integrity: sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==} + engines: {node: '>=14'} + dependencies: + '@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 + mcl-wasm: 0.7.9 + rustbn.js: 0.2.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /@nomicfoundation/hardhat-chai-matchers@1.0.6(@nomiclabs/hardhat-ethers@2.2.3)(chai@4.3.7)(ethers@5.7.2)(hardhat@2.16.1): resolution: {integrity: sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==} peerDependencies: @@ -3761,108 +3892,6 @@ packages: - supports-color dev: true - /@oasislabs/ethereumjs-vm@7.0.1: - resolution: {integrity: sha512-ki1vaaXjOAqMOW6nyb7KgT3tShR+TERMQAae9MljGEvNpFyLzDdOxyRdjoDbTxjysa6651pl+KhZ8LUjKNuqiQ==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-blockchain': 7.0.1 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-evm': 2.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-statemanager': 2.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - '@oasisprotocol/sapphire-paratime': 1.0.15 - '@types/async-eventemitter': 0.2.1 - async-eventemitter: 0.2.4 - cborg: 1.10.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 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /@oasislabs/hardhat@2.16.1(ts-node@8.10.2)(typescript@4.9.5): - resolution: {integrity: sha512-Gh4+yZBXeCNEhNIROMPa7wU2i2EfQlxmAlas25afl7JDsJaJjsMYzAZ7zcRrjEYn2LaT5wCGkol+slxuzEAcZw==} - engines: {node: '>=14.0.0'} - peerDependencies: - ts-node: '*' - typescript: '*' - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-blockchain': 7.0.1 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-evm': 2.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-statemanager': 2.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - '@nomicfoundation/solidity-analyzer': 0.1.1 - '@oasislabs/ethereumjs-vm': 7.0.1 - '@oasisprotocol/sapphire-paratime': 1.0.15 - '@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 - cborg: 1.10.2 - chalk: 2.4.2 - chokidar: 3.5.3 - ci-info: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) - enquirer: 2.3.6 - env-paths: 2.2.1 - ethereum-cryptography: 1.2.0 - ethereumjs-abi: 0.6.8 - ethers-v5: /ethers@5.7.2 - find-up: 2.1.0 - fp-ts: 1.19.3 - fs-extra: 7.0.1 - glob: 7.2.0 - immutable: 4.3.0 - io-ts: 1.10.4 - keccak: 3.0.3 - lodash: 4.17.21 - mnemonist: 0.38.5 - mocha: 10.2.0 - p-map: 4.0.0 - raw-body: 2.5.2 - resolve: 1.17.0 - semver: 6.3.0 - solc: 0.7.3(debug@4.3.4) - source-map-support: 0.5.21 - stacktrace-parser: 0.1.10 - ts-node: 8.10.2(typescript@4.9.5) - tsort: 0.0.1 - typescript: 4.9.5 - undici: 5.22.1 - uuid: 8.3.2 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - /@oasisprotocol/deoxysii@0.0.5: resolution: {integrity: sha512-a6wYPjk8ALDIiQW/971AKOTSTY1qSdld+Y05F44gVZvlb3FOyHfgbIxXm7CZnUG1A+jK49g5SCWYP+V3/Tc75Q==} dependencies: @@ -3870,27 +3899,6 @@ packages: uint32: 0.2.1 dev: false - /@oasisprotocol/sapphire-paratime@1.0.15: - resolution: {integrity: sha512-ElegTD1A0MXmvey2WTe66ebquKndAZXnyp5KFzYowguc7An9Xx5g3sFeT1OEhCSHUMEeuLWSWdp2mTkFmeeOug==} - dependencies: - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/providers': 5.7.2 - '@ethersproject/rlp': 5.7.0 - '@ethersproject/transactions': 5.7.0 - cborg: 1.10.2 - deoxysii: 0.0.2 - js-sha512: 0.8.0 - tweetnacl: 1.0.3 - type-fest: 2.19.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - /@openzeppelin/contracts@4.9.2: resolution: {integrity: sha512-mO+y6JaqXjWeMh9glYVzVu8HYPGknAAnWyxTRhGeckOruyXQMNnlcW6w/Dx9ftLeIQk6N+ZJFuVmTwF7lEIFrg==} @@ -4771,10 +4779,6 @@ packages: dev: false optional: true - /@types/async-eventemitter@0.2.1: - resolution: {integrity: sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg==} - dev: false - /@types/babel__core@7.20.1: resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==} dependencies: @@ -7929,13 +7933,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - /deoxysii@0.0.2: - resolution: {integrity: sha512-mMob/2wDZBatPC48g188hFt5xxrbfYMl9L+XQGOZuHPU4ScCHpAKkbZiAU1yg/kROj6nPKZp5eItuNI3LdU7vA==} - dependencies: - bsaes: 0.0.2 - uint32: 0.2.1 - dev: false - /depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -10266,9 +10263,8 @@ packages: - supports-color - utf-8-validate - /hardhat@2.16.1(ts-node@8.10.2)(typescript@4.9.5): - resolution: {integrity: sha512-QpBjGXFhhSYoYBGEHyoau/A63crZOP+i3GbNxzLGkL6IklzT+piN14+wGnINNCg5BLSKisQI/RAySPzaWRcx/g==} - engines: {node: '>=14.0.0'} + /hardhat@2.17.3(ts-node@8.10.2)(typescript@4.9.5): + resolution: {integrity: sha512-SFZoYVXW1bWJZrIIKXOA+IgcctfuKXDwENywiYNT2dM3YQc4fXNaTbuk/vpPzHIF50upByx4zW5EqczKYQubsA==} hasBin: true peerDependencies: ts-node: '*' @@ -10281,21 +10277,20 @@ packages: dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-blockchain': 7.0.1 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-evm': 2.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-statemanager': 2.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - '@nomicfoundation/ethereumjs-vm': 7.0.1 + '@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 @@ -17408,6 +17403,7 @@ packages: source-map-support: 0.5.21 typescript: 4.9.5 yn: 3.1.1 + dev: true /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}