pragma solidity ^0.4.18;

contract Auction {
    address currentOwner;
    uint highestBid;

    function bid() payable {
        require(msg.value > highestBid);

        require(currentOwner.send(highestBid)); // Nếu chuyển trả tiền thất bại, không thực thi các lệnh tiếp theo

        currentOwner = msg.sender;
        highestBid = msg.value;
    }
}