└── Auction.sol /Auction.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | contract Auction { 5 | address public owner; 6 | uint256 public highestBid; 7 | address public highestBidder; 8 | 9 | constructor() { 10 | owner = msg.sender; 11 | highestBid = 0; 12 | } 13 | 14 | function bid() public payable { 15 | require(msg.value > highestBid, "Bid must be higher than current highest bid"); 16 | if (highestBid != 0) { 17 | payable(highestBidder).transfer(highestBid); // Refund the previous highest bidder 18 | } 19 | highestBid = msg.value; 20 | highestBidder = msg.sender; 21 | } 22 | 23 | function finalize() public { 24 | require(msg.sender == owner, "Only owner can finalize the auction"); 25 | payable(owner).transfer(highestBid); 26 | highestBid = 0; 27 | } 28 | } 29 | --------------------------------------------------------------------------------