Skip to content

BootNodeDev/ws-0xRosChain

Repository files navigation

0xRosChain Solidity Workshop

Este repo se creó para el workshop de Solidity para la comunidad de Roschain. La intención del workshop es que sea 100% práctico.

En contracts van a encontrar 2 smart contracts que funcionan pero estan incompletos, y en tests algunos tests para los smart contracts con los que vamos a trabajar, alguno de los test fallan y otros ni siquiera están escritos.

A partir de los tests vamos a tener que trabajar en los contratos para cumplir con los requerimientos que se plantean.

ZxRosChainNFT

Es un token ERC721 (NFT)

  • Solo el contrato ZxRosChainMinter deberia poder llamar a la función mint
  • La cantidad de ZxRosChainNFTs debería estar limitada a un cierto número

ZxRosChainMinter

Es el contrato con el que deberían interactuar los usuario que participan del mint de ZxRosChainNFT

  • Debería emitir un error particular si se intenta llamar a la función mint sin que haya un token configurado
  • El NFT minteado debería ser transferido al address que llama a la función mint
  • Solo debería permitir mintear 1 NFT por address
  • Solo un grupo de addresses habilitadas deberían poder mintear un NFT

WARNING

Los contratos de este repo tienen varios problemas de seguridad que no se tuvieron en cuenta a la hora de escribirlos para que sean simples ayuden a resolver los problemas que se plantearon. De ninguna manera se pueden considerar aptos para ser usados en un proyecto real.


Pre-requirements

The following prerequisites are required:

How to upgrade NPM to latest stable version

npm install -g npm@latest

Install dependencies

Before running any command, make sure to install dependencies:

npm i

Compile contracts

Compile the smart contracts with Hardhat:

npm run compile

Test

Run unit tests:

npm run test

Coverage

Run unit tests coverage:

npm run coverage

Gas Report

Run unit tests with gas report:

npm run gas-report

Linter

Run typescript and solidity linters:

npm run lint

Deployment

Create .env file and complete the variables:

cp .env.example .env

Deploy the contracts to Goerli Network

Deploy contracts:

npm run deploy:goerli

Verify contracts:

npm run verify:goerli

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published