AuctionHouse

Description:

Smart contract deployed on Ethereum with Factory features.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "sources": {
    "contracts/AuctionHouse.sol": {
      "content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
import "./utils/UiProjectStamp.sol";
contract AuctionHouse is UiProjectStamp {
    enum AuctionState { ACTIVE, ENDED, CANCELLED }
    struct Auction {
        address payable seller; string itemName; string description;
        uint256 startingPrice; uint256 reservePrice; uint256 highestBid;
        address payable highestBidder; uint256 startTime; uint256 endTime;
        AuctionState state; bool settled; uint256 totalBids;
    }
    mapping(uint256=>Auction) public auctions;
    uint256 public auctionCounter;
    event AuctionCreated(uint256 indexed id, address indexed seller, string item, uint256 start, uint256 reserve, uint256 duration);
    event AuctionCancelled(uint256 indexed id);
    constructor(bytes32 u) UiProjectStamp(u) {}
    function createAuction(string memory item,string memory desc,uint256 start,uint256 reserve,uint256 dur) external returns(uint256 id){
      require(reserve>=start,"reserve>=start"); require(dur>0&&dur<=168,"1-168h");
      id=auctionCounter++;
      auctions[id]=Auction(payable(msg.sender),item,desc,start,reserve,0,payable(address(0)),block.timestamp,block.timestamp+dur*1 hours,AuctionState.ACTIVE,false,0);
      emit AuctionCreated(id,msg.sender,item,start,reserve,dur);
    }
    function cancelAuction(uint256 id) external { Auction storage a=auctions[id]; require(a.seller==msg.sender,"seller"); require(a.totalBids==0,"has bids"); a.state=AuctionState.CANCELLED; emit AuctionCancelled(id); }
}
"
    },
    "contracts/utils/UiProjectStamp.sol": {
      "content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;

abstract contract UiProjectStamp {
    bytes32 private immutable _BUILD_HASH;
    uint48  private immutable _BUILT_AT;
    uint16  private immutable _VARIANT;

    constructor(bytes32 uiLabelHash_) {
        bytes32 w = keccak256(abi.encode(block.chainid, msg.sender, uiLabelHash_));
        _BUILD_HASH = keccak256(abi.encode(w, address(this)));
        _BUILT_AT   = uint48(block.timestamp);
        _VARIANT    = uint16(uint256(_BUILD_HASH));
    }
    function project() public view returns (bytes32 buildHash, uint48 builtAt, uint16 variant) {
        return (_BUILD_HASH, _BUILT_AT, _VARIANT);
    }
}
"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "evmVersion": "cancun",
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    }
  }
}}

Tags:
Factory|addr:0xd3aa5e768980037c2acb5bc0f672ece9e9237b97|verified:true|block:23471220|tx:0x983aa0ae56b37930249bae3af965bcee90b2a82c11ff965474ec32d28ae3d5c2|first_check:1759219932

Submitted on: 2025-09-30 10:12:13

Comments

Log in to comment.

No comments yet.