Problema: Al utilizar una cuenta en testrpc, obtengo 0 como saldo desde un programa, pero obtengo el monto correcto cuando consulto el saldo en el símbolo del sistema de web3:
//aquí estoy llamando a una función (que se muestra a continuación) desde la línea de comandos
contractInstance.queryBalance(" 0xf24qf4b3ae667a23f296f48eb92fa619310c95fd ") { [Cadena: '0' ] s: 1, e: 0, c: [ 0 ] }
//aquí estoy enumerando mis cuentas, solo muestro la primera para ahorrar espacio
web3.eth.cuentas [ ' 0xf24qf4b3ae667a23f296f48eb92fa619310c95fd ', ...
//aquí estoy consultando el saldo directamente en el símbolo del sistema
web3.eth.getBalance(' 0xf24qf4b3ae667a23f296f48eb92fa619310c95fd ') { [Cadena: ' 999999999999984495002 '] s: 1, e: 19, c: [ 999999, 99999984495002 ] }
Aquí está la llamada de función que estoy haciendo en mi programa:
function queryBalance(address addr) public constant returns (uint balance) {
return balances[addr];
}
¿Qué más probé? contractInstance.queryBalance("0xf24qf4b3ae667a23f296f48eb92fa619310c95fd", {from: web3.eth.accounts[0], gas: 4500000}) { [String: '0'] s: 1, e: 0, c: [ 0 ] } y
Entorno : entorno web3.js en Mac con testrpc ejecutándose
Gracias
Tenemos que web3.eth.getBalance
te devuelve el saldo en ethers de tu domicilio.
Pero en su función
function queryBalance(address addr) public constant returns (uint balance) {
return balances[addr];
}
Está devolviendo el valor que ha almacenado en el mapeo de saldos. Si no almacenó nada, el valor predeterminado es cero.
Para obtener el saldo en éter de su domicilio en solidez
function queryBalance(address addr) public constant returns (uint balance) {
return addr.balance;
}
mina de jazz