No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Introducción a Solidity

Curso de Introducción a Solidity

Sebastián Leonardo Perez

Sebastián Leonardo Perez

Manejo de dependencias y librerías

16/21
Recursos

Aportes 9

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

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

Manejo de dependencias y librerías

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.
// 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)
}

}