Esta es la función que usé para transferir los ethets:
function addBalance(address beneficiary) payable returns(bool success){ if (beneficiary.send(msg.value)) throw; return true; }
Llamar a la función usando web3:
contract.addBalance.sendTransaction(contractAddress,
{from: senderAddress, to: contractAddress, gas:1000000, value: web3.toWei(7, "ether")},function (error, result){
if(!error){
} else{
console.log(error);
}
});
O
contract.addBalance.sendTransaction(contractAddress,
{from: web3.eth.accounts[5], to: contractAddress, gas:1000000, value: web3.toWei(7, "ether")},function (error, result){
if(!error){
} else{
console.log(error);
}
});
Cuando llamo a esto da error diciendo:
Error: authentication needed: password or unlock
at Object.InvalidResponse (errors.js:35)
at requestmanager.js:86
at XMLHttpRequest.request.onreadystatechange (httpprovider.js:118)
Ya he desbloqueado mi cuenta. Si cambio la dirección del remitente con la dirección de coinbase, funciona bien, pero no funciona con ninguna otra dirección de cuenta.
La llamada que funciona bien es la siguiente:
contract.addBalance.sendTransaction(contractAddress,
{from: web3.eth.coinbase, to: contractAddress, gas:1000000, value: web3.toWei(7, "ether")},function (error, result){
if(!error){
} else{
console.log(error);
}
});
Tienes que desbloquear la cuenta desde donde envías los ethers:
personal.unlockAccount(eth.accounts[0])
e inserte la contraseña en la geth
consola.
SwapnilKumbhar