Проблема с переводом эфиров со счета на контракт

Это функция, которую я использовал для передачи ethets:

function addBalance(address beneficiary) payable returns(bool success){ if (beneficiary.send(msg.value)) throw; return true; }

Вызов функции с помощью 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);
                }
        });

ИЛИ

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);
                }
        });

Когда я вызываю это, это дает ошибку. Говоря:

Error: authentication needed: password or unlock
at Object.InvalidResponse (errors.js:35)
at requestmanager.js:86
at XMLHttpRequest.request.onreadystatechange (httpprovider.js:118)

Я уже разблокировал свою учетную запись. Если я изменю адрес отправителя на адрес coinbase, он будет работать нормально, но не будет работать с любым другим адресом учетной записи.

Вызов, который отлично работает, ниже:

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);
                }
        });  

Ответы (1)

Вам необходимо разблокировать аккаунт, с которого вы отправляете эфиры:

personal.unlockAccount(eth.accounts[0])

и введите пароль в gethконсоль.

Большое спасибо, все работает, я не разблокировал этот конкретный счет и не пытаюсь перевести деньги с него, и поэтому он показывает ошибку