类型错误:"send" 和 "transfer" 仅适用于 "address payable" 类型的对象,而不适用于 "address" 。在混音 ide 上编译合约时出错


//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

如果有人能调查这个错误,非常感谢

也许已经太晚了,但您需要将msg.sender转换为payable,这将允许您访问转账和发送等方法。

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

相关内容