Konto muss entsperrt werden, um Vertragsfunktionen auf Clientseite aufzurufen. Also muss ich Web 3 oder Web 3 Extended verwenden. Aber es funktioniert nicht. Methode ist nicht verfügbar. Vielleicht kennen Sie einige andere Möglichkeiten, wie Sie Funktionen speziell in der IOS-App aufrufen können.
Sie können die Methode unlockAccount von personal aus Ihrer Webanwendung aufrufen. Ich verwende die Version Web3 0.18.2.
Im unten erwähnten Methodenaufruf ist der letzte Parameter die Dauer, dh wie lange das Konto in Sekunden entsperrt bleibt. Es ist optional. Sie können eine der Möglichkeiten verwenden.
Wenn Sie Ihren Knoten mit Geth starten, müssen Sie Personal über rpc verfügbar machen. Ich verwende diesen Parameter "--rpcapi "db,eth,net,web3,personal". Obwohl es nicht empfohlen wird, Personal über rpc verfügbar zu machen.
Codebeispiel var web3
= new Web3(new Web3.providers.HttpProvider(" http://localhost:8545 ")); web3.personal.unlockAccount("(Kontoadresse)", "(Passphrase)");web3.personal.unlockAccount("(Kontoadresse)", "(Passphrase)", 500);
Es ist ganz einfach, geben Sie einfach diesen Befehl in die Geth-Konsole ein:
web3.personal.unlockAccount("0x..", "<pass>");
vielleicht sowas in der richtung:
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.! ");
}
}
});
}
}
Wir verwenden dieses JS, um ein Konto zu entsperren, bevor wir Funktionen von Smart Contracts usw. aufrufen.
/B
geth --networkid 1234 --datadir c:\geth\01\ --rpc --rpccorsdomain "*" --rpcapi "db,net,web3,miner,eth,personal" --port "30301" --rpcport 8101 --maxpeers 3 console
Alexej Barsuk