后退功能的稳固性

时间:2018-05-18 10:01:21

标签: blockchain ethereum solidity

尝试创建一个带有后备功能的简单钱包但仍然是 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;
       }

 }

1 个答案:

答案 0 :(得分:1)

您收到此错误是因为您尝试调用不应付的显式函数。如果在部署期间发送以太,并且contstructor上没有payable,或者您通过未标记为payable的已定义函数启动事务,则会出现错误消息。要触发回退功能,您将发送一个事务,其中data字段(描述将要调用的内容)为空。