2

我有这个错误“TypeError:返回参数类型地址不能隐式转换为预期类型(第一个返回变量的类型)地址应付。--> Driven.sol:233:16: | 233 | return msg.sender; | ^^ ^^^^^^^^”

对于以下功能

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

请帮忙!

4

1 回答 1

6

由于 Solidity 0.8,msg.sender不再是payable。您需要payable先将其转换为。

function _msgSender() internal view virtual returns (address payable) {
    return payable(msg.sender); // added payable
}

或者您可以只退货address(不支付):

function _msgSender() internal view virtual returns (address) {  // removed payable
    return msg.sender;
}
于 2021-05-02T22:01:42.607 回答