我需要在不使用 MetaMask 的情况下从我的以太坊合约中调用方法。我使用 Infura API 并尝试从最近使用 web3.eth.create() 方法创建的帐户调用我的方法。此方法返回如下对象:
{
address: "0xb8CE9ab6943e0eCED004cG5834Hfn7d",
privateKey: "0x348ce564d427a3311b6536bbcff9390d69395b06ed6",
signTransaction: function(tx){...},
sign: function(data){...},
encrypt: function(password){...}
}
我还使用 infura 提供程序:
const web3 = new Web3(new Web3.providers.HttpProvider(
"https://rinkeby.infura.io/5555666777888"
))
所以,当我尝试这样写时:
contract.methods.contribute().send({
from: '0xb8CE9ab6943e0eCED004cG5834Hfn7d', // here I paste recently created address
value: web3.utils.toWei("0.5", "ether")
});
我有这个错误:
错误:在给定选项和默认选项中都没有指定“发件人”地址。
from
如果我在选项中写它怎么可能不是地址?
PS 使用 Metamask 我的应用程序运行良好。但是当我从 MetaMask 注销并尝试创建新帐户并使用它时,我遇到了这个问题。