Как отправить эфир владельцу токена erc721? - PullRequest
0 голосов
/ 21 июня 2019

Я хочу отправить эфир владельцу токена.

ownerOf возвращает адрес, поэтому я устанавливаю оплачиваемый адрес внутри функции sendEther.

Однако ошибка говорит: «Тип адресанеявно преобразуется в ожидаемый тип адреса к оплате.

Есть ли способ установить адрес к оплате внутри функции?Не могли бы вы дать мне какой-нибудь совет?

  function sendEther(uint256 _tokenId) public payable {
    address payable _tokenOwner = ownerOf(_tokenId);
    _tokenOwner.transfer(msg.value);
  }

ERC721.sol
    function ownerOf(uint256 tokenId) public view returns (address) {
        address owner = _tokenOwner[tokenId];
        return owner;
    }

1 Ответ

1 голос
/ 21 июня 2019

Вы не можете напрямую разыграть от address до address payable, но вы можете разыграть в два шага, через uint160:

address payable _tokenOwner = address(uint160(ownerOf(_tokenId)));
...