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
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:
- npm
- Yarn
cd my-app
npm i
cd my-app
yarn
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
- Yarn
npm run compile
yarn compile
Pruebe
Pruebe sus contratos al correr:
- npm
- Yarn
npm test
yarn test
También puede generar un reporte de la prueba de cobertura:
- npm
- Yarn
npm run test:coverage
yarn test:coverage
O un reporte de la prueba de gas:
- npm
- Yarn
npm run test:report-gas
yarn test:report-gas
Desplegar
Siga las instrucciones a continuación para desplegar sus contratos:
Copie el archivo
.env.example
con la terminación.env
.cp .env.example .env
Agregue las variables de su entorno.
notaDeberá por lo menos configurar un URL válido en Ethereum (ejemplo: Infura) y una llave privada con algunos ethers.
Y, desplegue su contrato.
- npm
- Yarn
npm run deploy -- --semaphore <semaphore-address> --group <group-id> --network goerli
yarn deploy --semaphore <semaphore-address> --group <group-id> --network goerli
notaRevise las direcciones de los contratos de Semaphore aquí.
precauciónEl group id (id del grupo) es un número.