Я пытаюсь создать веб-сайт, который позволяет кому-то взаимодействовать с моим контрактом (развернутым через ремикс с использованием метамаски на коване), но я получаю указанную выше ошибку, когда пытаюсь использовать подписанную функцию. Все неподписанные функции работают отлично.
Я думаю, что одна проблема заключается в этом разделе кода:
web3.eth.getAccounts(function (error, accounts) {
if (error) return console.error(error)
console.log(accounts)
})
На моем сайте он дает пустой массив, но на https://codepen.io/anon/pen/KoRWyZ он возвращает ["0x92165d2b80974733b7115e3cbf8285e70132d9e9"].
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);
Когда я пытаюсь запустить подписанную функцию в contractInst, я получаю указанную выше ошибку. Я пытался использовать как wamp, так и heliohost (http), но ни один из них не работает.
Попробуйте поставить между этим:
// Wait for loading completion to avoid race conditions with web3
injection timing.
window.addEventListener('load', function() {
//Your code here..
});
пользователь2609405