Compare commits

...

31 Commits

Author SHA1 Message Date
Vivian Plasencia
d99c5644c9 fix(website): update nextjs version 2025-12-13 17:11:55 +01:00
Vivian Plasencia
1dc597a175 chore: v4.14.0 2025-10-27 11:21:28 +01:00
Lautaro Di Sanza
b55bf7fd4d feat(data): add semaphore event listeners (#1054)
* feat(data): add semaphore event listeners

add listeners for groups and members

re #326

* feat(data): add semaphore event listeners

add listeners for ProoValidated and GroupAdminUpdated events

re #326

* feat(data): add semaphore event listeners

* feat(data): feat(data): add semaphore event listeners

the onMember method is separated and some names are adjusted

BREAKING CHANGE: N

re #326

* feat(data): feat(data): add semaphore event listeners

the onMember method is separated and some names are adjusted

BREAKING CHANGE: N

re #326

* feat(data): feat(data) add semaphore event listeners

add missing merkleTreeRoot element in onMember events

re #326

* feat(data): feat(data) add semaphore event listeners

fix name listener of GroupAdminUpdated event

re #326

* feat(data): feat(data) add semaphore event listeners

add groupId param to listener onGroupAdminUpdated

re #326

* feat(data): feat(data) add semaphore event listeners

Update method description

re #326

* feat(data): feat(data) add semaphore event listeners

fix descriptions

re #326

* feat(data): feat(data) add semaphore event listeners

Add short descriptions to off listeners methods

re #326
2025-10-24 00:13:58 +02:00
Cristian
496e18ecab fix(scripts): replaced map with foreach func (#1061)
fix: fix(scripts): replaced map with foreach func

re #1056
2025-10-23 12:46:53 +02:00
Vivian Plasencia
d4fb23a7af chore: update roadmap website and license year (#1060)
* chore(website): update roadmap

* chore(website): update license year 2024 -> 2025

re #947
2025-10-23 00:39:16 +02:00
Vivian Plasencia
411667f5c7 Dev (#1059)
* docs(proof): add documentation on terminating the bn128 curve to prevent resource leaks (#998)

* style(proof): format code with prettier

---------

Co-authored-by: VolodymyrBg <aqdrgg19@gmail.com>
2025-10-23 00:23:55 +02:00
bigbear
87709224a3 docs: fix incorrect default value in chunkArray JSDoc (#1038) 2025-10-22 11:14:46 +02:00
Fibonacci747
0e20c6884f docs(identity): correct @returns to bigint for secretScalar and commitment (#1028) 2025-10-22 11:12:23 +02:00
radik878
e1e893004d fix(data/ethers): correct MembersAdded map type to string[] (#1033) 2025-10-22 10:52:09 +02:00
Luciano Lupo
2e6bef51d4 docs(website): added Bring ID data to projects list (#1055)
re #1001
2025-10-22 10:32:30 +02:00
Vivian Plasencia
9e7b2900cf chore: v4.13.2 2025-10-13 10:31:58 +02:00
Vivian Plasencia
cd02f49173 feat: support gnosis-chiado and gnosis networks
re #1051
2025-10-12 21:25:10 -05:00
Vivian Plasencia
a8787bd1fc docs(website): add poll.cc (#1050)
docs(website): add poll.cc to website
2025-10-04 00:13:10 +02:00
Vivian Plasencia
2c6f7846d7 docs: update benachmarks page (#1045)
* docs(docs): update benchmarks page

re #1044

* docs(docs): update browser benchmarks

* docs(docs): update contracts image size

* docs(docs): update solidity benchmark info
2025-09-09 23:54:54 +02:00
Vivian Plasencia
8c359ad594 chore: v4.13.1 2025-09-08 15:02:57 +02:00
Vivian Plasencia
7ccb14d362 feat: deploy contracts (#1041) 2025-09-08 14:13:44 +02:00
Vivian Plasencia
7e60446268 docs: remove trusted setup from docs and website (#1039)
* docs(docs): remove trusted setup announcement from docs

* docs(website): remove trusted setup announcement from website
2025-09-02 15:45:47 +02:00
Vivian Plasencia
5dcba7fb2e chore: v4.13.0 2025-08-27 11:09:58 +02:00
Vivian Plasencia
0394caf2f7 feat: add production semaphore v4 zk artifacts (#1037) 2025-08-27 11:00:09 +02:00
Galoretka
820f34ac90 fix: improve error handling in toBigInt function (#1025)
* fix: improve error handling in toBigInt function

* Update packages/proof/src/to-bigint.ts

Co-authored-by: John Guilding <54913924+JohnGuilding@users.noreply.github.com>

---------

Co-authored-by: John Guilding <54913924+JohnGuilding@users.noreply.github.com>
2025-08-07 14:47:56 +02:00
Micke
81dbf8631c fix: optimize BigInt usage in hash function (#1003) 2025-08-06 23:13:58 +02:00
Vivian Plasencia
4e084b0589 docs(website): add noircon2 presentation video 2025-08-05 18:03:39 -05:00
Vivian Plasencia
210fed4a50 docs: update ceremony end date 2025-08-05 18:01:58 -05:00
Ocenka
53f41879d1 Fix invalid components in Chakra UI (#964)
* Update page.tsx

* Update page.tsx

* Update SectionBlock.tsx

* Update InfoCard.tsx

* Update ProjectsList.tsx

* Update Carousel.tsx

* Update InfoCard.tsx

* Update InfoCard.tsx
2025-08-05 22:26:25 +02:00
Vivian Plasencia
4089bbedc7 docs(docs): update ceremony closing time (#1021) 2025-08-04 23:37:12 +02:00
Vivian Plasencia
6a2b28c34e docs(docs): update deploy contracts command (#1019)
re #1018
2025-07-28 14:21:29 +02:00
Vivian Plasencia
dce9813c8e feat(docs): add trusted setup ceremony to docs (#1016)
* feat(docs): add trusted setup ceremony announcement to banner and new page with contribution steps

re #1014

* docs(docs): update ceremony settings section in trusted-setup file
2025-07-23 10:33:11 -05:00
Vivian Plasencia
aba32d83b1 feat(website): add trusted setup ceremony to website (#1015)
* feat(website): add trusted setup ceremony announcement to banner and events

re #1014

* docs(docs): update trusted setup ceremomy year in events

* docs(website): add exclamation mark to the banner
2025-07-23 10:08:51 -05:00
Vivian Plasencia
520a02698f chore: v4.13.0-beta.1 2025-07-23 14:07:30 +02:00
Vivian Plasencia
128cbcee13 refactor(contracts): update solidity version in contracts (#1013) 2025-07-23 12:55:00 +02:00
Wesley
a224f95d77 docs(docs): add llm setup docs (#993)
* docs(docs): add llm setup docs

* docs(docs): updated llms.txt to v4

updated llms.txt to only include Semaphore v4

---------

Co-authored-by: wslyvh <wslyvh@users.noreply.github.com>
2025-07-23 11:09:06 +02:00
82 changed files with 1254 additions and 571 deletions

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 KiB

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -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.13.0-beta.0",
"@semaphore-protocol/utils": "4.14.0",
"@svgr/webpack": "^5.5.0",
"clsx": "^1.2.1",
"docusaurus-plugin-sass": "^0.2.5",

196
apps/docs/static/llms.txt vendored Normal file
View File

@@ -0,0 +1,196 @@
# Semaphore V4 - llms.txt
> Zero-knowledge protocol for anonymous group membership and signaling
## Quick Reference
### Core Concept
Semaphore allows users to cast messages (votes, endorsements) as provable group members without revealing identity, with built-in double-signaling prevention.
**Key Components:**
- **Identity**: User's cryptographic identity (private key, public key, commitment)
- **Group**: Merkle tree of identity commitments
- **Proof**: Zero-knowledge proof of group membership + message
- **Nullifier**: Unique identifier preventing double-signaling
- **Scope**: Topic/context that limits one proof per user
### Essential Packages
```bash
# Core functionality
npm install @semaphore-protocol/core
# Individual packages
npm install @semaphore-protocol/identity
npm install @semaphore-protocol/group
npm install @semaphore-protocol/proof
npm install @semaphore-protocol/contracts
```
## Common Patterns
### 1. Identity Management
```javascript
import { Identity } from "@semaphore-protocol/identity"
// Random identity
const identity = new Identity()
const { privateKey, publicKey, commitment } = identity
// Deterministic identity (from secret)
const deterministicIdentity = new Identity("secret-value")
// Sign/verify messages
const message = "Hello World"
const signature = identity.signMessage(message)
const isValid = Identity.verifySignature(message, signature, identity.publicKey)
// Export/import
const exported = identity.export() // base64 private key
const imported = Identity.import(exported)
```
### 2. Group Operations
```javascript
import { Group } from "@semaphore-protocol/group"
// Create group
const group = new Group()
const groupWithMembers = new Group([commitment1, commitment2])
// Manage members
group.addMember(identity.commitment)
group.addMembers([commitment1, commitment2])
group.removeMember(0) // sets to 0, doesn't change size
group.updateMember(0, newCommitment)
// Generate Merkle proof
const merkleProof = group.generateMerkleProof(0)
```
### 3. Proof Generation & Verification
```javascript
import { generateProof, verifyProof } from "@semaphore-protocol/proof"
// Generate proof
const scope = group.root // or any unique scope
const message = 1
const proof = await generateProof(identity, group, message, scope)
// Verify proof
const isValid = await verifyProof(proof)
```
### 4. On-Chain Integration
```solidity
// Contract setup
import "@semaphore-protocol/contracts/interfaces/ISemaphore.sol";
contract YourContract {
ISemaphore public semaphore;
uint256 public groupId;
constructor(ISemaphore _semaphore) {
semaphore = _semaphore;
groupId = semaphore.createGroup();
}
// Validate proof on-chain
function validateProof(ISemaphore.SemaphoreProof calldata proof) external {
semaphore.validateProof(groupId, proof);
}
}
```
## Configuration Reference
### Circuit Parameters
- **MAX_DEPTH**: 1-32 (Merkle tree depth)
- **Default proof validity**: 1 hour for old Merkle roots
### Key Security Settings
- **Identity reuse warning**: Same identity across groups compromises all groups
- **Nullifier uniqueness**: Prevents double-signaling within same scope
- **Message tampering**: Circuit calculates dummy square to prevent tampering
## Troubleshooting
### Common Issues
**"Proof verification failed"**
- Check group contains identity commitment
- Verify scope matches between generation and verification
- Ensure Merkle proof is current (within validity window)
**"Nullifier already exists"**
- User already submitted proof with this scope
- Use different scope or implement nullifier tracking
**"Identity commitment not found"**
- Add identity to group before generating proof
- Verify correct group is being used
## Architecture Overview
### Circuit Structure
The Semaphore circuit proves three things:
1. **Membership**: User belongs to group (Merkle proof verification)
2. **Authorization**: Same user created message and proof (nullifier check)
3. **Message integrity**: Message hasn't been tampered with
### Contract Architecture
- **SemaphoreVerifier.sol**: Groth16 proof verification
- **SemaphoreGroups.sol**: Group management (abstract)
- **Semaphore.sol**: Complete implementation with proof validation
## Extended Resources
### 📚 Complete Guides
- [Getting Started Tutorial](https://docs.semaphore.pse.dev/getting-started) - Full project setup with CLI
- [Identities Deep Dive](https://docs.semaphore.pse.dev/guides/identities) - Advanced identity management
- [Groups Management](https://docs.semaphore.pse.dev/guides/groups) - Comprehensive group operations
- [Proof Generation](https://docs.semaphore.pse.dev/guides/proofs) - Detailed proof workflows
### 🔧 Technical References
- [Semaphore V4 Specification](https://github.com/zkspecs/zkspecs/blob/main/specs/3/README.md) - Protocol specification
- [Circuit Documentation](https://docs.semaphore.pse.dev/technical-reference/circuits) - Circuit internals
- [Contract Reference](https://docs.semaphore.pse.dev/technical-reference/contracts) - Solidity implementation details
- [Deployed Contracts](https://docs.semaphore.pse.dev/deployed-contracts) - Network addresses
### 🛠️ Development Tools
- [GitHub Repository](https://github.com/semaphore-protocol/semaphore) - Source code and examples
- [CLI Templates](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli) - Project boilerplates
- [Boilerplate App](https://github.com/semaphore-protocol/boilerplate) - Complete example application
### 🔐 Security & Audits
- [Trusted Setup Ceremony](https://ceremony.pse.dev/projects/Semaphore%20V4%20Ceremony) - 400+ participants, July 2024
- [Security Audits](https://docs.semaphore.pse.dev/#audits) - PSE and Veridise audit reports
- [Best Practices Guide](https://docs.semaphore.pse.dev/) - Security considerations section
### 🌐 Community & Support
- [Documentation](https://docs.semaphore.pse.dev/) - Complete documentation
- [GitHub Discussions](https://github.com/semaphore-protocol/semaphore/discussions) - Community support
- [PSE Website](https://pse.dev/) - Privacy & Scaling Explorations team
### 📊 Data & Indexing
- [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) - On-chain data fetching
- [Subgraph Templates](https://github.com/semaphore-protocol/semaphore/tree/main/packages/cli-template-monorepo-subgraph) - Graph Protocol integration
## Quick Start Commands
```bash
# Create new project
npx @semaphore-protocol/cli create my-app --template monorepo-ethers
# Get on-chain groups
semaphore get-groups --network sepolia
# Deploy contract
yarn deploy --semaphore <address> --group <id> --network sepolia
```
## Use Cases
- **Private Voting**: Anonymous ballots with double-vote prevention
- **Whistleblowing**: Anonymous reporting with verified membership
- **Anonymous DAOs**: Governance without identity disclosure
- **Mixers**: Privacy-preserving value transfers
- **Anonymous Authentication**: Prove membership without revealing identity

View File

@@ -42,13 +42,13 @@ Chip: Apple M2 Pro
Memory (RAM): 16 GB
Operating System: macOS Sequoia version 15.0.1
Operating System: macOS Sequoia version 15.6.1
**Software environment**
Node.js version: 20.18.0
Node.js version: 23.10.0
Browser: Google Chrome Version 130.0.6723.92 (Official Build) (arm64)
Browser: Google Chrome Version 139.0.7258.156 (Official Build) (arm64)
## Running the benchmarks
@@ -60,6 +60,8 @@ GitHub repository to the run Node.js, browser and Circom benchmarks: https://git
GitHub repository to run the Solidity benchmarks: https://github.com/semaphore-protocol/semaphore
Semaphore V3 benchmarks were obtained using the code from the latest v3 Git tag (`v3.15.2`), with the Solidity optimizer enabled.
## Node.js benchmarks
### Identities
@@ -98,6 +100,8 @@ Main functions used in the browser.
## Circuit benchmarks
Tree depth = 20
### Semaphore V3
<img
@@ -119,7 +123,7 @@ style={{ width: '300px', height: 'auto' }}
<img
src={require('../../assets/img-benchmarks/contracts/contract-benchmarks.png').default}
alt="Contract Benchmarks"
style={{ width: '590px', height: 'auto' }}
style={{ width: '560px', height: 'auto' }}
/>
### Semaphore V3 gas report

View File

@@ -1,5 +1,5 @@
---
sidebar_position: 13
sidebar_position: 14
---
# Credits

View File

@@ -1,5 +1,5 @@
---
sidebar_position: 12
sidebar_position: 13
---
# FAQ

View File

@@ -118,7 +118,7 @@ In the project root folder:
2. Go to the `apps/contracts` folder and deploy your contract.
```bash
yarn deploy --semaphore <semaphore-address> --group <group-id> --network sepolia
yarn deploy --semaphore <semaphore-address> --network sepolia
```
:::note

View File

@@ -0,0 +1,55 @@
---
sidebar_position: 11
---
# Code editors and LLM setup
LLMs often rely on outdated or generic information. Use this guide to help set up your code editor to pull in more accurate, up-to-date documentation and examples. It will help provide better answers and generate more accurate Semaphore code using LLMs (large language models) and MCP (Model Context Protocol) servers.
## Quick use
[llms.txt](https://docs.semaphore.pse.dev/llms.txt) is a compact, text version of the Semaphore docs.
Add this link directly to your chat window for enhanced context.
## Permanent setup
Depending on your IDE, you can add custom docs to VS Code, Cursor or others.
Example for Cursor...
1. Press `CMD + Shift + P` (unix), `Ctrl + Shift + P` (Windows)
1. Type `Add new custom docs`.
1. Add https://docs.semaphore.pse.dev/llms.txt
1. In chat you can know `@docs` and choose `semaphore` to provide additional context.
Refer to the documentation of your IDE to properly set it up.
## MCP Server
Depending on your IDE, you can add a MCP server to communicate your docs to the AI model.
- [Context7 MCP server](https://github.com/upstash/context7) is a server that provides many libraries, incl. Semaphore.
Example for Cursor...
1. Press `CMD + Shift + J` (unix), `Ctrl + Shift + J` (Windows)
1. Click on `MCP` on the sidebar
1. Click `Add new global MCP server`
1. Add the following code to `mcp.json`
```
{
"mcpServers": {
"Context7": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
```
You can now prompt anything about Semaphore and write `use context7` at the end of your prompt. E.g. `create a new Semaphore identity in TypeScript. use context`. This will call the MCP tool and automatically fetch the latest documentation.
Refer to the documentation of your IDE to properly set it up.

View File

@@ -1,5 +1,5 @@
---
sidebar_position: 11
sidebar_position: 12
---
import Tabs from "@theme/Tabs"

View File

@@ -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.2.0`.
You can access any subgraph supported by Semaphore with the following URL: `https://api.studio.thegraph.com/query/14377/semaphore-<network-name>/v4.5.0`.
Supported networks:
@@ -59,6 +59,8 @@ Supported networks:
- `linea-sepolia`
- `linea`
- `scroll-sepolia`
- `gnosis-chiado`
- `gnosis`
## 🛠 Install

View File

@@ -14,7 +14,7 @@
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"framer-motion": "^10.16.4",
"next": "13.5.5",
"next": "14.2.35",
"react": "^18",
"react-code-blocks": "^0.1.4",
"react-dom": "^18"

View File

@@ -40,6 +40,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
href="https://github.com/semaphore-protocol/semaphore/releases/tag/v4.0.0"
ml="1"
isExternal
color="primary.500"
>
<b>Semaphore V4</b>
</Link>{" "}

View File

@@ -131,7 +131,7 @@ export default function Home() {
>
1
</Heading>
<VStack align="left">
<VStack align="start">
<Text
fontSize={{ base: "18px", md: "20px" }}
fontFamily={sora.style.fontFamily}
@@ -152,7 +152,7 @@ export default function Home() {
>
3
</Heading>
<VStack align="left">
<VStack align="start">
<Text
fontSize={{ base: "18px", md: "20px" }}
fontFamily={sora.style.fontFamily}
@@ -181,7 +181,7 @@ export default function Home() {
>
2
</Heading>
<VStack align="left">
<VStack align="start">
<Text
fontSize={{ base: "18px", md: "20px" }}
fontFamily={sora.style.fontFamily}
@@ -203,7 +203,7 @@ export default function Home() {
>
4
</Heading>
<VStack align="left">
<VStack align="start">
<Text
fontSize={{ base: "18px", md: "20px" }}
fontFamily={sora.style.fontFamily}
@@ -287,10 +287,10 @@ export default function Home() {
Upcoming Events
</Heading>
<VStack align="left" spacing="10" maxH="600px" overflowY="auto">
<VStack align="start" spacing="10" maxH="600px" overflowY="auto">
{events.map((event) => (
<Link href={event.link} key={event.name} isExternal>
<VStack align="left">
<VStack align="start">
<Heading fontSize={{ base: "20px", md: "24px" }}>
{event.date} | {event.name}
</Heading>

View File

@@ -5,7 +5,7 @@ import ProjectsList from "../../components/ProjectsList"
export default function Projects() {
return (
<>
<VStack pt="170px" pb="56px" w="100%" justify="end" align="left" spacing="40" position="relative">
<VStack pt="170px" pb="56px" w="100%" justify="end" align="start" spacing="40" position="relative">
<Box
zIndex="-1"
top="0"
@@ -25,7 +25,7 @@ export default function Projects() {
/>
</Box>
<VStack align="left" spacing="4" pb="16">
<VStack align="start" spacing="4" pb="16">
<Heading fontSize={{ base: "40px", sm: "46px", md: "72px" }}>Built with Semaphore</Heading>
<Text fontSize={{ base: "16px", sm: "18px", md: "20px" }}>
@@ -35,7 +35,7 @@ export default function Projects() {
</VStack>
</VStack>
<ProjectsList w="100%" align="left" pt="16" spacing="14" />
<ProjectsList w="100%" align="start" pt="16" spacing="14" />
<VStack my="128px">
<ActionCard

View File

@@ -46,7 +46,7 @@ export default function Carousel({ title, sizes, type, ...props }: CarouselProps
}, [index, size])
return (
<VStack align="left" w="full" spacing="16" {...props}>
<VStack align="start" w="full" spacing="16" {...props}>
<HStack justify={type === "projects" ? "center" : "space-between"}>
<Heading fontSize={{ base: "30px", md: "44px" }}>{title}</Heading>

View File

@@ -23,9 +23,9 @@ export default function InfoCard({ texts }: InfoCardProps) {
height={{ base: "auto", md: "474px" }}
>
<CardBody padding="0">
<VStack align="left" spacing="10" maxH="500" overflowY="auto">
<VStack align="start" spacing="10" maxH="500" overflowY="auto">
{texts.map((text) => (
<VStack key={text.title} align="left">
<VStack key={text.title} align="start">
<Heading textAlign="left" fontSize={{ base: "20px", md: "24px" }}>
{text.title}
</Heading>

View File

@@ -52,7 +52,7 @@ export default function ProjectsList(props: any) {
return (
<VStack {...props}>
<VStack align="left" spacing="6">
<VStack align="start" spacing="6">
<Text fontSize="20">Projects created by</Text>
<HStack spacing="4" flexWrap="wrap">
@@ -83,7 +83,7 @@ export default function ProjectsList(props: any) {
</HStack>
</VStack>
<VStack align="left" spacing="6" ref={viewToScrollRef}>
<VStack align="start" spacing="6" ref={viewToScrollRef}>
<Text fontSize="20">Category</Text>
<HStack spacing="3" flexWrap="wrap">
{getProjectCategories(sortedProjects).map((category) => (

View File

@@ -23,7 +23,7 @@ export default function SectionBlock({ title, description, linkText, linkUrl, co
return (
<VStack w="full">
<Flex flexDir={{ base: "column", lg: "row" }} gap="52px" w="full">
<VStack align="left" gap="32px" flex="1">
<VStack align="start" gap="32px" flex="1">
<Text fontSize={{ base: "40px", md: "44px" }} fontWeight={{ base: "400", md: "500" }}>
{title}
</Text>

View File

@@ -586,5 +586,26 @@
"github": "https://github.com/jimmychu0807/semaphore-msa-modules",
"website": "https://semaphore-msa-modules.jimmychu0807.hk"
}
},
{
"name": "Poll.cc",
"categories": ["Voting", "Social"],
"tagline": "Public online voting on social and political issues. Semaphore is used for anonymous voting while proving you're a real human verified by KYC.",
"pse": false,
"icon": "",
"links": {
"website": "https://poll.cc"
}
},
{
"name": "BringID",
"tagline": "Privacy-preserving proof of humanity using verifiable Internet credentials",
"categories": ["Identity", "Authenticity", "Trust"],
"pse": false,
"icon": "",
"links": {
"website": "https://www.bringid.org",
"github": "https://github.com/BringID/whitepaper"
}
}
]

View File

@@ -20,7 +20,7 @@
"done": true
},
{
"name": "Support more Testnets/Mainnets",
"name": "Support more Testnets & Mainnets",
"done": true
},
{
@@ -37,10 +37,14 @@
},
{
"name": "Semaphore Noir Implementation",
"done": false
"done": true
},
{
"name": "Scaling Semaphore with PIR",
"done": true
},
{
"name": "Maintenance",
"done": false
}
]

View File

@@ -126,5 +126,13 @@
"speakers": ["Vivian Plasencia"],
"url": "https://youtu.be/IkYtKSQLR-A",
"thumbnail": "https://img.youtube.com/vi/IkYtKSQLR-A/0.jpg"
},
{
"title": "Scaling Semaphore: Noir in Action",
"eventName": "NoirCon2",
"date": "2025-06-19",
"speakers": ["Vivian Plasencia"],
"url": "https://youtu.be/vfL7z74jGyU",
"thumbnail": "https://img.youtube.com/vi/vfL7z74jGyU/0.jpg"
}
]

View File

@@ -2,7 +2,7 @@
* This function takes an array and divides it into smaller arrays,
* or "chunks", each containing a specified number of elements.
* @param array The array to be split into chunks.
* @param size The size of each chunk. The default size is 10.
* @param size The size of each chunk. The default size is 15.
* @returns An array containing smaller subarrays (chunks), each with a length defined by the size.
*/
export function chunkArray(array: any[], size = 15): any[] {

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/circuits",
"version": "4.13.0-beta.0",
"version": "4.14.0",
"description": "Semaphore Circom circuits to generate zero-knowledge proofs.",
"license": "MIT",
"files": [

View File

@@ -1,10 +1,10 @@
{
"name": "@semaphore-protocol/cli-template-contracts-foundry",
"version": "4.13.0-beta.0",
"version": "4.14.0",
"description": "Semaphore Foundry template.",
"license": "Unlicense",
"devDependencies": {
"@semaphore-protocol/contracts": "4.13.0-beta.0",
"@semaphore-protocol/contracts": "4.14.0",
"@zk-kit/lean-imt.sol": "2.0.1",
"forge-std": "github:foundry-rs/forge-std#v1.9.4",
"poseidon-solidity": "0.0.5",

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/cli-template-contracts-hardhat",
"version": "4.13.0-beta.0",
"version": "4.14.0",
"description": "Semaphore Hardhat template.",
"license": "Unlicense",
"files": [
@@ -42,9 +42,9 @@
"@nomicfoundation/hardhat-network-helpers": "^1.0.0",
"@nomicfoundation/hardhat-toolbox": "^4.0.0",
"@nomicfoundation/hardhat-verify": "^2.0.0",
"@semaphore-protocol/core": "4.13.0-beta.0",
"@semaphore-protocol/hardhat": "4.13.0-beta.0",
"@semaphore-protocol/utils": "4.13.0-beta.0",
"@semaphore-protocol/core": "4.14.0",
"@semaphore-protocol/hardhat": "4.14.0",
"@semaphore-protocol/utils": "4.14.0",
"@typechain/ethers-v6": "^0.5.0",
"@typechain/hardhat": "^9.0.0",
"@types/chai": "^4.2.0",
@@ -72,7 +72,7 @@
"typescript": "^5.3.3"
},
"dependencies": {
"@semaphore-protocol/contracts": "4.13.0-beta.0"
"@semaphore-protocol/contracts": "4.14.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.13.0-beta.0",
"@semaphore-protocol/hardhat": "4.13.0-beta.0",
"@semaphore-protocol/utils": "4.13.0-beta.0",
"@semaphore-protocol/core": "4.14.0",
"@semaphore-protocol/hardhat": "4.14.0",
"@semaphore-protocol/utils": "4.14.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.13.0-beta.0"
"@semaphore-protocol/contracts": "4.14.0"
},
"packageManager": "yarn@4.1.0"
}

View File

@@ -9,9 +9,9 @@
"lint": "next lint"
},
"dependencies": {
"@semaphore-protocol/core": "4.13.0-beta.0",
"@semaphore-protocol/data": "4.13.0-beta.0",
"@semaphore-protocol/utils": "4.13.0-beta.0",
"@semaphore-protocol/core": "4.14.0",
"@semaphore-protocol/data": "4.14.0",
"@semaphore-protocol/utils": "4.14.0",
"ethers": "^6.13.4",
"next": "14.1.0",
"next-pwa": "^5.6.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/cli-template-monorepo-ethers",
"version": "4.13.0-beta.0",
"version": "4.14.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.13.0-beta.0",
"@semaphore-protocol/hardhat": "4.13.0-beta.0",
"@semaphore-protocol/utils": "4.13.0-beta.0",
"@semaphore-protocol/core": "4.14.0",
"@semaphore-protocol/hardhat": "4.14.0",
"@semaphore-protocol/utils": "4.14.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.13.0-beta.0"
"@semaphore-protocol/contracts": "4.14.0"
},
"packageManager": "yarn@4.1.0"
}

View File

@@ -9,9 +9,9 @@
"lint": "next lint"
},
"dependencies": {
"@semaphore-protocol/core": "4.13.0-beta.0",
"@semaphore-protocol/data": "4.13.0-beta.0",
"@semaphore-protocol/utils": "4.13.0-beta.0",
"@semaphore-protocol/core": "4.14.0",
"@semaphore-protocol/data": "4.14.0",
"@semaphore-protocol/utils": "4.14.0",
"ethers": "^6.13.4",
"next": "14.1.0",
"next-pwa": "^5.6.0",

View File

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

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,7 +1,7 @@
{
"name": "@semaphore-protocol/cli",
"type": "module",
"version": "4.13.0-beta.0",
"version": "4.14.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.13.0-beta.0",
"@semaphore-protocol/utils": "4.13.0-beta.0",
"@semaphore-protocol/data": "4.14.0",
"@semaphore-protocol/utils": "4.14.0",
"axios": "^1.6.7",
"boxen": "^7.1.1",
"chalk": "^5.3.0",

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.23 <=0.8.28;
pragma solidity >=0.8.23 <0.9.0;
import {ISemaphore} from "./interfaces/ISemaphore.sol";
import {ISemaphoreVerifier} from "./interfaces/ISemaphoreVerifier.sol";

View File

@@ -10,10 +10,10 @@ library SemaphoreVerifierKeyPts {
// It allows to use the same verifier to verify proofs for all the tree depths supported by Semaphore.
uint256 private constant SET_SIZE = 14;
bytes private constant VK_POINT_BYTES =
hex"223d042d480e6b8aa96ee92c5dc053d7cbac9eeb12b25c7879ef678bc1b67cee"
hex"0411c9a50fe4fd731c874ea1c7f6411e6ea6037266e687d27cc15452527a38a6"
hex"1c366fb513bd7061f1ffe1b01679ef6935509bdebb0f6a2359ed3c2c55167a8c"
hex"06c41ae91c52f2b27f7bf76e73f6299ce59f6f67c03b5c1d15ee23ccbace2cf1"
hex"15fd0f19bff5521edae5f6d895f4730c241ccc3d415eef6c9485d21914188c1d"
hex"2446d537b3dbf1feba740b7657dc394b17e890cc1db8c77a1df7ddbf00c956cc"
hex"0e8e971b94bc8945665a5a61d013e62406abdad7c304284ab3981bb120ddf221"
hex"2bc9b3a8075e8affb419233bae1329c8b5a36dd5849d426b61896d79e5ace369"
hex"2fad2a9783fc2ba49001eacd3a33e34c302753636d3c46357636dae6c8b2024b"
hex"19c6002888dcd3e33699c10634a806d2aae224c3d7e59cec5a9b8719b066d264"
hex"0c3bc3c927533404b7618b19082e24eb2ca334e7bf9dceb958bd3551e9fe7f57"
@@ -24,10 +24,10 @@ library SemaphoreVerifierKeyPts {
hex"0b0ca3b0483c8e42c91944242fc36b40ca910518f9d85a25be8e4a7ef43663ad"
hex"110cf5e0d819a05a811f7a0c166628530ba6f6d353e8e6a433c064d6fadf060c"
hex"19bce756e115841dd94ff44541d5ad78130187d67f3c560c2a590bd093765709"
hex"0dd7a106857421eb01a5bfc3823aa5eb877b1e10e8bdf45de359928b28d1ca39"
hex"27b6c7af8f5185344561cdfc3a5b049d381fde19a6c1d178c748b30bc5b89cb3"
hex"15ea7c4084328d608b151e9b174a74fb47f84cd5cc4c9093f63d23d8f6670401"
hex"0d1c16cf84a74fbaaec21f0190d887251440559389739fa03a9c82722c6a5380"
hex"09257a78bf2bdbaec4a20392ebaef666111a0013e0d145e3b8538bf21c631b78"
hex"054754fba6cbe53da1b0e9c8e6694c94e5c5784962cd792416d2e2a69c666d20"
hex"1afd103f745dc8bd51a5433a7ac8419f1dedaafbcadd19048e9009d4c6241613"
hex"245cd94a309bfb79ae8f5255803fc1fbdb80bb78ac6d5f68dd031a464a87ebf4"
hex"14faebe5560369ec0b8807a88ecfa006f7f9795caf1bfcfe261555534cf4e78d"
hex"0c962615261ca9c1f65cd755e00bc013abf1533a12e81b80b32fc41b0d1fa86d"
hex"2792793df783c78305175c60e000c53fd96ee07ceb78e470a6c64a1b477c5534"
@@ -38,10 +38,10 @@ library SemaphoreVerifierKeyPts {
hex"2e5f917fa4593965b59fbd36e7644390ba01391b8379a4a204c1c29fd1d17cde"
hex"2a0dccfc2e6d40de5187062a63a944a907d0d7bb6eb30533a3454057778ed3af"
hex"1b8f89159c77020c893f3cb7a2a4cc3085dafdab413391192963d2d6f8a71b7d"
hex"0f073ae26eab905914ac7acdb75527b816507bf5874f1b62510b138763c6981b"
hex"2efe76868b9464962feb51deeca8613af2840c9a8ddc525770423f41089edc6b"
hex"246bb276850c226ed5ae364e91f840b7be0a963dde7ea0a2bcb2f32ea644064b"
hex"2f6a7a99b512977e15a4a74d0f72d1eba14b0c87e9b647421aaed72562744c14"
hex"241b04a42762b5922f9e96652279d739459c63ba99921d36047868be961392e4"
hex"1f9a885deeb4ea645ceddc1b496d41a8b765b09c9fa5dd267644335f50b78827"
hex"0903ca28b792a69f59d7499ed7e261840c1e20951bf0036cd34057859ea07c98"
hex"0cf286f5af05fa35173dcabd94e3c7fb591b74607d58c397469cf09759e89b56"
hex"1a465001f19b05dc38a491b248c97ec7920c03da29e69d805df6dae9ad29c6b8"
hex"0ed2c6a0818f6e04bd3aa8e1a17b0d67c6815feeb8bfe9b3a575bde437ab7114"
hex"1cb929c4998d91a32baae52fc164831ff6bd12474cd8c91189b69f1e8cdb7164"
@@ -52,10 +52,10 @@ library SemaphoreVerifierKeyPts {
hex"013c611347b3d133ed9045be2c36f8689a0120c4078d12d8cd28c006bc61dda2"
hex"2f0a9559eca7cc75db51c369b05e74c952d5a8ae39b06ed01c8698f4d74d58dc"
hex"0fee282026bc113cc251580beab7bfbddf2209056fce08c4e356b1a06f1bc944"
hex"0d019ab06a355bdbfa51b1e5b89fa8e1a59cc3ed78efdebf14cccd425778a0f1"
hex"24c852ffd0bec3eb73101770bf74c9166c2c319e247e5c5b8249ead357af4312"
hex"127605c73a5a074f7eb1b6d2c28c7c6b2ab38d9c3b722b38d1e1c7e336198f25"
hex"1834bb051ac66b2bf5d94722271108ff7809e00c8ba5e6d4786d99e65953e3d8"
hex"14393956732c8d80c3f60ae0a275b3968c22c40e9054b3ad662671f4326f208e"
hex"1ce66ceaedec3b13ac33cf1dacc63e7e68e3e7fdee08e91a54075cc0758a805a"
hex"1abc1b6362a1a276f723f806d4a51d3b7ab592ac8f39e198cb5efcceaf0e48c1"
hex"23f70ead154fd51f42a3de0ac2b61621f01a8b0899f46d2d9da1a8d620b88e98"
hex"28358bc8e9b03c31481e07909d86cc8386494aa0c6b1fddb6e83911200d2d5bf"
hex"21309d93ca7e97b55d43c9396f92716ff1ad99b73dc929c566de6c6c721bd048"
hex"08666e4182c159d4cfd305e1f6f5cfe4ce9243ab5388c2a5a0ab74b600e4bd5e"
@@ -66,10 +66,10 @@ library SemaphoreVerifierKeyPts {
hex"20b886f89543b54f0403091d51cd88895fbd55aea86d19db8b89cfd55255f803"
hex"0c0aa8002fb14fb9b4feda737c210d4289d62a014e4bdbf708ad21b53ef62d96"
hex"25e79b70d1ee02eb3f6c25bfaa7b9a4e1566b0fa70c6c0ca072191897838a360"
hex"1f5834e4b1f3c4c2be7d246854a9826812062ce203a9f7818ab884a0306b3622"
hex"121c37e25e942cedbf3bdbd4a53cf3cb4628a36081e1824aa583add4bafc91a6"
hex"2afb6907df29510dce8c6d157e612b5e727779e8b3e7fd963468244becb827b9"
hex"28e70c1e2ea6a01e47e3cf63e6bbf4fb480a106ae94bf1b7711fa98c010b9e5b"
hex"27218c7dc6af590ab65620d6f31dd4cbdf1eb86058151118bbdb80b8d96d0d80"
hex"053653ac15a867afa2931d75116318a810d5512d871b71f4654c86acabde8c91"
hex"1c48420d5581f37e60b15a6dfe652b9ce46e2de3414d252b18df5b1b8df2a818"
hex"21fbada5ab40ee0640b13756b26a7fcfeb5f81de884fbb889f3ccba3fd64cce7"
hex"0d6670f5a24582a747e1d1ae1e0e8da63d7d202210d96dd5078fa58eccd43e36"
hex"1fe26476a17c1dda8d2d1b630ccd263ecd5644529afc3e2973f6961ff3f87126"
hex"27464f05a8ebb85e8e465599614ced7bec41fcda74ec9f51ae39c392672bc724"
@@ -80,10 +80,10 @@ library SemaphoreVerifierKeyPts {
hex"0828e223ee37c2d4dfa133c8df747c3ddd415da67e911f2f5cb609a58df64bd0"
hex"127bfd549e5e8dcf4b22291715f2ad5668cd6c711c2a39c3ffebe93243df40b0"
hex"0dc2c61595d602f4f7b03af6a919263956b5943cb3f5f890bde70de733623387"
hex"1273f3665d807e7209eb64729ea54ea6c825cd711a8f188a7c8dbfd0626e74a4"
hex"0bfda4e183722faf414237fa9ed12319fb5ee54d43ab955e00453801982db970"
hex"16fea2e34746afb310849831a045eaa63da4744f1c2b576a49f12273f48ce5d3"
hex"11264fa5d1e4446967b2178473890cc9252ed102c5db6c56368a0987c6ffbb75"
hex"1eecc3f4d0cf71749bb70475ee20a3d479719fcb7c7bea429059f6c1d18dd57e"
hex"2d94c63811c0f21889beeecc4d7797f0fa87f0cd40fb84ac72f5537942b5bd7a"
hex"07573806d926b6e92313c06ba464ac035746e0dc96b3d40db4020f72dbbf7153"
hex"06fdd2c03d7f271f2969d465c7e86763751e29fa622a2715694c534b5e171b25"
hex"19546a1616aca8f207e875ebf37977f96c1dfa32ddf16d7eaded9047ab15142f"
hex"1953bcaad2e145cb2a759cdd65eb7cf493b281b71b0faa6010e30a38b5127519"
hex"2fdb1ef3113503a9db688b32a0b79f3a8125d7967b3962373fb886332a135f77"
@@ -94,10 +94,10 @@ library SemaphoreVerifierKeyPts {
hex"125537cf6072615205c38045b8ad31d155bdd8acf80c7dc627a7506e642a177c"
hex"2e83916c6303325ed9513361098830271102ac5dbf285e2645915eeda77a5693"
hex"1ce67dd1edcaac1b03358eb6b2ad3780bd1cd201b91d4bb2e603e01279351fd1"
hex"0f6023308217b2764eb38cf098e1c6c012990e188af20730587292407996a393"
hex"1169abb3cf5bec07393ad7585ceee78751fbf5ff424901737ab76642aa52bc9f"
hex"296b6c4e7849d8a1dc8fac95f48fdb8c72807d23a5f2c03978154fd39761dc22"
hex"1ea1e1dab146320bebfe3a0183861132ea13acf7957f9a66f2e61d3b12cea7f3"
hex"26e90bd7b6f903b9e517a0f77a7e4048033cb873b1da8cf190080e75cd1dfd6b"
hex"1cf426585573250eb3432a5e80fc194c307c58c814ac37bde84125a5aef222a7"
hex"10fe5c50f8fe71b1fb44251e5dcc90bd0d64844451329dcb49e241585406ef8b"
hex"0c273841cf7228666b689b24a7022bc402815f77f71b43c1862f64853b6a47ca"
hex"1255c43af69be48744c759de67f363030b809ea5be5de707545d1f29dbfcd272"
hex"110b2f7ac7d7b3f94893762fca13700b74cec691bc57d216ba04e992bd0dc947"
hex"0652c5b2ba7b972dd68bf8c271556b57ad4521c067a072d75ee09268562cea9d"
@@ -108,10 +108,10 @@ library SemaphoreVerifierKeyPts {
hex"212ae8907761700bdea4b480f20f788dd08ca4126dcf4ea462e890f302634476"
hex"0e50a74cf13a9f5c3eac33a38c6f9e8d3c2638bee309a4180afd6097c52766e4"
hex"1377037809e690222f9afca6e1ee39ba95846bbe912379a938f6ffcb493f5cbc"
hex"2f87ae4a5a564f795b6078c1e1511c63404183176bfc6f03ec587766d8868cec"
hex"078706f23a72811efcac3f7cd3a6cc38973d57adbf99bb615d8e364d4c50c935"
hex"2f0458a92e188177e4bce9f874dc537aad6cd91252f12b862fd0a167a95e41c9"
hex"0207f0a72e420364482932d9117f37989fd77ff9721943ed566b65624a02ca8a"
hex"094a2af179f583a4155dc7f2b191c036df4330c0eb75e1e70d2487431bb4b51f"
hex"2b1bc223925afd7f4f7cdd038d39183e1364d1665dcb17cfc2e30da2edbda339"
hex"019a6052e1c5cf66ec396956467e791a97506bb3291d1a149d863d9cc25d660d"
hex"1f709b744826f4ce03d2ae0eb2a86613bc33b2bbed5e9ac6198f7e8df1afa8b2"
hex"10cee567471a2b01cfa286f3095713ffe5855c06f17158e33e9ebfdc1c792a88"
hex"239ea34b3e8a5d1d26599fcf453537fb16a91f9520317a01c7de1bb5a768d725"
hex"09b3a1bb0c0be55876c4b91957b7e86412654bf272b7b9c52f2217e9713c7dcc"
@@ -122,10 +122,10 @@ library SemaphoreVerifierKeyPts {
hex"2eaf36a4dae40401cfa571b55ad8b5fbced37e67860085bc6afc5412d809ce8a"
hex"166d04b67debdf8e674bd6074bf67031d3b4c558647dc4a3c5443eba23086683"
hex"232f97fa7f391323e066175feb3572aed60c343c3e3c11ed309c00ffa29cdd37"
hex"209fbbee38f2dda9c1984658fa4ab5794a3a5fd19da7613c554cee69db7a51d5"
hex"0271f86b9bc2d6ec259de0541bad8d207075dd0547401a7de8a0b1daa2667e64"
hex"27df2b01c10bf56b288b324ac4cef462dfefebd92740e7216b15eb1a85b182e3"
hex"0b61eb77f42c4efc0b1513d486de63d1023f3169e5e76c3bbed64b4ca350e964"
hex"08f1791a609f8714b38f03cfeeb1a149adf524a946a397191b0986869458bb8a"
hex"20e9ad3d16db1563e84154a169db5e81d0117d4914800772d4bf624317e32b36"
hex"17a525ede8962fdfd05af9ba5ef109bd2f5de02524454aa25c696b7c6fb0757d"
hex"0d71a275a14cfaa4f987cf2d2552add13d13fc7141c544a0ab457103e4b2d502"
hex"1ff842cd59778fb6c75d197511f3158ecac8fafd21db5fa652725be434580ff9"
hex"21095e6eefdda8f7648172826e435e08a93109b1f040d88ec1b01ce3e2dfa592"
hex"02746d05612699c335d4031f388561fa2c6b3a4c224df74140c58c5dd7391459"
@@ -136,10 +136,10 @@ library SemaphoreVerifierKeyPts {
hex"00ba85a4d757b2bb24f2686c8fc2b20d23f68ecc5bbd889d70db8222f9c94eeb"
hex"2a615fc377bd707e1d297df70f60076d184ea30144439d2a02827ccc4b74d6d5"
hex"083ff5f9b4474040e1db95e7dd4ac08bc49f0df5e04b1601e531087a66e1a9a0"
hex"09736eb920f83da4d3d81d49a3d16a2718b7af21f590d120ac5775d56e879667"
hex"17c8dd6f1cf33271c97ced9829c0500a8353d922a4ee36cd2a64e8ef99db06b0"
hex"2b4fe13e06cbc8e9f0fb007f7feb24277fef8ce8403846d681b8b77c7fe85ca4"
hex"2df40a5f7f4555887344c54fdcca240d9e1220c9df8a305f4a6ed0b5fcf3258c"
hex"300192ff2b9358b371328362eab85f10b3b256562986b0222f90fde6285b2031"
hex"2b9b6d2f72c215474b76c58be1bc8113aed21efc4bfeb76d432fadd1a143ae55"
hex"1afc92793b1e3c7bc0fff4d51b34c751d6fd4f0b684fd36a5eb31f2e7d59bd08"
hex"27a4788df73ad8b0a3db6dd0366131faff0cf443fdbe689b1811275524fe4f5b"
hex"26e306f7f4400a8b466a46f73b1bb30628e8f53ae183179a89ea09bcab1abe8c"
hex"1903a292e81db108e9af23cd1c7249087803195ef86af9d7aef43f671bbe28d5"
hex"05c92b5167e06202018a4b1c482dde448604793a2b6d734c3a59f599b457794f"
@@ -150,10 +150,10 @@ library SemaphoreVerifierKeyPts {
hex"20d47a675b313cd4b857527f3e6ddd2b5646e5fd9f206aad5bcfaae6cb0958e6"
hex"064e79c61f6d53a00688e7f217a0c8579ba3daf9d4df5dec16f013a124413f15"
hex"2383c6f75c1a392e6e1375277f1130c2274d8668773addb783207cf58cf4c0b6"
hex"1fc40e1150f35476075a72e0ee5366fb0655cf4a0497d1f4e068e5df2ad72992"
hex"05c9dff32c5c83675eedfce89d2270ae3115d2ce98dd7cbe37603bce52504e80"
hex"22de7321ef7d49d583634074d556fb103ed40b5355a61457e7055b2218fc620e"
hex"269d005f007d6b2f3e7ba54cd6a2beb190223080a1fd94230f409ab223c5b794"
hex"0f693e2f20b43eac0691b48a00fadf42143af8e21b080d41d1e71c8a02142da7"
hex"264fba8810c9e1c00b512aab1d355bd7ccab52089768376d8a925cf1c3f927a1"
hex"01c6986291edd61bf9888d6bbc0d0f802bbc4186a811b8107fcf306a557f0af6"
hex"26cdd05df967801d477b1c344754c15f7a30b0bd75bb98985a0c2fff9ec80c06"
hex"0c5e61cdfabe2eb8188f70cac4d7b7cdeed9b964792d7dfb6fc0b228a7270e54"
hex"2a586a34c5b50461b05614cbf3ce228c130522513793ec263f9afa96e23f4e5a"
hex"25ccf30168e9ef4fd1cb902c95ca8d67a13580dd07994094b221708f8c7d6797"
@@ -164,10 +164,10 @@ library SemaphoreVerifierKeyPts {
hex"1b84d4afa11231f3a4a3c62a0029a39f5ea31d907a92070494990427e7ca6f88"
hex"14107581ede64e20dce54fffbc6443cec3ca1cb0054c5142187cd21bcb166b79"
hex"16737e84151e0282876e43177c3830524e3b6ac2eab243a067de3319f8d0b8b4"
hex"2ba33cadc4f1787f00a8a107c76e563325b43a6646961320196dbfc00c4f22da"
hex"2ad6e07defcb0c49b161fe87df3cfd5eb9a824fd772a69712e947b3b1cfb21d4"
hex"0b96f280c977d717eb22a136ec5d2830fd84afb5096cef17868a451961bb8467"
hex"2cb182b3ace6be4f9319b65c2ae1e672d5a27b5fdf78973fee79c7bd09c81aee"
hex"2037cd61979b667fb80288588d2b095f0c4c34312d7c75a074beda537909cfa1"
hex"04afc04e3f13c2d80fcfa1aa6e946499406ce541ca84527b75dd29881c09e6a1"
hex"20a42ab93cae3bb2a7ac65c4952fcafa2b58f3d3c3b292246e292dc1d10ead44"
hex"2294e0ac633d4e59ac74082946c67653dfd3b17220d05953f214328d778d6256"
hex"019e150e3d992f5175dd609d7b7468a978428a5bbf291b77f900d1c682cba1bf"
hex"2c04f3db93c0870db5a439e9ff0f2ac65d19edda31f6bf64e9f827516b3f68e7"
hex"2e6c4ce5c33d2f1d00d4c7c691e5d39dfea1c0eb590de777e5fe64365545646f"
@@ -178,10 +178,10 @@ library SemaphoreVerifierKeyPts {
hex"20f9c4e3fcfa0d305a923e4fb0d9ef583cb141debfeb931c909ef1d4fdf6eac9"
hex"05a3b3663e889c49eb5920e769bbfe9f9dfc905554300bb2b4285c6a5889b274"
hex"1f9e528d112bd8a059eaa510cbd9a7458598d27775bcf6d851a0d359ebb81dec"
hex"011469a48978d7076fca2af28c59792502dd9dfafd8198891ec51eace408f26b"
hex"164c3f0507f0a41247ba9cc307b4b94b3d3f5d56584e9857ab9a62171fd1a495"
hex"227511480052b638116e221c76d0f32004f3b18905cc8bb20bfda3f78da0b8f5"
hex"1a93b95f80b84b770b1c52be3e7d00588b0ba9d3e4259080b42c95b31b541473"
hex"15608ad6b67162915e05d6af1ba4b32eb4693f775ffc0a66485c3e5617dd37e0"
hex"1bd2e26efa4fb0a842e03142af573fa9c16623542451b3e4e0af1970cd7e2b0a"
hex"2b417cad2430c3018499a10488fedf9e5399ce6cf93819469c802bed6386d7b9"
hex"230d363d8bacdd978d08dfbc44f1c3bbd3b2bc1e2aabc5c3759db87f8f895eab"
hex"2f83002ed31eaca2531766a09552eb1667a9419192ca335b08d93693e5584abc"
hex"0feccdb53345bdae7349c42b119570c762f1f5497eaf898e4ba2d378d9d8d20d"
hex"18d01d38cb6ac78d93961c1ecbfaadd4b0cf999b972ce4900cee9faacdf8298a"
@@ -192,10 +192,10 @@ library SemaphoreVerifierKeyPts {
hex"1641e4ce35beb44e3d00fd9b7a3bd47e118fcb21c62281b148dfe4097c147e11"
hex"227cf6075dbc7987ebce58711ed50e2b6a94c1478db414a834345cb2b5c21cb5"
hex"252bdf93e4bc24d639e1ebd80550001fa9aa1e7d6abcba326c2b2feade8fd8d9"
hex"0d98245785a60faadbc0c044b2e2e0ac808e16fec60b3b73baedd29acee1a344"
hex"18a77190ddb42dd8be0f01727d46faa6e2f1efd9704d30f9a969470e4da98407"
hex"14f25459703bda113aa3c2812d841e053b5c08cfdd2d8d92ef7a0bb685e53d21"
hex"1b7dedfae2ee1a8c3ec8d9ac7e35f291d4793e4bf05115a7eb7bcc164a1f53d8"
hex"073103523d7b0ce327314d3474aa6b77824a75862d0cbaa5af6e1d2cead16b9f"
hex"050f7090cc1ece4b5217a0419fe3066d81ea2e19dc6c5410c770740c16875066"
hex"2a4801a2483187073a17cd04890165ff19b24180cc8ed16870cfe0f2ccd82183"
hex"24e27258b0e61cf13892a8b7abb13e0cc19faff40bbdd680a389f4918f63d9e2"
hex"0f03cbd30fb82d7807479517b4e29b3da4950b96a023a331e52c721c66f5e229"
hex"2bb6d910684eb13c86f172f66f59a093f8a002333c8767bd594ceb63e9c6a2c4"
hex"1f32b4847858f72bc734df639c032604ae71ff65afbbdcf42acc7ec195f3a39c"
@@ -206,10 +206,10 @@ library SemaphoreVerifierKeyPts {
hex"0d2547a25e17e027bda4423048f3c6c595d6f83124767da34e0e4b96c26f5c94"
hex"0cbd5f2d0cea7678b80aeed4b0de78259c86a2c207dc0f28fcbe22a1252e5d3c"
hex"1a9b6c59c30e6d1e3c5efae27acc27e9b7bd23af3dd7963a0aa8361b4df2f243"
hex"12b6c60fbf4cd948013007113196f6ac1743fa7e5ea98b243de8dcd13c1e74d8"
hex"1754b2b575981673e3d30c65ddad7f120e97aa29818478eb56702759f4b78f82"
hex"2764d40d5e2bdd09263e2b6e6e9ffe9ac935ab67e9db1f40a102118409dc99a6"
hex"23dfe208849634939164215af8831f8dee4c3c0ae36d054691c9c8389211c2ce"
hex"0cc761b549af62069ba3e0fa7ce6c75c9f6defed91e8f3314c4b1ed7a5e0c83c"
hex"30264e78dcb1adb0d7503f80507ed4bf90271624d70dfca454d1990a2f755988"
hex"28d55e9071501cbb4ae790279f996622466c1c9f131d667e8baf7bdbd5d9a455"
hex"11ff42ce9d42c89d7687d469625b18c59b883833298af76480817907af2294a7"
hex"04645153c868372f37d106c5c4bfba4e2f73309d53390894a6b2338810da3f0d"
hex"103e33717f00caddc108323574de85c6887720561ad0c9946bc510bd3954ad4d"
hex"264461fb0d2dea03b815969e1b2bbeb995d30f774fa49411323d20ea4f4f1652"
@@ -220,10 +220,10 @@ library SemaphoreVerifierKeyPts {
hex"0a98b996681afa7f3a7ea25fc6d9f2b48af7c5d8c8db0d55892bb64461752f93"
hex"2838a60cc9aa8717f4308e6074996b7b71f077a1fd9d8353af5c086aebed16b7"
hex"0ca941047448572c947a8308b479f74524a74c384d926e4be36e8068bc635df6"
hex"2eca6b343a7a210d0d33c3b4af4a7abbc05fe1e9bb5f05d813c4b345f87d9273"
hex"1a555fdc02239e64e699a0452f86cf48897ca897335ce11e771a7023596868e3"
hex"2fac0dc1fe2d940e1f4f616ac0ebbe2a3d09afe81eb7d39dc4f01db8fc61036a"
hex"0fe35ae395adcf5bc2a3284d5fa887014dcb6f05249f5e12a4844fd2767d4141"
hex"10b06f989dfd1d445b6c4bbc386c1915d9c6775df42fd040826a8a95deb11561"
hex"234bc8dba2ee31ad5b1dddb6946dbf1f2d9a2f7d71bbb45d94d7f9ff47afe936"
hex"03b28511d097183cceb1250dd00dd4501789b25bb547cfe66eed09bec1871c59"
hex"2d06d2e4acc30f60e54c1bec9442b8aa70137c37b798d2dd8dbeeea514f7907b"
hex"08037905d11e86a5a9d3b03cbe3094e9468d3fb3c1a20738c08877269a69147e"
hex"1f79d21604dcfb2ca75a44e38aa87cf8f3f56f639c8501d336f2e72a87486695"
hex"20898e9f4eab7b0f918e10b9fc35a024f4d0578c0e46463cbf360606fa47ade4"
@@ -234,10 +234,10 @@ library SemaphoreVerifierKeyPts {
hex"0491b8939d07f0074c444ee02f79917f5ded067d7e0529b0437b71fe6355170e"
hex"2bcf73774c5976acfbc99b1116384b11930bca6187dac5e662bb9250487f0845"
hex"244615cb6c1b8f74aad86d9f900ceff74ee731a9dffebc26096a1e6a772680f7"
hex"13d96452a6838856d42998627803ee2f11b5c92aefe23347dca76e056925af42"
hex"1ebdc1084ebff25636eecb4979bae3ef273bf07f263db1ab126cd0ae2efcd17e"
hex"262a259618e7ebbc227d2834ccd1106eecbdfd16dd9ae0591ed64166f06c1bb1"
hex"01ca18eda5f2ebb513cbbee577b5e3bb8ae3f3a1022a5e47e08a06b8fc708a77"
hex"23a077e52b600cefbef77eb273ea0d5d2d7b18099b4832772b56c6e822df0794"
hex"227f9d7399bc220483caa969a8892901b894de900a1a20da29328343ce7cea1a"
hex"1679302001981320168e8d8e921756f2ec22d21fd130d719eceaae1b19354bae"
hex"118d5af95d648cf620249c405d77c7743089d9d262e29860cab3c292def4ffe4"
hex"2284c84a005818061688fe45ff37d6fa24b4f99587fc5e9a1208b3edf4d060d0"
hex"0cfc0f918b739604150598b74b981255a70d772a67f23f51c34212958b45a035"
hex"2537c964c421601b62787e6eb7307b99a9d6eefd0286f927fb25f22e7e9eaf95"
@@ -248,10 +248,10 @@ library SemaphoreVerifierKeyPts {
hex"28ff689e68fdc639c190119604c98a1845806a317af901568ec8dc47593915f1"
hex"1bd5a5860f93500e39351520da5f095ec6557f54e0d5628fe9cf1a20d52c426c"
hex"021f0968bcefd07ac634d7e6e02d45eb6afa85d28b307f5d2e3f2cd6d744fb44"
hex"21f2833d7149f60d11dcbb89ee41fb333bc14037365be840e59e8a8125337b5b"
hex"0e7fe46c0ba668aaf4f86c425b774b92962238e74504c1aa28c900313f46f4a3"
hex"05eabcd9e897a673272f5abe83d4d8d9115470bda3725f442ec9d6710973f9bc"
hex"178d1f105079da9461b9caae4bacaee5a859dbfb43ce7c43d8779a8813ecc3ae"
hex"1c0c5c153df6045c88bdc5d09dfc813cf8546d7344c70d194fcfd29f92f4b696"
hex"1ca6c68abb475da1475efc1300855db5fd7374a5b92b4f90f49952a05aaf92ca"
hex"2bda409f3445270ea3a6d128b46a5cd5cb245b5339a66fdf814f2b83f4c123d3"
hex"05a71c398107a0314772fcd210e0c1d3ea35d99444a378e1213a9e10e6768daf"
hex"11fdba29cb4c24bb0e770eb1d4e5c23d9a51a3cc86c7d41b35312fc5c943f965"
hex"05f0e7da79e615a61755ed4526892b42ce1e80b5b027537bf53f0b536d4bbc0b"
hex"1eb2f81535a276e50897a2baf3bbfd981468b91fccfbec6cec8bdc988f002350"
@@ -262,10 +262,10 @@ library SemaphoreVerifierKeyPts {
hex"2d23c1a987db7a304a2d504e5c4573592c119fcda1ccfe5a07d5643c4a9c0633"
hex"029b04e14de53677bf90dc7badde802e588fdca2b9081ba20f4712e662c12adb"
hex"263f5e4fd893704c5f229914cd8f37bdc3f9409e617507850604f2f59d390fe6"
hex"1356ec3a15573f75c899e017e73b010f13e7da632944c0fd82c0306520c0294f"
hex"1cc2bdbaa1bb156d612fae11081c85317b706a2fa61a101f2d4da6ef66e293ea"
hex"2b08dfba194136733553ec65648fc7842fa0a29d44f7d1f4c157af7b29bd02d7"
hex"1fc121aee6a1fcb2dfd17bc1c8f305fdd81c168809a74bb54ea5869b1a41f19d"
hex"21c9780ceccc597c37b49b8742654a6d34f71cb32d1555e72c06004d06f6f5b2"
hex"011c1683c09a02f63b38549eb958115f326fdc2bf0aa81247acfb1cc8554493f"
hex"26430030fb83d387a990d785f38ef4669b2fc53ff8ebc2537009c8648232996f"
hex"1247fe42d335f9252cf1f570316ae986b553044b0c81e635f764ab9915e11294"
hex"1386af604cbb138efe8dda480060758e274bdf502d2bcf9b5210e31798b08adc"
hex"06adec496d6a730820969cfbf60ab07a2a8f7cfcfcf2020d4cac60d127fefafe"
hex"06c39f25af1748848c37d1eabbd6a84a9a735afce06a5922e8a80af1bfc7eb5f"
@@ -276,10 +276,10 @@ library SemaphoreVerifierKeyPts {
hex"2d0893b893b14eaf3aed6820ae987b88da0cba5dad3c5b267c9012405514767b"
hex"01540a25e982ae7e1c98d06b14cc56241ab9b09543440957bfbeb9c384a74b65"
hex"1744fc2b7ca4e19a45031fc838edb3805964d6533a4a5583ac57d9a9f6e6da65"
hex"031f337363365bc9b5fd48a47eea62400d67f2ea62958d6be5aaecac89816a75"
hex"0694411d68a42334efcf85a8c9a7be83a1bfafb695f018b712b2467ea0ee670a"
hex"007512aa7d8366d1a3d2b42e79b1d4da40b35516129b8c702ad81a7f98ff65fa"
hex"182637cd5a4109ce830689c683abee5c84210eaf1765dc8cb5a37f14c8b6b599"
hex"1230a42b5aa82168743e9817923ea3ebd1d3a55ef1bd91a89eacc55663a02640"
hex"1673e455967762f96f57b413424631198e09e7bb1bb06844068fe44f307a8d59"
hex"061d9c5b1f377adc54722ccaf3601332ebc07660fec4d89b5c8213031f0aa8b7"
hex"2e92f89b6bd8472ef679fa5d617805180e6e0605423cac37fc15f281939770a7"
hex"2d3c9778d5cb3ab0bfe4b296e2ed90ed19619b8b353c1043b40e03b568a049a4"
hex"17276cb455cc5d461db37b0b4f6b34f1bb429a76968726205617095e1d39b92d"
hex"09dae1c6d2e4114c5439c81baa28594cc0ab76e7f32c25c4f780c9e9d6e46a5a"
@@ -290,10 +290,10 @@ library SemaphoreVerifierKeyPts {
hex"142569f4ef08c2a1947dcb6e99b5ac52cdd5876c50f02bd6afd62fc810a75511"
hex"0f47bd52a43c690f658374e9f7c2bc4285c641c7116a4ccd2c94f684cbeb7f2a"
hex"17a29f16b646ebe94c4b2e2c4bc375cd7b002111dd55c4d212e9360cec88c188"
hex"098ba052f475e7cb4a6e7200d33425128781eaf3d355ad53a1b998c6b7738252"
hex"010fc33b3e282beee7dc668308b10bf602c3df7d350d3da0502cdcaaa7208ef3"
hex"2b3d056c6314e54e7dae918489566f31f7dabe318e0b9dd84addda1189d383a1"
hex"1d52417a894df6ce25f92e97d2086495b8c9acdd9f312fff2aa2524d2e11438d"
hex"10416d05ee2eed34165a50f6648eb3e10f77247f711398a14fc77bd5711fc0fa"
hex"046641ee77bf1c3c58b848252da5a88038a20ab22b0723c37de4753f40a110b4"
hex"04c68b3d094b4cc491c55531f7ba1bbae0b554816f0c8bc3099061c83099f6fe"
hex"0e3661a824f5e440eaf439395c1047754ec3e22f44a0f81d73a4dae283cbdf1a"
hex"0f7226bcc9aed34857296ce6dd82b82f1d086ac24d3b9e51ec3c767a89e0e0d1"
hex"0fdee6a4513d6ec8f9e2d416c8b87b0c1deaf66702ef14b11f42f9754ae688c2"
hex"20151e7e27c0331111bf9346db0f4a36d000ac49d03c561a45e23383a0b61d27"
@@ -304,10 +304,10 @@ library SemaphoreVerifierKeyPts {
hex"26dbf8986be11183f7bd4bcfc17db4b68fe9a92cc4921fe17aa0352f57787186"
hex"01a871c9a11ac0eac37adf26c0e380d9e4d4d4c1441bcd52438332f3ec1bce2c"
hex"1dbda7ce884258ecbf26f6e40029d770ebbe895ac8ce51007d38939c48cf3ed3"
hex"1be5e75237314f6570dec86f57b27a19ad986e3070688999218f5ef741abdb30"
hex"2a72ede4e7a6441460b73289ee24090a357e7752cf5820dc8e949ba378815187"
hex"29e2a51ec1246cd16a5566177add7278a5621052e6a7690f43d0603332cc618e"
hex"1cc1f8149c8e2b77a892261a86c37bbc1586b3e8e0c6a77847d3b94d32fbe3e6"
hex"07109ce5258042b89a7e1969e498b5039080ea3912e326b5ed2cb2c484f1c873"
hex"2aad746945530cbb6595e6f4038d89e1e0c0f978532ec02e5e12bc9115174a69"
hex"01576cfa7df9b87f6b6685eaebb7ab84d90e036f352b9a3f32edc2d8fad897f6"
hex"0a7ed0f5907aa3135577a8bd38c02250ce339b3e500000a8c0bc4dbcb58fae3e"
hex"14b8a5528c397ee0565c1d305c4679583c7a2273a4263fd7c0e4c0c3cd1593d7"
hex"0f1645829fddd22d3b28fe608eba622b2dd67dc8282192da3762413ba678ab7f"
hex"0908dffa0610ac0133c5f7bdfe3469934c78bcb4177d2c1fc618bbac6c2ede6a"
@@ -318,10 +318,10 @@ library SemaphoreVerifierKeyPts {
hex"053751ef135a8f6549527e22bfc0580a02a7dd72e9eb6b6a6e73b3f6ec269025"
hex"1c32a5e4b55b022f9cc73fd585424afedcd1ffbf7e46d2a8e3a86b52a937a629"
hex"1abff8ffde1de3add8b76c0a6f372e2b921d601c5f3128e5851706eb60ae7b28"
hex"20e0459978a083b67d71ecd1f963b5cc7eedf8334fe85839f968fba857a2319f"
hex"27b0a430b6ed3d09e7f91bfd70cbd9677656b8b31b140f215fd20ca25c0ae20d"
hex"0be867f7f893f3fd8631d41e77ce901edbcd29df2ae3e3d61869ee4163105d12"
hex"006b141b5277c0afb385b10c30f42eded577b0e99fcdafb69648bc81c015daf2"
hex"152769798bc48f6622fdc54ec7efbe576bc6b263ade79359db0db98ee57d465d"
hex"202fc4613d2f1988d409fce47fb6bf1adba6a9e18b97aae41f82dad5632fdb9f"
hex"1c9d65765d702a6d24efe251836e629ffc2881d0c218e89cc6467cacec7b1cf7"
hex"0b0cb3219a1c4f34ef384b4b972c7b045c4b931fd84b41ad619836b6d30b00cd"
hex"2d79b8879e27e7000430adcd96d6f7c67fcf386a473752668e64c09b2f8010a3"
hex"0475cfbf8a76a0346f7df43a3eba83f47f139060103130b1a484e7814623d854"
hex"13be6b6d4ca7746460f0466a5068d54dc9378ec2e46cda7d08deb8a254260e27"
@@ -332,10 +332,10 @@ library SemaphoreVerifierKeyPts {
hex"118eac608ef4b794efe03a23dd034f13156c02f2762e6e8772b11c7dcf8ddff3"
hex"2b942a6404366c746c10e3065f1f7932e240446c85c3f8ee5aab85b7727506fb"
hex"03f113eb05dac7306c758fb6565545232934cfe1a99a5fc63945a4b6d1a652d0"
hex"2a5f2b3ca600b10335fa312440e1314c0d0ec80ce8a5d39733ebf716b76e6e01"
hex"0fab721321f8c4cb709dc6ee730944453978383e604695b098845acc161c28fe"
hex"2a8338a9a5abae29f5d98d6af2ad0372b92ca7b779ce0ee3a79adc1cb4262eb5"
hex"2dabefef57a8a4ff07ffd5d517eb5caadc84ce32d254ba4b746d19d19b89a531"
hex"2a6d353d3bafac324754fe1a00d57e7f020dbea17231f87d83307bf940e6d676"
hex"1e7913c116465bfcf367aa331571c24cced6a4992e39ea9c482fc56383625971"
hex"19111380fafd9f08783dd2497d64685aabb25f5acb60204fd378e0fb0e6da0da"
hex"22b45e152cd7c40740eefe2d3fec07ea31872401ecbdb762cace9e92e7cbe34e"
hex"1192d39b9a603bba160da80fda0469b41c2255ac4d0a46402a2844225ffd2539"
hex"2f46658280ce7b17e40eefb529673a2b3d8f6e25757e9a445e44c7a7149bece4"
hex"01de74823933559559239322e9363220d322cea2ddba2f6d5610fe883885986d"
@@ -346,10 +346,10 @@ library SemaphoreVerifierKeyPts {
hex"1bfcdece5c62826292caa2da6ec16b9974d2eb7fd3c2c20d1863db12ef1440be"
hex"09c696e6067fa41ad890ee8388c0290186e494cbc202e7667d19b56353cece99"
hex"092b1d93eed7d26456f285906aa196059ebbbc157fbde72b8acab6be8efce28d"
hex"2ccb3b61db9903623cc781638310a16f00286bdea868004a462fa0f56043371e"
hex"26b39e1d54a4f3e8d8a84d975ae267f7e0b886137b4969b4ae68008ac9462d3b"
hex"1ab6aefcc6dfd4c6d8c49baf866c8ceaffba9af800d551cd8ebb6fb61dc79344"
hex"231508ea598b14f2b92a32f4ecfc2e1ded34505db040216fdd1307594fb8f07d"
hex"2fafe0589f5c826f419b1ec3ac176a42c52360e7b3edf90cd4c77c915e47ef06"
hex"282d48bd742d9e20a5b8dc88aba0744a9124930cc1cc7d692decc7f0ee8a86d5"
hex"06f42f74816d65e974086055ade94ff76a6fe5d14bd64a069b89b867989d12c8"
hex"15b575413874cb060adc4fbde9da6215b08bd3c72b9f817bd4e227b818f70235"
hex"225265caca14dccb262c43230defa44d79efbf96195b8852817b9c2a1a0cee7b"
hex"065a720651f4d30a03b23445d588a657ec81881b38a6ca7c96ae7d30a228eda7"
hex"2f8f278929640191de8b4c95a163f7b35d9fc5f38dd11499e2f3f0484fee4d4e"
@@ -360,10 +360,10 @@ library SemaphoreVerifierKeyPts {
hex"1347a12ac6258ea35211b6ba1a86831915843d88896e58f458f0d5765917c35e"
hex"035fed90d06219d345c5ec7d3a0ae95883cede928acb380f8ef8b4b6859ef965"
hex"2abcbb767e6e79b2dd22e5978eed3edd65fc15f583b875d14e2dc2f2a0d8543c"
hex"03e599fcafefc67dbe7ab22b856e4e31201c5375c3b33927afe8894adefadbb9"
hex"0a284cbaf5f51b1acad87234b1b54a7d39eab320c9a28687261383db782c0157"
hex"2088b914ab44d993bfdc7273e34954b1bbf0dbc661d1c4081b3e81da92ddfcc5"
hex"2a05e0e97cb23e1404ff3331f83623c8f4c394b5d49037bb8cf64b6414d60779"
hex"2991e9e9d1214bf2bc8020c1c18d861b8fb8829af660a7dfd350321256775ca6"
hex"13561a0b30e623640fa05d8a5f9540530ec9270d46c5f6607690c93e6e82655d"
hex"295a4d3659bd1a055dd3f4bb626752a2d06759cdbbcd1bc79b83086649d106e5"
hex"0ff647b8fb279b8ec301487a755b63b15410d9583977381e2060e794dde87459"
hex"217e540739dd851a21e60d671a6dba94845f42487c32ec098a9c4c0c19819843"
hex"1b389bd1a4d6c9f88d6fbb6beb8c25a7f86151da3048fb29ce506076f3b73397"
hex"01f60ddbcde529f2adcdebd2bf02940c1a9a378e0488c29a0ac38a17a9118bc5"
@@ -374,10 +374,10 @@ library SemaphoreVerifierKeyPts {
hex"28df7cb07583a984136302cd3baf3b3d9f9177ef97f584b0daab7f0493d25773"
hex"26d35e5c2e4f1092a1339918cbdbfcb5b1dda82c318103401d4a9e8fc3218159"
hex"09daf60bcb32e37020e105d8b9bc3aa31900cd3459046ab97eb228675846b691"
hex"180e9f207b3ae8c1bc03ba74ac6509f094c0f38b729ef60c4c7b50851903cc56"
hex"108c762e6d29f106ad148cfef47e8479947c29adc1aa4b32cf6e3574bba10c0b"
hex"05616e878eee4c82e3229ca0d438bffebad485cacee4ed2a22cd64971813efb1"
hex"038aaf3a42fc9a5721f69b7bb52a6ce9ea6e3e58b180be065509ab930ac97993"
hex"268db848b42be0e8d96f73d79c16df5175b29d4c3e0351a24ee103d2cfe7c283"
hex"1e4edc4d7bb561c29aafc6662191bcae8aebd4d5113e331b9b537f4fa8598905"
hex"2d3c39a939554f2b9e6230e96a78c24be4d942154f765e6d4af53a8c4db9407a"
hex"188b721b564daf9ebf33a146bccea52cbbcdcbfb50740e921f91f7e5672e5e7c"
hex"2e59d3453f983dff90e45f917cd74501a646319fd22c952f3152b077d5655840"
hex"1f0bf595db464070ab32553b095f4421524c20568df7ac803a3d299b3dab568d"
hex"0b68d795eb7b68b11c333b381a2838bd9398fe371f08d48f2ded24e60e02654f"
@@ -388,10 +388,10 @@ library SemaphoreVerifierKeyPts {
hex"070dbc7e5de51ff90466ae52b47a293b4cff6f0cb064b6dde4e00650a68b1541"
hex"29426faa9a237e4bf88eb59b094786cf49a96fdc54cf6c819e1b67e2b0d68707"
hex"0f1bd148d0b2faf46659e6db194bfdd5d037aea060737952bc30026f8547737d"
hex"057bb63c3cfdbcbdafcf387bcb4fc35f3477a87e3ccbaf160e2d20c48a71df9e"
hex"305d73a39971d2c9a4bd7407a5ddee537fa604400fd37215765e44250f2105af"
hex"234b853c647b3463939121612eb301cea282f0c1d679ae8902417e66c9f1f5fb"
hex"1bbf10b5716793e28145726e9198d7457af95c327f336967b14ad14fd25fa0fe"
hex"1d861f4c7a0c0e5c99cd91e2869215dbde6c4fffe1ad1d8744f257aba5b503cb"
hex"004ace6be69932572926930019040107ca38207eca80735d5de083cd596395ee"
hex"154d83576e1821b8ecb4f1931ad7721cce29bc17fc237974322e248ada7c23f9"
hex"2fe852eba0f03f71cdfc34e6193561d3423087aaac643a9edfe25fa2d7f3263c"
hex"0ada5d6553e357275b59357fc2213e1faf714a22eee3d5d3d502838fcde32e54"
hex"2e73f204baf6916a3af968db423019f558a87c104c514bd8f164d03d3deba7e8"
hex"1d29d896aae409cad919a995cc8717b7a078c623bd3af80c056dc1716d043539"
@@ -402,10 +402,10 @@ library SemaphoreVerifierKeyPts {
hex"0ca0091a58ee20042ac02237bf01843886e4439d859a785362913c0cead1e469"
hex"1f47e5ac7ec132d0c7136a9487fb0c6cf292b07e5515eb2ae942d4aaef2dfc7f"
hex"29b08f57557514cdeac066d9eea594a5c5388e8f1064dcf19fe4be16d57b0d41"
hex"1f5962d5ee0c6521d26c8c6fe86327b03254322abdba93545fd5e401b3e53190"
hex"159193393db9909fa9676e06ab64c9e48ae9981d2e69de2dd98343508eb30b6e"
hex"21d7303d99b13772c5e79df4f97c1bbc6fd5e3c84bd65f35b2defc06148f5803"
hex"2d5aa07d8cc37953bb5f5d2aabea56e1b0b161eed95deafbb48ef9e8b233d5cb"
hex"0f27f0132545e917cc90595e93c252a720b8d24b70bcfa0de03a6d3f5d50ef84"
hex"0404810250839299f6b794c6e9f00432b60d7ca2dc6d754029cfac5b964f09aa"
hex"0aca49db30da75f002bfb2ee498ac70a5b0f98245a1c2ee6da8c0dd3c59c0207"
hex"30231cd053a7783a3ab43400f056f622b99507f09e1e16377e2d02c0c39faae9"
hex"164f1b6eb4908f591b45bc4d4385a161cf46bc1b287369a5eecdfcfd140b62e0"
hex"188576c886eecbe7191a7406798f0fb4bfa0c7182c135ef595ef570294f7aec7"
hex"1396e7b28ab67accf1c37de37ebc942bed502f53651a61fc62a1dcfc29d1ce5e"
@@ -416,10 +416,10 @@ library SemaphoreVerifierKeyPts {
hex"2602a9d7085929301c5121009e4b9187a06c767ef9aceab2202d20926e03c1ef"
hex"01e3862f91f2e868c1e148e0f7dc7297989c352cd6e56879888e7e21c0948f52"
hex"29075542292ff5d8f4d6bf02b27e289f82bc3934ec7bcf5d4ce5d7aa9dbf2f5f"
hex"21f44b7c70aa59847e1db36ccf30b8a33fa13c5e388ff5b92db2fc5d6da62fb5"
hex"1a65e37ad91961d99c8583a8172b9d247352118cee44b22465bef9865665a47e"
hex"132192686d14d21ba0886af62d7f0eb51f413ff2bd98316a356183f58208a416"
hex"185c7baccbc02f141efff3fb4a95e8d3b2695a0f0690c232d8b39605b46885fb"
hex"11ea16238aa5d188eba8553b6ea4af29ca37201f1b9c9bf7ba44f78264aadabd"
hex"0504068c9c7063a776872824e1ab4b34178621279772ca089c5ba6d7d4c0d4f5"
hex"097cd8eccb72c01dc41c17197a0f4216ca4a0d3a476df762e4b3d4f87c8ff926"
hex"2ce6d1e2f8c9185bd860b2b021b44db3713b420599d990195f8fe82dfaca2fc9"
hex"305bc541a04645fb6f733b27d7950a233599ced31ad97e8d3297094dba4abd6f"
hex"295be8a9589ac33d6f04a426390f6e6cd70aec289a6d1ef3264c887280ad42a8"
hex"103c52bb2708e2a6917efb3fd9145bd1729c2c9fa67f01aba05ab47c56441cdf"
@@ -430,10 +430,10 @@ library SemaphoreVerifierKeyPts {
hex"0b2e26c32addc2ceb297648d3fc271a548b9bf788bff4b2023cab820c4a4ee8f"
hex"201bbb92dcd070b78863668016c24160c2c053dadb24001af4042a1e51246033"
hex"07507505dd11a39d879137103f9972ad0f6d79ea24cc16610e1c9dd1984cda87"
hex"1a826ce5032975f4592fbd0f5263322cce7e33fdfb2d490fb4e80b7d17de89ad"
hex"1558b7b9d3f4bd40213cc2af89ca9145e8b344d1bf504bf6256fae4e8c478adb"
hex"09dc052add4308658eccc8e68ae4f8012d05f472b4c1c625a39319bca758748b"
hex"08d4989195c225dcb4557ffb9dbb42cc431f4ecfdb0adf7e327cd5218b56b337"
hex"1f891703a5676db0633371eca0abacf30d3f4313fc807fbd98d613bef1b3854b"
hex"16cbd386e41f6c4a173a1312f68148cbb308289a209c213fa51dbc31874fe1ee"
hex"1e5c8047a5c0c014f7000ea5d3ca333306adef5755efff735059bc055bed75d7"
hex"1fbb39800b056717d62e76315c4d3e05185e7ee2ece00adefba77bd5b1f4d7bb"
hex"23fde2d94ad2036e9a94304bc121f6c1845a1327d89a6f55bb9ca81eb91e07cd"
hex"0f43871c3ac1f1e37bd2755613ed7b3a3ec11a3eb8fff749ab22f92446f62f85"
hex"152339e3e373c4e4ad9b657f5e665676790ca0bf8e005767aedd4269d107d4f1"
@@ -444,10 +444,10 @@ library SemaphoreVerifierKeyPts {
hex"19b29228092e58a02047d8debf48ba1442ea38aceb82605e8bfa7460c49af496"
hex"0e0528ae6d904bb6c6379fef10cb1d1bc6e867054acf978041ce99becefb2193"
hex"22efa15c26a14170452119318cb1073b15b978fd05c40a5001560edf21df4aac"
hex"16a534da5b52c672bb3326879104eb32db6e815036dc9e43a1d4144af33f09e7"
hex"1ca3cd855c325dbfd0f9e724f144d2c396c83b3300a1bbf691d33a4269b796f8"
hex"0484ff397ef3704d677718224f0eccd23a454a584ad7563bcd916c624a6d9fac"
hex"09bac86d726aa8c5f4c6c45de2836d6d88f69cecc73ec17c882e29c728b30783"
hex"2aeea52c33986c164976c52dfb73b8524b9e12650cc2e6614eb1efd1d3134f58"
hex"25ca08820ba2a38dcd2561640ae9935ef47b5da8a801641a7066f7dbc52ff365"
hex"1d8489971cf0f77a525cae847acd5056502177b00ca5b72b3f0fb32e0bb85bb8"
hex"16d389fa12477aa6c862499500c516228cd9ae7c652c3f61f641b6590b800671"
hex"16569eaf77c8ec57e85b52ee30cd6212133a17ca3a4e87bcfd7507598616214d"
hex"0e2b188f173ee86cce1a411c0d2ff80e1ead326474358dbf412f8e540c01aa91"
hex"173f752e069ecc268a7427e0935db3acd27fb7bc097e2b2c58d5a6acdd1fb4c1"

View File

@@ -1,5 +1,5 @@
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.23 <=0.8.28;
pragma solidity >=0.8.23 <0.9.0;
/// @title Semaphore contract interface.
interface ISemaphore {

View File

@@ -1,5 +1,5 @@
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.23 <=0.8.28;
pragma solidity >=0.8.23 <0.9.0;
/// @title SemaphoreGroups contract interface.
interface ISemaphoreGroups {

View File

@@ -1,5 +1,5 @@
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.23 <=0.8.28;
pragma solidity >=0.8.23 <0.9.0;
/// @title SemaphoreVerifier contract interface.
interface ISemaphoreVerifier {

View File

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

View File

@@ -72,6 +72,22 @@ const hardhatConfig: HardhatUserConfig = {
apiURL: "https://api-sepolia.scrollscan.com/api",
browserURL: "https://sepolia.scrollscan.com"
}
},
{
network: "gnosis-chiado",
chainId: 10200,
urls: {
apiURL: "https://gnosis-chiado.blockscout.com/api",
browserURL: "https://gnosis-chiado.blockscout.com"
}
},
{
network: "gnosis",
chainId: 100,
urls: {
apiURL: "https://api.etherscan.io/v2/api?chainid=100",
browserURL: "https://gnosisscan.io"
}
}
]
},

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

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

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/data",
"version": "4.13.0-beta.0",
"version": "4.14.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.13.0-beta.0",
"@semaphore-protocol/utils": "4.14.0",
"@zk-kit/utils": "1.3.0",
"axios": "1.6.6",
"ethers": "6.13.4",

View File

@@ -208,7 +208,7 @@ export default class SemaphoreEthers {
const membersAddedEvents = await getEvents(this._contract, "MembersAdded", [groupId], this._options.startBlock)
const membersAddedEventsMap = new Map<string, [string]>()
const membersAddedEventsMap = new Map<string, string[]>()
for (const [, startIndex, identityCommitments] of membersAddedEvents) {
membersAddedEventsMap.set(
@@ -295,4 +295,156 @@ export default class SemaphoreEthers {
return this._contract.hasMember(groupId, member)
}
/**
* Listens to the GroupCreated event.
* @param callback Called with the groupId of the newly created group.
*/
onGroupCreated(callback: (groupId: string, event: any) => void): void {
this._contract.on("GroupCreated", (groupId, event) => {
callback(groupId.toString(), event)
})
}
/**
* Removes all listeners for the GroupCreated event.
* Stop receiving group creation notifications.
*/
offGropupCreated(): void {
this._contract.removeAllListeners("GroupCreated")
}
/**
* Listens to MemberAdded events.
* @param callback Receives the groupId, identityCommitment and event metadata.
*/
onMemberAdded(
callback: (groupId: string, identityCommitment: string, merkleTreeRoot: string, event: any) => void
): void {
this._contract.on("MemberAdded", (groupId, _index, identityCommitment, merkleTreeRoot, event) => {
callback(groupId.toString(), identityCommitment.toString(), merkleTreeRoot.toString(), event)
})
}
/**
* Removes all listeners for the MemberAdded event.
* Stop tracking when new members are added.
*/
offMemberAdded(): void {
this._contract.removeAllListeners("MemberAdded")
}
/**
* Listens to MemberUpdated events.
* @param callback Receives the groupId, old identityCommitment, new identityCommitment, and event metadata.
*/
onMemberUpdated(
callback: (
groupId: string,
oldIdentityCommitment: string,
newIdentityCommitment: string,
merkleTreeRoot: string,
event: any
) => void
): void {
this._contract.on(
"MemberUpdated",
(groupId, _index, oldIdentityCommitment, newIdentityCommitment, merkleTreeRoot, event) => {
callback(
groupId.toString(),
oldIdentityCommitment.toString(),
newIdentityCommitment.toString(),
merkleTreeRoot.toString(),
event
)
}
)
}
/**
* Removes all listeners for the MemberUpdated event.
* Stop receiving updates when members change their commitment.
*/
offMemberUpdated(): void {
this._contract.removeAllListeners("MemberUpdated")
}
/**
* Listens to MemberRemoved events.
* @param callback Receives the groupId, identityCommitment and event metadata.
*/
onMemberRemoved(
callback: (groupId: string, identityCommitment: string, merkleTreeRoot: string, event: any) => void
): void {
this._contract.on("MemberRemoved", (groupId, _index, identityCommitment, merkleTreeRoot, event) => {
callback(groupId.toString(), identityCommitment.toString(), merkleTreeRoot.toString(), event)
})
}
/**
* Removes all listeners for the MemberRemoved event.
* Stop listening for member removals.
*/
offMemberRemoved(): void {
this._contract.removeAllListeners("MemberRemoved")
}
/**
* Listens to the ProofValidated event.
* @param callback Called with proof parameters and event metadata.
*/
onProofValidated(
callback: (proof: {
groupId: string
merkleTreeDepth: number
merkleTreeRoot: string
nullifier: string
message: string
scope: string
points: string[]
event: any
}) => void
): void {
this._contract.on(
"ProofValidated",
(groupId, merkleTreeDepth, merkleTreeRoot, nullifier, message, scope, points, event) => {
callback({
groupId: groupId.toString(),
merkleTreeDepth: Number(merkleTreeDepth),
merkleTreeRoot: merkleTreeRoot.toString(),
nullifier: nullifier.toString(),
message: message.toString(),
scope: scope.toString(),
points: points.map((p: any) => p.toString()),
event
})
}
)
}
/**
* Removes all listeners for the ProofValidated event.
* Stop receiving proof validation notifications.
*/
offProofValidated(): void {
this._contract.removeAllListeners("ProofValidated")
}
/**
* Listens to the GroupAdminUpdated event.
* @param callback Receives the groupId, old admin and new admin addresses and event metadata.
*/
onGroupAdminUpdated(callback: (groupId: string, oldAdmin: string, newAdmin: string, event: any) => void): void {
this._contract.on("GroupAdminUpdated", (groupId, oldAdmin, newAdmin, event) => {
callback(groupId.toString(), oldAdmin.toString(), newAdmin.toString(), event)
})
}
/**
* Removes all listeners for the GroupAdminUpdated event.
* Stop tracking when a group's admin is updated.
*/
offGroupAdminUpdated(): void {
this._contract.removeAllListeners("GroupAdminUpdated")
}
}

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

View File

@@ -257,4 +257,140 @@ describe("SemaphoreEthers", () => {
expect(isMember).toBeFalsy()
})
})
describe("Event listeners", () => {
let mockOn: jest.Mock
let mockRemove: jest.Mock
beforeEach(() => {
mockOn = jest.fn()
mockRemove = jest.fn()
ContractMocked.mockImplementation(
() =>
({
on: mockOn,
removeAllListeners: mockRemove
}) as any
)
})
it("onGroupCreated should call the callback with groupId and event", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
const cb = jest.fn()
semaphore.onGroupCreated(cb)
const handler = mockOn.mock.calls.find(([e]) => e === "GroupCreated")![1]
const fakeEvent = { blockNumber: 123 }
handler("42", fakeEvent)
expect(cb).toHaveBeenCalledWith("42", fakeEvent)
expect(mockOn).toHaveBeenCalledWith("GroupCreated", expect.any(Function))
})
it("offGroupCreated should remove all listeners for GroupCreated", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
semaphore.offGropupCreated()
expect(mockRemove).toHaveBeenCalledWith("GroupCreated")
})
it("onMemberAdded should call callback with groupId, identityCommitment and event", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
const cb = jest.fn()
semaphore.onMemberAdded(cb)
const handler = mockOn.mock.calls.find(([e]) => e === "MemberAdded")![1]
const fakeEvent = { txHash: "0xabc" }
handler("group1", 0, "identity123", "root111", fakeEvent)
expect(cb).toHaveBeenCalledWith("group1", "identity123", "root111", fakeEvent)
})
it("onMemberUpdated should call callback with groupId, old and new identity commitments", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
const cb = jest.fn()
semaphore.onMemberUpdated(cb)
const handler = mockOn.mock.calls.find(([e]) => e === "MemberUpdated")![1]
const fakeEvent = { blockNumber: 200 }
handler("groupX", 1, "old123", "new456", "root111", fakeEvent)
expect(cb).toHaveBeenCalledWith("groupX", "old123", "new456", "root111", fakeEvent)
})
it("onMemberRemoved should call callback with groupId, identityCommitment and event", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
const cb = jest.fn()
semaphore.onMemberRemoved(cb)
const handler = mockOn.mock.calls.find(([e]) => e === "MemberRemoved")![1]
const fakeEvent = { txHash: "0xdeadbeef" }
handler("groupZ", 2, "identity999", "root111", fakeEvent)
expect(cb).toHaveBeenCalledWith("groupZ", "identity999", "root111", fakeEvent)
})
it("offMemberAdded/Updated/Removed should remove all corresponding listeners", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
semaphore.offMemberAdded()
semaphore.offMemberUpdated()
semaphore.offMemberRemoved()
expect(mockRemove).toHaveBeenCalledWith("MemberAdded")
expect(mockRemove).toHaveBeenCalledWith("MemberUpdated")
expect(mockRemove).toHaveBeenCalledWith("MemberRemoved")
})
it("onProofValidated should call callback with proof object", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
const cb = jest.fn()
semaphore.onProofValidated(cb)
const handler = mockOn.mock.calls.find(([e]) => e === "ProofValidated")![1]
const fakeEvent = { blockNumber: 400 }
handler("group1", 3, "root123", "nullifierXYZ", "msg1", "scope1", ["p1", "p2"], fakeEvent)
expect(cb).toHaveBeenCalledWith({
groupId: "group1",
merkleTreeDepth: 3,
merkleTreeRoot: "root123",
nullifier: "nullifierXYZ",
message: "msg1",
scope: "scope1",
points: ["p1", "p2"],
event: fakeEvent
})
})
it("offProofValidated should remove all ProofValidated listeners", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
semaphore.offProofValidated()
expect(mockRemove).toHaveBeenCalledWith("ProofValidated")
})
it("onGroupAdminUpdated should call callback with groupId, oldAdmin, newAdmin and event", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
const cb = jest.fn()
semaphore.onGroupAdminUpdated(cb)
const handler = mockOn.mock.calls.find(([e]) => e === "GroupAdminUpdated")![1]
const fakeEvent = { txHash: "0xbeef" }
handler("group1", "0xOLD", "0xNEW", fakeEvent)
expect(cb).toHaveBeenCalledWith("group1", "0xOLD", "0xNEW", fakeEvent)
})
it("offGroupAdminUpdated should remove all GroupAdminUpdated listeners", () => {
const semaphore = new SemaphoreEthers("sepolia", { address: "0x0000" })
semaphore.offGroupAdminUpdated()
expect(mockRemove).toHaveBeenCalledWith("GroupAdminUpdated")
})
})
})

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/group",
"version": "4.13.0-beta.0",
"version": "4.14.0",
"description": "A library to create and manage Semaphore groups.",
"type": "module",
"license": "MIT",

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/hardhat",
"version": "4.13.0-beta.0",
"version": "4.14.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.13.0-beta.0",
"@semaphore-protocol/contracts": "4.14.0",
"ethers": "^6.13.4",
"hardhat-dependency-compiler": "^1.1.3"
}

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/identity",
"version": "4.13.0-beta.0",
"version": "4.14.0",
"description": "A library to create Semaphore identities.",
"type": "module",
"license": "MIT",

View File

@@ -62,7 +62,7 @@ export class Identity {
/**
* Returns the secret scalar.
* @returns The secret scalar as a string.
* @returns The secret scalar as a bigint.
*/
public get secretScalar(): bigint {
return this._secretScalar
@@ -78,7 +78,7 @@ export class Identity {
/**
* Returns the commitment hash of the public key.
* @returns The commitment as a string.
* @returns The commitment as a bigint.
*/
public get commitment(): bigint {
return this._commitment

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -116,3 +116,25 @@ import { verifyProof } from "@semaphore-protocol/proof"
await verifyProof(proof1)
```
## Resource management: Terminating the bn128 curve
When using the Semaphore proof library in Node.js environments, especially in tests or scripts that create and use the `bn128` curve (for example, via `getCurveFromName("bn128")` from the `ffjavascript` package), it is important to properly release resources associated with the curve after use. Failing to do so can result in leaked handles (such as `MessagePort` handles), which may prevent Node.js from exiting cleanly. This is particularly relevant when running test suites.
**How to terminate the bn128 curve:**
If you create a curve instance using `getCurveFromName("bn128")`, you should call its `terminate()` method when you are done with it. For example:
```typescript
import { getCurveFromName } from "ffjavascript"
let curve
beforeAll(async () => {
curve = await getCurveFromName("bn128")
})
afterAll(async () => {
await curve.terminate()
})
```
This ensures that all resources are properly released and Node.js can exit cleanly after your script or tests finish.

View File

@@ -1,6 +1,6 @@
{
"name": "@semaphore-protocol/proof",
"version": "4.13.0-beta.0",
"version": "4.14.0",
"description": "A library to generate and verify Semaphore proofs.",
"type": "module",
"license": "MIT",
@@ -47,11 +47,11 @@
"rollup-plugin-cleanup": "^3.2.1"
},
"peerDependencies": {
"@semaphore-protocol/group": "4.13.0-beta.0",
"@semaphore-protocol/identity": "4.13.0-beta.0"
"@semaphore-protocol/group": "4.14.0",
"@semaphore-protocol/identity": "4.14.0"
},
"dependencies": {
"@semaphore-protocol/utils": "4.13.0-beta.0",
"@semaphore-protocol/utils": "4.14.0",
"@zk-kit/artifacts": "2.0.1",
"@zk-kit/utils": "1.3.0",
"ethers": "6.13.4",

View File

@@ -86,7 +86,7 @@ export default async function generateProof(
// If the Snark artifacts are not defined they will be automatically downloaded.
snarkArtifacts ??= await maybeGetSnarkArtifacts(Project.SEMAPHORE, {
parameters: [merkleTreeDepth],
version: "4.13.0-beta.0"
version: "4.13.0"
})
const { wasm, zkey } = snarkArtifacts

View File

@@ -9,5 +9,5 @@ import { NumericString } from "snarkjs"
* @returns The message digest.
*/
export default function hash(message: BigNumberish): NumericString {
return (BigInt(keccak256(toBeHex(message, 32))) >> BigInt(8)).toString()
return (BigInt(keccak256(toBeHex(message, 32))) >> 8n).toString()
}

View File

@@ -15,6 +15,6 @@ export default function toBigInt(value: BigNumberish | Uint8Array | string): big
return _toBigInt(encodeBytes32String(value))
}
throw TypeError(error.message)
throw TypeError(error instanceof Error ? error.message : error.toString())
}
}

View File

@@ -32,353 +32,353 @@
"vk_delta_2": [
[
[
"1840679495515088482960134696280801630416080790829533023994219551574413949094",
"15486443350553942911683551041605654803534212407535864903504133072835587767534"
"16408413417242390422091814167027427493277171619879801311231535488230631233228",
"9945686348046960753877586492918972777825246677018826948161896201170445700125"
],
[
"3060364846251618669197226831844036150422983854236314835840467692756325510385",
"12760940477503196359006432908275293647896826941237091217431901661449063660172"
"19805828691744104303828611788576365088245444900313217510847939816134147892073",
"6584315070644963867508873956596397181930928138233362569920493830977850569249"
],
["1", "0"]
],
[
[
"17963145441143926394859317681236637592006618363544147407947276880484492680371",
"6261050507485637891582423513662130208217241958377043048952560311304761494073"
"2387596915721059240380306703756745594941774836392065901920862076482873617696",
"4137034247026796121567786020569192018542087029679792022186664106005314607992"
],
[
"5929696182494897738116496406702919537010110779691475286343401163558272783232",
"9912869589312343308005251516267401329267189827995072580912106293819878081537"
"16447312158069665668196107037746726091322857767125704694225455151423385234420",
"12207258509226852403095283170696450586325894259341619206879136573430824179219"
],
["1", "0"]
],
[
[
"21255988222685192016694714308599096736615216083640173463328506136574319058027",
"6797467064093434506265328981445813111906203389978229528042315004249570187291"
"14294733923974082563700679538239516855779956462219064242234075098094333560871",
"16330999452311032943437085246396144436976596572620326866448611437534258631396"
],
[
"21446835829275350516919007849818929203485121644490372577992835374080928795668",
"16473546891063839186038937914738277769151939813697696387906341501525849015883"
"5856262630305079046154806623452275669069805844550622864468698349954335808342",
"4077511428936129071924927150420083045813488070428429073817813611424925121688"
],
["1", "0"]
],
[
[
"16637204801923536761391570057044842644043035640764180460130457715166095033106",
"5882901503720314062955348563045917105685091052294707566015008178821393850609"
"13071886307519653591557928522141791177727944387325349731338730220121865486426",
"9147362984584117589896461943832229407742734559244362782131452071313721467022"
],
[
"10948675177553196754563751079238864166828398075686043485125001989301569053656",
"8350159108048913574286843818550556503979333900863516138248726409577275952933"
"16267462216178612321501515020484989961063147873263196484923037425712997371544",
"12092490337916442957475513586469567371361906149803313377280821909723439581377"
],
["1", "0"]
],
[
[
"8191488691269921292102428273744082989201265293972592501215090275866170397094",
"14177545904200185289716268364371848324191071228268321308456471296302337701410"
"2357551468752810995913393842537718192839284870946471706329338268293755997329",
"17699476683290927561681064863977135617971404674836959835621062864295611403648"
],
[
"18500739249961934972396680135068441371443238780011725149073375526483108011611",
"19441343149344240170106439598347223020332978114969355685042018391569001359289"
"15371001085051472569179708936226706149881484173472097333879881486489180490983",
"12792428623738700989382805503922676104149362420071951662089713970685402064920"
],
["1", "0"]
],
[
[
"5423591608036618983491900675492330939790934080755920580574587483051755682160",
"8346498571072041806024016688930502377674815977631733826791508164913008637092"
"20616939609237548459795216165583176879544143113522163138782264749253509627258",
"13987713805540595141538231036659236350125001216593964477223521911968346527102"
],
[
"7757008322833876393186512548378504451895428855551708811654606466345246636917",
"10400786033607895054840743117193001407671871015193390535654584543108276217299"
"3162343948407473104608991225811079906200146990821363658345349028119611644709",
"3320292317142377941283260904789121584245307520705790709070006866620962533715"
],
["1", "0"]
],
[
[
"7876022414010472450116755702597335463445258388422110145897388602333485776031",
"6954552915867644759919795365481085328920367006486888612486338930979345179539"
"13096135091972781998384533354315732588511252434443280959953028720792091894439",
"17599645347125110170634377768144829252609553303778272999874612657176247663979"
],
[
"13855406623792865220778892253795662153312213223161973619351681417506703976435",
"18734626931994356038247709645956537740336580084792514507313260557025778195490"
"5497049490564113461392112545148903724371578431098493139775449857623325296586",
"7686421875467730512006088099126520544317589903732886932992767694569986256779"
],
["1", "0"]
],
[
[
"3404762234768338083120821975279557606914658342038412313238634752578600094005",
"21498431145572609373314251980589712869881159841893510592717170268695328885996"
"19498497257631907587214071284377177236513238877478254784158949106613204394809",
"4201858703580495907616071164434098089411977757935963172911584461484497089823"
],
[
"918654552925826308762679164490405824774606587821101787512765143024188705418",
"21266383186436584600625000115754074925732127183392411489237572639609946259913"
"14220658082972513690837811349990790459391670015439493604844277256709703968946",
"725072098700696182710385988528309000847717684428652699032837799281837303309"
],
["1", "0"]
],
[
[
"1105993949698345197643585097147614078527877207676560293967325946395146747492",
"14756236886995841711672680054616167637920078630372600521679948347740526367189"
"14886882169839625604512011386316801918767995818481638031200219618637435317046",
"4045148753719902607466865114862064444702845131168750813732988685843265272714"
],
[
"5148450644039009366019642727049358502232344372810327472772792951437893101924",
"18034504812576019315479246085219615019993704166088019750279977777087667864291"
"6080842004111306921355576610508287032807092958050574806583173765232646608130",
"10694987061719986731524904780077663994960386767617837357890167696777886594429"
],
["1", "0"]
],
[
[
"10758093211916314196553200410898803929907647253670535679267346628482277508784",
"4274767232859305751954510235187140718952985628967048586853758431075806713447"
"19724067353675840213140371880930169181883810789843127137211427073528097386069",
"21713798113403639943129465020431058408875932630108492210073762207187255107633"
],
[
"20785260462114497979933096905701121749036536060639824305461951766913183065484",
"19590587972358374264659634037202624970283292908396662177607012603751033232548"
"17930796050321483178126019717582390671874641297920957330301826849122897776475",
"12206390446835120782025093868584394872476245212887793139718936402859799461128"
],
["1", "0"]
],
[
[
"2618246148310960201430780287494848191657796965864927795042805324261941595776",
"14368097422070853236641139374863674518709488047353998784575521063650362599826"
"17328756557422910934818164024947081727797919847622394659808852744488487561121",
"6970640849385862299695602095231000533615427942238133481753115580290886282663"
],
[
"17465285796580856733584559734299011393012845617236431364030926346508390741908",
"15771671515941157829590154651648800528771693275796569547021576985398478660110"
"17551529991224202267708263974810363449203041333779078351019896570513260547078",
"803200290296994529393040192875391266206144602742874360276093971196637285110"
],
["1", "0"]
],
[
[
"19376794298787943849232390087598004542314301522831220597797089322704825950676",
"19737867350231456643052141125117419057327549273339868988801374953723340464858"
"2119776875486510261156090816054891852076653981738105921239014174885904246433",
"14572605232309338398194614880225630634521363940715728597124701672171876503457"
],
[
"20215399339193667804783540498209898191836268304059798672994927365058038602478",
"5242142088838854661041169422540685544283079353176663011990899025319370130535"
"15641680856161902645414137445124067424307682451191794724349887359826084586070",
"14764068940615290963682432521466414132081301332432973819150185889917259656516"
],
["1", "0"]
],
[
[
"10085597991410778862238320724627561390056921134563571321216644036006429959317",
"488378909153995130539871579787989908747014872208439019483108896623576019563"
"12585047581981016758713642748813698038343438252986565458259773061683123989258",
"9669145368105243899354639562088264940980627266994489740805405384333753923552"
],
[
"12021139979512226038579582171586680588100686303249024393111466802301266826355",
"15585477229248209303778943359146070057066347717059619139601910203087367223541"
"15854293065825437298487041414058911622298657451488894851139274730870355353259",
"19565158032720127045649170359766073929463698598471410254463656922079352510393"
],
["1", "0"]
],
[
[
"11151355628734028743957083817146147142246172249256020491677676102936225743879",
"6148878607887470376965106129805417413726273684274618640534372786029109289796"
"2288843848207548606244913096831590643237758110674559319081495071409127772262",
"3252788368686342394845916051738261897651617073407759249108275286346858326943"
],
[
"12434945272614874777532638069978774849585567712897882786927171986914583466968",
"9474416119289678838731839037639543744862713157209984737041165700573998431521"
"16683359175825972027599519332179172395722103735125140270260256591403685239266",
"19124363906021798265340471177011752439360196612765215264076386186223672631683"
],
["1", "0"]
],
[
[
"10552844073840690069380727064202901822322140647994714077968192518599543852930",
"8464564410610586930413078812474653118792378911877719660304629139921145066712"
"21778698515108811822570997836350239604460537154789740349136154088410673666440",
"5780031105796026218614860731746179146574862839671481989139051367514008242236"
],
[
"16226516620176864711410830233184614844801298451143114377985395523309022593742",
"17818349331847453633574212824968147916032901931076653220971306806330949147046"
"8140325513003421209811483931164219330248830428283659149673491359622349624487",
"18469505026450614999435662120574344885993110615313266080469284549107734127701"
],
["1", "0"]
],
[
[
"11910977660987577920210709009672561259828242996197872469075966166845503334627",
"21164034036850174698563376149201020642798017954208990003102125351412476777075"
"15964849500928959236136513927877106396819701524466507680781856032238559291702",
"7548740869127800000959433269529906329291042176659702797114735805029076243809"
],
[
"7186394305295826405234449499478249537877862319211557131722191304883579994433",
"21562696531295689321198364269878153729193003936857975586741303012970796745578"
"20366134800430281137974350328157690756475407434441379325123050644263700762747",
"1672355735830681474636413865943106063110582489546868908540192561642173045849"
],
["1", "0"]
],
[
[
"13904651813758931218451017445595470831267096481007201862612675314124995744126",
"8978042339025226321183681103527823719764115424038453995748192129519557390146"
"15604113119818398859105083663101672704426630802104461803147745295915420543514",
"16114472716989861379676896506941964225302064637372698367976925741668156508052"
],
[
"809388004564643029292757368379254847873608761541694935384989264132892035703",
"17262355234114547923096785351960905409284323750911279031364546115474398387121"
"7939071742082619319458149641163972961008977339800237806212608589725584130020",
"10165003310380856542064932579929053283069946501185445302343404661722980895662"
],
["1", "0"]
],
[
[
"6558345968460784390049763805784521815002217729411851946807884534886626161827",
"15354806778183050889641301855325284664554659630709644281643601998848153844571"
"12959426659056731977096261077158897117816984776686970177641451566537475330762",
"12686597458456839559095621904427573493459559345644733657026411666208793605782"
],
[
"10652535347519887395189822930821580110923839775477692334854598850786110522286",
"2676309859190934211356987871418788745173827917326435545105145194312228927932"
"2556822501937414965915732176313294354334696604955778975945258036864927305135",
"19835071153104544039790862095812156602791894702605430971509518717702362964947"
],
["1", "0"]
],
[
[
"13008837552540329669945555125267601671506850554653484764375554355475322672106",
"8747523348715201524826117893114872627100755908396555383888582540727360170319"
"501939956853020624053826043023206795744298239687467453170002552066896316735",
"15282288821286986303443436438438118467123854134079934970632941246943744947634"
],
[
"14362932262532115101398537266432403469835582928587937986576170126647180259741",
"19465131372243730399032288332923427749623619950649114185283141979669712929495"
"8268832261269721951642392857400064988994240365232333730985870709113231577748",
"17306268320069329930053046486191119384709698006779409787629519770624845846895"
],
["1", "0"]
],
[
[
"2975819863457794540534106082026814925749683882459082630674634814231046678282",
"1412065904663760804646631258746751281043139957823114168896175727357624150645"
"10155645986889866254983794183798376982702094196823662035160585060891538132313",
"8227572988834008904680469166048218402014791963974296824179448357074224817728"
],
[
"10923033686802973630338121076866786707847462224711293894913954604549691323801",
"206849934422338568751809463001100985482666950090899465131147354710598444538"
"21066066529531022287482896734705560568307576550088195620554036170201413152935",
"2766194785450921673319752274493654480922324316669506712863711606971264837815"
],
["1", "0"]
],
[
[
"480162992275307402138458766717022444606853487583906983174006167449133682419",
"4317513895129408767924976740121237429284819818692904643718839027869548773970"
"1989924837531089847846387969204339029084060271880315693828877510016009048244",
"7352603086778020593401803196166503749868671550890770670813014453861490868474"
],
[
"13262405985312444078970186498849943900321195099828985533335868853505917797261",
"19557267590872423028727104631160911505052494099471912877813514632379317322657"
"6428463624222837400592542960880514502148047005367618559502923200431303417626",
"2160048101436923431950651945741915095581265616792410900406773465080133187326"
],
["1", "0"]
],
[
[
"19200202091029490813481650338657084292546203226874832156469803215063946973575",
"12618651409516638881599860197265381601712741100577015122767308286302771469104"
"19303607623375189361174333168663340845013627094607738353031532282040550902377",
"3195542343326523127590636511134614410335800104671557720021340738104811702387"
],
[
"13007473432613827214418912494645587763317012373491741673627171326317268034534",
"18945273845839713936213998948453037377735477138716592823696094972995676430734"
"4747193399637226139967607070154314368157241370565382819691031533975814254142",
"606780685077871587284472254405037298745588560970946322961435429383314118646"
],
["1", "0"]
],
[
[
"17952299377891129778359420358630122674578053260545009238201942962609853227533",
"14870265255248157977634180698448233317842465671871650227662529468472265683359"
"14558408330551331658217821972088118480910056101659366480914289399602315516831",
"9568204816014179577619529844284430743063545941195246216889646276674433402461"
],
[
"189191407461654260009604931094612301596398610086477685396836246155750136562",
"5386067418603374354473699525827266843512990944993920320361025070383636700434"
"4997879817697325140190126125496746317991855622313321171930774136969925165261",
"12942855016996583214204134800269377810677680516245639526261311120541522533623"
],
["1", "0"]
],
[
[
"7087610891726263490578502968372079362079288716742836535052919882096572115198",
"19165288521822971711440427251915924348181678894949479093337606772594416971265"
"13783310291132286501486061315182503677055944149861104676633788059711246063985",
"19190093413956851541449387374199799048221744576578891593940876486082568836726"
],
[
"20657865004359773296174749460208525471465061493425837635789590406080282338609",
"19228987677456716994631757825894461238112362003689797344518092793384553295541"
"15697318658529146415938553904765473201636399656961560956897831706453611373390",
"11337992225169061295633901814645251777656165320625910201890812012309200609498"
],
["1", "0"]
],
[
[
"17505245137434789944182452574067617224425201050484772883547997746615097371963",
"20260845133089358326399158579725156296097803473066640608103207033331068909342"
"18172524094647563702792071405521064148027777374146622596440895328066214725333",
"21569450500189435887199679551535725246094753831124106295990566904036497813254"
],
[
"15868115020802973005975841620700532050231912684799238810660252952702704218237",
"12082907947669406274242472837750330466943195391275224099685976025246128902980"
"9819178401638123792202514084265624499907335293369606938734047198656926777909",
"3145315298367926043213663632718527591959511677826683294840754237808062567112"
],
["1", "0"]
],
[
[
"4594331941598577598221452082661621104692986523889645236013562777079638655319",
"1762609303209957157153721702583827613122834622580171126814810689806194629561"
"8746072717767095707814429468799090500392250697821275811590378893588767597917",
"18802634026897129713917723325543619649182522727835118188707427828679759584422"
],
[
"19007526161802383641240175359461631524610614027094844238119056710952465860473",
"14715579735784199379874892648561441207917258950747011093361545780552208874693"
"7219832117754966106192534848766622469189809645310297510974348973233245025369",
"18704375927500385275425299458226317326347431199233436591432711644245604239077"
],
["1", "0"]
],
[
[
"7485179824123997523131664639381864897259996404684332258166369832135508954123",
"10881342478270369467067319723148813438375856494064738822573065156934347508822"
"13708720001690920974531975083269227589906005357046540542256166004868494493957",
"17438285563716107537313028987468968480486147502509455852617046032572641428099"
],
[
"1601972817031337298637831812199816992312777606655728960021020683868987554195",
"2433711254943158136168851274887377479496744509610267400088629369667247665073"
"11101887644093498136963322545128841855068486606253334583797745666239266446972",
"20460486971944339166023854053015474903256211559095327365767233192985351503994"
],
["1", "0"]
],
[
[
"21876131620481968896720379035237365663921807756136462777091430341330841175471",
"2480144173739108084452448669923323345844609058471921579131898582731718778782"
"132171351540181208752598355011806514484978442078160242634962060418757137902",
"13354046131540785149549755824616257951646671953336984957173828198477971391435"
],
[
"12550030020755657638901767857438417129552040782399257765514449351383057408254",
"15964382790715538209630258689880413000045012534378301423602829251385956103675"
"21669184698178807916508930565726714051772558794823048975473358705382732801596",
"9635523530117598655810969112395005213391266499466713636714826152431721391097"
],
["1", "0"]
],
[
[
"9755778744571784902942024644017144092980460816683088130976096004772677749614",
"14179629833526584267078390697602180301315153315117462805592887876823172854160"
"1817209170269917594978846294744086522596256114711933397300588502829438536106",
"6855256699562883536928701758472081428223522076535727620422471711268239634308"
],
[
"20514202086309996096362622893461701155412137905240430685043036948343951709643",
"15306529066742219394416286050483836689979166471171430146167318778106717624323"
"21773055244640460218409135038646161676097355933318612827708333265587791702761",
"4880541329774392852243411920559969839321972249482564734670937681914115129863"
],
["1", "0"]
],
[
[
"11940155625104966699871577601422782101210008500962523039290080397463046694014",
"15357955672928167071421694099421283513276146532620388613155238902840418512821"
"2268676832521011389605833228499733106004721523029486634934922586295864710389",
"8102913435692743300910502697459995333988046387043253689269460988879348357821"
],
[
"11018911869326941748396097333962610012409367206771382235485410180078770882043",
"8653260546508437813015547420357224754812469590996139030970771427385175221270"
"20309588746697349568949048390517274459537703018546300964903000505784921108425",
"4291401834465838169107131630619002425334621571862337210064229894382878193958"
],
["1", "0"]
],
[
[
"9655320391442261506786613437943886318993096074047475943277953998327093103323",
"11990575744352349061206874522191627046356700332670362317248363792794111609261"
"10311012528118027945397529231050612295259038290206749112146827480766291632622",
"14263915192420789008257078016040368451751565013845409244574826505356681905483"
],
[
"3994127356807526759133607764364756226470889975995316552714584542267749872439",
"4459557655851728174093393601907507106908102585694069559196111332071173551243"
"14352495558770414119917297125905421752955375327125069951920582428689643657147",
"13732820742602026577147919232809575149719811385820138732151195012323892622807"
],
["1", "0"]
],
[
[
"12954174285273784606549075693506845206889763851307846906974770419072943757048",
"10242777212216170785927073187477519618168562932047805757285622707858165402087"
"17092537224655272022410655318466617424580925386513981972839127238283870860133",
"19418789221732947317254488453881986598823601057019654728627221055116187750232"
],
[
"4400832491251200142006544665326745668350059126542471090547702174205927950211",
"2044236702288697521380775108848050428046625780334775597453588365357238558636"
"10324639680661302781934202760230560206041062507025982983925498455935854577265",
"13351246034714801162998612043454267340423379651242067402477042359803697454008"
],
["1", "0"]
]

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 Ethereum Foundation
Copyright (c) 2025 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

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

View File

@@ -4,18 +4,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 8263690
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 9118042
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 8263690
"startBlock": 9118042
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 8263690
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 9118042
}
]
},
@@ -24,18 +24,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 22424592
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 23311418
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 22424592
"startBlock": 23311418
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 22424592
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 23311418
}
]
},
@@ -44,18 +44,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 149903019
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 190173122
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 149903019
"startBlock": 190173122
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 149903019
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 190173122
}
]
},
@@ -64,18 +64,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 27341051
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 32508911
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 27341051
"startBlock": 32508911
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 27341051
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 32508911
}
]
},
@@ -84,18 +84,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 21308099
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 25915415
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 21308099
"startBlock": 25915415
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 21308099
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 25915415
}
]
},
@@ -104,18 +104,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 333645515
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 376612967
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 333645515
"startBlock": 376612967
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 333645515
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 376612967
}
]
},
@@ -124,18 +124,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 71158898
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 76162950
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 71158898
"startBlock": 76162950
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 71158898
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 76162950
}
]
},
@@ -144,18 +144,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 135443119
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 140821423
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 135443119
"startBlock": 140821423
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 135443119
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 140821423
}
]
},
@@ -164,18 +164,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 25358716
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 30526193
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 25358716
"startBlock": 30526193
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 25358716
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 30526193
}
]
},
@@ -184,18 +184,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 12757656
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 17778088
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 12757656
"startBlock": 17778088
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 12757656
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 17778088
}
]
},
@@ -204,18 +204,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 29848242
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 35226469
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 29848242
"startBlock": 35226469
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 29848242
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 35226469
}
]
},
@@ -224,18 +224,18 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 18707811
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 23030579
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 18707811
"startBlock": 23030579
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 18707811
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 23030579
}
]
},
@@ -244,18 +244,58 @@
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x6C42599435B82121794D835263C846384869502d",
"startBlock": 9604960
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 11979239
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 9604960
"startBlock": 11979239
},
{
"name": "Semaphore",
"address": "0x697c80d1F2654e88d52B16154929EB976568DB04",
"startBlock": 9604960
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 11979239
}
]
},
{
"network": "gnosis-chiado",
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 18246899
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 18246899
},
{
"name": "Semaphore",
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 18246899
}
]
},
{
"network": "gnosis",
"contracts": [
{
"name": "SemaphoreVerifier",
"address": "0x4DeC9E3784EcC1eE002001BfE91deEf4A48931f8",
"startBlock": 42592252
},
{
"name": "PoseidonT3",
"address": "0xB43122Ecb241DD50062641f089876679fd06599a",
"startBlock": 42592252
},
{
"name": "Semaphore",
"address": "0x8A1fd199516489B0Fb7153EB5f075cDAC83c693D",
"startBlock": 42592252
}
]
}

View File

@@ -76,5 +76,17 @@ export default {
url: "https://sepolia-rpc.scroll.io",
chainId: 534351,
explorer: "https://sepolia.scrollscan.com"
},
"gnosis-chiado": {
name: "Gnosis Chiado",
url: "https://rpc.chiadochain.net",
chainId: 10200,
explorer: "https://blockscout.com/gnosis/chiado"
},
gnosis: {
name: "Gnosis",
url: "https://rpc.gnosischain.com",
chainId: 100,
explorer: "https://gnosisscan.io"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -20,7 +20,9 @@ async function main() {
.filter((file) => file.isDirectory())
.map((dir) => dir.name)
folders.map((app) => gitIgnored.map((f) => rmSync(`${folderName}/${app}/${f}`, { recursive: true, force: true })))
folders.forEach((app) =>
gitIgnored.forEach((f) => rmSync(`${folderName}/${app}/${f}`, { recursive: true, force: true }))
)
}
main()

View File

@@ -14,8 +14,8 @@ const gitIgnored = [
const folders = ["cli-template-monorepo-ethers", "cli-template-monorepo-subgraph"]
async function main() {
folders.map((pkg) =>
gitIgnored.map((f) => rmSync(`${folderName}/${pkg}/apps/${f}`, { recursive: true, force: true }))
folders.forEach((pkg) =>
gitIgnored.forEach((f) => rmSync(`${folderName}/${pkg}/apps/${f}`, { recursive: true, force: true }))
)
}

View File

@@ -10,7 +10,9 @@ async function main() {
.filter((file) => file.isDirectory())
.map((dir) => dir.name)
folders.map((app) => gitIgnored.map((f) => rmSync(`${folderName}/${app}/${f}`, { recursive: true, force: true })))
folders.forEach((app) =>
gitIgnored.forEach((f) => rmSync(`${folderName}/${app}/${f}`, { recursive: true, force: true }))
)
rmSync(`${folderName}/circuit/main`, { recursive: true, force: true })
rmSync(`${folderName}/circuit/test`, { recursive: true, force: true })

312
yarn.lock
View File

@@ -6408,13 +6408,6 @@ __metadata:
languageName: node
linkType: hard
"@next/env@npm:13.5.5":
version: 13.5.5
resolution: "@next/env@npm:13.5.5"
checksum: 10/519dc30be6db82d57194b6bfe50b397a37b7189a8f35d33061ae0d4f93bb8774ca7710f7da7150b3c85f329d412a35b49782d70e08e44816716b19c7ac463ae1
languageName: node
linkType: hard
"@next/env@npm:14.1.0":
version: 14.1.0
resolution: "@next/env@npm:14.1.0"
@@ -6422,6 +6415,13 @@ __metadata:
languageName: node
linkType: hard
"@next/env@npm:14.2.35":
version: 14.2.35
resolution: "@next/env@npm:14.2.35"
checksum: 10/5685145c9a6e6d21a85c012b023092ff50cfee61b73424d3c913d4155a89c85cf02867e79b5b3bde6ef9f6e6b2bec662cecd644d0d428082801e95c4cbe2393f
languageName: node
linkType: hard
"@next/eslint-plugin-next@npm:14.1.0":
version: 14.1.0
resolution: "@next/eslint-plugin-next@npm:14.1.0"
@@ -6431,13 +6431,6 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-darwin-arm64@npm:13.5.5":
version: 13.5.5
resolution: "@next/swc-darwin-arm64@npm:13.5.5"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@next/swc-darwin-arm64@npm:14.1.0":
version: 14.1.0
resolution: "@next/swc-darwin-arm64@npm:14.1.0"
@@ -6445,10 +6438,10 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-darwin-x64@npm:13.5.5":
version: 13.5.5
resolution: "@next/swc-darwin-x64@npm:13.5.5"
conditions: os=darwin & cpu=x64
"@next/swc-darwin-arm64@npm:14.2.33":
version: 14.2.33
resolution: "@next/swc-darwin-arm64@npm:14.2.33"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
@@ -6459,10 +6452,10 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-linux-arm64-gnu@npm:13.5.5":
version: 13.5.5
resolution: "@next/swc-linux-arm64-gnu@npm:13.5.5"
conditions: os=linux & cpu=arm64 & libc=glibc
"@next/swc-darwin-x64@npm:14.2.33":
version: 14.2.33
resolution: "@next/swc-darwin-x64@npm:14.2.33"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
@@ -6473,10 +6466,10 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-linux-arm64-musl@npm:13.5.5":
version: 13.5.5
resolution: "@next/swc-linux-arm64-musl@npm:13.5.5"
conditions: os=linux & cpu=arm64 & libc=musl
"@next/swc-linux-arm64-gnu@npm:14.2.33":
version: 14.2.33
resolution: "@next/swc-linux-arm64-gnu@npm:14.2.33"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
@@ -6487,10 +6480,10 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-linux-x64-gnu@npm:13.5.5":
version: 13.5.5
resolution: "@next/swc-linux-x64-gnu@npm:13.5.5"
conditions: os=linux & cpu=x64 & libc=glibc
"@next/swc-linux-arm64-musl@npm:14.2.33":
version: 14.2.33
resolution: "@next/swc-linux-arm64-musl@npm:14.2.33"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
@@ -6501,10 +6494,10 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-linux-x64-musl@npm:13.5.5":
version: 13.5.5
resolution: "@next/swc-linux-x64-musl@npm:13.5.5"
conditions: os=linux & cpu=x64 & libc=musl
"@next/swc-linux-x64-gnu@npm:14.2.33":
version: 14.2.33
resolution: "@next/swc-linux-x64-gnu@npm:14.2.33"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
@@ -6515,10 +6508,10 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-win32-arm64-msvc@npm:13.5.5":
version: 13.5.5
resolution: "@next/swc-win32-arm64-msvc@npm:13.5.5"
conditions: os=win32 & cpu=arm64
"@next/swc-linux-x64-musl@npm:14.2.33":
version: 14.2.33
resolution: "@next/swc-linux-x64-musl@npm:14.2.33"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
@@ -6529,10 +6522,10 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-win32-ia32-msvc@npm:13.5.5":
version: 13.5.5
resolution: "@next/swc-win32-ia32-msvc@npm:13.5.5"
conditions: os=win32 & cpu=ia32
"@next/swc-win32-arm64-msvc@npm:14.2.33":
version: 14.2.33
resolution: "@next/swc-win32-arm64-msvc@npm:14.2.33"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
@@ -6543,10 +6536,10 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-win32-x64-msvc@npm:13.5.5":
version: 13.5.5
resolution: "@next/swc-win32-x64-msvc@npm:13.5.5"
conditions: os=win32 & cpu=x64
"@next/swc-win32-ia32-msvc@npm:14.2.33":
version: 14.2.33
resolution: "@next/swc-win32-ia32-msvc@npm:14.2.33"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
@@ -6557,6 +6550,13 @@ __metadata:
languageName: node
linkType: hard
"@next/swc-win32-x64-msvc@npm:14.2.33":
version: 14.2.33
resolution: "@next/swc-win32-x64-msvc@npm:14.2.33"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@noble/curves@npm:1.2.0":
version: 1.2.0
resolution: "@noble/curves@npm:1.2.0"
@@ -7613,7 +7613,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@semaphore-protocol/cli-template-contracts-foundry@workspace:packages/cli-template-contracts-foundry"
dependencies:
"@semaphore-protocol/contracts": "npm:4.13.0-beta.0"
"@semaphore-protocol/contracts": "npm:4.14.0"
"@zk-kit/lean-imt.sol": "npm:2.0.1"
forge-std: "github:foundry-rs/forge-std#v1.9.4"
poseidon-solidity: "npm:0.0.5"
@@ -7633,10 +7633,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.13.0-beta.0"
"@semaphore-protocol/core": "npm:4.13.0-beta.0"
"@semaphore-protocol/hardhat": "npm:4.13.0-beta.0"
"@semaphore-protocol/utils": "npm:4.13.0-beta.0"
"@semaphore-protocol/contracts": "npm:4.14.0"
"@semaphore-protocol/core": "npm:4.14.0"
"@semaphore-protocol/hardhat": "npm:4.14.0"
"@semaphore-protocol/utils": "npm:4.14.0"
"@typechain/ethers-v6": "npm:^0.5.0"
"@typechain/hardhat": "npm:^9.0.0"
"@types/chai": "npm:^4.2.0"
@@ -7686,8 +7686,8 @@ __metadata:
resolution: "@semaphore-protocol/cli@workspace:packages/cli"
dependencies:
"@rollup/plugin-typescript": "npm:^11.1.6"
"@semaphore-protocol/data": "npm:4.13.0-beta.0"
"@semaphore-protocol/utils": "npm:4.13.0-beta.0"
"@semaphore-protocol/data": "npm:4.14.0"
"@semaphore-protocol/utils": "npm:4.14.0"
"@types/figlet": "npm:^1.5.8"
"@types/inquirer": "npm:^9.0.7"
"@types/pacote": "npm:^11.1.8"
@@ -7711,7 +7711,7 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/contracts@npm:4.13.0-beta.0, @semaphore-protocol/contracts@workspace:packages/contracts/contracts":
"@semaphore-protocol/contracts@npm:4.14.0, @semaphore-protocol/contracts@workspace:packages/contracts/contracts":
version: 0.0.0-use.local
resolution: "@semaphore-protocol/contracts@workspace:packages/contracts/contracts"
dependencies:
@@ -7719,23 +7719,23 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/core@npm:4.13.0-beta.0, @semaphore-protocol/core@workspace:^, @semaphore-protocol/core@workspace:packages/core":
"@semaphore-protocol/core@npm:4.14.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.13.0-beta.0"
"@semaphore-protocol/identity": "npm:4.13.0-beta.0"
"@semaphore-protocol/proof": "npm:4.13.0-beta.0"
"@semaphore-protocol/group": "npm:4.14.0"
"@semaphore-protocol/identity": "npm:4.14.0"
"@semaphore-protocol/proof": "npm:4.14.0"
languageName: unknown
linkType: soft
"@semaphore-protocol/data@npm:4.13.0-beta.0, @semaphore-protocol/data@workspace:packages/data":
"@semaphore-protocol/data@npm:4.14.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.13.0-beta.0"
"@semaphore-protocol/utils": "npm:4.14.0"
"@zk-kit/utils": "npm:1.3.0"
axios: "npm:1.6.6"
ethers: "npm:6.13.4"
@@ -7746,7 +7746,7 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/group@npm:4.13.0-beta.0, @semaphore-protocol/group@workspace:packages/group":
"@semaphore-protocol/group@npm:4.14.0, @semaphore-protocol/group@workspace:packages/group":
version: 0.0.0-use.local
resolution: "@semaphore-protocol/group@workspace:packages/group"
dependencies:
@@ -7760,13 +7760,13 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/hardhat@npm:4.13.0-beta.0, @semaphore-protocol/hardhat@workspace:packages/hardhat":
"@semaphore-protocol/hardhat@npm:4.14.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.13.0-beta.0"
"@semaphore-protocol/contracts": "npm:4.14.0"
ethers: "npm:^6.13.4"
hardhat: "npm:^2.19.4"
hardhat-dependency-compiler: "npm:^1.1.3"
@@ -7778,7 +7778,7 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/identity@npm:4.13.0-beta.0, @semaphore-protocol/identity@workspace:packages/identity":
"@semaphore-protocol/identity@npm:4.14.0, @semaphore-protocol/identity@workspace:packages/identity":
version: 0.0.0-use.local
resolution: "@semaphore-protocol/identity@workspace:packages/identity"
dependencies:
@@ -7794,14 +7794,14 @@ __metadata:
languageName: unknown
linkType: soft
"@semaphore-protocol/proof@npm:4.13.0-beta.0, @semaphore-protocol/proof@workspace:packages/proof":
"@semaphore-protocol/proof@npm:4.14.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.13.0-beta.0"
"@semaphore-protocol/utils": "npm:4.14.0"
"@types/snarkjs": "npm:^0"
"@zk-kit/artifacts": "npm:2.0.1"
"@zk-kit/utils": "npm:1.3.0"
@@ -7811,12 +7811,12 @@ __metadata:
rollup-plugin-cleanup: "npm:^3.2.1"
snarkjs: "npm:0.7.5"
peerDependencies:
"@semaphore-protocol/group": 4.13.0-beta.0
"@semaphore-protocol/identity": 4.13.0-beta.0
"@semaphore-protocol/group": 4.14.0
"@semaphore-protocol/identity": 4.14.0
languageName: unknown
linkType: soft
"@semaphore-protocol/utils@npm:4.13.0-beta.0, @semaphore-protocol/utils@workspace:packages/utils":
"@semaphore-protocol/utils@npm:4.14.0, @semaphore-protocol/utils@workspace:packages/utils":
version: 0.0.0-use.local
resolution: "@semaphore-protocol/utils@workspace:packages/utils"
dependencies:
@@ -8373,6 +8373,13 @@ __metadata:
languageName: node
linkType: hard
"@swc/counter@npm:^0.1.3":
version: 0.1.3
resolution: "@swc/counter@npm:0.1.3"
checksum: 10/df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598
languageName: node
linkType: hard
"@swc/helpers@npm:0.5.2":
version: 0.5.2
resolution: "@swc/helpers@npm:0.5.2"
@@ -8382,6 +8389,16 @@ __metadata:
languageName: node
linkType: hard
"@swc/helpers@npm:0.5.5":
version: 0.5.5
resolution: "@swc/helpers@npm:0.5.5"
dependencies:
"@swc/counter": "npm:^0.1.3"
tslib: "npm:^2.4.0"
checksum: 10/1c5ef04f642542212df28c669438f3e0f459dcde7b448a5b1fcafb2e9e4f13e76d8428535a270e91ed123dd2a21189dbed34086b88a8cf68baf84984d6d0e39b
languageName: node
linkType: hard
"@szmarczak/http-timer@npm:^5.0.1":
version: 5.0.1
resolution: "@szmarczak/http-timer@npm:5.0.1"
@@ -11664,7 +11681,7 @@ __metadata:
languageName: node
linkType: hard
"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001599":
"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001599":
version: 1.0.30001620
resolution: "caniuse-lite@npm:1.0.30001620"
checksum: 10/d615ab66eb14d9b621004297a8f61e435dca67e9311f3979e47ee1af1be2a8f14997b947a101073d949b5454dad745cc35134bc3c4295c7f33968f3f665eba19
@@ -21721,10 +21738,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.13.0-beta.0"
"@semaphore-protocol/core": "npm:4.13.0-beta.0"
"@semaphore-protocol/hardhat": "npm:4.13.0-beta.0"
"@semaphore-protocol/utils": "npm:4.13.0-beta.0"
"@semaphore-protocol/contracts": "npm:4.14.0"
"@semaphore-protocol/core": "npm:4.14.0"
"@semaphore-protocol/hardhat": "npm:4.14.0"
"@semaphore-protocol/utils": "npm:4.14.0"
"@typechain/ethers-v6": "npm:^0.5.0"
"@typechain/hardhat": "npm:^9.0.0"
"@types/chai": "npm:^4.2.0"
@@ -21757,9 +21774,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.13.0-beta.0"
"@semaphore-protocol/data": "npm:4.13.0-beta.0"
"@semaphore-protocol/utils": "npm:4.13.0-beta.0"
"@semaphore-protocol/core": "npm:4.14.0"
"@semaphore-protocol/data": "npm:4.14.0"
"@semaphore-protocol/utils": "npm:4.14.0"
"@types/node": "npm:^20"
"@types/react": "npm:^18"
"@types/react-dom": "npm:^18"
@@ -21784,10 +21801,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.13.0-beta.0"
"@semaphore-protocol/core": "npm:4.13.0-beta.0"
"@semaphore-protocol/hardhat": "npm:4.13.0-beta.0"
"@semaphore-protocol/utils": "npm:4.13.0-beta.0"
"@semaphore-protocol/contracts": "npm:4.14.0"
"@semaphore-protocol/core": "npm:4.14.0"
"@semaphore-protocol/hardhat": "npm:4.14.0"
"@semaphore-protocol/utils": "npm:4.14.0"
"@typechain/ethers-v6": "npm:^0.5.0"
"@typechain/hardhat": "npm:^9.0.0"
"@types/chai": "npm:^4.2.0"
@@ -21820,9 +21837,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.13.0-beta.0"
"@semaphore-protocol/data": "npm:4.13.0-beta.0"
"@semaphore-protocol/utils": "npm:4.13.0-beta.0"
"@semaphore-protocol/core": "npm:4.14.0"
"@semaphore-protocol/data": "npm:4.14.0"
"@semaphore-protocol/utils": "npm:4.14.0"
"@types/node": "npm:^20"
"@types/react": "npm:^18"
"@types/react-dom": "npm:^18"
@@ -22009,61 +22026,6 @@ __metadata:
languageName: node
linkType: hard
"next@npm:13.5.5":
version: 13.5.5
resolution: "next@npm:13.5.5"
dependencies:
"@next/env": "npm:13.5.5"
"@next/swc-darwin-arm64": "npm:13.5.5"
"@next/swc-darwin-x64": "npm:13.5.5"
"@next/swc-linux-arm64-gnu": "npm:13.5.5"
"@next/swc-linux-arm64-musl": "npm:13.5.5"
"@next/swc-linux-x64-gnu": "npm:13.5.5"
"@next/swc-linux-x64-musl": "npm:13.5.5"
"@next/swc-win32-arm64-msvc": "npm:13.5.5"
"@next/swc-win32-ia32-msvc": "npm:13.5.5"
"@next/swc-win32-x64-msvc": "npm:13.5.5"
"@swc/helpers": "npm:0.5.2"
busboy: "npm:1.6.0"
caniuse-lite: "npm:^1.0.30001406"
postcss: "npm:8.4.31"
styled-jsx: "npm:5.1.1"
watchpack: "npm:2.4.0"
peerDependencies:
"@opentelemetry/api": ^1.1.0
react: ^18.2.0
react-dom: ^18.2.0
sass: ^1.3.0
dependenciesMeta:
"@next/swc-darwin-arm64":
optional: true
"@next/swc-darwin-x64":
optional: true
"@next/swc-linux-arm64-gnu":
optional: true
"@next/swc-linux-arm64-musl":
optional: true
"@next/swc-linux-x64-gnu":
optional: true
"@next/swc-linux-x64-musl":
optional: true
"@next/swc-win32-arm64-msvc":
optional: true
"@next/swc-win32-ia32-msvc":
optional: true
"@next/swc-win32-x64-msvc":
optional: true
peerDependenciesMeta:
"@opentelemetry/api":
optional: true
sass:
optional: true
bin:
next: dist/bin/next
checksum: 10/9e6aa7fd7df96caeeaaf5436b839fa85aedd8f1f9ee695add0e0346bf9941683dd5d81dbcc60d5e19e5b630959a8abee29c523856b21e13419c795882fcb8ef6
languageName: node
linkType: hard
"next@npm:14.1.0":
version: 14.1.0
resolution: "next@npm:14.1.0"
@@ -22119,6 +22081,64 @@ __metadata:
languageName: node
linkType: hard
"next@npm:14.2.35":
version: 14.2.35
resolution: "next@npm:14.2.35"
dependencies:
"@next/env": "npm:14.2.35"
"@next/swc-darwin-arm64": "npm:14.2.33"
"@next/swc-darwin-x64": "npm:14.2.33"
"@next/swc-linux-arm64-gnu": "npm:14.2.33"
"@next/swc-linux-arm64-musl": "npm:14.2.33"
"@next/swc-linux-x64-gnu": "npm:14.2.33"
"@next/swc-linux-x64-musl": "npm:14.2.33"
"@next/swc-win32-arm64-msvc": "npm:14.2.33"
"@next/swc-win32-ia32-msvc": "npm:14.2.33"
"@next/swc-win32-x64-msvc": "npm:14.2.33"
"@swc/helpers": "npm:0.5.5"
busboy: "npm:1.6.0"
caniuse-lite: "npm:^1.0.30001579"
graceful-fs: "npm:^4.2.11"
postcss: "npm:8.4.31"
styled-jsx: "npm:5.1.1"
peerDependencies:
"@opentelemetry/api": ^1.1.0
"@playwright/test": ^1.41.2
react: ^18.2.0
react-dom: ^18.2.0
sass: ^1.3.0
dependenciesMeta:
"@next/swc-darwin-arm64":
optional: true
"@next/swc-darwin-x64":
optional: true
"@next/swc-linux-arm64-gnu":
optional: true
"@next/swc-linux-arm64-musl":
optional: true
"@next/swc-linux-x64-gnu":
optional: true
"@next/swc-linux-x64-musl":
optional: true
"@next/swc-win32-arm64-msvc":
optional: true
"@next/swc-win32-ia32-msvc":
optional: true
"@next/swc-win32-x64-msvc":
optional: true
peerDependenciesMeta:
"@opentelemetry/api":
optional: true
"@playwright/test":
optional: true
sass:
optional: true
bin:
next: dist/bin/next
checksum: 10/3647056e208cf0b19821d761841b378c8fb489b291acc8dc4d80a7afe6b1850b30dad91e1766301feda03360275347881d6ead068f1f944d823b4f91177f35ae
languageName: node
linkType: hard
"no-case@npm:^3.0.4":
version: 3.0.4
resolution: "no-case@npm:3.0.4"
@@ -26328,7 +26348,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.13.0-beta.0"
"@semaphore-protocol/utils": "npm:4.14.0"
"@svgr/webpack": "npm:^5.5.0"
"@types/react": "npm:^18.2.29"
clsx: "npm:^1.2.1"
@@ -26416,7 +26436,7 @@ __metadata:
"@types/react": "npm:^18"
"@types/react-dom": "npm:^18"
framer-motion: "npm:^10.16.4"
next: "npm:13.5.5"
next: "npm:14.2.35"
react: "npm:^18"
react-code-blocks: "npm:^0.1.4"
react-dom: "npm:^18"
@@ -29463,16 +29483,6 @@ __metadata:
languageName: node
linkType: hard
"watchpack@npm:2.4.0":
version: 2.4.0
resolution: "watchpack@npm:2.4.0"
dependencies:
glob-to-regexp: "npm:^0.4.1"
graceful-fs: "npm:^4.1.2"
checksum: 10/4280b45bc4b5d45d5579113f2a4af93b67ae1b9607cc3d86ae41cdd53ead10db5d9dc3237f24256d05ef88b28c69a02712f78e434cb7ecc8edaca134a56e8cab
languageName: node
linkType: hard
"watchpack@npm:^2.4.1":
version: 2.4.1
resolution: "watchpack@npm:2.4.1"