尝试创建一个带有后备功能的简单钱包但仍然是 VM错误:还原。注意:如果您发送值,则应支付构造函数。为什么呢?
pragma solidity ^0.4.0;
contract MyWallet
{
struct account
{
uint balance;
uint dailyLimit;
}
mapping (address =>account) _accounts;
//created this fallback payable function
function () payable {
_accounts[msg.sender].balance+=msg.value;
}
//to get balance
function getBalance() returns (uint){
return _accounts[msg.sender].balance;
}
}
答案 0 :(得分:1)
您收到此错误是因为您尝试调用不应付的显式函数。如果在部署期间发送以太,并且contstructor上没有payable
,或者您通过未标记为payable
的已定义函数启动事务,则会出现错误消息。要触发回退功能,您将发送一个事务,其中data
字段(描述将要调用的内容)为空。