Saltar al contenido principal
Versión: V3

Configuración rápida

Semaphore ofrece un CLI oficial para configurar su proyecto con Hardhat. Si su NPM es versión 5.2 or más reciente puede utilizar NPX:

npx @semaphore-protocol/cli@^3 create my-app --template monorepo-ethers

De lo contrario, instale @semaphore-protocol/cli@^3 de forma global y corra el comando init:

npm i -g @semaphore-protocol/cli@^3
semaphore create my-app --template monorepo-ethers
información

Los templates soportados son: contracts-hardhat, monorepo-ethers, monorepo-subgraph

información

El CLI semaphore también se puede utilizar para obtener información de los grupos que existen dentro de las redes soportadas por Semaphore (por ejemplo: semaphore get-groups --network goerli).

Para comenzar a trabajar en su proyecto, instale las siguientes dependencias:

cd my-app
npm i

Output

El comando create creará un directorio con el nombre my-app (o cualquier nombre que usted escoja) dentro de la carpeta actual. Ese directorio contendrá la estructura inicial del proyecto, que incluye un contrato simple (contract), una tarea (task) para desplegar lo, algunas pruebas (test) y una aplicación de Next.js (la carpeta web-app) para interactuar con el contrato.

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
├── scripts
│ └── copy-contracts-artifacts.ts
├── .editorconfig
├── .env
├── .env.example
├── .eslintignore
├── .eslintrc.json
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── .yarnrc.yml
├── package.json
├── README.md
└── tsconfig.json

El contrato Feedback.sol crea un grupo Semaphore, permite que los usuarios se unan a ese grupo con su identidad Semaphore, y, finalmente, permite que los miembros de ese grupo envíen un feedback anónimo.

Uso

Compilar contratos

Vaya a la carpeta contracts:

cd apps/contracts

Y compile sus contratos al correr:

npm run compile

Pruebe los contratos

Pruebe sus contratos al correr:

npm test

Genere un reporte de la prueba de cobertura:

npm run test:coverage

O un reporte de la prueba de gas:

npm run test:report-gas

Desplegar contratos

Siga las instrucciones a continuación para desplegar sus contratos:

En la carpeta raíz del proyecto:

  1. Agregue sus variables de entorno en el archivo .env.

    nota

    Deberá por lo menos configurar un URL válido en Ethereum (ejemplo: Infura) y una llave privada con algunos ethers.

  2. Vaya a la carpeta apps/contracts y desplegue su contrato.

    npm run deploy -- --semaphore <semaphore-address> --group <group-id> --network goerli
    nota

    Revise las direcciones de los contratos de Semaphore aquí.

    precaución

    El group id (id del grupo) es un número.

Inicie la app

Inicie la aplicación:

npm run dev