【问题标题】:TypeError: "send" and "transfer" are only available for objects of type "address payable", not "address". Error on compiling contract on remix ideTypeError:“发送”和“转移”仅适用于“应付地址”类型的对象,而不适用于“地址”。在 remix ide 上编译合约时出错
【发布时间】:2021-09-12 17:07:21
【问题描述】:
//send funds to user
msg.sender.transfer(etherBalanceOf[msg.sender]); //eth back to user
token.mint(msg.sender, interest); //interest to user

//reset depositer data
depositStart[msg.sender] = 0;
etherBalanceOf[msg.sender] = 0;
isDeposited[msg.sender] = false;

emit Withdraw(msg.sender, userBalance, depositTime, interest);
  • 错误在 msg.sender.transfer(etherBalanceOf[msg.sender]);
  • Solidity 版本 8.0.0

如果有人可以看看这个错误,非常感谢

【问题讨论】:

标签: compiler-errors solidity transfer compile-time remix


【解决方案1】:

也许为时已晚,但您需要将 msg.sender 转换为 payable,这样您就可以访问 transfer 和 send 等方法。

payable(msg.sender).transfer(etherBalanceOf[msg.sender])

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 2021-07-30
    • 2013-06-05
    • 2015-12-18
    相关资源
    最近更新 更多