Ejercicio: configuración de un nuevo proyecto e integración de OpenZeppelin

Completado

Vamos a crear un proyecto con la ayuda de Truffle y, después, incorporaremos la biblioteca de contratos de OpenZeppelin. Antes de continuar, asegúrese de que tiene instalados Truffle y la CLI de Ganache.

Crear un proyecto nuevo

  1. Abra el terminal o la aplicación de línea de comandos en el equipo. En el terminal, cree una carpeta denominada Token20. Para ello, ejecute el comando mkdir Token20. Es habitual ejecutar este comando en una carpeta denominada Proyectos, donde se almacenan todos los demás proyectos de desarrollo.
  2. Vaya a la carpeta Token20 (ejecute cd Token20).
  3. Para inicializar un nuevo proyecto, ejecute truffle init.
  4. Espere a que se inicialice el proyecto y, luego, ábralo en Visual Studio Code.

Debería ver la siguiente salida después de usar Truffle para inicializar el proyecto:

$ mkdir Token20
$ cd Token20/
$ truffle init
✔ Preparing to download box
✔ Downloading
✔ cleaning up temporary files
✔ Setting up box
$ ls
contracts               migrations              test                    truffle-config.js

Configuración del proyecto

Cuando el proyecto se haya creado y esté abierto en el editor, eche un vistazo al contenido de la carpeta del proyecto.

Después, tendrá que confirmar que tiene instalado Node.js. Abra el terminal y ejecute el comando node. Si Node.js está instalado, ese comando devuelve la versión que está instalada en el equipo. Si Node.js no está instalado, vaya a Node para obtener información sobre cómo descargarlo para la plataforma.

Node.js viene con el administrador de paquetes de nodos (npm) instalado. npm ayuda a administrar otros paquetes y aplicaciones incluidos en JavaScript.

  1. En el terminal, ejecute npm init. Este comando muestra una utilidad que le guía a través del proceso de creación de un archivo package.json, que describe el proyecto y almacena las dependencias que se usan en el proyecto.
  2. Complete los pasos de la utilidad para crear fácilmente un archivo package.json.

    Nota:

    Puede presionar ENTRAR en cada mensaje para usar el valor predeterminado.

Configuración de OpenZeppelin

Screenshot of the OpenZeppelin Contracts web page.

Ahora, queremos integrarlo con la biblioteca de contratos de OpenZeppelin.

Para ello, ejecute npm install @openzeppelin/contracts en el terminal.

Espere a que el paquete se instale correctamente en el proyecto. Debería ver una salida como la siguiente en el terminal:

+ @openzeppelin/contracts@4.5.0
added 2 packages from 1 contributor and audited 1 package in 1s
found 0 vulnerabilities

Observe que se han producido dos cosas:

  1. El paquete se ha agregado como una dependencia en el archivo package.json.
  2. Una carpeta llamada node_modules ha importado en la subcarpeta openzeppelin/contracts todos los contratos disponibles de OpenZeppelin.

Al inspeccionar el contenido de dicha carpeta, se devuelve la salida siguiente:

$  ls node_modules/@openzeppelin/contracts
README.md  build/    governance/  metatx/       proxy/     token/
access/    finance/  interfaces/  package.json  security/  utils/

Tómese su tiempo para examinar los archivos de origen de contrato existentes que ahora están disponibles para el proyecto. Preste especial atención a los contratos de token. Conozca mejor la implementación de cada contrato y qué funciones suelen estar disponibles.