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/[email protected] init my-app

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

npm i -g @semaphore-protocol/[email protected]
semaphore init my-app
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 init 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 ese contrato y algunas pruebas (test).

my-app
├── contracts
│   └── Greeter.sol
├── .env.example
├── .gitignore
├── hardhat.config.ts
├── package.json
├── README.md
├── tasks
│   └── deploy.ts
├── test
│   └── Greeter.ts
└── tsconfig.json

El contrato Greeter.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 saludo anónimo.

Uso

Compilar

Compile sus contratos al correr:

npm run compile

Pruebe

Pruebe sus contratos al correr:

npm test

También puede generar 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

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

  1. Copie el archivo .env.example con la terminación .env.

    cp .env.example .env
  2. Agregue las variables de su entorno.

    nota

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

  3. 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.