{"content":{"title":"solidity ->payable","body":"payable\r\n--\r\n1.一个函数（或地址）如果想接收ether，需要将其修饰为payable\r\n2.address常用方法\r\n      2.1  balance() ->查询当前地址的ether余额\r\n      2.2  transfer(uint)->合约向当前地址转指定数量的ether，如果失败会回滚\r\n      2.3  send(uint) ->合约向当前地址转指定数量的ether，如果失败会返回false，不回滚（不建议使用send）\r\n      \r\n```\r\n// SPDX-License-Identifier: SEE LICENSE IN LICENSE\r\npragma solidity ^0.8.9;\r\n\r\ncontract Payable {\r\n    address payable public owner;\r\n\r\n    constructor() payable {\r\n        owner = payable(msg.sender);\r\n    }\r\n\r\n    function deposit() public payable {}\r\n\r\n    function notPayable() public {}\r\n\r\n    function withdraw() public {\r\n        uint amount = address(this).balance;\r\n        owner.transfer(amount);\r\n    }\r\n\r\n    function transfer(address payable _to, uint _amount) public {\r\n        _to.transfer(_amount);\r\n    }\r\n}\r\n\r\n```"},"author":{"user":"https://learnblockchain.cn/people/5348","address":null},"history":null,"timestamp":1668263692,"version":1}