Fijate que para importar lo que hace es traer el directorio de Github, usuario/carpetas/archivo.
“@openzeppelin/contracts/utils/math/SafeMath.sol”
Por qué debes aprender Solidity
Conoce qué es Solidity
La importancia de la web3 y Solidity
Introducción a la programación con Solidity
Estructura de un contrato
Variables y tipos de datos
Structs y arrays
Mappings y enums
Estructuras de control
Eventos
Funciones
Funciones
Modificadores
Manejo de errores
Gestionando costos
Tipos de almacenamiento
Gas y comisiones
Transferencias de ether desde un contrato
Recibir ether desde un contrato
Conceptos avanzados
Manejo de dependencias y librerías
Herencia
Polimorfismo
Tokens
Application Binary Interface (ABI)
Cómo continuar mi camino desarrollando en Blockchain
Cómo continuar mi camino con Solidity
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 9
Preguntas 10
Fijate que para importar lo que hace es traer el directorio de Github, usuario/carpetas/archivo.
“@openzeppelin/contracts/utils/math/SafeMath.sol”
Muy bueno, no sabia que se podía trabajar con librerías importándolas directamente desde el contrato en Solidity 👌
Tener en cuenta el uso de Mayusculas
Traté de escribir @OpenZeppelin (O y Z en Mayuscula) y al querer compilar me lanzó error
Importar una dependencia
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
contract Importacion {
function sumarNumeros(uint numero1, uint numero2) public pure returns (uint) {
return SafeMath.add(numero1,numero2);
}
}
En el el caso de estar desarrollado tendríamos que tener instalado openzeppelin por medio de npm.
En el caso de estar desarrollando en remix ya tenemos acceso a openzeppelin y podemos importarlo directamente sin mayor problema.
En remix, cuidado al momento de hacer deploy y las referencias, el deploy siempre buscara lo primero que encuentre en las referencias, para hacer deploy de nuestro contrato debemos seleccionarlo
Importar librerías, lógicamente, aumentará el Gas que nuestro contrato necesita. Hay que cerciorarse de lo que las funciones desarrolladas por terceros hacen realmente para evaluar utilizarlas o no.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
contract Importacion {
function sumarNumeros(uint numero1, uint numero2) public pure returns (uint) {
return SafeMath.add(numero1,numero2);
}
}
OpenZeppelin es una empresa sumamente confiable que se mantiene en constante auditoría, los invito a investigar más acerca de ella para que conozcan sus grandiosos aportes a la industria.
RESUMEN CLASE 16:
MANEJO DE DEPENDENCIAS
Y LIBRERIAS
I.- IMPORTAR UNA DEPENDENCIA
Con la sentencia “import” podemos hacer referencia a un contrato que esté definido en el mismo ámbito en el que estemos trabajando.
También podemos importar contratos que se encuentren en un repositorio o en un paquete como npm.
Además de contratos podemos importar librerías que son similares a los contratos, pero no contienen estado y solo brindan utilidad.
REMIX:
Importacion.sol
// SPDX-License-Identifier: GLP-3.0
pragma solidity >=0.7.0 <0.9.0;
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
contract Importacion {
function sumarNumeros(uint numero1, uint numero2) public pure returns (uint) {
return SafeMath.add(numero1,numero2);
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import “@openzeppelin/contracts/utils/math/SafeMath.sol”;
// hacemos referencia a un contrato SafeMath.sol!
// esta ruta es el equivalente de que instaelmos el opezeppelin desde npm
// y desde remix no necesitamos istalar nada adicional
// llamamos a la libreria de openzeppelin con el import
// para evitar el overflow -> problema : maximo reinicia bajand de 0 aumenta!
contract Importacion {
function sumarNumeros(uint numero1, uint numero2) public pure returns (uint) {
// funcion de suma que no hace ningunavalidacion de overflow (al maximo posible se reinicia el contador)
// return numero1 + numero2
return SafeMath.add(numero1,numero2);
// utilizamos la referencia "SafeMath" de la libreria para evitar el overflow
// utilizmos la funcion ".add" y definimos los parametros sumar (parametro A, parmetro B)
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.