Как разблокировать аккаунт через web3js без geth(web3-extended не работает)

Необходимо разблокировать учетную запись для вызова функций контрактов на стороне клиента. Так что мне нужно использовать web 3 или web 3 расширенный. Но это не работает. Метод недоступен. Возможно, вы знаете какие-то другие способы вызова функции специально в IOS-приложении.

Вот как решить вашу проблему ethereum.stackexchange.com/a/2670/6041

Ответы (3)

Вы можете вызвать метод unlockAccount класса personal из своего веб-приложения. Я использую версию Web3 0.18.2.

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

Когда вы запускаете свой узел с помощью Geth, вам необходимо предоставить персональный доступ через rpc. Я использую этот параметр "--rpcapi "db,eth,net,web3,personal". Хотя не рекомендуется выставлять персональный через rpc.

Пример кода
var web3 = new Web3(new Web3.providers.HttpProvider(" http://localhost:8545 ")); web3.personal.unlockAccount("(адрес учетной записи)", "(парольная фраза)");

web3.personal.unlockAccount("(адрес аккаунта)", "(парольная фраза)", 500);

Мне нужно сделать клиентскую версию, поэтому мне нужно сделать это в чистом NODEjs
Добавлена ​​строка для заполнения объекта web3, который, я считаю, будет общим вызовом.

Это просто, просто введите эту команду в консоли geth:

web3.personal.unlockAccount("0x..", "<pass>");

может что-то в этом духе:

function unlockAccount(val) {
var accounts = web3.eth.coinbase;
var passphrase = val;
if(passphrase !=null){
web3.personal.unlockAccount(web3.eth.coinbase, passphrase,1000, function (error, result){
    if(error){
    var str =error.toString();
    if(str.includes("could not decrypt")){
        bootbox.hideAll();
        document.getElementById("loading").style.display = "none";
        document.getElementById("successAlert").style.display = "none";
        if(document.getElementById("dangerAlert")){
            document.getElementById("dangerAlert").style.display = "none";
        }
        bootbox.alert("Please enter the valid Passphrase.! ");
    }
    }
  });
 }
}

мы используем этот JS для разблокировки учетной записи перед вызовом функций смарт-контрактов и т. д.

Если я сделаю это в NodeJS (консоль трюфеля). Когда я пытаюсь использовать web3.personal.unlockAccount, у меня возникает ошибка: метод недоступен или не существует
Поверьте, вы не включили личный параметр lib rpcapi, из-за которого он не может получить доступ. Можете ли вы поделиться всей командой geth, которую вы вызываете?
Извините, но не используйте geth вообще. У меня есть приватный блокчейн на Axure и я подключаюсь к нему в nodejs. С чистым web3 или web3extended.
Думаю, вопрос был в том, как запустилась гет-нода на Азуре. Вы можете добавлять модули и переключатели, начиная с...
Borinho, какие модули мне добавить в Azure-ноду и как?
Привет, я запускаю свой узел с этими переключателямиgeth --networkid 1234 --datadir c:\geth\01\ --rpc --rpccorsdomain "*" --rpcapi "db,net,web3,miner,eth,personal" --port "30301" --rpcport 8101 --maxpeers 3 console