inpage.js:1 未捕获的错误:地址无效
Posted
技术标签:
【中文标题】inpage.js:1 未捕获的错误:地址无效【英文标题】:inpage.js:1 Uncaught Error: invalid address 【发布时间】:2020-03-28 12:45:53 【问题描述】:这是我的合同
pragma solidity ^0.5.11;
contract test
mapping(string => address payable) pizzaPlace;
address contractOwner;
address payable userWallet;
constructor() public
contractOwner=msg.sender;
pizzaPlace["piaazOne"]=0xd806F6b4888ff997dB4A073fD9EdD40ab92BCbD4;
function paymentHandlerer() public payable returns(bool)
userWallet = pizzaPlace["pizzaOne"];
userWallet.transfer(msg.value);
return true;
function showMessage() public view returns(string memory)
return "Hello Solidity";
我学习 Solidity 已经有一段时间了,但我似乎没有解决这个问题。 上面的合约是用 remix 编写的,我在本地机器上使用 Ganache 来部署合约。
以下是我的函数调用代码:
const contractAddress = '0xEe1C4287b37de1ADFE2aD78C7B7c96D7694093cb';
const contractAbi=[...];
var contract = web3.eth.contract(contractAbi).at(contractAddress);
contract.showMessage(function (error, message)
$("#targetText").html(message);
);
const btn = document.querySelector("#sendEtherBtn");
btn.addEventListener("click", function ()
contract.paymentHandlerer(
"to":contractAddress,
"from":web3.eth.accounts[0],
"value":web3.toWei("10.0","ether")
);
);
当我运行这段代码时。当我在浏览器屏幕上看到消息“Hello Solidity”时,确实调用了函数 showMessage()。这证明合约运行良好。在第二个函数中,我想将一些以太币从 msg.sender 传输到接收者,但该函数一直出错。
错误是这样的:
Uncaught Error: invalid address
at c (inpage.js:1)
at inputTransactionFormatter (inpage.js:1)
at inpage.js:1
at Array.map (<anonymous>)
at o.formatInput (inpage.js:1)
at o.toPayload (inpage.js:1)
at w.e [as sendTransaction] (inpage.js:1)
at u.sendTransaction (inpage.js:1)
at u.execute (inpage.js:1)
at HTMLButtonElement.<anonymous> (index.html:101)
谁能帮我解决。 另外,我没有使用节点 js 或任何普通的 Js 和 JQuery
【问题讨论】:
【参考方案1】:在Web3.js
v1.0 中,web3.eth.accounts
默认不填充。
相反,您需要使用以下方式获取帐户:
web3.eth.getAccounts().then(console.log);
> ["0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", "0xDCc6960376d6C6dEa93647383FfB245CfCed97Cf"]
【讨论】:
那么我应该用什么来触发函数调用而没有任何错误 @SurajShrestha 通过调用web3.eth.getAccounts()
获取地址,而不是使用web3.eth.accounts[0]
设置from
字段以上是关于inpage.js:1 未捕获的错误:地址无效的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的错误:无效地址 web3.currentProvider MetaMask
未捕获的错误:在 mocha 单元测试时监听 EADDRINUSE:地址已在使用 :::3000