La colección de NFTs de Azuki destaca por su estilo artístico. Pero además de eso trajo a la mesa el ERC721A una nueva implementación del estándar ERC-721. El objetivo de esta librería es ahorrar gas a los participantes que deseen comprar mas de un NFT en el mercado primario. En este video haremos pruebas y compararemos los gastos de gas para los NFTs lanzados con Azuki y para los NFTs lanzados con las librerías de OpenZeppelin.
https://www.youtube.com/watch?v=TTEzsdQKU-g
Ejecuta los tests
Al ejecutar los siguientes comandos bajarás los tests desde el repo de github de Filosofía Código, los ejecutarás y verás los resultados en la terminal.
git clone https://github.com/FilosofiaCodigo/ERC721AComparison.git
cd ERC721AComparison/
npm install
npx hardhat run scripts/gas-comparison.js 
Ejemplos usados en este video
Aquí les dejo los contratos con funcionalidad mínima que usamos para realizar los tests.
Azuki NFT
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "erc721a/contracts/ERC721A.sol";
contract Azuki is ERC721A {
    constructor() ERC721A("Azuki", "AZUKI") {}
    function mint(uint256 quantity) external payable {
        // `_mint`'s second argument now takes in a `quantity`, not a `tokenId`.
        _mint(msg.sender, quantity);
    }
}
Openzeppelin NFT
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
contract GameItem is ERC721URIStorage {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;
    constructor() ERC721("GameItem", "ITM") {}
    function mint() external
    {
        _mint(msg.sender, _tokenIds.current());
        _tokenIds.increment();
    }
    function mintWithAmount(uint amount) external
    {
        for(uint i; i<amount; i++)
        {
            _mint(msg.sender, _tokenIds.current());
            _tokenIds.increment();
        }
    }
}
Gracias por ver este tutorial!
Sígannos en dev.to y en Youtube para todo lo relacionado al desarrollo en Blockchain en Español.
 
 
              
 
    
Top comments (0)