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.

Truffle regresa un Número Grande.

Estoy siguiendo un tutorial de codificación y me encuentro con este error. He intentado ejecutar toString() en Truffle y convertir el uint a string en Solidity. Si alguien pudiera señalar mi error, se lo agradecería mucho.

function balanceOf(address _owner) public view returns (uint256 toString){
    require(_owner != address(0),'owner query for non-existent token');
    return _OwnedTokensCount[_owner];
}

En Truffle:

truffle(development)> truffle compile
truffle(development)> truffle migrate
truffle(development)> kryptoBird = await KryptoBirdz.deployed()

// Genero unos tokens
truffle(development)> kryproBird.mint('https...1')

truffle(development)> kryptoBird.ownerOf(0)
'0x5582aFA98dDD9BB16f33d198911C48fB3B20de60'

truffle(development)> 
kryptoBird.balanceOf('0x5582aFA98dDD9BB16f33d198911C48fB3B20de60')

BN {negative: 0, words: [ 1 <1 empty item>], length:1 , red: null  }

Se supone que esto debería devolver un número entero.

enter image description here

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema en este código es que el tipo de retorno de la función balanceOf está definido como uint256 toString. Esto es incorrecto, ya que toString no es un tipo de dato válido en Solidity. Para solucionar este error, simplemente cambia el tipo de retorno a uint256.

    Además, para convertir el saldo uint256 a una cadena de texto en Solidity, puedes utilizar la función toString() del tipo library de Solidity. Un ejemplo de código para esto sería:

    function balanceOf(address _owner) public view returns (string memory) {
        require(_owner != address(0), "owner query for non-existent token");
        uint256 balance = _OwnedTokensCount[_owner];
        return balance.toString();
    }
    

    En Truffle, el valor de retorno de balanceOf ahora debería ser un número entero en lugar de un objeto BN.

Comments are closed.