mirror of
https://github.com/semaphore-protocol/semaphore.git
synced 2026-01-13 16:48:00 -05:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6b04ec0eca | ||
|
|
13a9480165 | ||
|
|
53967a9a3c | ||
|
|
5b92c0a2bc | ||
|
|
31c776ea68 | ||
|
|
8d83d59220 | ||
|
|
9e4fb5376c | ||
|
|
745edb8e92 | ||
|
|
e732992952 | ||
|
|
3fcce15375 | ||
|
|
ebb6731d89 | ||
|
|
0c23acf9cf | ||
|
|
3e7db08eeb | ||
|
|
8adfc30da8 | ||
|
|
42639662c3 | ||
|
|
64025516c0 | ||
|
|
91f8a4be2a | ||
|
|
ebd9a27c1b |
1
.github/workflows/release.yml
vendored
1
.github/workflows/release.yml
vendored
@@ -4,6 +4,7 @@ permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
@@ -42,7 +42,7 @@ When you submit your PR (or later change that code), a CI build will automatical
|
||||
|
||||
We always use ESLint and Prettier. To check that your code follows the rules, simply run the npm script `yarn lint`.
|
||||
|
||||
### Commits rules
|
||||
### Commit rules
|
||||
|
||||
For commits it is recommended to use [Conventional Commits](https://www.conventionalcommits.org).
|
||||
|
||||
|
||||
@@ -275,12 +275,18 @@ Clone this repository:
|
||||
git clone https://github.com/semaphore-protocol/semaphore.git
|
||||
```
|
||||
|
||||
And install the dependencies:
|
||||
Install the dependencies:
|
||||
|
||||
```bash
|
||||
cd semaphore && yarn
|
||||
```
|
||||
|
||||
And build the repositiory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
## 📜 Usage
|
||||
|
||||
Copy the `.env.example` file as `.env`:
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"message": "Valores públicos"
|
||||
},
|
||||
"section.identities.box2.description": {
|
||||
"message": "Semaphore utiliza la función hash Poseidon para crear el identtity commitment a partir de los valores privados. Los identity commitments se pueden compartir públicamente, de forma similar a las direcciones Ethereum."
|
||||
"message": "Semaphore utiliza la función hash Poseidon para crear el identity commitment a partir de los valores privados. Los identity commitments se pueden compartir públicamente, de forma similar a las direcciones Ethereum."
|
||||
},
|
||||
"section.identities.box3.title": {
|
||||
"message": "Generar identidades"
|
||||
|
||||
@@ -12,6 +12,6 @@ as well as relevant circuits in
|
||||
which the Semaphore zk-SNARK uses.
|
||||
|
||||
The summary of the audit results can be found
|
||||
[here](https://github.com/appliedzkp/semaphore/tree/master/audit). After three
|
||||
[here](https://github.com/semaphore-protocol/semaphore/blob/main/apps/docs/versioned_docs/version-V1/audit.md). After three
|
||||
rounds of fixes, all security and performance issues were fixed, and the few
|
||||
remaining issues are minor and do not affect security.
|
||||
|
||||
@@ -58,7 +58,7 @@ Hardhat includes the Hardhat Network, a local Ethereum network for development.
|
||||
|
||||
## Install Semaphore packages
|
||||
|
||||
Semaphore provides contracts, JavaScript libraries and an Hardhat plugin for developers building zero-knowledge applications.
|
||||
Semaphore provides contracts, JavaScript libraries and a Hardhat plugin for developers building zero-knowledge applications.
|
||||
|
||||
- `@semaphore-protocol/contracts` provides contracts to manage groups and verify Semaphore proofs on-chain.
|
||||
- JavaScript libraries help developers build zero-knowledge applications.
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"@docusaurus/core": "3.5.2",
|
||||
"@docusaurus/preset-classic": "3.5.2",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
"@semaphore-protocol/utils": "4.6.0",
|
||||
"@semaphore-protocol/utils": "4.7.3",
|
||||
"@svgr/webpack": "^5.5.0",
|
||||
"clsx": "^1.2.1",
|
||||
"docusaurus-plugin-sass": "^0.2.5",
|
||||
|
||||
@@ -12,6 +12,6 @@ as well as relevant circuits in
|
||||
which the Semaphore zk-SNARK uses.
|
||||
|
||||
The summary of the audit results can be found
|
||||
[here](https://github.com/appliedzkp/semaphore/tree/master/audit). After three
|
||||
[here](https://github.com/semaphore-protocol/semaphore/blob/main/apps/docs/versioned_docs/version-V1/audit.md). After three
|
||||
rounds of fixes, all security and performance issues were fixed, and the few
|
||||
remaining issues are minor and do not affect security.
|
||||
|
||||
@@ -121,7 +121,7 @@ authenticity of the signal and prevents front-running attacks.
|
||||
|
||||
## Cryptographic primitives
|
||||
|
||||
Semaphore uses MiMC for the Merkle tree, Pedersen commmitments for the identity
|
||||
Semaphore uses MiMC for the Merkle tree, Pedersen commitments for the identity
|
||||
commitments, Blake2 for the nullifiers hash, and EdDSA for the signature.
|
||||
|
||||
MiMC is a relatively new hash function. We use the recommended MiMC
|
||||
|
||||
@@ -145,7 +145,7 @@ Returns `false` otherwise.
|
||||
|
||||
**`signMsg(privKey: EddsaPrivateKey, msg: SnarkBigInt): EdDSAMiMcSpongeSignature)`**
|
||||
|
||||
Encapsualtes `circomlib.eddsa.signMiMCSponge` to sign a message `msg` using private key `privKey`.
|
||||
Encapsulates `circomlib.eddsa.signMiMCSponge` to sign a message `msg` using private key `privKey`.
|
||||
|
||||
**`verifySignature(msg: SnarkBigInt, signature: EdDSAMiMcSpongeSignature, pubKey: EddsaPublicKey)`: boolean**
|
||||
|
||||
@@ -190,7 +190,7 @@ const genWitness = async (
|
||||
- `circuit` is the output of `genCircuit()`.
|
||||
- `identity` is the `Identity` whose identity commitment you want to prove is
|
||||
in the set of registered identities.
|
||||
- `idCommitments` is an array of registered identity commmitments; i.e. the
|
||||
- `idCommitments` is an array of registered identity commitments; i.e. the
|
||||
leaves of the tree.
|
||||
- `treeDepth` is the number of levels which the Merkle tree used has
|
||||
- `externalNullifier` is the current external nullifier
|
||||
@@ -212,7 +212,7 @@ Only `witness` is essential to generate the proof; the other data is only
|
||||
useful for debugging and additional off-chain checks, such as verifying the
|
||||
signature and the Merkle tree root.
|
||||
|
||||
**`formatForVerifierContract = (proof: SnarkProof, publicSignals: SnarkPublicSignals`**
|
||||
**`formatForVerifierContract = (proof: SnarkProof, publicSignals: SnarkPublicSignals)`**
|
||||
|
||||
Converts the data in `proof` and `publicSignals` to strings and rearranges
|
||||
elements of `proof.pi_b` so that `snarkjs`'s `verifier.sol` will accept it.
|
||||
|
||||
@@ -55,7 +55,7 @@ In sum, Semaphore provides the ability to:
|
||||
### External nullifiers
|
||||
|
||||
Think of an external nullifier as a voting booth where each user may only cast
|
||||
one vote. If they try to cast a second vote a the same booth, that vote is
|
||||
one vote. If they try to cast a second vote at the same booth, that vote is
|
||||
invalid.
|
||||
|
||||
An external nullifier is any 29-byte value. Semaphore always starts with one
|
||||
@@ -89,7 +89,7 @@ An anonymous voting app would be configured differently:
|
||||
| ----------------------------------- | ------------------------ |
|
||||
| The hash of the respondent's answer | The hash of the question |
|
||||
|
||||
This allows any user to vote with an arbitary response (e.g. yes, no, or maybe)
|
||||
This allows any user to vote with an arbitrary response (e.g. yes, no, or maybe)
|
||||
to any question. The user, however, can only vote once per question.
|
||||
|
||||
## About the code
|
||||
|
||||
@@ -9,7 +9,7 @@ Site owners publish _subgraphs_ that expose site data for anyone to query.
|
||||
Semaphore's subgraph allows you to retrieve data from the [`Semaphore.sol`](https://github.com/semaphore-protocol/semaphore/tree/v2.6.1/packages/contracts/Semaphore.sol) smart contract.
|
||||
|
||||
:::tip
|
||||
The Graph protocol uses the [GraphQL](https://graphql.org/) query lanaguage. For examples, see the [GraphQL API documentation](https://thegraph.com/docs/developer/graphql-api). Visit the [subgraph repository](https://github.com/semaphore-protocol/subgraph) to see the list of Semaphore subgraphs.
|
||||
The Graph protocol uses the [GraphQL](https://graphql.org/) query language. For examples, see the [GraphQL API documentation](https://thegraph.com/docs/developer/graphql-api). Visit the [subgraph repository](https://github.com/semaphore-protocol/subgraph) to see the list of Semaphore subgraphs.
|
||||
:::
|
||||
|
||||
## Schema
|
||||
|
||||
@@ -20,7 +20,7 @@ To prevent fraud, the owner should keep their private key secret.
|
||||
|
||||
## Install package
|
||||
|
||||
In your code, use the [`@semaphore-protocol/identity`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/identity) package to manage Semaphore identites.
|
||||
In your code, use the [`@semaphore-protocol/identity`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/identity) package to manage Semaphore identities.
|
||||
|
||||
<Tabs
|
||||
defaultValue="npm"
|
||||
|
||||
@@ -79,7 +79,7 @@ const group = new Group(members)
|
||||
|
||||
Each proof requires a [scope](/glossary#scope), on which each user may only generate one valid proof. The scope, together with the user's private key, is used to generate the nullifier, which is the value you can actually use to check whether a proof with that scope has already been generated by that user. In a voting application where double-voting must be prevented, the scope could be the ballot id, or the Merkle root of the group.
|
||||
|
||||
### 4. Generate the anomymous message
|
||||
### 4. Generate the anonymous message
|
||||
|
||||
Finally, you can generate the proof with the anonymous message using the `generateProof` function. For example:
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
## Networks
|
||||
|
||||
You can access any subgraph supported by Semaphore with the following URL: https://api.studio.thegraph.com/query/14377/semaphore-<network-name>/v4.1.0.
|
||||
You can access any subgraph supported by Semaphore with the following URL: `https://api.studio.thegraph.com/query/14377/semaphore-<network-name>/v4.2.0`.
|
||||
|
||||
Supported networks:
|
||||
|
||||
@@ -57,6 +57,7 @@ Supported networks:
|
||||
- `base`
|
||||
- `linea-sepolia`
|
||||
- `linea`
|
||||
- `scroll-sepolia`
|
||||
|
||||
## 🛠 Install
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ export default function Build() {
|
||||
url: "https://github.com/semaphore-protocol/boilerplate",
|
||||
details: [
|
||||
"Begin your projects with a ready-to-use example template",
|
||||
"Create identity, join group, send anonmous feedback",
|
||||
"Create identity, join group, send anonymous feedback",
|
||||
"Easily modify to align with specific project goals"
|
||||
]
|
||||
},
|
||||
@@ -133,7 +133,7 @@ export default function Build() {
|
||||
</VStack>
|
||||
</Flex>
|
||||
|
||||
<Box position="relative" w={{ base: "full", xl: "727px" }} h="630" overflow="hidden">
|
||||
<Box position="relative" w={{ base: "full", xl: "727px" }} h="630px" overflow="hidden">
|
||||
<Image
|
||||
src="https://semaphore.cedoor.dev/flower-shadow.jpg"
|
||||
alt=""
|
||||
|
||||
@@ -287,7 +287,7 @@ export default function Home() {
|
||||
Upcoming Events
|
||||
</Heading>
|
||||
|
||||
<VStack align="left" spacing="10" maxH="600" overflowY="auto">
|
||||
<VStack align="left" spacing="10" maxH="600px" overflowY="auto">
|
||||
{events.map((event) => (
|
||||
<Link href={event.link} key={event.name} isExternal>
|
||||
<VStack align="left">
|
||||
|
||||
@@ -10,5 +10,11 @@
|
||||
"date": "Nov 12-15, 2024",
|
||||
"description": "Semaphore team will deliver an in-person talk and run workshops.",
|
||||
"link": "https://devcon.org/en/"
|
||||
},
|
||||
{
|
||||
"name": "ETHIndia",
|
||||
"date": "Dec 6-8, 2024",
|
||||
"description": "Semaphore team will deliver an in-person talk on Semaphore and Bandada.",
|
||||
"link": "https://ethindia.co"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
"scripts": {
|
||||
"build": "yarn build:libraries && yarn build:subgraph && yarn build:website && yarn build:docs",
|
||||
"build:libraries": "yarn workspaces foreach -Apt --no-private run build",
|
||||
"build:subgraph": "yarn workspace semaphore-subgraph build:sepolia",
|
||||
"clean:subgraph": "rimraf apps/subgraph/node_modules",
|
||||
"build:subgraph": "yarn clean:subgraph && yarn workspace semaphore-subgraph build:sepolia",
|
||||
"build:website": "yarn workspace semaphore-website build",
|
||||
"build:docs": "yarn workspace semaphore-docs build",
|
||||
"compile:contracts": "yarn workspace semaphore-contracts compile",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/circuits",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "Semaphore Circom circuits to generate zero-knowledge proofs.",
|
||||
"license": "MIT",
|
||||
"files": [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/cli-template-contracts-hardhat",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "Semaphore Hardhat template.",
|
||||
"license": "Unlicense",
|
||||
"files": [
|
||||
@@ -41,9 +41,9 @@
|
||||
"@nomicfoundation/hardhat-network-helpers": "^1.0.0",
|
||||
"@nomicfoundation/hardhat-toolbox": "^4.0.0",
|
||||
"@nomicfoundation/hardhat-verify": "^2.0.0",
|
||||
"@semaphore-protocol/core": "4.6.0",
|
||||
"@semaphore-protocol/hardhat": "4.6.0",
|
||||
"@semaphore-protocol/utils": "4.6.0",
|
||||
"@semaphore-protocol/core": "4.7.3",
|
||||
"@semaphore-protocol/hardhat": "4.7.3",
|
||||
"@semaphore-protocol/utils": "4.7.3",
|
||||
"@typechain/ethers-v6": "^0.5.0",
|
||||
"@typechain/hardhat": "^9.0.0",
|
||||
"@types/chai": "^4.2.0",
|
||||
@@ -59,7 +59,7 @@
|
||||
"eslint-config-airbnb-typescript": "^17.1.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"ethers": "^6.4.0",
|
||||
"ethers": "^6.13.4",
|
||||
"hardhat": "^2.20.1",
|
||||
"hardhat-gas-reporter": "^1.0.8",
|
||||
"prettier": "^3.2.5",
|
||||
@@ -71,7 +71,7 @@
|
||||
"typescript": "^5.3.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@semaphore-protocol/contracts": "4.6.0"
|
||||
"@semaphore-protocol/contracts": "4.7.3"
|
||||
},
|
||||
"packageManager": "yarn@4.1.0"
|
||||
}
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
"@nomicfoundation/hardhat-network-helpers": "^1.0.0",
|
||||
"@nomicfoundation/hardhat-toolbox": "^4.0.0",
|
||||
"@nomicfoundation/hardhat-verify": "^2.0.0",
|
||||
"@semaphore-protocol/core": "4.6.0",
|
||||
"@semaphore-protocol/hardhat": "4.6.0",
|
||||
"@semaphore-protocol/utils": "4.6.0",
|
||||
"@semaphore-protocol/core": "4.7.3",
|
||||
"@semaphore-protocol/hardhat": "4.7.3",
|
||||
"@semaphore-protocol/utils": "4.7.3",
|
||||
"@typechain/ethers-v6": "^0.5.0",
|
||||
"@typechain/hardhat": "^9.0.0",
|
||||
"@types/chai": "^4.2.0",
|
||||
@@ -38,7 +38,7 @@
|
||||
"eslint-config-airbnb-typescript": "^17.1.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"ethers": "^6.4.0",
|
||||
"ethers": "^6.13.4",
|
||||
"hardhat": "^2.20.1",
|
||||
"hardhat-gas-reporter": "^1.0.8",
|
||||
"prettier": "^3.2.5",
|
||||
@@ -50,7 +50,7 @@
|
||||
"typescript": "^5.3.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@semaphore-protocol/contracts": "4.6.0"
|
||||
"@semaphore-protocol/contracts": "4.7.3"
|
||||
},
|
||||
"packageManager": "yarn@4.1.0"
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
"lint": "next lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@semaphore-protocol/core": "4.6.0",
|
||||
"@semaphore-protocol/data": "4.6.0",
|
||||
"@semaphore-protocol/utils": "4.6.0",
|
||||
"ethers": "^6.11.1",
|
||||
"@semaphore-protocol/core": "4.7.3",
|
||||
"@semaphore-protocol/data": "4.7.3",
|
||||
"@semaphore-protocol/utils": "4.7.3",
|
||||
"ethers": "^6.13.4",
|
||||
"next": "14.1.0",
|
||||
"next-pwa": "^5.6.0",
|
||||
"react": "^18",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/cli-template-monorepo-ethers",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "Semaphore Hardhat + Next.js + SemaphoreEthers template.",
|
||||
"license": "Unlicense",
|
||||
"files": [
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
"@nomicfoundation/hardhat-network-helpers": "^1.0.0",
|
||||
"@nomicfoundation/hardhat-toolbox": "^4.0.0",
|
||||
"@nomicfoundation/hardhat-verify": "^2.0.0",
|
||||
"@semaphore-protocol/core": "4.6.0",
|
||||
"@semaphore-protocol/hardhat": "4.6.0",
|
||||
"@semaphore-protocol/utils": "4.6.0",
|
||||
"@semaphore-protocol/core": "4.7.3",
|
||||
"@semaphore-protocol/hardhat": "4.7.3",
|
||||
"@semaphore-protocol/utils": "4.7.3",
|
||||
"@typechain/ethers-v6": "^0.5.0",
|
||||
"@typechain/hardhat": "^9.0.0",
|
||||
"@types/chai": "^4.2.0",
|
||||
@@ -38,7 +38,7 @@
|
||||
"eslint-config-airbnb-typescript": "^17.1.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"ethers": "^6.4.0",
|
||||
"ethers": "^6.13.4",
|
||||
"hardhat": "^2.20.1",
|
||||
"hardhat-gas-reporter": "^1.0.8",
|
||||
"prettier": "^3.2.5",
|
||||
@@ -50,7 +50,7 @@
|
||||
"typescript": "^5.3.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@semaphore-protocol/contracts": "4.6.0"
|
||||
"@semaphore-protocol/contracts": "4.7.3"
|
||||
},
|
||||
"packageManager": "yarn@4.1.0"
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
"lint": "next lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@semaphore-protocol/core": "4.6.0",
|
||||
"@semaphore-protocol/data": "4.6.0",
|
||||
"@semaphore-protocol/utils": "4.6.0",
|
||||
"ethers": "^6.11.1",
|
||||
"@semaphore-protocol/core": "4.7.3",
|
||||
"@semaphore-protocol/data": "4.7.3",
|
||||
"@semaphore-protocol/utils": "4.7.3",
|
||||
"ethers": "^6.13.4",
|
||||
"next": "14.1.0",
|
||||
"next-pwa": "^5.6.0",
|
||||
"react": "^18",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/cli-template-monorepo-subgraph",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "Semaphore Hardhat + Next.js + SemaphoreSubgraph template.",
|
||||
"license": "Unlicense",
|
||||
"files": [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/cli",
|
||||
"type": "module",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "A command line tool to set up your Semaphore project and get group data.",
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
@@ -41,8 +41,8 @@
|
||||
"rollup-plugin-cleanup": "^3.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@semaphore-protocol/data": "4.6.0",
|
||||
"@semaphore-protocol/utils": "4.6.0",
|
||||
"@semaphore-protocol/data": "4.7.3",
|
||||
"@semaphore-protocol/utils": "4.7.3",
|
||||
"axios": "^1.6.7",
|
||||
"boxen": "^7.1.1",
|
||||
"chalk": "^5.3.0",
|
||||
|
||||
@@ -46,18 +46,16 @@ To learn more about contracts visit [semaphore.pse.dev](https://docs.semaphore.p
|
||||
|
||||
## 🛠 Install
|
||||
|
||||
### npm or yarn
|
||||
You can install the semaphore protocol contracts with any node package manager (`bun`, `npm`, `pnpm`,`yarn`) or the solidity package manager [`soldeer`](https://soldeer.xyz).
|
||||
|
||||
Install the `@semaphore-protocol/contracts` package with npm:
|
||||
|
||||
```bash
|
||||
```commandline
|
||||
bun add @semaphore-protocol/contracts
|
||||
npm i @semaphore-protocol/contracts
|
||||
```
|
||||
|
||||
or yarn:
|
||||
|
||||
```bash
|
||||
pnpm add @semaphore-protocol/contracts
|
||||
yarn add @semaphore-protocol/contracts
|
||||
|
||||
# for soldeer, an explicit version is required, e.g:
|
||||
soldeer install semaphore-protocol-contracts~4.6.0
|
||||
```
|
||||
|
||||
## 📜 Usage
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/contracts",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "Semaphore contracts to manage groups and broadcast anonymous signals.",
|
||||
"license": "MIT",
|
||||
"files": [
|
||||
|
||||
@@ -64,6 +64,14 @@ const hardhatConfig: HardhatUserConfig = {
|
||||
apiURL: "https://api.lineascan.build/api",
|
||||
browserURL: "https://lineascan.build"
|
||||
}
|
||||
},
|
||||
{
|
||||
network: "scroll-sepolia",
|
||||
chainId: 534351,
|
||||
urls: {
|
||||
apiURL: "https://api-sepolia.scrollscan.com/api",
|
||||
browserURL: "https://sepolia.scrollscan.com"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"@types/ncp": "^2",
|
||||
"@types/node": "^20.10.7",
|
||||
"chai": "^4.2.0",
|
||||
"ethers": "^6.4.0",
|
||||
"ethers": "^6.13.4",
|
||||
"hardhat": "^2.19.4",
|
||||
"hardhat-gas-reporter": "^1.0.8",
|
||||
"ncp": "^2.0.0",
|
||||
|
||||
@@ -463,9 +463,62 @@ describe("Semaphore", () => {
|
||||
|
||||
const proof = await generateProof(identity, group, message, group.root, merkleTreeDepth)
|
||||
|
||||
return { semaphoreContract, groupId, proof }
|
||||
return { semaphoreContract, groupId, proof, accountAddresses }
|
||||
}
|
||||
|
||||
it("Should insert members,remove member,update member and verifyProof", async () => {
|
||||
const { semaphoreContract, accountAddresses } = await loadFixture(deployValidateProofFixture)
|
||||
|
||||
const identity = new Identity("0")
|
||||
const members = Array.from({ length: 3 }, (_, i) => new Identity(i.toString())).map(
|
||||
({ commitment }) => commitment
|
||||
)
|
||||
const group = new Group(members)
|
||||
|
||||
// Create a group and add 3 members.
|
||||
await semaphoreContract["createGroup(address)"](accountAddresses[0])
|
||||
|
||||
const groupId = 2
|
||||
|
||||
// Adding members to group
|
||||
|
||||
await semaphoreContract.addMembers(groupId, members)
|
||||
|
||||
// Remove the third member.
|
||||
{
|
||||
group.removeMember(2)
|
||||
const { siblings } = group.generateMerkleProof(2)
|
||||
|
||||
await semaphoreContract.removeMember(groupId, members[2], siblings)
|
||||
}
|
||||
|
||||
// Update the second member.
|
||||
{
|
||||
group.updateMember(1, members[2])
|
||||
const { siblings } = group.generateMerkleProof(1)
|
||||
|
||||
await semaphoreContract.updateMember(groupId, members[1], members[2], siblings)
|
||||
}
|
||||
|
||||
// Validate a proof.
|
||||
|
||||
const proof = await generateProof(identity, group, 42, group.root)
|
||||
|
||||
const transaction = await semaphoreContract.validateProof(groupId, proof)
|
||||
|
||||
await expect(transaction)
|
||||
.to.emit(semaphoreContract, "ProofValidated")
|
||||
.withArgs(
|
||||
groupId,
|
||||
proof.merkleTreeDepth,
|
||||
proof.merkleTreeRoot,
|
||||
proof.nullifier,
|
||||
proof.message,
|
||||
proof.merkleTreeRoot,
|
||||
proof.points
|
||||
)
|
||||
})
|
||||
|
||||
it("Should throw an exception if the proof is not valid", async () => {
|
||||
const { semaphoreContract, groupId, proof } = await loadFixture(deployValidateProofFixture)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/core",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "Core library for the essential Semaphore features.",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
@@ -42,8 +42,8 @@
|
||||
"access": "public"
|
||||
},
|
||||
"dependencies": {
|
||||
"@semaphore-protocol/group": "4.6.0",
|
||||
"@semaphore-protocol/identity": "4.6.0",
|
||||
"@semaphore-protocol/proof": "4.6.0"
|
||||
"@semaphore-protocol/group": "4.7.3",
|
||||
"@semaphore-protocol/identity": "4.7.3",
|
||||
"@semaphore-protocol/proof": "4.7.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/data",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "A library for querying Semaphore smart contract.",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
@@ -37,8 +37,8 @@
|
||||
"rollup-plugin-cleanup": "^3.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@semaphore-protocol/utils": "4.6.0",
|
||||
"@semaphore-protocol/utils": "4.7.3",
|
||||
"axios": "1.6.6",
|
||||
"ethers": "6.11.0"
|
||||
"ethers": "6.13.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ export default class SemaphoreEthers {
|
||||
* @param options Configuration options for the ethers provider and the Semaphore contract.
|
||||
*/
|
||||
constructor(networkOrEthereumURL: EthersNetwork | string = defaultNetwork, options: EthersOptions = {}) {
|
||||
checkParameter(networkOrEthereumURL, "networkOrSubgraphURL", "string")
|
||||
checkParameter(networkOrEthereumURL, "networkOrEthereumURL", "string")
|
||||
|
||||
if (options.provider) {
|
||||
checkParameter(options.provider, "provider", "string")
|
||||
@@ -58,13 +58,13 @@ export default class SemaphoreEthers {
|
||||
options.address ??= address
|
||||
options.startBlock ??= startBlock
|
||||
} else {
|
||||
if (options.address === undefined) {
|
||||
throw new Error(`Network '${networkOrEthereumURL}' needs a Semaphore contract address`)
|
||||
}
|
||||
|
||||
options.startBlock ??= 0
|
||||
}
|
||||
|
||||
if (options.address === undefined) {
|
||||
throw new Error(`Network '${networkOrEthereumURL}' needs a Semaphore contract address`)
|
||||
}
|
||||
|
||||
let provider: Provider
|
||||
|
||||
switch (options.provider) {
|
||||
|
||||
@@ -12,5 +12,5 @@ export default function getURL(supportedNetwork: SupportedNetwork): string {
|
||||
throw new TypeError(`Network '${supportedNetwork}' is not supported`)
|
||||
}
|
||||
|
||||
return `https://api.studio.thegraph.com/query/14377/semaphore-${supportedNetwork}/v4.1.0`
|
||||
return `https://api.studio.thegraph.com/query/14377/semaphore-${supportedNetwork}/v4.2.0`
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/group",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "A library to create and manage Semaphore groups.",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
@@ -36,7 +36,7 @@
|
||||
"rollup-plugin-cleanup": "^3.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@zk-kit/lean-imt": "2.2.1",
|
||||
"@zk-kit/lean-imt": "2.2.2",
|
||||
"@zk-kit/utils": "1.2.1",
|
||||
"poseidon-lite": "0.3.0"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/hardhat",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "A Hardhat plugin to deploy Semaphore contracts.",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
@@ -41,8 +41,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@nomicfoundation/hardhat-ethers": "^3.0.0",
|
||||
"@semaphore-protocol/contracts": "4.6.0",
|
||||
"ethers": "^6.4.0",
|
||||
"@semaphore-protocol/contracts": "4.7.3",
|
||||
"ethers": "^6.13.4",
|
||||
"hardhat-dependency-compiler": "^1.1.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/identity",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "A library to create Semaphore identities.",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/proof",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "A library to generate and verify Semaphore proofs.",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
@@ -47,14 +47,14 @@
|
||||
"rollup-plugin-cleanup": "^3.2.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@semaphore-protocol/group": "4.6.0",
|
||||
"@semaphore-protocol/identity": "4.6.0"
|
||||
"@semaphore-protocol/group": "4.7.3",
|
||||
"@semaphore-protocol/identity": "4.7.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@semaphore-protocol/utils": "4.6.0",
|
||||
"@semaphore-protocol/utils": "4.7.3",
|
||||
"@zk-kit/artifacts": "1.8.0",
|
||||
"@zk-kit/utils": "1.2.1",
|
||||
"ethers": "6.10.0",
|
||||
"ethers": "6.13.4",
|
||||
"snarkjs": "0.7.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@semaphore-protocol/utils",
|
||||
"version": "4.6.0",
|
||||
"version": "4.7.3",
|
||||
"description": "A library to provide utility functions to the other Semaphore packages.",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
@@ -54,6 +54,6 @@
|
||||
"rollup-plugin-cleanup": "^3.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ethers": "^6.11.1"
|
||||
"ethers": "^6.13.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,5 +218,25 @@
|
||||
"startBlock": 11459722
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"network": "scroll-sepolia",
|
||||
"contracts": [
|
||||
{
|
||||
"name": "SemaphoreVerifier",
|
||||
"address": "0x6C42599435B82121794D835263C846384869502d",
|
||||
"startBlock": 7397758
|
||||
},
|
||||
{
|
||||
"name": "PoseidonT3",
|
||||
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
|
||||
"startBlock": 7397758
|
||||
},
|
||||
{
|
||||
"name": "Semaphore",
|
||||
"address": "0x06d1530c829366A7fff0069e77c5af6A6FA7db2E",
|
||||
"startBlock": 7397758
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -64,5 +64,11 @@ export default {
|
||||
url: "https://rpc.linea.build",
|
||||
chainId: 59144,
|
||||
explorer: "https://lineascan.build"
|
||||
},
|
||||
"scroll-sepolia": {
|
||||
name: "Scroll Sepolia",
|
||||
url: "https://sepolia-rpc.scroll.io",
|
||||
chainId: 534351,
|
||||
explorer: "https://sepolia.scrollscan.com"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,10 +10,12 @@ async function maybePushToSoldeer() {
|
||||
const response = await fetch(
|
||||
"https://api.soldeer.xyz/api/v1/revision?project_name=semaphore-protocol-contracts&limit=1"
|
||||
)
|
||||
const { data, status } = await response.json()
|
||||
const { data } = await response.json()
|
||||
|
||||
// fail status if no version published at all yet
|
||||
if (status === "fail" || compare(contractsLocalVersion, data[0].version) === 1)
|
||||
if (
|
||||
data.length === 0 || // data = [] if no version has ever been published yet
|
||||
compare(contractsLocalVersion, data[0].version) === 1
|
||||
)
|
||||
execSync(`soldeer push semaphore-protocol-contracts~${contractsLocalVersion} packages/contracts/contracts`, {
|
||||
stdio: "inherit"
|
||||
})
|
||||
|
||||
189
yarn.lock
189
yarn.lock
@@ -5,13 +5,6 @@ __metadata:
|
||||
version: 8
|
||||
cacheKey: 10
|
||||
|
||||
"@adraffy/ens-normalize@npm:1.10.0":
|
||||
version: 1.10.0
|
||||
resolution: "@adraffy/ens-normalize@npm:1.10.0"
|
||||
checksum: 10/5cdb5d2a9c9f8c0a71a7bb830967da0069cae1f1235cd41ae11147e4000f368f6958386e622cd4d52bf45c1ed3f8275056b387cba28902b83354e40ff323ecde
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@adraffy/ens-normalize@npm:1.10.1":
|
||||
version: 1.10.1
|
||||
resolution: "@adraffy/ens-normalize@npm:1.10.1"
|
||||
@@ -7335,10 +7328,10 @@ __metadata:
|
||||
"@nomicfoundation/hardhat-network-helpers": "npm:^1.0.0"
|
||||
"@nomicfoundation/hardhat-toolbox": "npm:^4.0.0"
|
||||
"@nomicfoundation/hardhat-verify": "npm:^2.0.0"
|
||||
"@semaphore-protocol/contracts": "npm:4.6.0"
|
||||
"@semaphore-protocol/core": "npm:4.6.0"
|
||||
"@semaphore-protocol/hardhat": "npm:4.6.0"
|
||||
"@semaphore-protocol/utils": "npm:4.6.0"
|
||||
"@semaphore-protocol/contracts": "npm:4.7.3"
|
||||
"@semaphore-protocol/core": "npm:4.7.3"
|
||||
"@semaphore-protocol/hardhat": "npm:4.7.3"
|
||||
"@semaphore-protocol/utils": "npm:4.7.3"
|
||||
"@typechain/ethers-v6": "npm:^0.5.0"
|
||||
"@typechain/hardhat": "npm:^9.0.0"
|
||||
"@types/chai": "npm:^4.2.0"
|
||||
@@ -7354,7 +7347,7 @@ __metadata:
|
||||
eslint-config-airbnb-typescript: "npm:^17.1.0"
|
||||
eslint-config-prettier: "npm:^9.1.0"
|
||||
eslint-plugin-import: "npm:^2.29.1"
|
||||
ethers: "npm:^6.4.0"
|
||||
ethers: "npm:^6.13.4"
|
||||
hardhat: "npm:^2.20.1"
|
||||
hardhat-gas-reporter: "npm:^1.0.8"
|
||||
prettier: "npm:^3.2.5"
|
||||
@@ -7388,8 +7381,8 @@ __metadata:
|
||||
resolution: "@semaphore-protocol/cli@workspace:packages/cli"
|
||||
dependencies:
|
||||
"@rollup/plugin-typescript": "npm:^11.1.6"
|
||||
"@semaphore-protocol/data": "npm:4.6.0"
|
||||
"@semaphore-protocol/utils": "npm:4.6.0"
|
||||
"@semaphore-protocol/data": "npm:4.7.3"
|
||||
"@semaphore-protocol/utils": "npm:4.7.3"
|
||||
"@types/figlet": "npm:^1.5.8"
|
||||
"@types/inquirer": "npm:^9.0.7"
|
||||
"@types/pacote": "npm:^11.1.8"
|
||||
@@ -7413,7 +7406,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@semaphore-protocol/contracts@npm:4.6.0, @semaphore-protocol/contracts@workspace:packages/contracts/contracts":
|
||||
"@semaphore-protocol/contracts@npm:4.7.3, @semaphore-protocol/contracts@workspace:packages/contracts/contracts":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@semaphore-protocol/contracts@workspace:packages/contracts/contracts"
|
||||
dependencies:
|
||||
@@ -7421,37 +7414,37 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@semaphore-protocol/core@npm:4.6.0, @semaphore-protocol/core@workspace:^, @semaphore-protocol/core@workspace:packages/core":
|
||||
"@semaphore-protocol/core@npm:4.7.3, @semaphore-protocol/core@workspace:^, @semaphore-protocol/core@workspace:packages/core":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@semaphore-protocol/core@workspace:packages/core"
|
||||
dependencies:
|
||||
"@semaphore-protocol/group": "npm:4.6.0"
|
||||
"@semaphore-protocol/identity": "npm:4.6.0"
|
||||
"@semaphore-protocol/proof": "npm:4.6.0"
|
||||
"@semaphore-protocol/group": "npm:4.7.3"
|
||||
"@semaphore-protocol/identity": "npm:4.7.3"
|
||||
"@semaphore-protocol/proof": "npm:4.7.3"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@semaphore-protocol/data@npm:4.6.0, @semaphore-protocol/data@workspace:packages/data":
|
||||
"@semaphore-protocol/data@npm:4.7.3, @semaphore-protocol/data@workspace:packages/data":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@semaphore-protocol/data@workspace:packages/data"
|
||||
dependencies:
|
||||
"@rollup/plugin-json": "npm:^6.1.0"
|
||||
"@rollup/plugin-typescript": "npm:^11.1.6"
|
||||
"@semaphore-protocol/utils": "npm:4.6.0"
|
||||
"@semaphore-protocol/utils": "npm:4.7.3"
|
||||
axios: "npm:1.6.6"
|
||||
ethers: "npm:6.11.0"
|
||||
ethers: "npm:6.13.4"
|
||||
rimraf: "npm:^5.0.5"
|
||||
rollup: "npm:^4.12.0"
|
||||
rollup-plugin-cleanup: "npm:^3.2.1"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@semaphore-protocol/group@npm:4.6.0, @semaphore-protocol/group@workspace:packages/group":
|
||||
"@semaphore-protocol/group@npm:4.7.3, @semaphore-protocol/group@workspace:packages/group":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@semaphore-protocol/group@workspace:packages/group"
|
||||
dependencies:
|
||||
"@rollup/plugin-typescript": "npm:^11.1.6"
|
||||
"@zk-kit/lean-imt": "npm:2.2.1"
|
||||
"@zk-kit/lean-imt": "npm:2.2.2"
|
||||
"@zk-kit/utils": "npm:1.2.1"
|
||||
poseidon-lite: "npm:0.3.0"
|
||||
rimraf: "npm:^5.0.5"
|
||||
@@ -7460,14 +7453,14 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@semaphore-protocol/hardhat@npm:4.6.0, @semaphore-protocol/hardhat@workspace:packages/hardhat":
|
||||
"@semaphore-protocol/hardhat@npm:4.7.3, @semaphore-protocol/hardhat@workspace:packages/hardhat":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@semaphore-protocol/hardhat@workspace:packages/hardhat"
|
||||
dependencies:
|
||||
"@nomicfoundation/hardhat-ethers": "npm:^3.0.0"
|
||||
"@rollup/plugin-typescript": "npm:^11.1.6"
|
||||
"@semaphore-protocol/contracts": "npm:4.6.0"
|
||||
ethers: "npm:^6.4.0"
|
||||
"@semaphore-protocol/contracts": "npm:4.7.3"
|
||||
ethers: "npm:^6.13.4"
|
||||
hardhat: "npm:^2.19.4"
|
||||
hardhat-dependency-compiler: "npm:^1.1.3"
|
||||
rimraf: "npm:^5.0.5"
|
||||
@@ -7478,7 +7471,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@semaphore-protocol/identity@npm:4.6.0, @semaphore-protocol/identity@workspace:packages/identity":
|
||||
"@semaphore-protocol/identity@npm:4.7.3, @semaphore-protocol/identity@workspace:packages/identity":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@semaphore-protocol/identity@workspace:packages/identity"
|
||||
dependencies:
|
||||
@@ -7494,35 +7487,35 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@semaphore-protocol/proof@npm:4.6.0, @semaphore-protocol/proof@workspace:packages/proof":
|
||||
"@semaphore-protocol/proof@npm:4.7.3, @semaphore-protocol/proof@workspace:packages/proof":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@semaphore-protocol/proof@workspace:packages/proof"
|
||||
dependencies:
|
||||
"@rollup/plugin-alias": "npm:^5.1.0"
|
||||
"@rollup/plugin-json": "npm:^6.1.0"
|
||||
"@rollup/plugin-typescript": "npm:^11.1.6"
|
||||
"@semaphore-protocol/utils": "npm:4.6.0"
|
||||
"@semaphore-protocol/utils": "npm:4.7.3"
|
||||
"@types/snarkjs": "npm:^0"
|
||||
"@zk-kit/artifacts": "npm:1.8.0"
|
||||
"@zk-kit/utils": "npm:1.2.1"
|
||||
ethers: "npm:6.10.0"
|
||||
ethers: "npm:6.13.4"
|
||||
rimraf: "npm:^5.0.5"
|
||||
rollup: "npm:^4.12.0"
|
||||
rollup-plugin-cleanup: "npm:^3.2.1"
|
||||
snarkjs: "npm:0.7.4"
|
||||
peerDependencies:
|
||||
"@semaphore-protocol/group": 4.6.0
|
||||
"@semaphore-protocol/identity": 4.6.0
|
||||
"@semaphore-protocol/group": 4.7.3
|
||||
"@semaphore-protocol/identity": 4.7.3
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@semaphore-protocol/utils@npm:4.6.0, @semaphore-protocol/utils@workspace:packages/utils":
|
||||
"@semaphore-protocol/utils@npm:4.7.3, @semaphore-protocol/utils@workspace:packages/utils":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@semaphore-protocol/utils@workspace:packages/utils"
|
||||
dependencies:
|
||||
"@rollup/plugin-json": "npm:^6.1.0"
|
||||
"@rollup/plugin-typescript": "npm:^11.1.6"
|
||||
ethers: "npm:^6.11.1"
|
||||
ethers: "npm:^6.13.4"
|
||||
rimraf: "npm:^5.0.5"
|
||||
rollup: "npm:^4.12.0"
|
||||
rollup-plugin-cleanup: "npm:^3.2.1"
|
||||
@@ -8690,10 +8683,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:18.15.13":
|
||||
version: 18.15.13
|
||||
resolution: "@types/node@npm:18.15.13"
|
||||
checksum: 10/b9bbe923573797ef7c5fd2641a6793489e25d9369c32aeadcaa5c7c175c85b42eb12d6fe173f6781ab6f42eaa1ebd9576a419eeaa2a1ec810094adb8adaa9a54
|
||||
"@types/node@npm:22.7.5":
|
||||
version: 22.7.5
|
||||
resolution: "@types/node@npm:22.7.5"
|
||||
dependencies:
|
||||
undici-types: "npm:~6.19.2"
|
||||
checksum: 10/e8ba102f8c1aa7623787d625389be68d64e54fcbb76d41f6c2c64e8cf4c9f4a2370e7ef5e5f1732f3c57529d3d26afdcb2edc0101c5e413a79081449825c57ac
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -9589,12 +9584,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@zk-kit/lean-imt@npm:2.2.1":
|
||||
version: 2.2.1
|
||||
resolution: "@zk-kit/lean-imt@npm:2.2.1"
|
||||
"@zk-kit/lean-imt@npm:2.2.2":
|
||||
version: 2.2.2
|
||||
resolution: "@zk-kit/lean-imt@npm:2.2.2"
|
||||
dependencies:
|
||||
"@zk-kit/utils": "npm:1.2.1"
|
||||
checksum: 10/f57ba0ab15ff38609c352862b21023d370bd250c37c7ef15d4ee7724c8179a7fdd6647ac8a555e6cf523032d1c769fb9eae6de5364a97574224ff7de1a34f8a8
|
||||
checksum: 10/321e1964a4a0b7a19083c01743f5ee2a7311b1eede6775ce952a6fecf07d347dc4cdb250a557ff459bc6d3bff030e2a571f5116510c2392ca523f50c4d02311d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -14852,33 +14847,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ethers@npm:6.10.0":
|
||||
version: 6.10.0
|
||||
resolution: "ethers@npm:6.10.0"
|
||||
dependencies:
|
||||
"@adraffy/ens-normalize": "npm:1.10.0"
|
||||
"@noble/curves": "npm:1.2.0"
|
||||
"@noble/hashes": "npm:1.3.2"
|
||||
"@types/node": "npm:18.15.13"
|
||||
aes-js: "npm:4.0.0-beta.5"
|
||||
tslib: "npm:2.4.0"
|
||||
ws: "npm:8.5.0"
|
||||
checksum: 10/04fdd3f76ea93a8b45b2fe4d9c8e2bd0d688823faba672897dd19cc3303c202a166902fe6058004562f13aaecf9f77a9f70ff113f995e94107efef2457b016dd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ethers@npm:6.11.0":
|
||||
version: 6.11.0
|
||||
resolution: "ethers@npm:6.11.0"
|
||||
"ethers@npm:6.13.4, ethers@npm:^6.13.4":
|
||||
version: 6.13.4
|
||||
resolution: "ethers@npm:6.13.4"
|
||||
dependencies:
|
||||
"@adraffy/ens-normalize": "npm:1.10.1"
|
||||
"@noble/curves": "npm:1.2.0"
|
||||
"@noble/hashes": "npm:1.3.2"
|
||||
"@types/node": "npm:18.15.13"
|
||||
"@types/node": "npm:22.7.5"
|
||||
aes-js: "npm:4.0.0-beta.5"
|
||||
tslib: "npm:2.4.0"
|
||||
ws: "npm:8.5.0"
|
||||
checksum: 10/c6e5964ceabf2d289f8ae5b16e634995375457a8c5b814ea54799b5a3c951668465adb9b6dda3aea559d9c4fe3faa8297a38651853b54a53de9448663a908f12
|
||||
tslib: "npm:2.7.0"
|
||||
ws: "npm:8.17.1"
|
||||
checksum: 10/221192fed93f6b0553f3e5e72bfd667d676220577d34ff854f677e955d6f608e60636a9c08b5d54039c532a9b9b7056384f0d7019eb6e111d53175806f896ac6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -14920,21 +14900,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ethers@npm:^6.11.1, ethers@npm:^6.4.0":
|
||||
version: 6.12.1
|
||||
resolution: "ethers@npm:6.12.1"
|
||||
dependencies:
|
||||
"@adraffy/ens-normalize": "npm:1.10.1"
|
||||
"@noble/curves": "npm:1.2.0"
|
||||
"@noble/hashes": "npm:1.3.2"
|
||||
"@types/node": "npm:18.15.13"
|
||||
aes-js: "npm:4.0.0-beta.5"
|
||||
tslib: "npm:2.4.0"
|
||||
ws: "npm:8.5.0"
|
||||
checksum: 10/2995766164292b531499764d319d753b1f4e1cd7ddb4f26c6557a26e42947d5642a4b3bbeace0b8bb398b909dc22fafa4f52d5190a9bb8180bebf2dd3d4d48a9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ethjs-unit@npm:0.1.6":
|
||||
version: 0.1.6
|
||||
resolution: "ethjs-unit@npm:0.1.6"
|
||||
@@ -21286,10 +21251,10 @@ __metadata:
|
||||
"@nomicfoundation/hardhat-network-helpers": "npm:^1.0.0"
|
||||
"@nomicfoundation/hardhat-toolbox": "npm:^4.0.0"
|
||||
"@nomicfoundation/hardhat-verify": "npm:^2.0.0"
|
||||
"@semaphore-protocol/contracts": "npm:4.6.0"
|
||||
"@semaphore-protocol/core": "npm:4.6.0"
|
||||
"@semaphore-protocol/hardhat": "npm:4.6.0"
|
||||
"@semaphore-protocol/utils": "npm:4.6.0"
|
||||
"@semaphore-protocol/contracts": "npm:4.7.3"
|
||||
"@semaphore-protocol/core": "npm:4.7.3"
|
||||
"@semaphore-protocol/hardhat": "npm:4.7.3"
|
||||
"@semaphore-protocol/utils": "npm:4.7.3"
|
||||
"@typechain/ethers-v6": "npm:^0.5.0"
|
||||
"@typechain/hardhat": "npm:^9.0.0"
|
||||
"@types/chai": "npm:^4.2.0"
|
||||
@@ -21305,7 +21270,7 @@ __metadata:
|
||||
eslint-config-airbnb-typescript: "npm:^17.1.0"
|
||||
eslint-config-prettier: "npm:^9.1.0"
|
||||
eslint-plugin-import: "npm:^2.29.1"
|
||||
ethers: "npm:^6.4.0"
|
||||
ethers: "npm:^6.13.4"
|
||||
hardhat: "npm:^2.20.1"
|
||||
hardhat-gas-reporter: "npm:^1.0.8"
|
||||
prettier: "npm:^3.2.5"
|
||||
@@ -21322,16 +21287,16 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "monorepo-ethers-web-app@workspace:packages/cli-template-monorepo-ethers/apps/web-app"
|
||||
dependencies:
|
||||
"@semaphore-protocol/core": "npm:4.6.0"
|
||||
"@semaphore-protocol/data": "npm:4.6.0"
|
||||
"@semaphore-protocol/utils": "npm:4.6.0"
|
||||
"@semaphore-protocol/core": "npm:4.7.3"
|
||||
"@semaphore-protocol/data": "npm:4.7.3"
|
||||
"@semaphore-protocol/utils": "npm:4.7.3"
|
||||
"@types/node": "npm:^20"
|
||||
"@types/react": "npm:^18"
|
||||
"@types/react-dom": "npm:^18"
|
||||
dotenv: "npm:^16.4.5"
|
||||
eslint: "npm:^8"
|
||||
eslint-config-next: "npm:14.1.0"
|
||||
ethers: "npm:^6.11.1"
|
||||
ethers: "npm:^6.13.4"
|
||||
next: "npm:14.1.0"
|
||||
next-pwa: "npm:^5.6.0"
|
||||
react: "npm:^18"
|
||||
@@ -21349,10 +21314,10 @@ __metadata:
|
||||
"@nomicfoundation/hardhat-network-helpers": "npm:^1.0.0"
|
||||
"@nomicfoundation/hardhat-toolbox": "npm:^4.0.0"
|
||||
"@nomicfoundation/hardhat-verify": "npm:^2.0.0"
|
||||
"@semaphore-protocol/contracts": "npm:4.6.0"
|
||||
"@semaphore-protocol/core": "npm:4.6.0"
|
||||
"@semaphore-protocol/hardhat": "npm:4.6.0"
|
||||
"@semaphore-protocol/utils": "npm:4.6.0"
|
||||
"@semaphore-protocol/contracts": "npm:4.7.3"
|
||||
"@semaphore-protocol/core": "npm:4.7.3"
|
||||
"@semaphore-protocol/hardhat": "npm:4.7.3"
|
||||
"@semaphore-protocol/utils": "npm:4.7.3"
|
||||
"@typechain/ethers-v6": "npm:^0.5.0"
|
||||
"@typechain/hardhat": "npm:^9.0.0"
|
||||
"@types/chai": "npm:^4.2.0"
|
||||
@@ -21368,7 +21333,7 @@ __metadata:
|
||||
eslint-config-airbnb-typescript: "npm:^17.1.0"
|
||||
eslint-config-prettier: "npm:^9.1.0"
|
||||
eslint-plugin-import: "npm:^2.29.1"
|
||||
ethers: "npm:^6.4.0"
|
||||
ethers: "npm:^6.13.4"
|
||||
hardhat: "npm:^2.20.1"
|
||||
hardhat-gas-reporter: "npm:^1.0.8"
|
||||
prettier: "npm:^3.2.5"
|
||||
@@ -21385,16 +21350,16 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "monorepo-subgraph-web-app@workspace:packages/cli-template-monorepo-subgraph/apps/web-app"
|
||||
dependencies:
|
||||
"@semaphore-protocol/core": "npm:4.6.0"
|
||||
"@semaphore-protocol/data": "npm:4.6.0"
|
||||
"@semaphore-protocol/utils": "npm:4.6.0"
|
||||
"@semaphore-protocol/core": "npm:4.7.3"
|
||||
"@semaphore-protocol/data": "npm:4.7.3"
|
||||
"@semaphore-protocol/utils": "npm:4.7.3"
|
||||
"@types/node": "npm:^20"
|
||||
"@types/react": "npm:^18"
|
||||
"@types/react-dom": "npm:^18"
|
||||
dotenv: "npm:^16.4.5"
|
||||
eslint: "npm:^8"
|
||||
eslint-config-next: "npm:14.1.0"
|
||||
ethers: "npm:^6.11.1"
|
||||
ethers: "npm:^6.13.4"
|
||||
next: "npm:14.1.0"
|
||||
next-pwa: "npm:^5.6.0"
|
||||
react: "npm:^18"
|
||||
@@ -25857,7 +25822,7 @@ __metadata:
|
||||
"@types/node": "npm:^20.10.7"
|
||||
"@zk-kit/lean-imt.sol": "npm:2.0.0"
|
||||
chai: "npm:^4.2.0"
|
||||
ethers: "npm:^6.4.0"
|
||||
ethers: "npm:^6.13.4"
|
||||
hardhat: "npm:^2.19.4"
|
||||
hardhat-gas-reporter: "npm:^1.0.8"
|
||||
ncp: "npm:^2.0.0"
|
||||
@@ -25880,7 +25845,7 @@ __metadata:
|
||||
"@docusaurus/preset-classic": "npm:3.5.2"
|
||||
"@docusaurus/tsconfig": "npm:3.5.2"
|
||||
"@mdx-js/react": "npm:^3.0.0"
|
||||
"@semaphore-protocol/utils": "npm:4.6.0"
|
||||
"@semaphore-protocol/utils": "npm:4.7.3"
|
||||
"@svgr/webpack": "npm:^5.5.0"
|
||||
"@types/react": "npm:^18.2.29"
|
||||
clsx: "npm:^1.2.1"
|
||||
@@ -27935,6 +27900,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tslib@npm:2.7.0":
|
||||
version: 2.7.0
|
||||
resolution: "tslib@npm:2.7.0"
|
||||
checksum: 10/9a5b47ddac65874fa011c20ff76db69f97cf90c78cff5934799ab8894a5342db2d17b4e7613a087046bc1d133d21547ddff87ac558abeec31ffa929c88b7fce6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tslib@npm:^1.8.1, tslib@npm:^1.9.3":
|
||||
version: 1.14.1
|
||||
resolution: "tslib@npm:1.14.1"
|
||||
@@ -28325,6 +28297,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici-types@npm:~6.19.2":
|
||||
version: 6.19.8
|
||||
resolution: "undici-types@npm:6.19.8"
|
||||
checksum: 10/cf0b48ed4fc99baf56584afa91aaffa5010c268b8842f62e02f752df209e3dea138b372a60a963b3b2576ed932f32329ce7ddb9cb5f27a6c83040d8cd74b7a70
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici@npm:^5.12.0, undici@npm:^5.14.0":
|
||||
version: 5.28.4
|
||||
resolution: "undici@npm:5.28.4"
|
||||
@@ -29762,18 +29741,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ws@npm:8.5.0":
|
||||
version: 8.5.0
|
||||
resolution: "ws@npm:8.5.0"
|
||||
"ws@npm:8.17.1":
|
||||
version: 8.17.1
|
||||
resolution: "ws@npm:8.17.1"
|
||||
peerDependencies:
|
||||
bufferutil: ^4.0.1
|
||||
utf-8-validate: ^5.0.2
|
||||
utf-8-validate: ">=5.0.2"
|
||||
peerDependenciesMeta:
|
||||
bufferutil:
|
||||
optional: true
|
||||
utf-8-validate:
|
||||
optional: true
|
||||
checksum: 10/f0ee700970a0bf925b1ec213ca3691e84fb8b435a91461fe3caf52f58c6cec57c99ed5890fbf6978824c932641932019aafc55d864cad38ac32577496efd5d3a
|
||||
checksum: 10/4264ae92c0b3e59c7e309001e93079b26937aab181835fb7af79f906b22cd33b6196d96556dafb4e985742dd401e99139572242e9847661fdbc96556b9e6902d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Reference in New Issue
Block a user