Compare commits

...

25 Commits

Author SHA1 Message Date
cedoor
822530f2cf chore: v4.4.0 2024-10-17 14:19:38 +01:00
Vivian Plasencia
b3f862979d feat(identity): add generate commitment function (#877)
This static method is particularly useful after signature verification, as it allows retrieval of
the corresponding commitment associated with the public key.

re #873
2024-10-17 13:28:49 +02:00
cedoor
06e11d5c34 chore: v4.3.1 2024-10-16 12:20:26 +01:00
cedoor
88d4470b11 ci(circuits): add sudo before running wget command 2024-10-16 12:16:22 +01:00
Vivian Plasencia
bb1c6984b2 ci: add -O flag to the wget command 2024-10-16 13:04:32 +02:00
cedoor
5841327477 ci(circuits): update circom url 2024-10-16 11:52:02 +01:00
cedoor
eab3ab30c6 ci(circuits): update circom url 2024-10-16 11:48:30 +01:00
Cedoor
cd6dc38f9e ci(circuits): set static version of circom (#874)
* fix(circuits): add override for circom_runtime

* chore(circuits): use yarn syntax for overrides

* ci(circuits): set static version of circom
2024-10-16 11:05:07 +01:00
cedoor
3cb1b5757d revert(circuits): set previous circomkit version as static 2024-10-15 11:30:11 +01:00
cedoor
a8db8393c1 chore(circuits): update circomkit config 2024-10-15 11:24:55 +01:00
cedoor
391b571c31 chore(circuits): update circomkit dep version 2024-10-15 11:21:04 +01:00
cedoor
4c2769099f chore(circuits): update dev dependencies 2024-10-15 11:05:08 +01:00
Cedoor
29cabb49d6 build: move poseidon-lite to dependencies (#870) 2024-10-15 10:58:51 +01:00
cedoor
48b0694586 chore: v4.3.0 2024-10-03 12:46:01 +01:00
Cedoor
28684fdb1a Chore/mainnet deployments (#869)
* chore(contracts): deploy semaphore contracts on base

re #865

* chore(contracts): deploy semaphore contracts on linea

re #865

* refactor(data): add types for new networks

re #865
2024-10-03 12:42:36 +01:00
Cedoor
49a16635d8 chore(website): update roadmap.json (#866) 2024-10-01 19:04:11 +01:00
cedoor
4bfe6d8791 chore: v4.2.0 2024-10-01 18:48:37 +01:00
Cedoor
a3d97795fe Chore/new testnets (#864)
* chore(contracts): deploy contracts on base sepolia

re #863

* chore(contracts): deploy contracts on linea sepolia

re #863
2024-10-01 18:36:55 +01:00
cedoor
4c8d297902 chore: v4.1.0 2024-10-01 11:35:27 +01:00
Cedoor
fdbadf5b71 Chore/mainnet deployments (#862)
* chore(contracts): deploy contracts on arbitrum

re #859

* chore(contracts): deploy contracts on polygon

re #859

* chore(contracts): deploy contracts on optimism

re #859
2024-10-01 11:31:29 +01:00
Vivian Plasencia
4496eee137 docs(website): update events (#857) 2024-09-20 17:53:55 +02:00
Cedoor
215a12e25c docs(website): add new project (#856)
re #855
2024-09-20 16:24:23 +01:00
Cedoor
87331114c1 chore: replace discord link with telegram (#853) 2024-09-03 12:49:31 +02:00
sripwoud
0d41562dad chore: publish contracts to soldeer (#820)
* chore: define separate version.ts script

* chore: include publishing to soldeer in script

* fix(contracts): push to soldeer

re 800

* ci: fetch latest contract version from soldeer

* refactor: do not use execa in scripts

* fix: do not exit process in script

* chore: remove comments

* refactor: use shebang in ts scripts

* chore(contracts): add soldeerignore

* chore: inherit stdio in scripts

* chore: remove dry run flag

* chore: uncomment

* chore: fix typo in comment
2024-08-28 16:26:48 +02:00
Elias Rad
c435712656 docs fix spelling issues (#852)
* Update README.md

* Update contract-api.md

* Update howitworks.md

* Update libsemaphore.md
2024-08-28 16:26:31 +02:00
79 changed files with 593 additions and 1974 deletions

View File

@@ -26,5 +26,13 @@
"no-console": ["warn", { "allow": ["info", "warn", "error"] }],
"@typescript-eslint/lines-between-class-members": "off",
"no-param-reassign": "off"
}
},
"overrides": [
{
"files": ["./scripts/*"],
"rules": {
"no-console": "off"
}
}
]
}

View File

@@ -83,7 +83,7 @@ jobs:
sudo apt-get update && sudo apt-get install -y wget nlohmann-json3-dev libgmp-dev nasm g++ build-essential
- name: Setup Circom
run: wget https://github.com/iden3/circom/releases/latest/download/circom-linux-amd64 && sudo mv ./circom-linux-amd64 /usr/bin/circom && sudo chmod +x /usr/bin/circom
run: sudo wget https://github.com/iden3/circom/releases/download/v2.1.9/circom-linux-amd64 -O /usr/bin/circom && sudo chmod +x /usr/bin/circom
- name: Install dependencies
run: yarn

View File

@@ -111,7 +111,7 @@ jobs:
run: |
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && sudo apt-get install -y wget nlohmann-json3-dev libgmp-dev nasm g++ build-essential
wget https://github.com/iden3/circom/releases/latest/download/circom-linux-amd64 && sudo mv ./circom-linux-amd64 /usr/bin/circom && sudo chmod +x /usr/bin/circom
sudo wget https://github.com/iden3/circom/releases/download/v2.1.9/circom-linux-amd64 -O /usr/bin/circom && sudo chmod +x /usr/bin/circom
yarn workspace @semaphore-protocol/group build
yarn workspace @semaphore-protocol/identity build
yarn workspace @semaphore-protocol/proof build

2
.gitignore vendored
View File

@@ -94,3 +94,5 @@ typechain-types
# Other
snark-artifacts
*.zip

1
.soldeerignore Normal file
View File

@@ -0,0 +1 @@
package.json

View File

@@ -53,7 +53,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
@@ -374,5 +374,5 @@ yarn version:bump <version>
# e.g. yarn version:bump 2.0.0
```
It will create a commit and a git tag that will need to pushed on the main branch. A workflow will be triggered and will
It will create a commit and a git tag that will need to be pushed on the main branch. A workflow will be triggered and will
publish the Semaphore packages on [npm](https://www.npmjs.com/) and release a new version on Github with its changelogs automatically.

View File

@@ -34,7 +34,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -67,7 +67,7 @@ const config: Config = {
announcementBar: {
id: "semaphore-v4-beta",
content:
'<b><a href="https://github.com/semaphore-protocol/semaphore/releases/tag/v4.0.0" target="_blank">Semaphore V4</a> is out 🎉 <a href="/getting-started">Try it out</a> and let us know if you have any feedback on <a href="https://semaphore.pse.dev/discord" target="_blank">Discord</a> or <a href="https://github.com/orgs/semaphore-protocol/discussions" target="_blank">Github</a>!</b>',
'<b><a href="https://github.com/semaphore-protocol/semaphore/releases/tag/v4.0.0" target="_blank">Semaphore V4</a> is out 🎉 <a href="/getting-started">Try it out</a> and let us know if you have any feedback on <a href="https://semaphore.pse.dev/telegram" target="_blank">Telegram</a> or <a href="https://github.com/orgs/semaphore-protocol/discussions" target="_blank">Github</a>!</b>',
backgroundColor: "#dde6fc",
textColor: "#000000"
},

View File

@@ -386,7 +386,7 @@
"message": "Connect"
},
"footer.right.connect.link1": {
"message": "Discord"
"message": "Telegram"
},
"footer.right.connect.link2": {
"message": "X (Twitter)"

View File

@@ -386,7 +386,7 @@
"message": "Conecta con nosotros"
},
"footer.right.connect.link1": {
"message": "Discord"
"message": "Telegram"
},
"footer.right.connect.link2": {
"message": "X (Twitter)"

View File

@@ -14,7 +14,7 @@ También proporciona un mecanismo simple para evitar la doble señalización, lo
## ¿Dónde puedo hacer preguntas sobre Semaphore?
Puede hacer preguntas sobre Semaphore en [Discord](https://semaphore.pse.dev/discord) o abriendo un [Semaphore Discussion](https://github.com/semaphore-protocol/semaphore/discussions).
Puede hacer preguntas sobre Semaphore en [Telegram](https://semaphore.pse.dev/telegram) o abriendo un [Semaphore Discussion](https://github.com/semaphore-protocol/semaphore/discussions).
## ¿Por qué las identidades requieren tanto `identity trapdoor` como `identity nullifier`?

View File

@@ -7,7 +7,7 @@ import TabItem from "@theme/TabItem"
# Solución de problemas
Si estas sugerencias no funcionan, no dude en preguntar en las [Semaphore Discussions](https://github.com/semaphore-protocol/semaphore/discussions) o en el canal `dev-chat` en el [Semaphore Discord](https://semaphore.pse.dev/discord).
Si estas sugerencias no funcionan, no dude en preguntar en las [Semaphore Discussions](https://github.com/semaphore-protocol/semaphore/discussions) o en el canal [Semaphore Telegram](https://semaphore.pse.dev/telegram).
## Usando Semaphore en the frontend

View File

@@ -19,7 +19,7 @@
"@docusaurus/core": "3.1.1",
"@docusaurus/preset-classic": "3.1.1",
"@mdx-js/react": "^3.0.0",
"@semaphore-protocol/utils": "4.0.3",
"@semaphore-protocol/utils": "4.4.0",
"@svgr/webpack": "^5.5.0",
"clsx": "^1.2.1",
"docusaurus-plugin-sass": "^0.2.5",

View File

@@ -32,7 +32,7 @@ function Footer() {
id: "footer.right.connect.title"
})}
</h3>
<Link href="https://semaphore.pse.dev/discord" target="_blank">
<Link href="https://semaphore.pse.dev/telegram" target="_blank">
{translate({
id: "footer.right.connect.link1"
})}

View File

@@ -21,7 +21,7 @@ The first external nullifier will be added as an external nullifier to the
contract, and this external nullifier will be active once the deployment
completes.
## Add, deactivate, or reactivate external nullifiiers
## Add, deactivate, or reactivate external nullifiers
**Contract ABI**:

View File

@@ -10,8 +10,8 @@ An identity is comprised of the following information:
1. An [EdDSA](https://en.wikipedia.org/wiki/EdDSA) private key. Note that it is
_not_ an Ethereum private key.
2. An identity nullifier, whih is a random 32-byte value.
3. An identity trapdoor, whih is a random 32-byte value.
2. An identity nullifier, which is a random 32-byte value.
3. An identity trapdoor, which is a random 32-byte value.
An identity commitment is the Pedersen hash of:

View File

@@ -204,7 +204,7 @@ It returns an object as such:
- `msg`: The hash of the external nullifier and the signal hash
- `signature`: The signature on the above msg.
- `tree`: The Merkle tree object after it has been updated with the identity commitment
- `identityPath`: The Merkle path to the identity commmitment
- `identityPath`: The Merkle path to the identity commitment
- `identityPathIndex`: The leaf index of the identity commitment
- `identityPathElements`: The elements along the above Merkle path

View File

@@ -14,7 +14,7 @@ It also provides a simple mechanism to prevent double-signaling, which means you
## Where can I ask questions about Semaphore?
You can ask questions about Semaphore on [Discord](https://semaphore.pse.dev/discord) or by opening a [Semaphore Discussion](https://github.com/semaphore-protocol/semaphore/discussions).
You can ask questions about Semaphore on [Telegram](https://semaphore.pse.dev/telegram) or by opening a [Semaphore Discussion](https://github.com/semaphore-protocol/semaphore/discussions).
## Why do identities require both the `identity trapdoor` and the `identity nullifier`?

View File

@@ -7,7 +7,7 @@ import TabItem from "@theme/TabItem"
# Troubleshooting
If these suggestions do not work, feel free to ask in the [Semaphore Discussions](https://github.com/semaphore-protocol/semaphore/discussions) or in the `dev-chat` channel in the [Semaphore Discord](https://semaphore.pse.dev/discord).
If these suggestions do not work, feel free to ask in the [Semaphore Discussions](https://github.com/semaphore-protocol/semaphore/discussions) or in the [Semaphore Telegram](https://semaphore.pse.dev/telegram).
## Using Semaphore in the frontend

View File

@@ -6,7 +6,7 @@ sidebar_position: 11
## Where can I ask questions about Semaphore?
You can ask questions about Semaphore on [Discord](https://semaphore.pse.dev/discord) or by opening a [Semaphore Discussion](https://github.com/semaphore-protocol/semaphore/discussions). The most frequent questions will be listed below.
You can ask questions about Semaphore on [Telegram](https://semaphore.pse.dev/telegram) or by opening a [Semaphore Discussion](https://github.com/semaphore-protocol/semaphore/discussions). The most frequent questions will be listed below.
## Why should I prevent proofs from being verified twice?

View File

@@ -7,7 +7,7 @@ import TabItem from "@theme/TabItem"
# Troubleshooting
If these suggestions do not work, feel free to ask for more help and support on [Github Discussions](https://github.com/semaphore-protocol/semaphore/discussions) or [Discord](https://semaphore.pse.dev/discord) ("dev-chat" channel).
If these suggestions do not work, feel free to ask for more help and support on [Github Discussions](https://github.com/semaphore-protocol/semaphore/discussions) or [Telegram](https://semaphore.pse.dev/telegram).
## Transaction reverted when using the same nullifier

View File

@@ -31,7 +31,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>
@@ -42,15 +42,21 @@
## Networks
| Semaphore version | Sepolia | Polygon Mumbai | Optimism Sepolia | Arbitrum Sepolia | Arbitrum One | Polygon Amoy |
| ----------------- | ------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| v2.0 | N/A | N/A | N/A | N/A | [semaphore-protocol/arbitrum](https://thegraph.com/hosted-service/subgraph/semaphore-protocol/arbitrum) | N/A |
| v2.5 | N/A | N/A | N/A | N/A | N/A | N/A |
| v2.6 | N/A | N/A | N/A | N/A | [semaphore-protocol/arbitrum-86337c](https://thegraph.com/hosted-service/subgraph/semaphore-protocol/arbitrum-86337c) | N/A |
| v3.0 - v3.1 | N/A | N/A | N/A | N/A | [semaphore-protocol/arbitrum-72dca3](https://thegraph.com/hosted-service/subgraph/semaphore-protocol/arbitrum-72dca3) | N/A |
| >= v3.2 | [semaphore-sepolia](https://api.studio.thegraph.com/query/14377/semaphore-sepolia/v3.6.1) | [semaphore-mumbai](https://api.studio.thegraph.com/query/14377/semaphore-mumbai/v3.6.1) | N/A | N/A | [semaphore-arbitrum](https://api.studio.thegraph.com/query/14377/semaphore-arbitrum/v3.6.1) | N/A |
| v4.0.0-beta | [semaphore-sepolia](https://api.studio.thegraph.com/query/14377/semaphore-sepolia/v4.0.0-beta) | [semaphore-matic-mumbai](https://api.studio.thegraph.com/query/14377/semaphore-matic-mumbai/v4.0.0-beta) | [semaphore-optimism-sepolia](https://api.studio.thegraph.com/query/14377/semaphore-optimism-sepolia/v4.0.0-beta) | [semaphore-arbitrum-sepolia](https://api.studio.thegraph.com/query/14377/semaphore-arbitrum-sepolia/v4.0.0-beta) | N/A | N/A |
| >= v4.0.0-beta.17 | [semaphore-sepolia](https://api.studio.thegraph.com/query/14377/semaphore-sepolia/v4.0.0-beta.17) | N/A | [semaphore-optimism-sepolia](https://api.studio.thegraph.com/query/14377/semaphore-optimism-sepolia/v4.0.0-beta.17) | [semaphore-arbitrum-sepolia](https://api.studio.thegraph.com/query/14377/semaphore-arbitrum-sepolia/v4.0.0-beta.17) | N/A | [semaphore-matic-amoy](https://api.studio.thegraph.com/query/14377/semaphore-matic-amoy/v4.0.0-beta.17) |
You can access any subgraph supported by Semaphore with the following URL: https://api.studio.thegraph.com/query/14377/semaphore-<network-name>/v4.0.0-beta.17.
Supported networks:
- `sepolia`
- `optimism`
- `optimism-sepolia`
- `arbitrum-one`
- `arbitrum-sepolia`
- `matic`
- `polygon-amoy`
- `base-sepolia`
- `base`
- `linea-sepolia`
- `linea`
## 🛠 Install

View File

@@ -20,7 +20,7 @@
"dependencies": {
"@graphprotocol/graph-cli": "0.78.0",
"@graphprotocol/graph-ts": "0.35.1",
"@semaphore-protocol/utils": "4.0.3"
"@semaphore-protocol/utils": "workspace:packages/utils"
},
"devDependencies": {
"@types/mustache": "^4.2.2",

View File

@@ -6,8 +6,20 @@ const network = process.argv.at(2)
const template = readFileSync("./subgraph.template.yaml", "utf-8")
function mapNetwork(n) {
if (n === "matic-amoy") {
return "polygon-amoy"
}
if (n === "arbitrum") {
return "arbitrum-one"
}
return network
}
const subgraph = Mustache.render(template, {
network: network === "matic-amoy" ? "polygon-amoy" : network,
network: mapNetwork(network),
...getDeployedContract(network)
})

View File

@@ -34,7 +34,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -5,7 +5,7 @@ import Carousel from "../components/Carousel"
import ProjectCard from "../components/ProjectCard"
import events from "../data/events.json"
import allProjects from "../data/projects.json"
import IconDiscord from "../icons/IconDiscord"
import IconTelegram from "../icons/IconTelegram"
import HRoadmap from "@/components/HRoadmap"
import VRoadmap from "@/components/VRoadmap"
@@ -243,9 +243,9 @@ export default function Home() {
Ask questions, suggest ideas, stay up-to-date, and meet other people building privacy
applications with Zero Knowledge.
</Text>
<Link href="https://semaphore.pse.dev/discord" isExternal>
<Button leftIcon={<IconDiscord />} size="lg">
Discord
<Link href="https://semaphore.pse.dev/telegram" isExternal>
<Button leftIcon={<IconTelegram />} size="lg">
Telegram
</Button>
</Link>
</VStack>

View File

@@ -2,7 +2,7 @@ import { Divider, Heading, HStack, Link, Stack, Text, VStack } from "@chakra-ui/
import Image from "next/image"
import NextLink from "next/link"
import IconArrowUpRight from "../icons/IconArrowUpRight"
import IconDiscord from "../icons/IconDiscord"
import IconTelegram from "../icons/IconTelegram"
import IconThumbsUp from "../icons/IconThumbsUp"
import IconX from "@/icons/IconX"
@@ -59,11 +59,11 @@ export default function Footer() {
<Divider />
<VStack spacing="5">
<HStack spacing="5">
<Link href="https://semaphore.pse.dev/discord" isExternal>
<Link href="https://semaphore.pse.dev/telegram" isExternal>
<HStack>
<IconDiscord boxSize={{ base: "16px", md: "24px" }} />
<IconTelegram boxSize={{ base: "16px", md: "24px" }} />
<Heading fontSize={{ base: "14px", md: "18px" }} fontWeight="normal">
Discord
Telegram
</Heading>
</HStack>
</Link>

View File

@@ -20,7 +20,7 @@ import {
} from "@chakra-ui/react"
import Image from "next/image"
import NextLink from "next/link"
import IconDiscord from "../icons/IconDiscord"
import IconTelegram from "../icons/IconTelegram"
import IconMenu from "../icons/IconMenu"
import IconThumbsUp from "../icons/IconThumbsUp"
import NavbarLinks from "./NavbarLinks"
@@ -71,11 +71,11 @@ export default function Navbar() {
<VStack w="full" justify="center" spacing="5">
<HStack spacing="5">
<Link href="https://semaphore.pse.dev/discord" isExternal>
<Link href="https://semaphore.pse.dev/telegram" isExternal>
<HStack>
<IconDiscord boxSize={{ base: "16px", md: "24px" }} />
<IconTelegram boxSize={{ base: "16px", md: "24px" }} />
<Heading fontSize={{ base: "14px", md: "18px" }} fontWeight="normal">
Discord
Telegram
</Heading>
</HStack>
</Link>

View File

@@ -1,9 +1,9 @@
[
{
"name": "ETHRome",
"date": "Oct 4-6, 2024",
"description": "Semaphore team will deliver an in-person talk and sponsor prizes for the hackathon.",
"link": "https://www.ethrome.org/"
"name": "DIF - Decentralized Identity Foundation",
"date": "Oct 1 - Nov 4, 2024",
"description": "Semaphore team will deliver a talk and sponsor prizes for the online hackathon.",
"link": "https://identity.foundation/"
},
{
"name": "Devcon",

View File

@@ -32,6 +32,16 @@
"website": "https://bandada.pse.dev"
}
},
{
"name": "ZkDemocracy",
"categories": ["Infra", "Data"],
"tagline": "ZkDemocracy is a ready-to-use anonymous voting system based on Semaphore.",
"pse": false,
"icon": "",
"links": {
"github": "https://github.com/TheBojda/zkdemocracy"
}
},
{
"name": "Super Secret ZK Ballot",
"tagline": "A Solidity contract for anonymous voting.",
@@ -115,20 +125,7 @@
"icon": "",
"links": {
"website": "https://explorer.semaphore.pse.dev",
"github": "https://github.com/semaphore-protocol/explorer",
"discord": "https://semaphore.pse.dev/discord"
}
},
{
"name": "Semaphore Discord Bot",
"tagline": "A Discord Bot for Semaphore",
"categories": ["Development"],
"pse": true,
"icon": "",
"links": {
"website": "https://discord.com/api/oauth2/authorize?client_id=1082429985496772628&permissions=1024&scope=bot",
"github": "https://github.com/semaphore-protocol/discord-bot",
"discord": "https://semaphore.pse.dev/discord"
"github": "https://github.com/semaphore-protocol/explorer"
}
},
{

View File

@@ -17,18 +17,18 @@
},
{
"name": "LeanIMT Paper",
"done": false
"done": true
},
{
"name": "Support more Testnets/Mainnets",
"done": true
},
{
"name": "RLN extension",
"done": false
},
{
"name": "Support more Testnets/Mainnets",
"done": false
},
{
"name": "Documentation Revamp",
"name": "Documentation improvements",
"done": false
}
]

View File

@@ -0,0 +1,13 @@
import { Icon, IconProps } from "@chakra-ui/react"
import React from "react"
export default function IconTelegram(props: IconProps): JSX.Element {
return (
<Icon viewBox="0 0 48 48" {...props}>
<path
d="M41.4193 7.30899C41.4193 7.30899 45.3046 5.79399 44.9808 9.47328C44.8729 10.9883 43.9016 16.2908 43.1461 22.0262L40.5559 39.0159C40.5559 39.0159 40.3401 41.5048 38.3974 41.9377C36.4547 42.3705 33.5408 40.4227 33.0011 39.9898C32.5694 39.6652 24.9068 34.7955 22.2086 32.4148C21.4531 31.7655 20.5897 30.4669 22.3165 28.9519L33.6487 18.1305C34.9438 16.8319 36.2389 13.8019 30.8426 17.4812L15.7331 27.7616C15.7331 27.7616 14.0063 28.8437 10.7686 27.8698L3.75342 25.7055C3.75342 25.7055 1.16321 24.0823 5.58815 22.459C16.3807 17.3729 29.6555 12.1786 41.4193 7.30899Z"
fill="currentColor"
/>
</Icon>
)
}

View File

@@ -23,12 +23,12 @@
"format": "concurrently -c auto -g -n prettier,embark \"prettier -c .\" \"yarn workspace semaphore-docs format\"",
"format:write": "concurrently -c auto -g -n prettier,embark \"prettier -w .\" \"yarn workspace semaphore-docs format:write\"",
"docs": "typedoc",
"version:bump": "yarn workspaces foreach -A --no-private version -d ${0} && yarn version apply --all && yarn remove:stable-version-field && NO_HOOK=1 git commit -am \"chore: v${0}\" && git tag v${0}",
"version:publish": "yarn build:libraries && yarn clean:cli-templates && yarn workspaces foreach -A --no-private npm publish --tolerate-republish --access public",
"version:bump": "scripts/version.ts ${0}",
"version:publish": "scripts/publish.ts",
"version:release": "changelogithub",
"clean": "ts-node scripts/clean-apps.ts && ts-node scripts/clean-packages.ts && yarn clean:cli-templates && rimraf node_modules",
"clean:cli-templates": "ts-node scripts/clean-cli-templates.ts",
"remove:stable-version-field": "ts-node scripts/remove-stable-version-field.ts && yarn format:write",
"clean": "scripts/clean-apps.ts && scripts/clean-packages.ts && yarn clean:cli-templates && rimraf node_modules",
"clean:cli-templates": "scripts/clean-cli-templates.ts",
"remove:stable-version-field": "scripts/remove-stable-version-field.ts && yarn format:write",
"precommit": "lint-staged",
"postinstall": "husky && git config --local core.editor cat"
},
@@ -57,6 +57,7 @@
"@types/glob": "^7.2.0",
"@types/jest": "^29.5.12",
"@types/node": "^20",
"@types/semver": "^7",
"@typescript-eslint/eslint-plugin": "^7.0.2",
"@typescript-eslint/parser": "^7.0.2",
"changelogithub": "0.12.7",
@@ -78,6 +79,7 @@
"lint-staged": "^15.2.2",
"prettier": "^3.2.5",
"rimraf": "^5.0.5",
"semver": "^7.6.2",
"snarkjs": "0.7.4",
"ts-jest": "^29.1.2",
"ts-node": "^10.9.2",

View File

@@ -34,7 +34,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/circuits",
"version": "4.0.3",
"version": "4.4.0",
"description": "Semaphore Circom circuits to generate zero-knowledge proofs.",
"license": "MIT",
"files": [
@@ -30,9 +30,9 @@
"devDependencies": {
"@semaphore-protocol/core": "workspace:^",
"@types/mocha": "^10.0.6",
"@zk-kit/baby-jubjub": "1.0.1",
"circomkit": "^0.0.19",
"@zk-kit/baby-jubjub": "1.0.3",
"circomkit": "0.0.19",
"mocha": "^10.2.0",
"poseidon-lite": "^0.2.0"
"poseidon-lite": "^0.3.0"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/cli-template-contracts-hardhat",
"version": "4.0.3",
"version": "4.4.0",
"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.0.3",
"@semaphore-protocol/hardhat": "4.0.3",
"@semaphore-protocol/utils": "4.0.3",
"@semaphore-protocol/core": "4.4.0",
"@semaphore-protocol/hardhat": "4.4.0",
"@semaphore-protocol/utils": "4.4.0",
"@typechain/ethers-v6": "^0.5.0",
"@typechain/hardhat": "^9.0.0",
"@types/chai": "^4.2.0",
@@ -71,7 +71,7 @@
"typescript": "^5.3.3"
},
"dependencies": {
"@semaphore-protocol/contracts": "4.0.3"
"@semaphore-protocol/contracts": "4.4.0"
},
"packageManager": "yarn@4.1.0"
}

View File

@@ -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.0.3",
"@semaphore-protocol/hardhat": "4.0.3",
"@semaphore-protocol/utils": "4.0.3",
"@semaphore-protocol/core": "4.4.0",
"@semaphore-protocol/hardhat": "4.4.0",
"@semaphore-protocol/utils": "4.4.0",
"@typechain/ethers-v6": "^0.5.0",
"@typechain/hardhat": "^9.0.0",
"@types/chai": "^4.2.0",
@@ -50,7 +50,7 @@
"typescript": "^5.3.3"
},
"dependencies": {
"@semaphore-protocol/contracts": "4.0.3"
"@semaphore-protocol/contracts": "4.4.0"
},
"packageManager": "yarn@4.1.0"
}

View File

@@ -9,9 +9,9 @@
"lint": "next lint"
},
"dependencies": {
"@semaphore-protocol/core": "4.0.3",
"@semaphore-protocol/data": "4.0.3",
"@semaphore-protocol/utils": "4.0.3",
"@semaphore-protocol/core": "4.4.0",
"@semaphore-protocol/data": "4.4.0",
"@semaphore-protocol/utils": "4.4.0",
"ethers": "^6.11.1",
"next": "14.1.0",
"next-pwa": "^5.6.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/cli-template-monorepo-ethers",
"version": "4.0.3",
"version": "4.4.0",
"description": "Semaphore Hardhat + Next.js + SemaphoreEthers template.",
"license": "Unlicense",
"files": [

View File

@@ -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.0.3",
"@semaphore-protocol/hardhat": "4.0.3",
"@semaphore-protocol/utils": "4.0.3",
"@semaphore-protocol/core": "4.4.0",
"@semaphore-protocol/hardhat": "4.4.0",
"@semaphore-protocol/utils": "4.4.0",
"@typechain/ethers-v6": "^0.5.0",
"@typechain/hardhat": "^9.0.0",
"@types/chai": "^4.2.0",
@@ -50,7 +50,7 @@
"typescript": "^5.3.3"
},
"dependencies": {
"@semaphore-protocol/contracts": "4.0.3"
"@semaphore-protocol/contracts": "4.4.0"
},
"packageManager": "yarn@4.1.0"
}

View File

@@ -9,9 +9,9 @@
"lint": "next lint"
},
"dependencies": {
"@semaphore-protocol/core": "4.0.3",
"@semaphore-protocol/data": "4.0.3",
"@semaphore-protocol/utils": "4.0.3",
"@semaphore-protocol/core": "4.4.0",
"@semaphore-protocol/data": "4.4.0",
"@semaphore-protocol/utils": "4.4.0",
"ethers": "^6.11.1",
"next": "14.1.0",
"next-pwa": "^5.6.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/cli-template-monorepo-subgraph",
"version": "4.0.3",
"version": "4.4.0",
"description": "Semaphore Hardhat + Next.js + SemaphoreSubgraph template.",
"license": "Unlicense",
"files": [

View File

@@ -40,7 +40,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,7 +1,7 @@
{
"name": "@semaphore-protocol/cli",
"type": "module",
"version": "4.0.3",
"version": "4.4.0",
"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.0.3",
"@semaphore-protocol/utils": "4.0.3",
"@semaphore-protocol/data": "4.4.0",
"@semaphore-protocol/utils": "4.4.0",
"axios": "^1.6.7",
"boxen": "^7.1.1",
"chalk": "^5.3.0",

View File

@@ -34,7 +34,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/contracts",
"version": "4.0.3",
"version": "4.4.0",
"description": "Semaphore contracts to manage groups and broadcast anonymous signals.",
"license": "MIT",
"files": [

View File

@@ -48,6 +48,22 @@ const hardhatConfig: HardhatUserConfig = {
apiURL: "https://api-sepolia-optimistic.etherscan.io/api",
browserURL: "https://sepolia-optimistic.etherscan.io"
}
},
{
network: "linea-sepolia",
chainId: 59141,
urls: {
apiURL: "https://api-sepolia.lineascan.build/api",
browserURL: "https://sepolia.lineascan.build"
}
},
{
network: "linea",
chainId: 59144,
urls: {
apiURL: "https://api.lineascan.build/api",
browserURL: "https://lineascan.build"
}
}
]
},

View File

@@ -3,7 +3,7 @@
"private": true,
"scripts": {
"start": "hardhat node",
"copy:abi": "ncp artifacts/contracts/Semaphore.sol/Semaphore.json ../utils/src/semaphore-abi.json",
"copy:abi": "ncp artifacts/contracts/Semaphore.sol/Semaphore.json ../utils/src/semaphore-interface.json",
"compile": "hardhat compile",
"deploy": "hardhat deploy",
"verify": "hardhat run scripts/verify-contracts.ts",

View File

@@ -40,7 +40,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/core",
"version": "4.0.3",
"version": "4.4.0",
"description": "Core library for the essential Semaphore features.",
"type": "module",
"license": "MIT",
@@ -42,8 +42,8 @@
"access": "public"
},
"dependencies": {
"@semaphore-protocol/group": "4.0.3",
"@semaphore-protocol/identity": "4.0.3",
"@semaphore-protocol/proof": "4.0.3"
"@semaphore-protocol/group": "4.4.0",
"@semaphore-protocol/identity": "4.4.0",
"@semaphore-protocol/proof": "4.4.0"
}
}

View File

@@ -43,7 +43,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/data",
"version": "4.0.3",
"version": "4.4.0",
"description": "A library for querying Semaphore smart contract.",
"type": "module",
"license": "MIT",
@@ -37,7 +37,7 @@
"rollup-plugin-cleanup": "^3.2.1"
},
"dependencies": {
"@semaphore-protocol/utils": "4.0.3",
"@semaphore-protocol/utils": "4.4.0",
"axios": "1.6.6",
"ethers": "6.11.0"
}

View File

@@ -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.0.0-beta.17`
return `https://api.studio.thegraph.com/query/14377/semaphore-${supportedNetwork}/v4.0.0`
}

View File

@@ -1,761 +0,0 @@
[
{
"inputs": [
{
"internalType": "contract ISemaphoreVerifier",
"name": "_verifier",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "LeafAlreadyExists",
"type": "error"
},
{
"inputs": [],
"name": "LeafCannotBeZero",
"type": "error"
},
{
"inputs": [],
"name": "LeafDoesNotExist",
"type": "error"
},
{
"inputs": [],
"name": "LeafGreaterThanSnarkScalarField",
"type": "error"
},
{
"inputs": [],
"name": "Semaphore__CallerIsNotTheGroupAdmin",
"type": "error"
},
{
"inputs": [],
"name": "Semaphore__GroupDoesNotExist",
"type": "error"
},
{
"inputs": [],
"name": "Semaphore__GroupHasNoMembers",
"type": "error"
},
{
"inputs": [],
"name": "Semaphore__InvalidProof",
"type": "error"
},
{
"inputs": [],
"name": "Semaphore__MerkleTreeDepthIsNotSupported",
"type": "error"
},
{
"inputs": [],
"name": "Semaphore__MerkleTreeRootIsExpired",
"type": "error"
},
{
"inputs": [],
"name": "Semaphore__MerkleTreeRootIsNotPartOfTheGroup",
"type": "error"
},
{
"inputs": [],
"name": "Semaphore__YouAreUsingTheSameNullifierTwice",
"type": "error"
},
{
"inputs": [],
"name": "WrongSiblingNodes",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "oldAdmin",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "GroupAdminUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "GroupCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "oldMerkleTreeDuration",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newMerkleTreeDuration",
"type": "uint256"
}
],
"name": "GroupMerkleTreeDurationUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "index",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "identityCommitment",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "merkleTreeRoot",
"type": "uint256"
}
],
"name": "MemberAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "index",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "identityCommitment",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "merkleTreeRoot",
"type": "uint256"
}
],
"name": "MemberRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "index",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "identityCommitment",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newIdentityCommitment",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "merkleTreeRoot",
"type": "uint256"
}
],
"name": "MemberUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "startIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "identityCommitments",
"type": "uint256[]"
},
{
"indexed": false,
"internalType": "uint256",
"name": "merkleTreeRoot",
"type": "uint256"
}
],
"name": "MembersAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "merkleTreeDepth",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint256",
"name": "merkleTreeRoot",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "nullifier",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "message",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint256",
"name": "scope",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256[8]",
"name": "points",
"type": "uint256[8]"
}
],
"name": "ProofValidated",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "identityCommitment",
"type": "uint256"
}
],
"name": "addMember",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "identityCommitments",
"type": "uint256[]"
}
],
"name": "addMembers",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "uint256",
"name": "merkleTreeDuration",
"type": "uint256"
}
],
"name": "createGroup",
"outputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"name": "createGroup",
"outputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "getGroupAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "getMerkleTreeDepth",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "getMerkleTreeRoot",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "getMerkleTreeSize",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "groupCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "groups",
"outputs": [
{
"internalType": "uint256",
"name": "merkleTreeDuration",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "identityCommitment",
"type": "uint256"
}
],
"name": "hasMember",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "identityCommitment",
"type": "uint256"
}
],
"name": "indexOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "identityCommitment",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "merkleProofSiblings",
"type": "uint256[]"
}
],
"name": "removeMember",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "updateGroupAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newMerkleTreeDuration",
"type": "uint256"
}
],
"name": "updateGroupMerkleTreeDuration",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "identityCommitment",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newIdentityCommitment",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "merkleProofSiblings",
"type": "uint256[]"
}
],
"name": "updateMember",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"components": [
{
"internalType": "uint256",
"name": "merkleTreeDepth",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "merkleTreeRoot",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "nullifier",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "message",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "scope",
"type": "uint256"
},
{
"internalType": "uint256[8]",
"name": "points",
"type": "uint256[8]"
}
],
"internalType": "struct ISemaphore.SemaphoreProof",
"name": "proof",
"type": "tuple"
}
],
"name": "validateProof",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "verifier",
"outputs": [
{
"internalType": "contract ISemaphoreVerifier",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"components": [
{
"internalType": "uint256",
"name": "merkleTreeDepth",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "merkleTreeRoot",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "nullifier",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "message",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "scope",
"type": "uint256"
},
{
"internalType": "uint256[8]",
"name": "points",
"type": "uint256[8]"
}
],
"internalType": "struct ISemaphore.SemaphoreProof",
"name": "proof",
"type": "tuple"
}
],
"name": "verifyProof",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
]

View File

@@ -7,6 +7,10 @@ export type EthersNetwork =
| "arbitrum-sepolia"
| "optimism"
| "optimism-sepolia"
| "base"
| "base-sepolia"
| "linea"
| "linea-sepolia"
export type GroupOptions = {
members?: boolean

View File

@@ -43,7 +43,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/group",
"version": "4.0.3",
"version": "4.4.0",
"description": "A library to create and manage Semaphore groups.",
"type": "module",
"license": "MIT",
@@ -30,16 +30,14 @@
"access": "public"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-typescript": "^11.1.6",
"poseidon-lite": "^0.2.0",
"rimraf": "^5.0.5",
"rollup": "^4.12.0",
"rollup-plugin-cleanup": "^3.2.1"
},
"dependencies": {
"@zk-kit/lean-imt": "2.1.0",
"@zk-kit/utils": "1.0.0"
"@zk-kit/lean-imt": "2.2.1",
"@zk-kit/utils": "1.2.1",
"poseidon-lite": "0.3.0"
}
}

View File

@@ -1,5 +1,3 @@
import commonjs from "@rollup/plugin-commonjs"
import { nodeResolve } from "@rollup/plugin-node-resolve"
import typescript from "@rollup/plugin-typescript"
import * as fs from "fs"
import cleanup from "rollup-plugin-cleanup"
@@ -20,13 +18,11 @@ export default {
{ file: pkg.exports.require, format: "cjs", banner, exports: "auto" },
{ file: pkg.exports.default, format: "es", banner }
],
external: Object.keys(pkg.dependencies),
external: [...Object.keys(pkg.dependencies), "poseidon-lite/poseidon2"],
plugins: [
typescript({
tsconfig: "./build.tsconfig.json"
}),
commonjs(),
nodeResolve(),
cleanup({ comments: "jsdoc" })
]
}

View File

@@ -40,7 +40,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/hardhat",
"version": "4.0.3",
"version": "4.4.0",
"description": "A Hardhat plugin to deploy Semaphore contracts.",
"type": "module",
"license": "MIT",
@@ -41,7 +41,7 @@
},
"dependencies": {
"@nomicfoundation/hardhat-ethers": "^3.0.0",
"@semaphore-protocol/contracts": "4.0.3",
"@semaphore-protocol/contracts": "4.4.0",
"ethers": "^6.4.0",
"hardhat-dependency-compiler": "^1.1.3"
}

View File

@@ -43,7 +43,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/identity",
"version": "4.0.3",
"version": "4.4.0",
"description": "A library to create Semaphore identities.",
"type": "module",
"license": "MIT",
@@ -31,17 +31,15 @@
},
"devDependencies": {
"@rollup/plugin-alias": "^5.1.0",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-typescript": "^11.1.6",
"rimraf": "^5.0.5",
"rollup": "^4.12.0",
"rollup-plugin-cleanup": "^3.2.1"
},
"dependencies": {
"@zk-kit/baby-jubjub": "1.0.1",
"@zk-kit/eddsa-poseidon": "1.0.2",
"@zk-kit/utils": "1.2.0",
"poseidon-lite": "0.2.0"
"@zk-kit/baby-jubjub": "1.0.3",
"@zk-kit/eddsa-poseidon": "1.0.4",
"@zk-kit/utils": "1.2.1",
"poseidon-lite": "0.3.0"
}
}

View File

@@ -1,5 +1,3 @@
import commonjs from "@rollup/plugin-commonjs"
import { nodeResolve } from "@rollup/plugin-node-resolve"
import typescript from "@rollup/plugin-typescript"
import * as fs from "fs"
import cleanup from "rollup-plugin-cleanup"
@@ -20,13 +18,16 @@ export default {
{ file: pkg.exports.require, format: "cjs", banner, exports: "auto" },
{ file: pkg.exports.default, format: "es", banner }
],
external: Object.keys(pkg.dependencies),
external: [
...Object.keys(pkg.dependencies),
"poseidon-lite/poseidon2",
"@zk-kit/utils/type-checks",
"@zk-kit/utils/conversions"
],
plugins: [
typescript({
tsconfig: "./build.tsconfig.json"
}),
commonjs(),
nodeResolve({ preferBuiltins: false }),
cleanup({ comments: "jsdoc" })
]
}

View File

@@ -138,4 +138,20 @@ export class Identity {
static verifySignature(message: BigNumberish, signature: Signature, publicKey: Point): boolean {
return verifySignature(message, signature, publicKey)
}
/**
* Generates the commitment from the given public key.
* This static method is particularly useful after signature verification,
* as it allows retrieval of the corresponding commitment associated with the public key.
*
* @example
* const identity = new Identity()
* Identity.generateCommitment(identity.publicKey)
*
* @param publicKey The public key to generate the commitment.
* @returns The Semaphore identity commitment.
*/
static generateCommitment(publicKey: Point): bigint {
return poseidon2(publicKey)
}
}

View File

@@ -138,4 +138,14 @@ describe("Identity", () => {
expect(Identity.verifySignature("message", signature, identity.publicKey)).toBeTruthy()
})
})
describe("# generateCommitment", () => {
it("Should generate the identity commitment from the public key", () => {
const identity = new Identity(privateKeyText)
const commitment = Identity.generateCommitment(identity.publicKey)
expect(identity.commitment).toBe(commitment)
})
})
})

View File

@@ -43,7 +43,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/proof",
"version": "4.0.3",
"version": "4.4.0",
"description": "A library to generate and verify Semaphore proofs.",
"type": "module",
"license": "MIT",
@@ -42,19 +42,18 @@
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-typescript": "^11.1.6",
"@types/snarkjs": "^0",
"poseidon-lite": "^0.2.0",
"rimraf": "^5.0.5",
"rollup": "^4.12.0",
"rollup-plugin-cleanup": "^3.2.1"
},
"peerDependencies": {
"@semaphore-protocol/group": "4.0.3",
"@semaphore-protocol/identity": "4.0.3"
"@semaphore-protocol/group": "4.4.0",
"@semaphore-protocol/identity": "4.4.0"
},
"dependencies": {
"@semaphore-protocol/utils": "4.0.3",
"@semaphore-protocol/utils": "4.4.0",
"@zk-kit/artifacts": "1.8.0",
"@zk-kit/utils": "1.0.0",
"@zk-kit/utils": "1.2.1",
"ethers": "6.10.0",
"snarkjs": "0.7.4"
}

View File

@@ -43,7 +43,7 @@
🔎 Issues
</a>
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
<a href="https://semaphore.pse.dev/discord">
<a href="https://semaphore.pse.dev/telegram">
🗣️ Chat &amp; Support
</a>
</h4>

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/utils",
"version": "4.0.3",
"version": "4.4.0",
"description": "A library to provide utility functions to the other Semaphore packages.",
"type": "module",
"license": "MIT",

View File

@@ -78,5 +78,145 @@
"startBlock": 9636193
}
]
},
{
"network": "arbitrum",
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
"startBlock": 258951463
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 258951463
},
{
"name": "Semaphore",
"address": "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
"startBlock": 258951463
}
]
},
{
"network": "matic",
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
"startBlock": 62466952
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 62466952
},
{
"name": "Semaphore",
"address": "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
"startBlock": 62466952
}
]
},
{
"network": "optimism",
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
"startBlock": 126057798
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 126057798
},
{
"name": "Semaphore",
"address": "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
"startBlock": 126057798
}
]
},
{
"network": "base-sepolia",
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
"startBlock": 16008294
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 16008294
},
{
"name": "Semaphore",
"address": "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
"startBlock": 16008294
}
]
},
{
"network": "linea-sepolia",
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
"startBlock": 3928632
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 3928632
},
{
"name": "Semaphore",
"address": "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
"startBlock": 3928632
}
]
},
{
"network": "base",
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
"startBlock": 20553357
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 20553357
},
{
"name": "Semaphore",
"address": "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
"startBlock": 20553357
}
]
},
{
"network": "linea",
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
"startBlock": 10235849
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 10235849
},
{
"name": "Semaphore",
"address": "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
"startBlock": 10235849
}
]
}
]

View File

@@ -11,16 +11,58 @@ export default {
chainId: 421614,
explorer: "https://sepolia.arbiscan.io"
},
arbitrum: {
name: "Arbitrum",
url: "https://arb1.arbitrum.io/rpc",
chainId: 42161,
explorer: "https://arbiscan.io"
},
"optimism-sepolia": {
name: "Optimism Sepolia",
url: "https://sepolia.optimism.io",
chainId: 11155420,
explorer: "https://sepolia-optimism.etherscan.io"
},
optimism: {
name: "Optimism",
url: "https://mainnet.optimism.io ",
chainId: 10,
explorer: "https://optimistic.etherscan.io"
},
"matic-amoy": {
name: "Matic Amoy",
url: "https://rpc-amoy.polygon.technology",
chainId: 80002,
explorer: "https://amoy.polygonscan.com"
},
matic: {
name: "Matic",
url: "https://polygon-rpc.com",
chainId: 137,
explorer: "https://polygonscan.com"
},
"base-sepolia": {
name: "Base Sepolia",
url: "https://sepolia.base.org",
chainId: 84532,
explorer: "https://sepolia.basescan.org"
},
base: {
name: "Base",
url: "https://mainnet.base.org",
chainId: 8453,
explorer: "https://basescan.org"
},
"linea-sepolia": {
name: "Linea Sepolia",
url: "https://rpc.sepolia.linea.build",
chainId: 59141,
explorer: "https://sepolia.lineascan.build"
},
linea: {
name: "Linea",
url: "https://rpc.linea.build",
chainId: 59144,
explorer: "https://lineascan.build"
}
}

File diff suppressed because one or more lines are too long

1
scripts/clean-apps.ts Normal file → Executable file
View File

@@ -1,3 +1,4 @@
#!node_modules/.bin/ts-node
import { readdirSync, rmSync } from "fs"
const folderName = "apps"

1
scripts/clean-cli-templates.ts Normal file → Executable file
View File

@@ -1,3 +1,4 @@
#!node_modules/.bin/ts-node
import { rmSync } from "fs"
const folderName = "packages"

1
scripts/clean-packages.ts Normal file → Executable file
View File

@@ -1,3 +1,4 @@
#!node_modules/.bin/ts-node
import { readdirSync, rmSync } from "fs"
const folderName = "packages"

37
scripts/publish.ts Executable file
View File

@@ -0,0 +1,37 @@
#!node_modules/.bin/ts-node
import compare from "semver/functions/compare"
import { execSync } from "child_process"
import contractsPkgJson from "@semaphore-protocol/contracts/package.json"
const { version: contractsLocalVersion } = contractsPkgJson
async function maybePushToSoldeer() {
// api not documented, may change, found by inspecting the network tab
const response = await fetch(
"https://api.soldeer.xyz/api/v1/revision?project_name=semaphore-protocol-contracts&limit=1"
)
const { data, status } = await response.json()
// fail status if no version published at all yet
if (status === "fail" || compare(contractsLocalVersion, data[0].version) === 1)
execSync(`soldeer push semaphore-protocol-contracts~${contractsLocalVersion} packages/contracts/contracts`, {
stdio: "inherit"
})
}
async function main() {
execSync(`yarn build:libraries`, { stdio: "inherit" })
execSync(`yarn clean:cli-templates`)
execSync(`yarn workspaces foreach -A --no-private npm publish --tolerate-republish --access public`, {
stdio: "inherit"
})
await maybePushToSoldeer()
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error)
process.exit(1)
})

11
scripts/remove-stable-version-field.ts Normal file → Executable file
View File

@@ -1,3 +1,4 @@
#!node_modules/.bin/ts-node
import { readFileSync, readdirSync, writeFileSync } from "node:fs"
const folderName = "packages"
@@ -19,9 +20,7 @@ async function main() {
}
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error)
process.exit(1)
})
main().catch((error) => {
console.error(error)
process.exit(1)
})

25
scripts/version.ts Executable file
View File

@@ -0,0 +1,25 @@
#!node_modules/.bin/ts-node
import { execSync } from "child_process"
async function main() {
const version = process.argv[2]
// Perform the workspaces version update
execSync(`yarn workspaces foreach -A --no-private version -d ${version}`, { stdio: "inherit" })
// Apply the versions
execSync("yarn version apply --all", { stdio: "inherit" })
await import("./remove-stable-version-field")
execSync("yarn format:write")
execSync(`NO_HOOK=1 git commit -am 'chore: v${version}'`)
execSync(`git tag v${version}`)
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error)
process.exit(1)
})

277
yarn.lock
View File

@@ -4861,7 +4861,7 @@ __metadata:
languageName: node
linkType: hard
"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15":
"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14":
version: 1.4.15
resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
checksum: 10/89960ac087781b961ad918978975bcdf2051cd1741880469783c42de64239703eab9db5230d776d8e6a09d73bb5e4cb964e07d93ee6e2e7aea5a7d726e865c09
@@ -5389,8 +5389,8 @@ __metadata:
linkType: hard
"@nomicfoundation/hardhat-verify@npm:^2.0.8":
version: 2.0.8
resolution: "@nomicfoundation/hardhat-verify@npm:2.0.8"
version: 2.0.11
resolution: "@nomicfoundation/hardhat-verify@npm:2.0.11"
dependencies:
"@ethersproject/abi": "npm:^5.1.2"
"@ethersproject/address": "npm:^5.0.2"
@@ -5403,7 +5403,7 @@ __metadata:
undici: "npm:^5.14.0"
peerDependencies:
hardhat: ^2.0.4
checksum: 10/f49d6615a45d063e8d361ea2029c80c351d4377925de6c229095619384353d3fa9463751beceae0d6ceaf26f60a99797a19abd16ae22258fba37aee26ee5576e
checksum: 10/edad30efeb0ab7c26fd0c5fd3f1d161733d51276435f77d9c58edaa4307171be40e8c65a24a8fb11481e1032e4eb72ac99cd11c6eaa0bbfabb493455e387e2e9
languageName: node
linkType: hard
@@ -5948,25 +5948,6 @@ __metadata:
languageName: node
linkType: hard
"@rollup/plugin-commonjs@npm:^25.0.7":
version: 25.0.7
resolution: "@rollup/plugin-commonjs@npm:25.0.7"
dependencies:
"@rollup/pluginutils": "npm:^5.0.1"
commondir: "npm:^1.0.1"
estree-walker: "npm:^2.0.2"
glob: "npm:^8.0.3"
is-reference: "npm:1.2.1"
magic-string: "npm:^0.30.3"
peerDependencies:
rollup: ^2.68.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
checksum: 10/89b108e245d1af6e7878ac949bfcd44e48f7d0c1eda0cb0b7e89c231ae73de455ffe2ac65eb03a398da4e8c300ce404f997fe66f8dde3d4d4794ffd2c1241fc3
languageName: node
linkType: hard
"@rollup/plugin-json@npm:^6.1.0":
version: 6.1.0
resolution: "@rollup/plugin-json@npm:6.1.0"
@@ -5997,25 +5978,6 @@ __metadata:
languageName: node
linkType: hard
"@rollup/plugin-node-resolve@npm:^15.2.3":
version: 15.2.3
resolution: "@rollup/plugin-node-resolve@npm:15.2.3"
dependencies:
"@rollup/pluginutils": "npm:^5.0.1"
"@types/resolve": "npm:1.20.2"
deepmerge: "npm:^4.2.2"
is-builtin-module: "npm:^3.2.1"
is-module: "npm:^1.0.0"
resolve: "npm:^1.22.1"
peerDependencies:
rollup: ^2.78.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
checksum: 10/d36a6792fbe9d8673d3a7c7dc88920be669ac54fba02ac0093d3c00fc9463fce2e87da1906a2651016742709c3d202b367fb49a62acd0d98f18409343f27b8b4
languageName: node
linkType: hard
"@rollup/plugin-replace@npm:^2.4.1":
version: 2.4.2
resolution: "@rollup/plugin-replace@npm:2.4.2"
@@ -6060,7 +6022,7 @@ __metadata:
languageName: node
linkType: hard
"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.1.0":
"@rollup/pluginutils@npm:^5.1.0":
version: 5.1.0
resolution: "@rollup/pluginutils@npm:5.1.0"
dependencies:
@@ -6250,12 +6212,12 @@ __metadata:
dependencies:
"@semaphore-protocol/core": "workspace:^"
"@types/mocha": "npm:^10.0.6"
"@zk-kit/baby-jubjub": "npm:1.0.1"
"@zk-kit/baby-jubjub": "npm:1.0.3"
"@zk-kit/binary-merkle-root.circom": "npm:1.0.0"
circomkit: "npm:^0.0.19"
circomkit: "npm:0.0.19"
circomlib: "npm:2.0.5"
mocha: "npm:^10.2.0"
poseidon-lite: "npm:^0.2.0"
poseidon-lite: "npm:^0.3.0"
languageName: unknown
linkType: soft
@@ -6268,10 +6230,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.0.3"
"@semaphore-protocol/core": "npm:4.0.3"
"@semaphore-protocol/hardhat": "npm:4.0.3"
"@semaphore-protocol/utils": "npm:4.0.3"
"@semaphore-protocol/contracts": "npm:4.4.0"
"@semaphore-protocol/core": "npm:4.4.0"
"@semaphore-protocol/hardhat": "npm:4.4.0"
"@semaphore-protocol/utils": "npm:4.4.0"
"@typechain/ethers-v6": "npm:^0.5.0"
"@typechain/hardhat": "npm:^9.0.0"
"@types/chai": "npm:^4.2.0"
@@ -6321,8 +6283,8 @@ __metadata:
resolution: "@semaphore-protocol/cli@workspace:packages/cli"
dependencies:
"@rollup/plugin-typescript": "npm:^11.1.6"
"@semaphore-protocol/data": "npm:4.0.3"
"@semaphore-protocol/utils": "npm:4.0.3"
"@semaphore-protocol/data": "npm:4.4.0"
"@semaphore-protocol/utils": "npm:4.4.0"
"@types/figlet": "npm:^1.5.8"
"@types/inquirer": "npm:^9.0.7"
"@types/pacote": "npm:^11.1.8"
@@ -6346,7 +6308,7 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/contracts@npm:4.0.3, @semaphore-protocol/contracts@workspace:packages/contracts/contracts":
"@semaphore-protocol/contracts@npm:4.4.0, @semaphore-protocol/contracts@workspace:packages/contracts/contracts":
version: 0.0.0-use.local
resolution: "@semaphore-protocol/contracts@workspace:packages/contracts/contracts"
dependencies:
@@ -6354,23 +6316,23 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/core@npm:4.0.3, @semaphore-protocol/core@workspace:^, @semaphore-protocol/core@workspace:packages/core":
"@semaphore-protocol/core@npm:4.4.0, @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.0.3"
"@semaphore-protocol/identity": "npm:4.0.3"
"@semaphore-protocol/proof": "npm:4.0.3"
"@semaphore-protocol/group": "npm:4.4.0"
"@semaphore-protocol/identity": "npm:4.4.0"
"@semaphore-protocol/proof": "npm:4.4.0"
languageName: unknown
linkType: soft
"@semaphore-protocol/data@npm:4.0.3, @semaphore-protocol/data@workspace:packages/data":
"@semaphore-protocol/data@npm:4.4.0, @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.0.3"
"@semaphore-protocol/utils": "npm:4.4.0"
axios: "npm:1.6.6"
ethers: "npm:6.11.0"
rimraf: "npm:^5.0.5"
@@ -6379,29 +6341,27 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/group@npm:4.0.3, @semaphore-protocol/group@workspace:packages/group":
"@semaphore-protocol/group@npm:4.4.0, @semaphore-protocol/group@workspace:packages/group":
version: 0.0.0-use.local
resolution: "@semaphore-protocol/group@workspace:packages/group"
dependencies:
"@rollup/plugin-commonjs": "npm:^25.0.7"
"@rollup/plugin-node-resolve": "npm:^15.2.3"
"@rollup/plugin-typescript": "npm:^11.1.6"
"@zk-kit/lean-imt": "npm:2.1.0"
"@zk-kit/utils": "npm:1.0.0"
poseidon-lite: "npm:^0.2.0"
"@zk-kit/lean-imt": "npm:2.2.1"
"@zk-kit/utils": "npm:1.2.1"
poseidon-lite: "npm:0.3.0"
rimraf: "npm:^5.0.5"
rollup: "npm:^4.12.0"
rollup-plugin-cleanup: "npm:^3.2.1"
languageName: unknown
linkType: soft
"@semaphore-protocol/hardhat@npm:4.0.3, @semaphore-protocol/hardhat@workspace:packages/hardhat":
"@semaphore-protocol/hardhat@npm:4.4.0, @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.0.3"
"@semaphore-protocol/contracts": "npm:4.4.0"
ethers: "npm:^6.4.0"
hardhat: "npm:^2.19.4"
hardhat-dependency-compiler: "npm:^1.1.3"
@@ -6413,48 +6373,45 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/identity@npm:4.0.3, @semaphore-protocol/identity@workspace:packages/identity":
"@semaphore-protocol/identity@npm:4.4.0, @semaphore-protocol/identity@workspace:packages/identity":
version: 0.0.0-use.local
resolution: "@semaphore-protocol/identity@workspace:packages/identity"
dependencies:
"@rollup/plugin-alias": "npm:^5.1.0"
"@rollup/plugin-commonjs": "npm:^25.0.7"
"@rollup/plugin-node-resolve": "npm:^15.2.3"
"@rollup/plugin-typescript": "npm:^11.1.6"
"@zk-kit/baby-jubjub": "npm:1.0.1"
"@zk-kit/eddsa-poseidon": "npm:1.0.2"
"@zk-kit/utils": "npm:1.2.0"
poseidon-lite: "npm:0.2.0"
"@zk-kit/baby-jubjub": "npm:1.0.3"
"@zk-kit/eddsa-poseidon": "npm:1.0.4"
"@zk-kit/utils": "npm:1.2.1"
poseidon-lite: "npm:0.3.0"
rimraf: "npm:^5.0.5"
rollup: "npm:^4.12.0"
rollup-plugin-cleanup: "npm:^3.2.1"
languageName: unknown
linkType: soft
"@semaphore-protocol/proof@npm:4.0.3, @semaphore-protocol/proof@workspace:packages/proof":
"@semaphore-protocol/proof@npm:4.4.0, @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.0.3"
"@semaphore-protocol/utils": "npm:4.4.0"
"@types/snarkjs": "npm:^0"
"@zk-kit/artifacts": "npm:1.8.0"
"@zk-kit/utils": "npm:1.0.0"
"@zk-kit/utils": "npm:1.2.1"
ethers: "npm:6.10.0"
poseidon-lite: "npm:^0.2.0"
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.0.3
"@semaphore-protocol/identity": 4.0.3
"@semaphore-protocol/group": 4.4.0
"@semaphore-protocol/identity": 4.4.0
languageName: unknown
linkType: soft
"@semaphore-protocol/utils@npm:4.0.3, @semaphore-protocol/utils@workspace:packages/utils":
"@semaphore-protocol/utils@npm:4.4.0, @semaphore-protocol/utils@workspace:packages/utils":
version: 0.0.0-use.local
resolution: "@semaphore-protocol/utils@workspace:packages/utils"
dependencies:
@@ -7840,13 +7797,6 @@ __metadata:
languageName: node
linkType: hard
"@types/resolve@npm:1.20.2":
version: 1.20.2
resolution: "@types/resolve@npm:1.20.2"
checksum: 10/1bff0d3875e7e1557b6c030c465beca9bf3b1173ebc6937cac547654b0af3bb3ff0f16470e9c4d7c5dc308ad9ac8627c38dbff24ef698b66673ff5bd4ead7f7e
languageName: node
linkType: hard
"@types/retry@npm:0.12.0":
version: 0.12.0
resolution: "@types/retry@npm:0.12.0"
@@ -7872,7 +7822,7 @@ __metadata:
languageName: node
linkType: hard
"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.8":
"@types/semver@npm:^7, @types/semver@npm:^7.3.12, @types/semver@npm:^7.5.8":
version: 7.5.8
resolution: "@types/semver@npm:7.5.8"
checksum: 10/3496808818ddb36deabfe4974fd343a78101fa242c4690044ccdc3b95dcf8785b494f5d628f2f47f38a702f8db9c53c67f47d7818f2be1b79f2efb09692e1178
@@ -8506,12 +8456,12 @@ __metadata:
languageName: node
linkType: hard
"@zk-kit/baby-jubjub@npm:1.0.1":
version: 1.0.1
resolution: "@zk-kit/baby-jubjub@npm:1.0.1"
"@zk-kit/baby-jubjub@npm:1.0.3":
version: 1.0.3
resolution: "@zk-kit/baby-jubjub@npm:1.0.3"
dependencies:
"@zk-kit/utils": "npm:1.0.0"
checksum: 10/d9b97b773351c0524cbac3e4cb5721762865198483ea91ffdc7cd05bc4a7c4f3d1ec0b639a04cdcad4e71c60eed82bb1e32060531e2e7b11df6c1172024e03d1
"@zk-kit/utils": "npm:1.2.1"
checksum: 10/ae64d27f43ed53df15eebfb3468dadc202a587201a711b8716f1b855ea3b83e01e7eb5769eaa5c030979099c353396a0b1bf12dfa9c7575adce402ca64989e12
languageName: node
linkType: hard
@@ -8524,14 +8474,15 @@ __metadata:
languageName: node
linkType: hard
"@zk-kit/eddsa-poseidon@npm:1.0.2":
version: 1.0.2
resolution: "@zk-kit/eddsa-poseidon@npm:1.0.2"
"@zk-kit/eddsa-poseidon@npm:1.0.4":
version: 1.0.4
resolution: "@zk-kit/eddsa-poseidon@npm:1.0.4"
dependencies:
"@zk-kit/baby-jubjub": "npm:1.0.1"
"@zk-kit/utils": "npm:1.0.0"
"@zk-kit/baby-jubjub": "npm:1.0.3"
"@zk-kit/utils": "npm:1.2.1"
buffer: "npm:6.0.3"
checksum: 10/4b4e984a96c5dbc95a8cf36ceb8b3712e37291c1473d01b0e22c15a33311e9cf88c86175d878dacda1852cc905cd2074aaa76defeaed33490be3964ca7a53372
poseidon-lite: "npm:0.3.0"
checksum: 10/f8c9603b8985813ad3ad09130306c529a754fa97f952a50ccf2762227c1e256cfce1c9f2b8bf5ed570d82a443a86ced56ce3f6fc30b57501c5e2a584be8f3b03
languageName: node
linkType: hard
@@ -8544,30 +8495,21 @@ __metadata:
languageName: node
linkType: hard
"@zk-kit/lean-imt@npm:2.1.0":
version: 2.1.0
resolution: "@zk-kit/lean-imt@npm:2.1.0"
"@zk-kit/lean-imt@npm:2.2.1":
version: 2.2.1
resolution: "@zk-kit/lean-imt@npm:2.2.1"
dependencies:
"@zk-kit/utils": "npm:1.2.0"
checksum: 10/897f88204c9ee548a2a977ef1efac8e4c0d2efdf284c88f759fdefd53b2c51a36b536130eb3241e68bd14e5039bcb8d6d788e7fca46fe442cfa3eceeb9c0eddf
"@zk-kit/utils": "npm:1.2.1"
checksum: 10/f57ba0ab15ff38609c352862b21023d370bd250c37c7ef15d4ee7724c8179a7fdd6647ac8a555e6cf523032d1c769fb9eae6de5364a97574224ff7de1a34f8a8
languageName: node
linkType: hard
"@zk-kit/utils@npm:1.0.0":
version: 1.0.0
resolution: "@zk-kit/utils@npm:1.0.0"
"@zk-kit/utils@npm:1.2.1":
version: 1.2.1
resolution: "@zk-kit/utils@npm:1.2.1"
dependencies:
buffer: "npm:^6.0.3"
checksum: 10/a471025ca4c69a825bebf2c68a0d83c55c345c8843f28eeb958f1e2aa549aaa982939c1d6d819dda337601163064f382e450d09103ba4d9a0525281a0a23696b
languageName: node
linkType: hard
"@zk-kit/utils@npm:1.2.0":
version: 1.2.0
resolution: "@zk-kit/utils@npm:1.2.0"
dependencies:
buffer: "npm:^6.0.3"
checksum: 10/4c0b37d64b28a6cc33c901a0c59325b1fe9c31e6519eaefe4aa6028ae9cb85e97f047976942875face030a1835d5c955ea546d7dc4fcf9d35df79192ee2502f3
checksum: 10/05cb209adadad753ae9ca9be7a1664fb4c3259a703f64e8b0af637e5fa4b2a9099c21b80a30df62cfe826b165941e1dfe0e95decde5a4eafd53328692cb0a4b8
languageName: node
linkType: hard
@@ -10034,7 +9976,7 @@ __metadata:
languageName: node
linkType: hard
"builtin-modules@npm:^3.1.0, builtin-modules@npm:^3.3.0":
"builtin-modules@npm:^3.1.0":
version: 3.3.0
resolution: "builtin-modules@npm:3.3.0"
checksum: 10/62e063ab40c0c1efccbfa9ffa31873e4f9d57408cb396a2649981a0ecbce56aabc93c28feaccbc5658c95aab2703ad1d11980e62ec2e5e72637404e1eb60f39e
@@ -10292,7 +10234,7 @@ __metadata:
languageName: node
linkType: hard
"chai@npm:^4.2.0, chai@npm:^4.3.6, chai@npm:^4.3.7":
"chai@npm:^4.2.0, chai@npm:^4.3.6":
version: 4.4.1
resolution: "chai@npm:4.4.1"
dependencies:
@@ -10307,6 +10249,21 @@ __metadata:
languageName: node
linkType: hard
"chai@npm:^4.3.7":
version: 4.5.0
resolution: "chai@npm:4.5.0"
dependencies:
assertion-error: "npm:^1.1.0"
check-error: "npm:^1.0.3"
deep-eql: "npm:^4.1.3"
get-func-name: "npm:^2.0.2"
loupe: "npm:^2.3.6"
pathval: "npm:^1.1.1"
type-detect: "npm:^4.1.0"
checksum: 10/cde341aee15b0a51559c7cfc20788dcfb4d586a498cfb93b937bb568fd45c777b73b1461274be6092b6bf868adb4e3a63f3fec13c89f7d8fb194f84c6fa42d5f
languageName: node
linkType: hard
"chalk@npm:3.0.0":
version: 3.0.0
resolution: "chalk@npm:3.0.0"
@@ -10650,7 +10607,7 @@ __metadata:
languageName: node
linkType: hard
"circomkit@npm:^0.0.19":
"circomkit@npm:0.0.19":
version: 0.0.19
resolution: "circomkit@npm:0.0.19"
dependencies:
@@ -16583,15 +16540,6 @@ __metadata:
languageName: node
linkType: hard
"is-builtin-module@npm:^3.2.1":
version: 3.2.1
resolution: "is-builtin-module@npm:3.2.1"
dependencies:
builtin-modules: "npm:^3.3.0"
checksum: 10/e8f0ffc19a98240bda9c7ada84d846486365af88d14616e737d280d378695c8c448a621dcafc8332dbf0fcd0a17b0763b845400709963fa9151ddffece90ae88
languageName: node
linkType: hard
"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7":
version: 1.2.7
resolution: "is-callable@npm:1.2.7"
@@ -16947,15 +16895,6 @@ __metadata:
languageName: node
linkType: hard
"is-reference@npm:1.2.1":
version: 1.2.1
resolution: "is-reference@npm:1.2.1"
dependencies:
"@types/estree": "npm:*"
checksum: 10/e7b48149f8abda2c10849ea51965904d6a714193d68942ad74e30522231045acf06cbfae5a4be2702fede5d232e61bf50b3183acdc056e6e3afe07fcf4f4b2bc
languageName: node
linkType: hard
"is-reference@npm:^3.0.0":
version: 3.0.2
resolution: "is-reference@npm:3.0.2"
@@ -18723,15 +18662,6 @@ __metadata:
languageName: node
linkType: hard
"magic-string@npm:^0.30.3":
version: 0.30.10
resolution: "magic-string@npm:0.30.10"
dependencies:
"@jridgewell/sourcemap-codec": "npm:^1.4.15"
checksum: 10/9f8bf6363a14c98a9d9f32ef833b194702a5c98fb931b05ac511b76f0b06fd30ed92beda6ca3261d2d52d21e39e891ef1136fbd032023f6cbb02d0b7d5767201
languageName: node
linkType: hard
"make-dir@npm:^1.0.0":
version: 1.3.0
resolution: "make-dir@npm:1.3.0"
@@ -20135,10 +20065,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.0.3"
"@semaphore-protocol/core": "npm:4.0.3"
"@semaphore-protocol/hardhat": "npm:4.0.3"
"@semaphore-protocol/utils": "npm:4.0.3"
"@semaphore-protocol/contracts": "npm:4.4.0"
"@semaphore-protocol/core": "npm:4.4.0"
"@semaphore-protocol/hardhat": "npm:4.4.0"
"@semaphore-protocol/utils": "npm:4.4.0"
"@typechain/ethers-v6": "npm:^0.5.0"
"@typechain/hardhat": "npm:^9.0.0"
"@types/chai": "npm:^4.2.0"
@@ -20171,9 +20101,9 @@ __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.0.3"
"@semaphore-protocol/data": "npm:4.0.3"
"@semaphore-protocol/utils": "npm:4.0.3"
"@semaphore-protocol/core": "npm:4.4.0"
"@semaphore-protocol/data": "npm:4.4.0"
"@semaphore-protocol/utils": "npm:4.4.0"
"@types/node": "npm:^20"
"@types/react": "npm:^18"
"@types/react-dom": "npm:^18"
@@ -20198,10 +20128,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.0.3"
"@semaphore-protocol/core": "npm:4.0.3"
"@semaphore-protocol/hardhat": "npm:4.0.3"
"@semaphore-protocol/utils": "npm:4.0.3"
"@semaphore-protocol/contracts": "npm:4.4.0"
"@semaphore-protocol/core": "npm:4.4.0"
"@semaphore-protocol/hardhat": "npm:4.4.0"
"@semaphore-protocol/utils": "npm:4.4.0"
"@typechain/ethers-v6": "npm:^0.5.0"
"@typechain/hardhat": "npm:^9.0.0"
"@types/chai": "npm:^4.2.0"
@@ -20234,9 +20164,9 @@ __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.0.3"
"@semaphore-protocol/data": "npm:4.0.3"
"@semaphore-protocol/utils": "npm:4.0.3"
"@semaphore-protocol/core": "npm:4.4.0"
"@semaphore-protocol/data": "npm:4.4.0"
"@semaphore-protocol/utils": "npm:4.4.0"
"@types/node": "npm:^20"
"@types/react": "npm:^18"
"@types/react-dom": "npm:^18"
@@ -21824,10 +21754,10 @@ __metadata:
languageName: node
linkType: hard
"poseidon-lite@npm:0.2.0, poseidon-lite@npm:^0.2.0":
version: 0.2.0
resolution: "poseidon-lite@npm:0.2.0"
checksum: 10/63c7668b480ee3d57aaca0eda7e56d563ab2bfcc40bbce0e4bccdc9deed4c0d68255749356e328b622ce8715b1f1ba689fe1a86ca78eb1056a51a18daa252ee1
"poseidon-lite@npm:0.3.0, poseidon-lite@npm:^0.3.0":
version: 0.3.0
resolution: "poseidon-lite@npm:0.3.0"
checksum: 10/1e7294f7fed91e1cdc3aee7bd0380461bfdba74ba34d100c2fc4e3d5434d09af0644f6c889b749b9511fd3867216a1aa6d575f070b716c6756b1f56c0067b71d
languageName: node
linkType: hard
@@ -24650,7 +24580,7 @@ __metadata:
"@docusaurus/preset-classic": "npm:3.1.1"
"@docusaurus/tsconfig": "npm:3.1.1"
"@mdx-js/react": "npm:^3.0.0"
"@semaphore-protocol/utils": "npm:4.0.3"
"@semaphore-protocol/utils": "npm:4.4.0"
"@svgr/webpack": "npm:^5.5.0"
"@types/react": "npm:^18.2.29"
clsx: "npm:^1.2.1"
@@ -24679,6 +24609,7 @@ __metadata:
"@types/glob": "npm:^7.2.0"
"@types/jest": "npm:^29.5.12"
"@types/node": "npm:^20"
"@types/semver": "npm:^7"
"@typescript-eslint/eslint-plugin": "npm:^7.0.2"
"@typescript-eslint/parser": "npm:^7.0.2"
changelogithub: "npm:0.12.7"
@@ -24700,6 +24631,7 @@ __metadata:
lint-staged: "npm:^15.2.2"
prettier: "npm:^3.2.5"
rimraf: "npm:^5.0.5"
semver: "npm:^7.6.2"
snarkjs: "npm:0.7.4"
ts-jest: "npm:^29.1.2"
ts-node: "npm:^10.9.2"
@@ -24715,7 +24647,7 @@ __metadata:
dependencies:
"@graphprotocol/graph-cli": "npm:0.78.0"
"@graphprotocol/graph-ts": "npm:0.35.1"
"@semaphore-protocol/utils": "npm:4.0.3"
"@semaphore-protocol/utils": "workspace:packages/utils"
"@types/mustache": "npm:^4.2.2"
matchstick-as: "npm:0.5.0"
mustache: "npm:^4.2.0"
@@ -24804,7 +24736,7 @@ __metadata:
languageName: node
linkType: hard
"semver@npm:^7.1.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0":
"semver@npm:^7.1.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2":
version: 7.6.2
resolution: "semver@npm:7.6.2"
bin:
@@ -26761,6 +26693,13 @@ __metadata:
languageName: node
linkType: hard
"type-detect@npm:^4.1.0":
version: 4.1.0
resolution: "type-detect@npm:4.1.0"
checksum: 10/e363bf0352427a79301f26a7795a27718624c49c576965076624eb5495d87515030b207217845f7018093adcbe169b2d119bb9b7f1a31a92bfbb1ab9639ca8dd
languageName: node
linkType: hard
"type-fest@npm:^0.16.0":
version: 0.16.0
resolution: "type-fest@npm:0.16.0"