我对使用Web3相当陌生。
我正在测试一个购买智能合约(ERC20硬币)的功能,我已经测试了这个代码将以太币从一个钱包发送到另一个钱包,它成功了。现在,每当我尝试与智能合约交互(发送签名交易购买硬币)时,我都会收到这个错误:
错误:事务已由EVM还原:
这就是它在etherscan rinkeby上的表现
"这是我的准则"
var rawTx = {
nonce : nxn,
gasPrice: web3.utils.toHex(web3.utils.toWei('3000', 'gwei')),
gasLimit: '0x5208',
to: '0x40d3b2f06f198d2b789b823cdbecd1db78090d74',
value: web3.utils.toHex(web3.utils.toWei('0.002', "ether")),
data : '0x',
}
var tx = new Tx(rawTx,{chain:'rinkeby', hardfork: 'petersburg'});
tx.sign(privateKey);
var serializedTx = tx.serialize();
await web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'))
.on('receipt', console.log);
2条答案
按热度按时间anhgbhbe1#
这意味着智能合约为你的交易做了
revert()
,通常是因为require()
行失败,其他原因包括试图向不接受支付的智能合约进行支付交易。如果没有智能合约源代码,就不可能知道是什么导致了恢复。
ilmyapht2#
如果你正在做Dapp大学教程,我认为问题出在与initialSupply的约定上,看看构造函数是否带参数。