50642


SolidityをRemix上で書いていてselfdestructを使いたいのですが、  
『TypeError: Invalid type for argument in function call. Invalid implicit
conversion from address to address payable requested.  
selfdestruct(owner); // send ether to address inside parenthis』というエラーが出てしまいます。  
^---^  
どうしたらよいでしょうか。

[code]

    pragma solidity ^0.5.0;
    
    contract Owned{
    address public owner;
    
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    function owned() internal {
        owner = msg.sender;
    }
    
    function changeOwner(address _newOwner) public onlyOwner {
        owner = _newOwner;
    }
    
    }
    
    contract Mortal is Owned {
    
    function kill() public onlyOwner {
    selfdestruct(owner); // send ether to address inside parenthis
    }
    }
    
    contract  MortalSample is Mortal {
    
    string public someState;
    function() payable external {
    
    }
    
    constructor() public{
        owned();
        someState = "initial";
    }
    }
    
[/code]


CC BY-SA 4.0
2018-11-25T16:14:07.963
50621
2019-05-26T05:51:31.330
2019-05-26T05:51:31.330
3060
31153
question
ethereum solidity
Solidityでselfdestructをしたいのですがエラーがでます。


ownerのデータ型を"address payable"にする必要があります。  
`address payable public owner;`

0.5.0から、address型は`address`と`address payable`の2つに分かれたようです。


CC BY-SA 4.0
2018-11-26T12:36:13.363
50642
2018-11-26T12:36:13.363
31162
50621
answer