首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >receiver.payable

receiver.payable
EN

Ethereum用户
提问于 2019-03-03 06:09:55
回答 1查看 657关注 0票数 0

松露v5.0.5 (核心: 5.0.5)坚固度v0.5.0 (solc-js) Node v10.15.1

代码语言:javascript
复制
pragma solidity v0.5.0;


contract ApprovalContracts { 

  address public sender;   
  address public receiver; 
  address public approver = 0xc7780C9521C2C2abED69f0D65BEbF9794C55ae94;  

  function deposit(address _receiver) external payable {  

    require(msg.value >0); 
    sender = msg.sender; 
    receiver = _receiver;
  }

  function viewApprover() external pure returns(address) { 
    return(approver);
  }

  function approve() external { 
    require(msg.sender == approver); 
    receiver.payable(address(this).balance);
  }

}

receiver.payable(address(this).balance);<-新版本中不存在传输

我一直有一个错误,那就是应付点数。

ParserError:预期标识符,但得到“应付” receiver.payable(地址(此).balance);

不知道我做错了什么。

EN

回答 1

Ethereum用户

发布于 2019-03-03 06:37:21

我在Remix中对此进行了修改,以确保解决方案能够编译。

当前的问题是Solity0.5.0引入了一种新类型address payable,并从address中删除了传输和发送方法。若要处理payable地址,请将变量转换为address payable

这里:address payable public receiver;

也在这里:function deposit(address payable _receiver) external payable {

看起来,receiver.payable是一个试图解决错误的猜测。你可能想:

receiver.transfer(address(this).balance);

编译器对语用中的v并不满意。当它编译时,如下所示:

代码语言:javascript
复制
pragma solidity 0.5.0;

contract ApprovalContracts { 

  address public sender;   
  address payable public receiver; 
  address public approver = 0xc7780C9521C2C2abED69f0D65BEbF9794C55ae94;  

  function deposit(address payable _receiver) external payable {  

    require(msg.value >0); 
    sender = msg.sender; 
    receiver = _receiver;
  }

  function viewApprover() external view returns(address) { 
    return approver;
  }

  function approve() external { 
    require(msg.sender == approver); 
    receiver.transfer(address(this).balance);
  }

}

希望能帮上忙。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/67853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档