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"
]
}
}
}
}}
Submitted on: 2025-09-30 10:12:13
Comments
Log in to comment.
No comments yet.