// SPDX-License-Identifier: GPL-3.0
pragma solidity >= 0.7.0 < 0.9.0;
contract hello {
address owner;
constructor() payable { // payable 키워드는 컨트랙트를 생성할 때 이더를 보낼 수 있다는 의미
owner = msg.sender;
}
// 해당 스마트컨트랙은 컨트랙을 생성한 주소만 이더를 보낼 수 있다.
modifier onlyOwner {
require(msg.sender == owner, "Only Owner");
_;
}
event SendInfo(address _msgSender, uint256 _currentValue);
event MyCurrentValue(address _msgSender, uint256 _value);
event CurrentValueOfSomeone(address _msgSender, address _to, uint256 _value);
function sendEther(address payable _to) public onlyOwner payable {
require(msg.sender.balance >= msg.value, "Your balance is not enough");
_to.transfer(msg.value);
emit SendInfo(msg.sender, msg.sender.balance);
}
}