es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Usar cadenas de texto para uint256 no funciona con ERC721EnumerableUpgradeable.

Como dice el título, no puedo lograr que Strings se compile, sigo obteniendo el error “identificador no encontrado”.
Este es el inicio de mi contrato .sol:

import "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol";

contract NFT is Initializable, StringsUpgradeable, ERC721EnumerableUpgradeable, OwnableUpgradeable {
    using Strings for uint256;

¡Por favor ayúdenme!

¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás importando la biblioteca StringsUpgradeable, pero no la estás utilizando correctamente en tu contrato. Específicamente, estás intentando usar la biblioteca Strings para uint256, pero no has definido una variable uint256 en tu contrato.

    Para usar la biblioteca Strings, primero debes definir una variable uint256 en tu contrato, y luego puedes convertirla en una cadena utilizando la biblioteca Strings. Aquí tienes un ejemplo:

    import "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol";
    import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
    import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
    import "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol";
    
    contract NFT is Initializable, StringsUpgradeable, ERC721EnumerableUpgradeable, OwnableUpgradeable {
        // define una variable uint256
        uint256 public tokenId;
    
        function getTokenIdAsString() public view returns (string memory) {
            // convierte la variable uint256 en una cadena utilizando la biblioteca Strings
            return tokenId.toString();
        }
    }
    

    En este ejemplo, el contrato define una variable uint256 pública llamada tokenId, y una función llamada getTokenIdAsString, que utiliza la biblioteca Strings para convertir la variable tokenId en una cadena.

    Si deseas utilizar la biblioteca Strings en otra parte de tu contrato, simplemente llama a la función toString() en la variable uint256 que deseas convertir en una cadena.

Comments are closed.