Obligatorio 1er Semestre 2022 - Proyecto Plataforma de Staking
El proyecto es una Plataforma de Staking, la cual contiene un token siguiendo el estándar ERC-20, un contrato que permite la compra y venta de dicho token entre los dueños de la plataforma y los usuarios, y un contrato Farm, encargado de brindar las funcionalidades vinculadas con el Sraking de dicho token.
| Nombre | Nro. de Estudiante | Address Registrada |
|---|---|---|
| Diego Franggi | 210434 | 0xA947783b803D20032c12f58cdE0Dd20b73fE57dF |
| Mathías Gertner | 193783 | 0x335bBEA03eb4773D71F56eA425cFD7AD79B89B86 |
| Bruno Pintos | 214108 | 0x21176324dc254a413f195A1732055ee43AD9A7Bf |
Contratos inteligentes (/contracts)
En esta carpeta están todos los contratos inteligentes de la solución.
TokenContract (TokenContract.sol)
Este contrato representa el token ERC-20. Además de las funcionalidades brindadas por el estándar, tiene la capacidad de mintear y burnear tokens, siguiendo la lógica de negocio definida en la letra del obligatorio.
Vault (Vault.sol)
Este contrato es el encargado de la administración del token ERC-20. Algunas de sus funcionalidades son indicarle a TokenContract que mintee y burnee tokens. Manejar la compra y venta del token con otros usuarios, definir los precios, y permitir a los administradores obtener las ganancias de la plataforma. A su vez, para la mayoría de las operaciones maneja un sistema de multifirma.
Farm (Farm.sol)
Este contrato es el encargado de manejar el staking de la plataforma. Permite que los usuarios que presentan tokens puedan stakear y a través de un APR obtener una ganancia "yield", la cual luego pueden retirar.
Pruebas Unitarias (/test)
En esta carpeta están las pruebas unitarias para los contratos inteligentes definidos anteriormente.
Scripts (/scripts)
En esta carpeta esta el script utilizado para hacer el deploy de los 3 contratos.
Requisitos: Tener instalado Node.js, se puede descargar en este link (recomendamos la versión LTS)
Crear el archivo .env acorde a la muestra brindada (.env.sample). Cambiar las variables por las apropiadas. Abrir una terminal y correr el siguiente comando en el root del proyecto:
npm install
npx hardhat compile
Requisitos: Setup del repositorio
- Crear un nuevo proyecto en Infura
- Completar el .env con:
- La url de Infura para la testnet Rinkeby.
- La address de Rinkeby del signer que va a hacer el deploy.
- La private key de la address mencionada.
- Correr el siguiente comando desde el root del proyecto:
npm run deploy-rinkeby
Requisitos: Setup del repositorio
Abrir una terminal y correr el siguiente comando en el root del proyecto:
npm test
| Contrato | Address de Rinkeby |
|---|---|
| TokenContract | 0xb8bFB7820143f91710AF3d71221943570e74E066 |
| Vault | 0x377770f32a258bDe54AD47F1eF9D9a1f0A18c450 |
| Farm | 0x471b5986fd89C16Fe50C2b74E19cCE5674A16826 |
Todos los contratos fueron deployados con el siguiente signer:
Signer address: 0xA947783b803D20032c12f58cdE0Dd20b73fE57dF

