从chrome扩展执行web3事务时出错

时间:2018-05-06 09:42:40

标签: reactjs google-chrome-extension google-chrome-devtools blockchain web3js

我可以使用chrome扩展程序从块链中检索数据,但是从chrome扩展程序更新某个块时会出现错误。

使用以下代码执行交易。

chrome.extension.onRequest.addListener(async function(request, sender, sendResponse) {
if (request.method === "getHTML") {
  console.log("Hello From react 2");
  console.log(request.data);
  const ads = await userAbi.methods.setSpecificUserClickStatistics(request.data).send({from: "some address"});
  console.log(ads);
}
});

与Web3连接运行console.log(web3.currentProvider)时的成功输出。

   HttpProvider {host: "https://rinkeby.infura.io/<specific token>", timeout: 0, connected: false, headers: undefined}
connected:true
headers:undefined
host:"https://rinkeby.infura.io/<specific token>"
timeout:0
event.js:24170 Hello From react 2

我得到的错误: -

event.js:60196 POST https://rinkeby.infura.io/(specific token) 405 ()
HttpProvider.send @ event.js:60196
RequestManager.send @ event.js:50121
sendRequest @ event.js:8961
(anonymous) @ event.js:8978
sendTxCallback @ event.js:8885
(anonymous) @ event.js:50136
request.onreadystatechange @ event.js:60186
XMLHttpRequest.send (async)
HttpProvider.send @ event.js:60196
RequestManager.send @ event.js:50121
sendRequest @ event.js:8961
send @ event.js:8982
send @ event.js:8973
_executeMethod @ event.js:56098
(anonymous) @ event.js:24172
EventImpl.dispatchToListener @ extensions::event_bindings:403
publicClassPrototype.(anonymous function) @ extensions::utils:138
EventImpl.dispatch_ @ extensions::event_bindings:387
EventImpl.dispatch @ extensions::event_bindings:409
publicClassPrototype.(anonymous function) @ extensions::utils:138
messageListener @ extensions::messaging:240
EventImpl.dispatchToListener @ extensions::event_bindings:403
publicClassPrototype.(anonymous function) @ extensions::utils:138
EventImpl.dispatch_ @ extensions::event_bindings:387
EventImpl.dispatch @ extensions::event_bindings:409
publicClassPrototype.(anonymous function) @ extensions::utils:138
dispatchOnMessage @ extensions::messaging:392
event.js:49362 Uncaught (in promise) Error: Invalid JSON RPC response: ""
    at Object.InvalidResponse (event.js:49362)
    at XMLHttpRequest.request.onreadystatechange (event.js:60182)
InvalidResponse @ event.js:49362
request.onreadystatechange @ event.js:60182
async function (async)
(anonymous) @ event.js:24168
EventImpl.dispatchToListener @ extensions::event_bindings:403
publicClassPrototype.(anonymous function) @ extensions::utils:138
EventImpl.dispatch_ @ extensions::event_bindings:387
EventImpl.dispatch @ extensions::event_bindings:409
publicClassPrototype.(anonymous function) @ extensions::utils:138
messageListener @ extensions::messaging:240
EventImpl.dispatchToListener @ extensions::event_bindings:403
publicClassPrototype.(anonymous function) @ extensions::utils:138
EventImpl.dispatch_ @ extensions::event_bindings:387
EventImpl.dispatch @ extensions::event_bindings:409
publicClassPrototype.(anonymous function) @ extensions::utils:138
dispatchOnMessage @ extensions::messaging:392

任何帮助都将是一个很大的帮助。

1 个答案:

答案 0 :(得分:0)

你可以试试这些:

  1. 尝试检查testrpc是否正在运行或是否已停止。
  2. 此外,您可以尝试使用http而不是https
  3. 其中一个可以从我的exp中解决问题。第一个当然是运行envt,如果是第二个,它有时不允许你连接到节点。

    希望这会有所帮助。祝你好运。