Balance devuelve cero pero muestra ether con web3.eth.getBalance en testrpc

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

Respuestas (1)

Tenemos que web3.eth.getBalancete 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;
}
Gracias por tu clara respuesta. Eso es lo que estaba buscando.