POST https://kovan.infura.io/MG........... 405 () + Uncaught Error: Invalid JSON RPC response: "" with web3js и metamask

Я пытаюсь создать веб-сайт, который позволяет кому-то взаимодействовать с моим контрактом (развернутым через ремикс с использованием метамаски на коване), но я получаю указанную выше ошибку, когда пытаюсь использовать подписанную функцию. Все неподписанные функции работают отлично.

Я думаю, что одна проблема заключается в этом разделе кода:

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), но ни один из них не работает.

Ответы (1)

Попробуйте поставить между этим:

// Wait for loading completion to avoid race conditions with web3 
injection timing.
window.addEventListener('load', function() {

    //Your code here..

});
Спасибо, мне пришлось обновить web3.js до бета-версии 33 и использовать это, но в итоге это сработало.