(솔리디티)함수를 실행하여 컨트랙트에 돈을 송금하고 싶습니다

컨트랙트에 있는 NFT를 구입하는 함수를 구현하려 합니다.

function buyNFT(uint256 tokenId, address NFTaddress) public payable returns (bool) {
        // 0.01klay
        if (NFTaddress == address(this)) // 만일 NFT의 주인이 컨트랙트라면
        {
            address payable receiver = address(this); // ㅡㅡㅡㅡErrorㅡㅡㅡㅡ
            receiver.transfer(10**16); // 0.01KLAY
            nft_kms(NFTaddress).safeTransferFrom(address(this), msg.sender, tokenId, '0x00'); // send NFT
            return true;
        }
        // ...
}

하지만 표시한 줄에서 오류가 뜨네요, 어떤문제가 있을까요?
에러메세지: Type address is not implicitly convertible to expected type address payable.

@wuriae 안녕하세요,

Solidity documentation를 참조부탁드립니다.
address 타입에서 address payable 타입으로 casting은 불가합니다.

감사합니다.

The address type comes in two flavours, which are largely identical:

address: Holds a 20 byte value (size of an Ethereum address).

address payable: Same as address, but with the additional members transfer and send.

The idea behind this distinction is that address payable is an address you can send Ether to, while a plain address cannot be sent Ether.