[Ethereum] Convert contract to payable address

addressessolidity

Not sure how to successfully convert a contract to a payable address..

ERC721 public nonFungibleContract; 

function withdrawBalance() external {
    address payable nftAddress = address(nonFungibleContract);
    nftAddress.send(address(this).balance);
}

TypeError: Type address is not implicitly convertible to expected type address payable.

Best Answer

There are 2 steps here:

  1. Convert contract type to address type:

address nftAddress = address(nonFungibleContract);

  1. Convert address type to payable address type:

address payable addr = address(uint160(nftAddress));

Your code:

ERC721 public nonFungibleContract; 

 function withdrawBalance() external {
     address nftAddress = address(nonFungibleContract);
     address payable addr = address(uint160(nftAddress));
     addr.send(address(this).balance);
}
Related Topic