diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/fetching-data.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/fetching-data.mdx
index 886a84ca..ab492ed0 100644
--- a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/fetching-data.mdx
+++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/fetching-data.mdx
@@ -8,7 +8,7 @@ import TabItem from "@theme/TabItem"
# Semaphore data
-Para obtener datos on-chain del contrato [Semaphore.sol](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol), puedes usar la librería [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data).
+Para obtener datos on-chain del contrato [Semaphore.sol](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol), puedes usar la librería [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data).
Hay dos formas para hacer esto, usando [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) o [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts). La clase `SemaphoreSubgraph` usa el [subgrafo de Semaphore](https://github.com/semaphore-protocol/subgraph), el cual usa [The Graph Protocol](https://thegraph.com/) detrás del telón, y la clase `SemaphoreEthers` usa [Ethers](https://github.com/ethers-io/ethers.js/).
@@ -23,6 +23,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -37,12 +38,19 @@ npm install @semaphore-protocol/data
yarn add @semaphore-protocol/data
```
+
+
+
+```bash
+pnpm add @semaphore-protocol/data
+```
+
## Obtener datos usando SemaphoreSubgraph
-Para obtener datos usando el subgrafo de Semaphore puedes usar la clase [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) del paquete [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data).
+Para obtener datos usando el subgrafo de Semaphore puedes usar la clase [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) del paquete [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data).
```typescript
import { SemaphoreSubgraph } from "@semaphore-protocol/data"
@@ -109,7 +117,7 @@ const group = new Group(groupId, 20, members)
## Obtener datos usando SemaphoreEthers
-Para obtener datos usando Ethers puedes usar la clase [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts) del paquete [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data).
+Para obtener datos usando Ethers puedes usar la clase [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts) del paquete [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data).
```typescript
import { SemaphoreEthers } from "@semaphore-protocol/data"
diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/groups.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/groups.mdx
index c79ea33c..4478c53c 100644
--- a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/groups.mdx
+++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/groups.mdx
@@ -39,7 +39,7 @@ Utilice la clase `Group` de la librería [`@semaphore-protocol/group`](https://g
- `Group id`: un identificar único para el grupo;
- `Tree depth`: (_default `20`_) el número máximo de usuarios que puede contener un grupo, el valor por defecto es 20 (`max size = 2 ^ tree depth`).
-- `Members`: (_default `[]`_) la lista de miembros para inicializar el grupo.
+- `Members`: (_default `[]`_) la lista de miembros para inicializar el grupo.
#### Instalar librería:
@@ -49,6 +49,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -63,6 +64,13 @@ npm install @semaphore-protocol/group
yarn add @semaphore-protocol/group
```
+
+
+
+```bash
+pnpm add @semaphore-protocol/group
+```
+
@@ -148,4 +156,4 @@ Alternativamente, puede utilizar un contrato [`Semaphore.sol`](https://github.co
:::caution
`Semaphore.sol` incluye un mecanismo para verificar pruebas Semaphore creadas con raíces de árboles de Merkle antiguas. La duración de este mecanismo puede ser definido por el admin en la función `createGroup`. Por lo tanto, los miembros de un grupo pueden continuar generando pruebas válidas incluso después de ser removidos. Para más información ver el issue [#98](https://github.com/semaphore-protocol/semaphore/issues/98).
-:::
+:::
\ No newline at end of file
diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/identities.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/identities.mdx
index 94c4a69a..59555b27 100644
--- a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/identities.mdx
+++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/identities.mdx
@@ -32,20 +32,26 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
```bash
npm install @semaphore-protocol/identity
```
-
-
```bash
yarn add @semaphore-protocol/identity
```
+
+
+
+```bash
+pnpm add @semaphore-protocol/identity
+```
+
diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/proofs.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/proofs.mdx
index 779326a5..8e56ee24 100644
--- a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/proofs.mdx
+++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/guides/proofs.mdx
@@ -38,6 +38,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -51,6 +52,12 @@ npm install @semaphore-protocol/proof
```bash
yarn add @semaphore-protocol/proof
```
+
+
+
+```bash
+pnpm add @semaphore-protocol/proof
+```
diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/quick-setup.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/quick-setup.mdx
index 4265edc0..006faefd 100644
--- a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/quick-setup.mdx
+++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/quick-setup.mdx
@@ -36,6 +36,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -51,6 +52,14 @@ npm i
cd my-app
yarn
```
+
+
+
+
+```bash
+cd my-app
+pnpm install
+```
@@ -63,21 +72,21 @@ El comando `create` creará un directorio con el nombre my-app (o cualquier nomb
my-app
├── .yarn
├── apps
-│ └── contracts
-│ │ └── contracts
-| │ │ └── Feedback.sol
-│ │ └── scripts
-| │ │ └── download-snark-artifacts.ts
-│ │ └── tasks
-| │ │ └── deploy.ts
-│ │ └── test
-| │ │ └── Feedback.ts
-│ │ └── hardhat.config.ts
-│ │ └── package.json
-│ │ └── tsconfig.json
-│ └── web-app
+│ └── contracts
+│ │ └── contracts
+| │ │ └── Feedback.sol
+│ │ └── scripts
+| │ │ └── download-snark-artifacts.ts
+│ │ └── tasks
+| │ │ └── deploy.ts
+│ │ └── test
+| │ │ └── Feedback.ts
+│ │ └── hardhat.config.ts
+│ │ └── package.json
+│ │ └── tsconfig.json
+│ └── web-app
├── scripts
-│ └── copy-contracts-artifacts.ts
+│ └── copy-contracts-artifacts.ts
├── .editorconfig
├── .env
├── .env.example
@@ -112,6 +121,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -126,6 +136,13 @@ npm run compile
yarn compile
```
+
+
+
+```bash
+pnpm compile
+```
+
@@ -139,6 +156,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -153,6 +171,13 @@ npm test
yarn test
```
+
+
+
+```bash
+pnpm test
+```
+
@@ -164,6 +189,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -178,6 +204,13 @@ npm run test:coverage
yarn test:coverage
```
+
+
+
+```bash
+pnpm test:coverage
+```
+
@@ -189,6 +222,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -203,6 +237,13 @@ npm run test:report-gas
yarn test:report-gas
```
+
+
+
+```bash
+pnpm test:report-gas
+```
+
@@ -226,6 +267,7 @@ En la carpeta raíz del proyecto:
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+ {label: 'pnpm', value: 'pnpm'}
]}>
@@ -240,6 +282,13 @@ En la carpeta raíz del proyecto:
yarn deploy --semaphore --group --network goerli
```
+
+
+
+ ```bash
+ pnpm deploy --semaphore --group --network goerli
+ ```
+
@@ -261,6 +310,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -276,4 +326,11 @@ yarn dev
```
-
+
+
+```bash
+pnpm dev
+```
+
+
+
\ No newline at end of file
diff --git a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/troubleshooting.mdx b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/troubleshooting.mdx
index c88a87fc..1b013943 100644
--- a/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/troubleshooting.mdx
+++ b/apps/docs/i18n/es/docusaurus-plugin-content-docs/version-V3/troubleshooting.mdx
@@ -75,6 +75,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -89,6 +90,13 @@ npm install @esbuild-plugins/node-globals-polyfill
yarn add @esbuild-plugins/node-globals-polyfill
```
+
+
+
+```bash
+pnpm add @esbuild-plugins/node-globals-polyfill
+```
+
@@ -98,6 +106,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -112,6 +121,13 @@ npm install @esbuild-plugins/node-modules-polyfill
yarn add @esbuild-plugins/node-modules-polyfill
```
+
+
+
+```bash
+pnpm add @esbuild-plugins/node-modules-polyfill
+```
+
@@ -220,4 +236,4 @@ Para comprobarlo, puede utilizar la [Semaphore CLI](https://github.com/semaphore
### Transacción revertida al usar el mismo external nullifier
-Cuando genera una prueba usando el mismo external nullifier que usó para verificar una prueba antes, la transacción se revertirá porque ese external nullifier ya se usó. Si desea enviar y verificar varias pruebas de la misma identidad, debe usar un external nullifier diferente cada vez que genere una prueba.
+Cuando genera una prueba usando el mismo external nullifier que usó para verificar una prueba antes, la transacción se revertirá porque ese external nullifier ya se usó. Si desea enviar y verificar varias pruebas de la misma identidad, debe usar un external nullifier diferente cada vez que genere una prueba.
\ No newline at end of file
diff --git a/apps/docs/versioned_docs/version-V3/guides/fetching-data.mdx b/apps/docs/versioned_docs/version-V3/guides/fetching-data.mdx
index def27b02..a1113d6a 100644
--- a/apps/docs/versioned_docs/version-V3/guides/fetching-data.mdx
+++ b/apps/docs/versioned_docs/version-V3/guides/fetching-data.mdx
@@ -8,7 +8,7 @@ import TabItem from "@theme/TabItem"
# Semaphore data
-To fetch on-chain data from the [Semaphore.sol](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol) contract, you can use the [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) library.
+To fetch on-chain data from the [Semaphore.sol](https://github.com/semaphore-protocol/semaphore/blob/main/packages/contracts/contracts/Semaphore.sol) contract, you can use the [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) library.
There are two ways to do this, using [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) or [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts). The `SemaphoreSubgraph` class uses the [Semaphore subgraph](https://github.com/semaphore-protocol/subgraph), which uses [The Graph Protocol](https://thegraph.com/) under the hood, and the `SemaphoreEthers` class uses [Ethers](https://github.com/ethers-io/ethers.js/).
@@ -23,6 +23,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -37,12 +38,19 @@ npm install @semaphore-protocol/data
yarn add @semaphore-protocol/data
```
+
+
+
+```bash
+pnpm add @semaphore-protocol/data
+```
+
## Fetch data using SemaphoreSubgraph
-To fetch data using the Semaphore subgraph you can use the [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) class from the [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) package.
+To fetch data using the Semaphore subgraph you can use the [`SemaphoreSubgraph`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/subgraph.ts) class from the [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) package.
```typescript
import { SemaphoreSubgraph } from "@semaphore-protocol/data"
@@ -109,7 +117,7 @@ const group = new Group(groupId, 20, members)
## Fetch data using SemaphoreEthers
-To fetch data using Ethers you can use the [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts) class from the [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) package.
+To fetch data using Ethers you can use the [`SemaphoreEthers`](https://github.com/semaphore-protocol/semaphore/blob/main/packages/data/src/ethers.ts) class from the [@semaphore-protocol/data](https://github.com/semaphore-protocol/semaphore/tree/main/packages/data) package.
```typescript
import { SemaphoreEthers } from "@semaphore-protocol/data"
@@ -123,7 +131,7 @@ const semaphoreEthers = new SemaphoreEthers("homestead", {
})
// or:
-const semaphoreEthers = new SemaphoreEthers("http://localhost:8545", {
+const semaphoreEthers = new SemaphoreEthers("http://127.0.0.1:8545", {
address: "semaphore-address"
})
```
diff --git a/apps/docs/versioned_docs/version-V3/guides/groups.mdx b/apps/docs/versioned_docs/version-V3/guides/groups.mdx
index dcfbe935..fbdbd0a8 100644
--- a/apps/docs/versioned_docs/version-V3/guides/groups.mdx
+++ b/apps/docs/versioned_docs/version-V3/guides/groups.mdx
@@ -39,7 +39,7 @@ Use the [`@semaphore-protocol/group`](https://github.com/semaphore-protocol/sema
- `Group id`: a unique identifier for the group;
- `Tree depth`: (_default `20`_) the maximum number of members a group can contain (`max size = 2 ^ tree depth`).
-- `Members`: (_default `[]`_) the list of members to initialize the group.
+- `Members`: (_default `[]`_) the list of members to initialize the group.
#### Install library:
@@ -49,6 +49,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -63,6 +64,13 @@ npm install @semaphore-protocol/group
yarn add @semaphore-protocol/group
```
+
+
+
+```bash
+pnpm add @semaphore-protocol/group
+```
+
@@ -148,4 +156,4 @@ Alternatively, you can use an already deployed [`Semaphore.sol`](https://github.
:::caution
`Semaphore.sol` includes a mechanism to verify Semaphore proofs created with old Merkle tree roots, the duration of which can be defined by the admin in the `createGroup` function. Members of a group could then continue to generate valid proofs even after being removed. For more info see the issue [#98](https://github.com/semaphore-protocol/semaphore/issues/98).
-:::
+:::
\ No newline at end of file
diff --git a/apps/docs/versioned_docs/version-V3/guides/identities.mdx b/apps/docs/versioned_docs/version-V3/guides/identities.mdx
index aff93e9f..665bd542 100644
--- a/apps/docs/versioned_docs/version-V3/guides/identities.mdx
+++ b/apps/docs/versioned_docs/version-V3/guides/identities.mdx
@@ -32,6 +32,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -46,6 +47,13 @@ npm install @semaphore-protocol/identity
yarn add @semaphore-protocol/identity
```
+
+
+
+```bash
+pnpm add @semaphore-protocol/identity
+```
+
@@ -108,4 +116,4 @@ To reuse the saved identity, pass the JSON to the `Identity()` constructor.
```ts
const identity2 = new Identity(identity.toString())
-```
+```
\ No newline at end of file
diff --git a/apps/docs/versioned_docs/version-V3/guides/proofs.mdx b/apps/docs/versioned_docs/version-V3/guides/proofs.mdx
index 384c771a..5bcfa448 100644
--- a/apps/docs/versioned_docs/version-V3/guides/proofs.mdx
+++ b/apps/docs/versioned_docs/version-V3/guides/proofs.mdx
@@ -38,6 +38,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -52,6 +53,13 @@ npm install @semaphore-protocol/proof
yarn add @semaphore-protocol/proof
```
+
+
+
+```bash
+pnpm add @semaphore-protocol/proof
+```
+
@@ -118,4 +126,4 @@ To verify Semaphore proofs in your contract, import `ISemaphore.sol`, pass it th
:::info
You can import `ISemaphore.sol` and other Semaphore contracts from the [`@semaphore-protocol/contracts`](https://github.com/semaphore-protocol/semaphore/tree/main/packages/contracts) NPM module.
-:::
+:::
\ No newline at end of file
diff --git a/apps/docs/versioned_docs/version-V3/quick-setup.mdx b/apps/docs/versioned_docs/version-V3/quick-setup.mdx
index 7c0634f8..0e6ddbf0 100644
--- a/apps/docs/versioned_docs/version-V3/quick-setup.mdx
+++ b/apps/docs/versioned_docs/version-V3/quick-setup.mdx
@@ -36,6 +36,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -52,6 +53,14 @@ cd my-app
yarn
```
+
+
+
+```bash
+cd my-app
+pnpm install
+```
+
@@ -63,21 +72,21 @@ The `create` command will create a directory called my-app (or whatever name you
my-app
├── .yarn
├── apps
-│ └── contracts
-│ │ └── contracts
-| │ │ └── Feedback.sol
-│ │ └── scripts
-| │ │ └── download-snark-artifacts.ts
-│ │ └── tasks
-| │ │ └── deploy.ts
-│ │ └── test
-| │ │ └── Feedback.ts
-│ │ └── hardhat.config.ts
-│ │ └── package.json
-│ │ └── tsconfig.json
-│ └── web-app
+│ └── contracts
+│ │ └── contracts
+| │ │ └── Feedback.sol
+│ │ └── scripts
+| │ │ └── download-snark-artifacts.ts
+│ │ └── tasks
+| │ │ └── deploy.ts
+│ │ └── test
+| │ │ └── Feedback.ts
+│ │ └── hardhat.config.ts
+│ │ └── package.json
+│ │ └── tsconfig.json
+│ └── web-app
├── scripts
-│ └── copy-contracts-artifacts.ts
+│ └── copy-contracts-artifacts.ts
├── .editorconfig
├── .env
├── .env.example
@@ -92,7 +101,7 @@ my-app
└── tsconfig.json
```
-The `Feedback.sol` contract creates a Semaphore group, allows users to join that group with their Semaphore identity, and finally allows group members to send an anonymous feedback.
+The `Feedback.sol` contract creates a Semaphore group, allows users to join that group with their Semaphore identity, and finally allows group members to send an anonymous feedback.
## Usage
@@ -112,6 +121,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -126,6 +136,13 @@ npm run compile
yarn compile
```
+
+
+
+```bash
+pnpm compile
+```
+
@@ -139,6 +156,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -153,6 +171,13 @@ npm test
yarn test
```
+
+
+
+```bash
+pnpm test
+```
+
@@ -164,6 +189,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -178,6 +204,13 @@ npm run test:coverage
yarn test:coverage
```
+
+
+
+```bash
+pnpm test:coverage
+```
+
@@ -189,6 +222,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -203,6 +237,13 @@ npm run test:report-gas
yarn test:report-gas
```
+
+
+
+```bash
+pnpm test:report-gas
+```
+
@@ -226,6 +267,7 @@ In the project root folder:
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+ {label: 'pnpm', value: 'pnpm'}
]}>
@@ -240,6 +282,13 @@ In the project root folder:
yarn deploy --semaphore --group --network arbitrum-goerli
```
+
+
+
+ ```bash
+ pnpm deploy --semaphore --group --network arbitrum-goerli
+ ```
+
@@ -261,6 +310,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -276,4 +326,11 @@ yarn dev
```
-
+
+
+```bash
+pnpm dev
+```
+
+
+
\ No newline at end of file
diff --git a/apps/docs/versioned_docs/version-V3/resources.md b/apps/docs/versioned_docs/version-V3/resources.md
index b1c88d4c..8338bcc7 100644
--- a/apps/docs/versioned_docs/version-V3/resources.md
+++ b/apps/docs/versioned_docs/version-V3/resources.md
@@ -12,6 +12,8 @@ sidebar_position: 9
[Semaphore V2 is Live!](https://medium.com/privacy-scaling-explorations/semaphore-v2-is-live-f263e9372579) - Privacy and Scaling Explorations
+[Zero-Knowledge Group Membership Management With Semaphore](https://medium.com/javascript-in-plain-english/zero-knowledge-group-membership-management-with-the-semaphore-protocol-1a63126de81c) - Laszlo Fazekas
+
## Videos
[Privacy in Ethereum](https://www.youtube.com/watch?v=maDHYyj30kg) - Barry WhiteHat at the Taipei Ethereum Meetup
diff --git a/apps/docs/versioned_docs/version-V3/troubleshooting.mdx b/apps/docs/versioned_docs/version-V3/troubleshooting.mdx
index a23427ff..a0e2cc0e 100644
--- a/apps/docs/versioned_docs/version-V3/troubleshooting.mdx
+++ b/apps/docs/versioned_docs/version-V3/troubleshooting.mdx
@@ -75,6 +75,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -89,6 +90,13 @@ npm install @esbuild-plugins/node-globals-polyfill
yarn add @esbuild-plugins/node-globals-polyfill
```
+
+
+
+```bash
+pnpm add @esbuild-plugins/node-globals-polyfill
+```
+
@@ -98,6 +106,7 @@ groupId="package-managers"
values={[
{label: 'npm', value: 'npm'},
{label: 'Yarn', value: 'yarn'},
+{label: 'pnpm', value: 'pnpm'}
]}>
@@ -112,6 +121,13 @@ npm install @esbuild-plugins/node-modules-polyfill
yarn add @esbuild-plugins/node-modules-polyfill
```
+
+
+
+```bash
+pnpm add @esbuild-plugins/node-modules-polyfill
+```
+
@@ -219,4 +235,4 @@ To check that, you can use the [Semaphore CLI](https://github.com/semaphore-prot
### Transaction reverted when using the same external nullifier
-When you generate a proof using the same external nullifier you used to verify a proof before, the transaction will be reverted because that external nullifier was already used. If you want to send and verify several proofs from the same identity, you should use a different external nullifier each time you generate a proof.
+When you generate a proof using the same external nullifier you used to verify a proof before, the transaction will be reverted because that external nullifier was already used. If you want to send and verify several proofs from the same identity, you should use a different external nullifier each time you generate a proof.
\ No newline at end of file