Ich versuche, eine Website zu erstellen, auf der jemand mit meinem Vertrag interagieren kann (bereitgestellt durch Remix mit Metamask auf Kovan), aber ich erhalte den obigen Fehler, wenn ich eine signierte Funktion versuche. Alle unsignierten Funktionen funktionieren einwandfrei.
Ein Problem ist meiner Meinung nach dieser Abschnitt des Codes:
web3.eth.getAccounts(function (error, accounts) {
if (error) return console.error(error)
console.log(accounts)
})
Auf meiner Website gibt es ein leeres Array, aber auf https://codepen.io/anon/pen/KoRWyZ gibt es ["0x92165d2b80974733b7115e3cbf8285e70132d9e9"] zurück.
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
//web3 = new Web3(new Web3.providers.HttpProvider("https://kovan.infura.io/MGb05nymXluRaB7138hk"));
} else {
web3 = new Web3(new Web3.providers.HttpProvider("https://kovan.infura.io/MGb05nymXluRaB7138hk"));
}
web3.eth.getBlock(48, function(error, result){
if(!error)
console.log(result)
else
console.error(error);
})
web3.eth.getAccounts(function (error, accounts) {
if (error) return console.error(error)
console.log(accounts)
})
web3.eth.defaultAccount = web3.eth.accounts[0];
var MContract = web3.eth.contract([ABI]);
var ContractIst = papyrContract.at('address');
console.log(ContractIst);
Wenn ich versuche, eine signierte Funktion auf der contractInst auszuführen, erhalte ich den obigen Fehler. Ich habe versucht, sowohl wamp als auch heliohost (http) zu verwenden, aber beides funktioniert nicht.
Versuchen Sie, Ihr dazwischen zu setzen:
// Wait for loading completion to avoid race conditions with web3
injection timing.
window.addEventListener('load', function() {
//Your code here..
});
Benutzer2609405