diff --git a/.gitignore b/.gitignore index 9d45075..a14a7e5 100644 --- a/.gitignore +++ b/.gitignore @@ -70,6 +70,7 @@ docs/* # Hardhat artifacts cache +typechain-types packages/contracts/deployed-contracts/undefined.json packages/contracts/deployed-contracts/hardhat.json packages/contracts/deployed-contracts/localhost.json diff --git a/packages/cli-template-hardhat/.env.example b/packages/cli-template-hardhat/.env.example new file mode 100644 index 0000000..c809ce7 --- /dev/null +++ b/packages/cli-template-hardhat/.env.example @@ -0,0 +1,4 @@ +ETHEREUM_URL= +ETHEREUM_PRIVATE_KEY= +REPORT_GAS=false +COINMARKETCAP_API_KEY= diff --git a/packages/cli-template-hardhat/README.md b/packages/cli-template-hardhat/README.md new file mode 100644 index 0000000..d66a231 --- /dev/null +++ b/packages/cli-template-hardhat/README.md @@ -0,0 +1,54 @@ +# Semaphore Hardhat template + +This project demonstrates a basic Semaphore use case. It comes with a sample contract, a test for that contract and a sample task that deploys that contract. + +## Usage + +### Compile + +```bash +yarn compile +``` + +### Testing + +```bash +yarn test +``` + +You can also generate a test coverage report: + +```bash +yarn test:coverage +``` + +Or a test gas report: + +```bash +yarn test:report-gas +``` + +### Deploy + +1. Copy the `.env.example` file as `.env`. + +```bash +cp .env.example .env +``` + +2. Add your environment variables. + +> **Note** +> You should at least set a valid Ethereum URL (e.g. Infura) and a private key with some ethers. + +3. And deploy your contract. + +```bash +yarn deploy --semaphore --group --network goerli +``` + +> **Note** +> Check the Semaphore contract addresses [here](https://semaphore.appliedzkp.org/docs/deployed-contracts#semaphore). + +> **Warning** +> The group id is a number! diff --git a/packages/cli-template-hardhat/contracts/Greeter.sol b/packages/cli-template-hardhat/contracts/Greeter.sol new file mode 100644 index 0000000..1cbaaeb --- /dev/null +++ b/packages/cli-template-hardhat/contracts/Greeter.sol @@ -0,0 +1,42 @@ +//SPDX-License-Identifier: Unlicense +pragma solidity ^0.8.4; + +import "@semaphore-protocol/contracts/interfaces/ISemaphore.sol"; + +/// @title Greeter contract. +/// @dev The following code is just a example to show how Semaphore can be used. +contract Greeter { + event NewGreeting(bytes32 greeting); + event NewUser(uint256 identityCommitment, bytes32 username); + + ISemaphore public semaphore; + + uint256 groupId; + mapping(uint256 => bytes32) users; + + constructor(address semaphoreAddress, uint256 _groupId) { + semaphore = ISemaphore(semaphoreAddress); + groupId = _groupId; + + semaphore.createGroup(groupId, 20, 0, address(this)); + } + + function joinGroup(uint256 identityCommitment, bytes32 username) external { + semaphore.addMember(groupId, identityCommitment); + + users[identityCommitment] = username; + + emit NewUser(identityCommitment, username); + } + + function greet( + bytes32 greeting, + uint256 merkleTreeRoot, + uint256 nullifierHash, + uint256[8] calldata proof + ) external { + semaphore.verifyProof(groupId, merkleTreeRoot, greeting, nullifierHash, groupId, proof); + + emit NewGreeting(greeting); + } +} diff --git a/packages/cli-template-hardhat/hardhat.config.ts b/packages/cli-template-hardhat/hardhat.config.ts new file mode 100644 index 0000000..c394e34 --- /dev/null +++ b/packages/cli-template-hardhat/hardhat.config.ts @@ -0,0 +1,41 @@ +import "@nomicfoundation/hardhat-toolbox" +import "@semaphore-protocol/hardhat" +import { config as dotenvConfig } from "dotenv" +import { HardhatUserConfig } from "hardhat/config" +import { NetworksUserConfig } from "hardhat/types" +import "./tasks/deploy" + +dotenvConfig() + +function getNetworks(): NetworksUserConfig { + if (process.env.ETHEREUM_URL && process.env.ETHEREUM_PRIVATE_KEY) { + const accounts = [`0x${process.env.ETHEREUM_PRIVATE_KEY}`] + + return { + goerli: { + url: process.env.ETHEREUM_URL, + chainId: 5, + accounts + } + } + } + + return {} +} + +const config: HardhatUserConfig = { + solidity: "0.8.4", + networks: { + hardhat: { + chainId: 1337 + }, + ...getNetworks() + }, + gasReporter: { + currency: "USD", + enabled: process.env.REPORT_GAS === "true", + coinmarketcap: process.env.COINMARKETCAP_API_KEY + } +} + +export default config diff --git a/packages/cli-template-hardhat/package.json b/packages/cli-template-hardhat/package.json new file mode 100644 index 0000000..1ffde18 --- /dev/null +++ b/packages/cli-template-hardhat/package.json @@ -0,0 +1,57 @@ +{ + "name": "@semaphore-protocol/cli-template-hardhat", + "version": "0.1.0", + "description": "Semaphore Hardhat template.", + "license": "Unlicense", + "files": [ + "contracts/", + "tasks/", + "test/", + "hardhat.config.ts", + "tsconfig.json", + "LICENSE", + "README.md" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "start": "hardhat node", + "compile": "hardhat compile", + "deploy": "hardhat deploy", + "test": "hardhat test", + "test:report-gas": "REPORT_GAS=true hardhat test", + "test:coverage": "hardhat coverage" + }, + "devDependencies": { + "@ethersproject/abi": "^5.4.7", + "@ethersproject/providers": "^5.4.7", + "@nomicfoundation/hardhat-chai-matchers": "^1.0.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-toolbox": "^2.0.0", + "@nomiclabs/hardhat-ethers": "^2.0.0", + "@nomiclabs/hardhat-etherscan": "^3.0.0", + "@semaphore-protocol/group": "2.6.1", + "@semaphore-protocol/hardhat": "^0.1.0", + "@semaphore-protocol/identity": "2.6.1", + "@semaphore-protocol/proof": "2.6.1", + "@typechain/ethers-v5": "^10.1.0", + "@typechain/hardhat": "^6.1.2", + "@types/chai": "^4.2.0", + "@types/download": "^8.0.1", + "@types/mocha": "^9.1.0", + "@types/node": ">=12.0.0", + "chai": "^4.2.0", + "download": "^8.0.0", + "ethers": "^5.4.7", + "hardhat": "^2.11.0", + "hardhat-gas-reporter": "^1.0.8", + "solidity-coverage": "^0.8.1", + "ts-node": ">=8.0.0", + "typechain": "^8.1.0", + "typescript": ">=4.5.0" + }, + "dependencies": { + "@semaphore-protocol/contracts": "2.6.1" + } +} diff --git a/packages/cli-template-hardhat/tasks/deploy.ts b/packages/cli-template-hardhat/tasks/deploy.ts new file mode 100644 index 0000000..ec79b01 --- /dev/null +++ b/packages/cli-template-hardhat/tasks/deploy.ts @@ -0,0 +1,35 @@ +import { task, types } from "hardhat/config" + +task("deploy", "Deploy a Greeter contract") + .addOptionalParam("semaphore", "Semaphore contract address", undefined, types.string) + .addOptionalParam("group", "Group id", "42", types.string) + .addOptionalParam("logs", "Print the logs", true, types.boolean) + .setAction(async ({ logs, semaphore: semaphoreAddress, group: groupId }, { ethers, run }) => { + if (!semaphoreAddress) { + const { address: verifierAddress } = await run("deploy:verifier", { logs, merkleTreeDepth: 20 }) + + const { address } = await run("deploy:semaphore", { + logs, + verifiers: [ + { + merkleTreeDepth: 20, + contractAddress: verifierAddress + } + ] + }) + + semaphoreAddress = address + } + + const Greeter = await ethers.getContractFactory("Greeter") + + const greeter = await Greeter.deploy(semaphoreAddress, groupId) + + await greeter.deployed() + + if (logs) { + console.info(`Greeter contract has been deployed to: ${greeter.address}`) + } + + return greeter + }) diff --git a/packages/cli-template-hardhat/test/Greeter.ts b/packages/cli-template-hardhat/test/Greeter.ts new file mode 100644 index 0000000..7af4b3e --- /dev/null +++ b/packages/cli-template-hardhat/test/Greeter.ts @@ -0,0 +1,72 @@ +import { Group } from "@semaphore-protocol/group" +import { Identity } from "@semaphore-protocol/identity" +import { generateProof, packToSolidityProof } from "@semaphore-protocol/proof" +import { expect } from "chai" +import download from "download" +import { existsSync } from "fs" +import { ethers, run } from "hardhat" +import { Greeter } from "../typechain-types" + +describe("Greeter", function () { + let greeter: Greeter + + const snarkArtifactsURL = "https://www.trusted-setup-pse.org/semaphore/20" + const snarkArtifactsPath = "./artifacts/snark" + + const users: any[] = [] + const groupId = "42" + const group = new Group() + + before(async () => { + if (!existsSync(`${snarkArtifactsPath}/semaphore.wasm`)) { + await download(`${snarkArtifactsURL}/semaphore.wasm`, `${snarkArtifactsPath}`) + await download(`${snarkArtifactsURL}/semaphore.zkey`, `${snarkArtifactsPath}`) + } + + greeter = await run("deploy", { logs: false, group: groupId }) + + users.push({ + identity: new Identity(), + username: ethers.utils.formatBytes32String("anon1") + }) + + users.push({ + identity: new Identity(), + username: ethers.utils.formatBytes32String("anon2") + }) + + group.addMember(users[0].identity.generateCommitment()) + group.addMember(users[1].identity.generateCommitment()) + }) + + describe("# joinGroup", () => { + it("Should allow users to join the group", async () => { + for (let i = 0; i < group.members.length; i++) { + const transaction = greeter.joinGroup(group.members[i], users[i].username) + + await expect(transaction).to.emit(greeter, "NewUser").withArgs(group.members[i], users[i].username) + } + }) + }) + + describe("# greet", () => { + it("Should allow users to greet", async () => { + const greeting = ethers.utils.formatBytes32String("Hello World") + + const fullProof = await generateProof(users[1].identity, group, groupId, greeting, { + wasmFilePath: `${snarkArtifactsPath}/semaphore.wasm`, + zkeyFilePath: `${snarkArtifactsPath}/semaphore.zkey` + }) + const solidityProof = packToSolidityProof(fullProof.proof) + + const transaction = greeter.greet( + greeting, + fullProof.publicSignals.merkleRoot, + fullProof.publicSignals.nullifierHash, + solidityProof + ) + + await expect(transaction).to.emit(greeter, "NewGreeting").withArgs(greeting) + }) + }) +}) diff --git a/packages/cli-template-hardhat/tsconfig.json b/packages/cli-template-hardhat/tsconfig.json new file mode 100644 index 0000000..579c28a --- /dev/null +++ b/packages/cli-template-hardhat/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "es2020", + "module": "commonjs", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true + }, + "include": ["./tasks", "./test", "./typechain-types"], + "files": ["./hardhat.config.ts"] +} diff --git a/yarn.lock b/yarn.lock index 65e2866..b94e7d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1714,7 +1714,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.0.0-beta.146, @ethersproject/abi@npm:^5.1.2, @ethersproject/abi@npm:^5.5.0, @ethersproject/abi@npm:^5.6.3, @ethersproject/abi@npm:^5.7.0": +"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.0.0-beta.146, @ethersproject/abi@npm:^5.0.9, @ethersproject/abi@npm:^5.1.2, @ethersproject/abi@npm:^5.4.7, @ethersproject/abi@npm:^5.5.0, @ethersproject/abi@npm:^5.6.3, @ethersproject/abi@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/abi@npm:5.7.0" dependencies: @@ -1969,6 +1969,34 @@ __metadata: languageName: node linkType: hard +"@ethersproject/providers@npm:5.7.2, @ethersproject/providers@npm:^5.4.7": + version: 5.7.2 + resolution: "@ethersproject/providers@npm:5.7.2" + dependencies: + "@ethersproject/abstract-provider": ^5.7.0 + "@ethersproject/abstract-signer": ^5.7.0 + "@ethersproject/address": ^5.7.0 + "@ethersproject/base64": ^5.7.0 + "@ethersproject/basex": ^5.7.0 + "@ethersproject/bignumber": ^5.7.0 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/constants": ^5.7.0 + "@ethersproject/hash": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/networks": ^5.7.0 + "@ethersproject/properties": ^5.7.0 + "@ethersproject/random": ^5.7.0 + "@ethersproject/rlp": ^5.7.0 + "@ethersproject/sha2": ^5.7.0 + "@ethersproject/strings": ^5.7.0 + "@ethersproject/transactions": ^5.7.0 + "@ethersproject/web": ^5.7.0 + bech32: 1.1.4 + ws: 7.4.6 + checksum: 1754c731a5ca6782ae9677f4a9cd8b6246c4ef21a966c9a01b133750f3c578431ec43ec254e699969c4a0f87e84463ded50f96b415600aabd37d2056aee58c19 + languageName: node + linkType: hard + "@ethersproject/random@npm:5.7.0, @ethersproject/random@npm:^5.5.1, @ethersproject/random@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/random@npm:5.7.0" @@ -2675,6 +2703,63 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/hardhat-chai-matchers@npm:^1.0.0": + version: 1.0.5 + resolution: "@nomicfoundation/hardhat-chai-matchers@npm:1.0.5" + dependencies: + "@ethersproject/abi": ^5.1.2 + "@types/chai-as-promised": ^7.1.3 + chai-as-promised: ^7.1.1 + chalk: ^2.4.2 + deep-eql: ^4.0.1 + ordinal: ^1.0.3 + peerDependencies: + "@nomiclabs/hardhat-ethers": ^2.0.0 + chai: ^4.2.0 + ethers: ^5.0.0 + hardhat: ^2.9.4 + checksum: ad1f34d62be22323a12cd623bbc43c05bcd88cf9f3bc77a4fd449d076a6e890c9abf58c9d75f2254bf2f060e1c8d666c71715cff555c0cb6029d7357a200273d + languageName: node + linkType: hard + +"@nomicfoundation/hardhat-network-helpers@npm:^1.0.0": + version: 1.0.7 + resolution: "@nomicfoundation/hardhat-network-helpers@npm:1.0.7" + dependencies: + ethereumjs-util: ^7.1.4 + peerDependencies: + hardhat: ^2.9.5 + checksum: 622338ae1692496aa3fb864c0ca04a58b141bd1410b0b3814085113f863c400167c9d7796a15fa77cb9fe2743daefd6c5d84322f62b6196ec8a9564dafcc0f23 + languageName: node + linkType: hard + +"@nomicfoundation/hardhat-toolbox@npm:^2.0.0": + version: 2.0.0 + resolution: "@nomicfoundation/hardhat-toolbox@npm:2.0.0" + peerDependencies: + "@ethersproject/abi": ^5.4.7 + "@ethersproject/providers": ^5.4.7 + "@nomicfoundation/hardhat-chai-matchers": ^1.0.0 + "@nomicfoundation/hardhat-network-helpers": ^1.0.0 + "@nomiclabs/hardhat-ethers": ^2.0.0 + "@nomiclabs/hardhat-etherscan": ^3.0.0 + "@typechain/ethers-v5": ^10.1.0 + "@typechain/hardhat": ^6.1.2 + "@types/chai": ^4.2.0 + "@types/mocha": ^9.1.0 + "@types/node": ">=12.0.0" + chai: ^4.2.0 + ethers: ^5.4.7 + hardhat: ^2.11.0 + hardhat-gas-reporter: ^1.0.8 + solidity-coverage: ^0.8.1 + ts-node: ">=8.0.0" + typechain: ^8.1.0 + typescript: ">=4.5.0" + checksum: 8bd26c509d0058409230f30d0aba1b7cd13f7ef66c3ca267ea5d26fb11feb382ce6aa56a34ea353c56834fbcf76ce5ec1c84e8b8f47ae715acaaf4aa9f1c18bc + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.0.3" @@ -2682,6 +2767,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.0.3" @@ -2689,6 +2781,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.0.3" @@ -2696,6 +2795,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.0.3" @@ -2703,6 +2809,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.0.3" @@ -2710,6 +2823,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.0.3" @@ -2717,6 +2837,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.0.3" @@ -2724,6 +2851,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.0.3" @@ -2731,6 +2865,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.0.3" @@ -2738,6 +2879,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.0.3" @@ -2745,6 +2893,13 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer@npm:^0.0.3": version: 0.0.3 resolution: "@nomicfoundation/solidity-analyzer@npm:0.0.3" @@ -2784,6 +2939,55 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/solidity-analyzer@npm:^0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer@npm:0.1.0" + dependencies: + "@nomicfoundation/solidity-analyzer-darwin-arm64": 0.1.0 + "@nomicfoundation/solidity-analyzer-darwin-x64": 0.1.0 + "@nomicfoundation/solidity-analyzer-freebsd-x64": 0.1.0 + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": 0.1.0 + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": 0.1.0 + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": 0.1.0 + "@nomicfoundation/solidity-analyzer-linux-x64-musl": 0.1.0 + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": 0.1.0 + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": 0.1.0 + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": 0.1.0 + dependenciesMeta: + "@nomicfoundation/solidity-analyzer-darwin-arm64": + optional: true + "@nomicfoundation/solidity-analyzer-darwin-x64": + optional: true + "@nomicfoundation/solidity-analyzer-freebsd-x64": + optional: true + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": + optional: true + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": + optional: true + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": + optional: true + "@nomicfoundation/solidity-analyzer-linux-x64-musl": + optional: true + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": + optional: true + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": + optional: true + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": + optional: true + checksum: 42dc5ba40e76bf14945fb6a423554bbbc6c99596675065d7d6f3c9a49ec39e37f3f77ecfedcf906fdb1bb33b033a5d92a90c645c886d6ff23334c8af8b14ff67 + languageName: node + linkType: hard + +"@nomiclabs/hardhat-ethers@npm:^2.0.0": + version: 2.2.1 + resolution: "@nomiclabs/hardhat-ethers@npm:2.2.1" + peerDependencies: + ethers: ^5.0.0 + hardhat: ^2.0.0 + checksum: 8cdbf7068f15ee993142ab600074938d05b42af73392a5b12c8eb607a5bca2fac977a6a85955e0b0285541415ad520626e7fb3d33ca7cc112d61ee928358e2f6 + languageName: node + linkType: hard + "@nomiclabs/hardhat-ethers@npm:^2.0.6, @nomiclabs/hardhat-ethers@npm:^2.1.1": version: 2.1.1 resolution: "@nomiclabs/hardhat-ethers@npm:2.1.1" @@ -2794,6 +2998,26 @@ __metadata: languageName: node linkType: hard +"@nomiclabs/hardhat-etherscan@npm:^3.0.0": + version: 3.1.3 + resolution: "@nomiclabs/hardhat-etherscan@npm:3.1.3" + dependencies: + "@ethersproject/abi": ^5.1.2 + "@ethersproject/address": ^5.0.2 + cbor: ^8.1.0 + chalk: ^2.4.2 + debug: ^4.1.1 + fs-extra: ^7.0.1 + lodash: ^4.17.11 + semver: ^6.3.0 + table: ^6.8.0 + undici: ^5.4.0 + peerDependencies: + hardhat: ^2.0.4 + checksum: a9e7bff84ed473b7c2650b93ed2d3ed797ff2898051b8738d378ff410c27a81f6b21762bfe60e9509ec680f1d601684fef23a493f18bdad2b4f9a5538d0d5aec + languageName: node + linkType: hard + "@nomiclabs/hardhat-etherscan@npm:^3.1.0": version: 3.1.0 resolution: "@nomiclabs/hardhat-etherscan@npm:3.1.0" @@ -3006,15 +3230,51 @@ __metadata: languageName: node linkType: hard +"@semaphore-protocol/cli-template-hardhat@workspace:packages/cli-template-hardhat": + version: 0.0.0-use.local + resolution: "@semaphore-protocol/cli-template-hardhat@workspace:packages/cli-template-hardhat" + dependencies: + "@ethersproject/abi": ^5.4.7 + "@ethersproject/providers": ^5.4.7 + "@nomicfoundation/hardhat-chai-matchers": ^1.0.0 + "@nomicfoundation/hardhat-network-helpers": ^1.0.0 + "@nomicfoundation/hardhat-toolbox": ^2.0.0 + "@nomiclabs/hardhat-ethers": ^2.0.0 + "@nomiclabs/hardhat-etherscan": ^3.0.0 + "@semaphore-protocol/contracts": 2.6.1 + "@semaphore-protocol/group": 2.6.1 + "@semaphore-protocol/hardhat": ^0.1.0 + "@semaphore-protocol/identity": 2.6.1 + "@semaphore-protocol/proof": 2.6.1 + "@typechain/ethers-v5": ^10.1.0 + "@typechain/hardhat": ^6.1.2 + "@types/chai": ^4.2.0 + "@types/download": ^8.0.1 + "@types/mocha": ^9.1.0 + "@types/node": ">=12.0.0" + chai: ^4.2.0 + download: ^8.0.0 + ethers: ^5.4.7 + hardhat: ^2.11.0 + hardhat-gas-reporter: ^1.0.8 + solidity-coverage: ^0.8.1 + ts-node: ">=8.0.0" + typechain: ^8.1.0 + typescript: ">=4.5.0" + languageName: unknown + linkType: soft + "@semaphore-protocol/cli@workspace:packages/cli": version: 0.0.0-use.local resolution: "@semaphore-protocol/cli@workspace:packages/cli" dependencies: "@semaphore-protocol/subgraph": 2.6.1 + "@types/clear": ^0.1.2 "@types/figlet": ^1.5.5 chalk: ^5.1.2 commander: ^9.4.1 figlet: ^1.5.2 + log-symbols: ^5.1.0 ora: ^6.1.2 rollup-plugin-cleanup: ^3.2.1 rollup-plugin-typescript2: ^0.31.2 @@ -3025,6 +3285,16 @@ __metadata: languageName: unknown linkType: soft +"@semaphore-protocol/contracts@npm:2.6.1": + version: 2.6.1 + resolution: "@semaphore-protocol/contracts@npm:2.6.1" + dependencies: + "@openzeppelin/contracts": 4.7.3 + "@zk-kit/incremental-merkle-tree.sol": 1.3.1 + checksum: c66ba23743ce76dd8006f026983bc4883fe167fd2a2f9fe389f652257e2e28fec0e8ec90709f874283da80275f9562510caa41cd43268c87e521adf7ce299e24 + languageName: node + linkType: hard + "@semaphore-protocol/contracts@npm:^2.5.0": version: 2.5.0 resolution: "@semaphore-protocol/contracts@npm:2.5.0" @@ -3035,7 +3305,7 @@ __metadata: languageName: node linkType: hard -"@semaphore-protocol/group@workspace:packages/group": +"@semaphore-protocol/group@2.6.1, @semaphore-protocol/group@workspace:packages/group": version: 0.0.0-use.local resolution: "@semaphore-protocol/group@workspace:packages/group" dependencies: @@ -3047,7 +3317,7 @@ __metadata: languageName: unknown linkType: soft -"@semaphore-protocol/hardhat@workspace:packages/hardhat": +"@semaphore-protocol/hardhat@^0.1.0, @semaphore-protocol/hardhat@workspace:packages/hardhat": version: 0.0.0-use.local resolution: "@semaphore-protocol/hardhat@workspace:packages/hardhat" dependencies: @@ -3064,7 +3334,7 @@ __metadata: languageName: unknown linkType: soft -"@semaphore-protocol/identity@workspace:packages/identity": +"@semaphore-protocol/identity@2.6.1, @semaphore-protocol/identity@workspace:packages/identity": version: 0.0.0-use.local resolution: "@semaphore-protocol/identity@workspace:packages/identity" dependencies: @@ -3079,7 +3349,7 @@ __metadata: languageName: unknown linkType: soft -"@semaphore-protocol/proof@workspace:packages/proof": +"@semaphore-protocol/proof@2.6.1, @semaphore-protocol/proof@workspace:packages/proof": version: 0.0.0-use.local resolution: "@semaphore-protocol/proof@workspace:packages/proof" dependencies: @@ -3358,6 +3628,23 @@ __metadata: languageName: node linkType: hard +"@typechain/ethers-v5@npm:^10.1.0": + version: 10.2.0 + resolution: "@typechain/ethers-v5@npm:10.2.0" + dependencies: + lodash: ^4.17.15 + ts-essentials: ^7.0.1 + peerDependencies: + "@ethersproject/abi": ^5.0.0 + "@ethersproject/bytes": ^5.0.0 + "@ethersproject/providers": ^5.0.0 + ethers: ^5.1.3 + typechain: ^8.1.1 + typescript: ">=4.3.0" + checksum: 22f7109f22a6e2b459c45aaf5424143b6129455659aa132ab447ed14d24bb68a6b3b4021008244faca743d469208037a7766d3d9c3ab49db42d36f4e382887c4 + languageName: node + linkType: hard + "@typechain/ethers-v5@npm:^2.0.0": version: 2.0.0 resolution: "@typechain/ethers-v5@npm:2.0.0" @@ -3386,6 +3673,22 @@ __metadata: languageName: node linkType: hard +"@typechain/hardhat@npm:^6.1.2": + version: 6.1.5 + resolution: "@typechain/hardhat@npm:6.1.5" + dependencies: + fs-extra: ^9.1.0 + peerDependencies: + "@ethersproject/abi": ^5.4.7 + "@ethersproject/providers": ^5.4.7 + "@typechain/ethers-v5": ^10.2.0 + ethers: ^5.4.7 + hardhat: ^2.9.9 + typechain: ^8.1.1 + checksum: ccb4df6eae69d6560125d6eb014989d0097213818d0fdf91a077bacee746f39356de6d11b3f582d55df7d6924bcfffc31e412502bbbe3a5be8e3310197ce4f61 + languageName: node + linkType: hard + "@types/async-eventemitter@npm:^0.2.1": version: 0.2.1 resolution: "@types/async-eventemitter@npm:0.2.1" @@ -3464,6 +3767,15 @@ __metadata: languageName: node linkType: hard +"@types/chai-as-promised@npm:^7.1.3": + version: 7.1.5 + resolution: "@types/chai-as-promised@npm:7.1.5" + dependencies: + "@types/chai": "*" + checksum: 7c1345c6e32513d52d8e562ec173c23161648d6b792046525f18803a9932d7b3ad3dca8f0181e3c529ec42b106099f174e34edeb184d61dc93e32c98b5132fd4 + languageName: node + linkType: hard + "@types/chai@npm:*, @types/chai@npm:^4.3.0": version: 4.3.3 resolution: "@types/chai@npm:4.3.3" @@ -3471,6 +3783,20 @@ __metadata: languageName: node linkType: hard +"@types/chai@npm:^4.2.0": + version: 4.3.4 + resolution: "@types/chai@npm:4.3.4" + checksum: 571184967beb03bf64c4392a13a7d44e72da9af5a1e83077ff81c39cf59c0fda2a5c78d2005084601cf8f3d11726608574d8b5b4a0e3e9736792807afd926cd0 + languageName: node + linkType: hard + +"@types/clear@npm:^0.1.2": + version: 0.1.2 + resolution: "@types/clear@npm:0.1.2" + checksum: 12d7d3fce357315645fd7fa750ae84a491b214ebdaf6f02bffc861608ed419642d9284dcac428dbf639f439f1e55ceb58447acccbbf5a273eee2a74073a36037 + languageName: node + linkType: hard + "@types/concat-stream@npm:^1.6.0": version: 1.6.1 resolution: "@types/concat-stream@npm:1.6.1" @@ -3687,6 +4013,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:>=12.0.0": + version: 18.11.15 + resolution: "@types/node@npm:18.11.15" + checksum: cae8692a5cee0316f93ee0342237eb921f70c51afb37c661c711a925a4642654ae7e404c5a80899d481c0cfaff3a6891ef04bacd330a2e72734192bfc91dc2d8 + languageName: node + linkType: hard + "@types/node@npm:^10.0.3": version: 10.17.60 resolution: "@types/node@npm:10.17.60" @@ -6335,6 +6668,41 @@ __metadata: languageName: node linkType: hard +"cbor@npm:^8.1.0": + version: 8.1.0 + resolution: "cbor@npm:8.1.0" + dependencies: + nofilter: ^3.1.0 + checksum: a90338435dc7b45cc01461af979e3bb6ddd4f2a08584c437586039cd5f2235014c06e49d664295debbfb3514d87b2f06728092ab6aa6175e2e85e9cd7dc0c1fd + languageName: node + linkType: hard + +"chai-as-promised@npm:^7.1.1": + version: 7.1.1 + resolution: "chai-as-promised@npm:7.1.1" + dependencies: + check-error: ^1.0.2 + peerDependencies: + chai: ">= 2.1.2 < 5" + checksum: 7262868a5b51a12af4e432838ddf97a893109266a505808e1868ba63a12de7ee1166e9d43b5c501a190c377c1b11ecb9ff8e093c89f097ad96c397e8ec0f8d6a + languageName: node + linkType: hard + +"chai@npm:^4.2.0": + version: 4.3.7 + resolution: "chai@npm:4.3.7" + dependencies: + assertion-error: ^1.1.0 + check-error: ^1.0.2 + deep-eql: ^4.1.2 + get-func-name: ^2.0.0 + loupe: ^2.3.1 + pathval: ^1.1.1 + type-detect: ^4.0.5 + checksum: 0bba7d267848015246a66995f044ce3f0ebc35e530da3cbdf171db744e14cbe301ab913a8d07caf7952b430257ccbb1a4a983c570a7c5748dc537897e5131f7c + languageName: node + linkType: hard + "chai@npm:^4.3.5": version: 4.3.6 resolution: "chai@npm:4.3.6" @@ -7647,6 +8015,15 @@ __metadata: languageName: node linkType: hard +"deep-eql@npm:^4.0.1, deep-eql@npm:^4.1.2": + version: 4.1.3 + resolution: "deep-eql@npm:4.1.3" + dependencies: + type-detect: ^4.0.0 + checksum: 7f6d30cb41c713973dc07eaadded848b2ab0b835e518a88b91bea72f34e08c4c71d167a722a6f302d3a6108f05afd8e6d7650689a84d5d29ec7fe6220420397f + languageName: node + linkType: hard + "deep-equal@npm:~1.1.1": version: 1.1.1 resolution: "deep-equal@npm:1.1.1" @@ -7896,6 +8273,15 @@ __metadata: languageName: node linkType: hard +"difflib@npm:^0.2.4": + version: 0.2.4 + resolution: "difflib@npm:0.2.4" + dependencies: + heap: ">= 0.2.0" + checksum: 4f4237b026263ce7471b77d9019b901c2f358a7da89401a80a84a8c3cdc1643a8e70b7495ccbe686cb4d95492eaf5dac119cd9ecbffe5f06bfc175fbe5c20a27 + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -8973,7 +9359,7 @@ __metadata: dependencies: bn.js: ^4.11.8 ethereumjs-util: ^6.0.0 - checksum: ae074be0bb012857ab5d3ae644d1163b908a48dd724b7d2567cfde309dc72222d460438f2411936a70dc949dc604ce1ef7118f7273bd525815579143c907e336 + checksum: 03127d09960e5f8a44167463faf25b2894db2f746376dbb8195b789ed11762f93db9c574eaa7c498c400063508e9dfc1c80de2edf5f0e1406b25c87d860ff2f1 languageName: node linkType: hard @@ -9140,7 +9526,7 @@ __metadata: languageName: node linkType: hard -"ethereumjs-util@npm:^7.0.10, ethereumjs-util@npm:^7.0.2, ethereumjs-util@npm:^7.1.0, ethereumjs-util@npm:^7.1.5": +"ethereumjs-util@npm:^7.0.10, ethereumjs-util@npm:^7.0.2, ethereumjs-util@npm:^7.1.0, ethereumjs-util@npm:^7.1.4, ethereumjs-util@npm:^7.1.5": version: 7.1.5 resolution: "ethereumjs-util@npm:7.1.5" dependencies: @@ -9267,6 +9653,44 @@ __metadata: languageName: node linkType: hard +"ethers@npm:^5.4.7": + version: 5.7.2 + resolution: "ethers@npm:5.7.2" + dependencies: + "@ethersproject/abi": 5.7.0 + "@ethersproject/abstract-provider": 5.7.0 + "@ethersproject/abstract-signer": 5.7.0 + "@ethersproject/address": 5.7.0 + "@ethersproject/base64": 5.7.0 + "@ethersproject/basex": 5.7.0 + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/contracts": 5.7.0 + "@ethersproject/hash": 5.7.0 + "@ethersproject/hdnode": 5.7.0 + "@ethersproject/json-wallets": 5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/networks": 5.7.1 + "@ethersproject/pbkdf2": 5.7.0 + "@ethersproject/properties": 5.7.0 + "@ethersproject/providers": 5.7.2 + "@ethersproject/random": 5.7.0 + "@ethersproject/rlp": 5.7.0 + "@ethersproject/sha2": 5.7.0 + "@ethersproject/signing-key": 5.7.0 + "@ethersproject/solidity": 5.7.0 + "@ethersproject/strings": 5.7.0 + "@ethersproject/transactions": 5.7.0 + "@ethersproject/units": 5.7.0 + "@ethersproject/wallet": 5.7.0 + "@ethersproject/web": 5.7.1 + "@ethersproject/wordlists": 5.7.0 + checksum: b7c08cf3e257185a7946117dbbf764433b7ba0e77c27298dec6088b3bc871aff711462b0621930c56880ff0a7ceb8b1d3a361ffa259f93377b48e34107f62553 + languageName: node + linkType: hard + "ethjs-unit@npm:0.1.6": version: 0.1.6 resolution: "ethjs-unit@npm:0.1.6" @@ -10928,6 +11352,74 @@ __metadata: languageName: node linkType: hard +"hardhat@npm:^2.11.0": + version: 2.12.4 + resolution: "hardhat@npm:2.12.4" + dependencies: + "@ethersproject/abi": ^5.1.2 + "@metamask/eth-sig-util": ^4.0.0 + "@nomicfoundation/ethereumjs-block": ^4.0.0 + "@nomicfoundation/ethereumjs-blockchain": ^6.0.0 + "@nomicfoundation/ethereumjs-common": ^3.0.0 + "@nomicfoundation/ethereumjs-evm": ^1.0.0 + "@nomicfoundation/ethereumjs-rlp": ^4.0.0 + "@nomicfoundation/ethereumjs-statemanager": ^1.0.0 + "@nomicfoundation/ethereumjs-trie": ^5.0.0 + "@nomicfoundation/ethereumjs-tx": ^4.0.0 + "@nomicfoundation/ethereumjs-util": ^8.0.0 + "@nomicfoundation/ethereumjs-vm": ^6.0.0 + "@nomicfoundation/solidity-analyzer": ^0.1.0 + "@sentry/node": ^5.18.1 + "@types/bn.js": ^5.1.0 + "@types/lru-cache": ^5.1.0 + abort-controller: ^3.0.0 + adm-zip: ^0.4.16 + aggregate-error: ^3.0.0 + ansi-escapes: ^4.3.0 + chalk: ^2.4.2 + chokidar: ^3.4.0 + ci-info: ^2.0.0 + debug: ^4.1.1 + enquirer: ^2.3.0 + env-paths: ^2.2.0 + ethereum-cryptography: ^1.0.3 + ethereumjs-abi: ^0.6.8 + find-up: ^2.1.0 + fp-ts: 1.19.3 + fs-extra: ^7.0.1 + glob: 7.2.0 + immutable: ^4.0.0-rc.12 + io-ts: 1.10.4 + keccak: ^3.0.2 + lodash: ^4.17.11 + mnemonist: ^0.38.0 + mocha: ^10.0.0 + p-map: ^4.0.0 + qs: ^6.7.0 + raw-body: ^2.4.1 + resolve: 1.17.0 + semver: ^6.3.0 + solc: 0.7.3 + source-map-support: ^0.5.13 + stacktrace-parser: ^0.1.10 + tsort: 0.0.1 + undici: ^5.4.0 + uuid: ^8.3.2 + ws: ^7.4.6 + peerDependencies: + ts-node: "*" + typescript: "*" + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + bin: + hardhat: internal/cli/cli.js + checksum: 391ee2c62220957c6c9fcae62f94cf7943e429ec18aaac1ae00faf634cd4a29e0728efef6ddefa071c12a67befdd010bfba79d324a6ef067e77c0b5515aab768 + languageName: node + linkType: hard + "has-ansi@npm:^2.0.0": version: 2.0.0 resolution: "has-ansi@npm:2.0.0" @@ -11108,6 +11600,13 @@ __metadata: languageName: node linkType: hard +"heap@npm:>= 0.2.0": + version: 0.2.7 + resolution: "heap@npm:0.2.7" + checksum: b0f3963a799e02173f994c452921a777f2b895b710119df999736bfed7477235c2860c423d9aea18a9f3b3d065cb1114d605c208cfcb8d0ac550f97ec5d28cb0 + languageName: node + linkType: hard + "hmac-drbg@npm:^1.0.1": version: 1.0.1 resolution: "hmac-drbg@npm:1.0.1" @@ -14374,6 +14873,41 @@ __metadata: languageName: node linkType: hard +"mocha@npm:7.1.2": + version: 7.1.2 + resolution: "mocha@npm:7.1.2" + dependencies: + ansi-colors: 3.2.3 + browser-stdout: 1.3.1 + chokidar: 3.3.0 + debug: 3.2.6 + diff: 3.5.0 + escape-string-regexp: 1.0.5 + find-up: 3.0.0 + glob: 7.1.3 + growl: 1.10.5 + he: 1.2.0 + js-yaml: 3.13.1 + log-symbols: 3.0.0 + minimatch: 3.0.4 + mkdirp: 0.5.5 + ms: 2.1.1 + node-environment-flags: 1.0.6 + object.assign: 4.1.0 + strip-json-comments: 2.0.1 + supports-color: 6.0.0 + which: 1.3.1 + wide-align: 1.1.3 + yargs: 13.3.2 + yargs-parser: 13.1.2 + yargs-unparser: 1.6.0 + bin: + _mocha: bin/_mocha + mocha: bin/mocha + checksum: 0fc9ad0dd79e43a34de03441634f58e8a3d211af4cdbcd56de150ec99f7aff3b8678bd5aeb41f82115f7df4199a24f7bb372f65e5bcba133b41a5310dee908bd + languageName: node + linkType: hard + "mocha@npm:^10.0.0": version: 10.0.0 resolution: "mocha@npm:10.0.0" @@ -14745,6 +15279,13 @@ __metadata: languageName: node linkType: hard +"nofilter@npm:^3.1.0": + version: 3.1.0 + resolution: "nofilter@npm:3.1.0" + checksum: 58aa85a5b4b35cbb6e42de8a8591c5e338061edc9f3e7286f2c335e9e9b9b8fa7c335ae45daa8a1f3433164dc0b9a3d187fa96f9516e04a17a1f9ce722becc4f + languageName: node + linkType: hard + "nopt@npm:3.x": version: 3.0.6 resolution: "nopt@npm:3.0.6" @@ -15133,6 +15674,13 @@ __metadata: languageName: node linkType: hard +"ordinal@npm:^1.0.3": + version: 1.0.3 + resolution: "ordinal@npm:1.0.3" + checksum: 6761c5b7606b6c4b0c22b4097dab4fe7ffcddacc49238eedf9c0ced877f5d4e4ad3f4fd43fefa1cc3f167cc54c7149267441b2ae85b81ccf13f45cf4b7947164 + languageName: node + linkType: hard + "os-homedir@npm:^1.0.0": version: 1.0.2 resolution: "os-homedir@npm:1.0.2" @@ -17661,6 +18209,38 @@ __metadata: languageName: node linkType: hard +"solidity-coverage@npm:^0.8.1": + version: 0.8.2 + resolution: "solidity-coverage@npm:0.8.2" + dependencies: + "@ethersproject/abi": ^5.0.9 + "@solidity-parser/parser": ^0.14.1 + chalk: ^2.4.2 + death: ^1.1.0 + detect-port: ^1.3.0 + difflib: ^0.2.4 + fs-extra: ^8.1.0 + ghost-testrpc: ^0.0.2 + global-modules: ^2.0.0 + globby: ^10.0.1 + jsonschema: ^1.2.4 + lodash: ^4.17.15 + mocha: 7.1.2 + node-emoji: ^1.10.0 + pify: ^4.0.1 + recursive-readdir: ^2.2.2 + sc-istanbul: ^0.4.5 + semver: ^7.3.4 + shelljs: ^0.8.3 + web3-utils: ^1.3.6 + peerDependencies: + hardhat: ^2.11.0 + bin: + solidity-coverage: plugins/bin.js + checksum: 489f73d56a1279f2394b7a14db315532884895baa00a4016e68a4e5be0eddca90a95cb3322e6a0b15e67f2d9003b9413ee24c1c61d78f558f5a2e1e233840825 + languageName: node + linkType: hard + "sort-keys-length@npm:^1.0.0": version: 1.0.1 resolution: "sort-keys-length@npm:1.0.1" @@ -18762,7 +19342,7 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.4.0, ts-node@npm:^10.8.1, ts-node@npm:^10.9.1": +"ts-node@npm:>=8.0.0, ts-node@npm:^10.4.0, ts-node@npm:^10.8.1, ts-node@npm:^10.9.1": version: 10.9.1 resolution: "ts-node@npm:10.9.1" dependencies: @@ -19004,6 +19584,28 @@ __metadata: languageName: node linkType: hard +"typechain@npm:^8.1.0": + version: 8.1.1 + resolution: "typechain@npm:8.1.1" + dependencies: + "@types/prettier": ^2.1.1 + debug: ^4.3.1 + fs-extra: ^7.0.0 + glob: 7.1.7 + js-sha3: ^0.8.0 + lodash: ^4.17.15 + mkdirp: ^1.0.4 + prettier: ^2.3.1 + ts-command-line-args: ^2.2.0 + ts-essentials: ^7.0.1 + peerDependencies: + typescript: ">=4.3.0" + bin: + typechain: dist/cli/cli.js + checksum: 77984239d9728befe5a484c4e1b55c8f194696fc8a78c44754f8e25ca8fd6d0208ddfcd9e71c90c1c35ac0689f5c3053107b54fdc2aab691c980614f6daf209b + languageName: node + linkType: hard + "typedarray-to-buffer@npm:^3.1.5": version: 3.1.5 resolution: "typedarray-to-buffer@npm:3.1.5" @@ -19037,6 +19639,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:>=4.5.0, typescript@npm:^4.7.0": + version: 4.9.4 + resolution: "typescript@npm:4.9.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: e782fb9e0031cb258a80000f6c13530288c6d63f1177ed43f770533fdc15740d271554cdae86701c1dd2c83b082cea808b07e97fd68b38a172a83dbf9e0d0ef9 + languageName: node + linkType: hard + "typescript@npm:^4.4.3, typescript@npm:^4.6.4": version: 4.8.3 resolution: "typescript@npm:4.8.3" @@ -19047,13 +19659,13 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.7.0": +"typescript@patch:typescript@>=4.5.0#~builtin, typescript@patch:typescript@^4.7.0#~builtin": version: 4.9.4 - resolution: "typescript@npm:4.9.4" + resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=7ad353" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: e782fb9e0031cb258a80000f6c13530288c6d63f1177ed43f770533fdc15740d271554cdae86701c1dd2c83b082cea808b07e97fd68b38a172a83dbf9e0d0ef9 + checksum: 37f6e2c3c5e2aa5934b85b0fddbf32eeac8b1bacf3a5b51d01946936d03f5377fe86255d4e5a4ae628fd0cd553386355ad362c57f13b4635064400f3e8e05b9d languageName: node linkType: hard @@ -19067,16 +19679,6 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.7.0#~builtin": - version: 4.9.4 - resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=7ad353" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 37f6e2c3c5e2aa5934b85b0fddbf32eeac8b1bacf3a5b51d01946936d03f5377fe86255d4e5a4ae628fd0cd553386355ad362c57f13b4635064400f3e8e05b9d - languageName: node - linkType: hard - "typewise-core@npm:^1.2, typewise-core@npm:^1.2.0": version: 1.2.0 resolution: "typewise-core@npm:1.2.0" @@ -20414,6 +21016,21 @@ __metadata: languageName: node linkType: hard +"web3-utils@npm:^1.3.6": + version: 1.8.1 + resolution: "web3-utils@npm:1.8.1" + dependencies: + bn.js: ^5.2.1 + ethereum-bloom-filters: ^1.0.6 + ethereumjs-util: ^7.1.0 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: ^2.1.0 + utf8: 3.0.0 + checksum: 08bb2df9cd19672f034bb82a27b857e0571b836a620f83de2214377457c6e52446e8dedcf916f8f10a13c86b5a02674dd4f45c60c45698b388368601cce9cf5e + languageName: node + linkType: hard + "web3@npm:1.2.11": version: 1.2.11 resolution: "web3@npm:1.2.11"