ETH Price: $1,949.87 (-1.81%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Refund Bidders224867442025-05-15 6:30:35283 days ago1747290635IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.000026151.04142525
Refund Bidders224867312025-05-15 6:27:47283 days ago1747290467IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.000025211.00402901
Refund Bidders224867052025-05-15 6:22:35283 days ago1747290155IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.000024510.97542392
Refund Bidders224866992025-05-15 6:21:23283 days ago1747290083IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.000024780.98622423
Refund Bidders224865932025-05-15 6:00:11283 days ago1747288811IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.000031611.25820736
Place Bid141180362022-02-01 4:38:011482 days ago1643690281IN
0x8aD0dfD8...Ec5dDf2d8
0.32 ETH0.00407051170.29286002
Place Bid141106172022-01-31 1:11:441483 days ago1643591504IN
0x8aD0dfD8...Ec5dDf2d8
0.6 ETH0.00241598101.07472414
Withdraw Contrac...141031902022-01-29 21:51:481484 days ago1643493108IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.0053356162.29970229
Refund Bidders141031842022-01-29 21:50:031484 days ago1643493003IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.2264409140
Refund Bidders141031762022-01-29 21:47:011484 days ago1643492821IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.52768394140
Refund Bidders141031652022-01-29 21:45:391484 days ago1643492739IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.64076519170
Refund Bidders141031602022-01-29 21:44:231484 days ago1643492663IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.64076723170
Transfer141031562022-01-29 21:43:431484 days ago1643492623IN
0x8aD0dfD8...Ec5dDf2d8
500 ETH0.00394149186.5
Refund Bidders141031542022-01-29 21:42:521484 days ago1643492572IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.64076519170
Place Bid141031502022-01-29 21:41:541484 days ago1643492514IN
0x8aD0dfD8...Ec5dDf2d8
0.13 ETH0.00310549129.9207314
Refund Bidders141031492022-01-29 21:41:391484 days ago1643492499IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.64075499170
Refund Bidders141031432022-01-29 21:40:131484 days ago1643492413IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.32267547170
Refund Bidders141031382022-01-29 21:39:351484 days ago1643492375IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.32267547170
Transfer141031322022-01-29 21:38:351484 days ago1643492315IN
0x8aD0dfD8...Ec5dDf2d8
500 ETH0.00386752183
Refund Bidders141031312022-01-29 21:37:461484 days ago1643492266IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.32267343170
Refund Bidders141031242022-01-29 21:36:501484 days ago1643492210IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.3796014200
Refund Bidders141031192022-01-29 21:36:141484 days ago1643492174IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.3796086200
Refund Bidders141031142022-01-29 21:34:361484 days ago1643492076IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.3796014200
Refund Bidders141031062022-01-29 21:31:121484 days ago1643491872IN
0x8aD0dfD8...Ec5dDf2d8
0 ETH0.32266935170
Transfer141031022022-01-29 21:30:381484 days ago1643491838IN
0x8aD0dfD8...Ec5dDf2d8
500 ETH0.0034554163.5
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-141031902022-01-29 21:51:481484 days ago1643493108
0x8aD0dfD8...Ec5dDf2d8
563.23 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
-141031842022-01-29 21:50:031484 days ago1643493003
0x8aD0dfD8...Ec5dDf2d8
0.2 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Auction

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.9;

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract Auction is Ownable, Pausable {
  using Counters for Counters.Counter;

  uint256 public constant hoursInSeconds = 60 * 60;
  uint256 public constant auctionEndThresholdHrs = 1;

  uint256 public immutable minimumUnitPrice;
  uint256 public immutable minimumBidIncrement;
  uint256 public immutable unitPriceStepSize;
  uint256 public immutable minimumQuantity;
  uint256 public immutable maximumQuantity;
  uint256 public immutable itemsPerDay;
  uint256 public immutable auctionLengthHrs;
  uint256 public immutable auctionEnd;

  address payable public immutable beneficiaryAddress;

  Counters.Counter private _bidPlacedCounter;

  event AuctionStarted();
  event AuctionEnded();
  event BidPlaced(
    address indexed bidder,
    uint256 bidIndex,
    uint256 unitPrice,
    uint256 quantity
  );
  event BidderRefunded(address indexed bidder, uint256 refundAmount);

  struct Bid {
    uint128 unitPrice;
    uint128 quantity;
  }

  struct AuctionStatus {
    bool started;
    bool ended;
  }

  // current auction status
  AuctionStatus public auctionStatus;
  // bidder address => current bid
  mapping(address => Bid) private _bids;

  // Beneficiary address cannot be changed after deployment.
  constructor(
    address payable _beneficiaryAddress,
    uint256 _minimumUnitPrice,
    uint256 _minimumBidIncrement,
    uint256 _unitPriceStepSize,
    uint256 _minimumQuantity,
    uint256 _maximumQuantity,
    uint256 _itemsPerDay,
    uint256 _auctionLengthHrs,
    uint256 _auctionEnd
  ) {
    beneficiaryAddress = _beneficiaryAddress;
    minimumUnitPrice = _minimumUnitPrice;
    minimumBidIncrement = _minimumBidIncrement;
    unitPriceStepSize = _unitPriceStepSize;
    minimumQuantity = _minimumQuantity;
    maximumQuantity = _maximumQuantity;
    itemsPerDay = _itemsPerDay;
    auctionLengthHrs = _auctionLengthHrs;
    require(
      _auctionEnd >= (block.timestamp + (auctionLengthHrs * hoursInSeconds)),
      "Auction end must be at least auction duration from now"
    );
    auctionEnd = _auctionEnd;
    pause();
  }

  modifier whenAuctionActive() {
    require(!auctionStatus.ended, "Auction has already ended.");
    require(auctionStatus.started, "Auction hasn't started yet.");
    _;
  }

  modifier whenPreAuction() {
    require(!auctionStatus.ended, "Auction has already ended.");
    require(!auctionStatus.started, "Auction has already started.");
    _;
  }

  modifier whenAuctionEnded() {
    require(auctionStatus.ended, "Auction hasn't ended yet.");
    require(auctionStatus.started, "Auction hasn't started yet.");
    _;
  }

  function pause() public onlyOwner {
    _pause();
  }

  function unpause() public onlyOwner {
    _unpause();
  }

  function bidsPlacedCount() external view returns (uint256) {
    return _bidPlacedCounter.current();
  }

  function startAuction() external onlyOwner whenPreAuction {
    auctionStatus.started = true;
    if (paused()) {
      unpause();
    }
    emit AuctionStarted();
  }

  function endAuction() external onlyOwner whenAuctionActive {
    require(block.timestamp >= auctionEnd, "Auction end time not reached");
    auctionStatus.ended = true;
    if (!paused()) {
      pause();
    }
    emit AuctionEnded();
  }

  function endAuctionFromBid() internal whenAuctionActive {
    auctionStatus.ended = true;
    if (!paused()) {
      _pause();
    }
    emit AuctionEnded();
  }

  function getBid(address bidder) external view returns (Bid memory) {
    return _bids[bidder];
  }

  // Refunds losing bidders from the contract's balance.
  function refundBidders(
    address payable[] calldata bidders_,
    uint128[] calldata quantities_
  ) external onlyOwner whenPaused whenAuctionEnded {
    require(
      bidders_.length == quantities_.length,
      "bidders length doesn't match quantities length"
    );

    for (uint256 i = 0; i < bidders_.length; i++) {
      require(quantities_[i] > 0, "Quantity is 0");
      address payable bidder = bidders_[i];
      uint128 refundAmount = _bids[bidder].unitPrice * quantities_[i];

      // Since we deduct from bid.quantity when we issue a refund, this gives us the up-to-date maximum that can still be refunded.
      uint128 refundMaximum = _bids[bidder].unitPrice * _bids[bidder].quantity;

      require(
        refundAmount <= refundMaximum,
        "Refund amount is greater than balance"
      );

      // Skip bidders who aren't entitled to a refund.
      if (refundAmount == 0 || refundMaximum == 0) {
        continue;
      }

      _bids[bidder].quantity -= quantities_[i];
      (bool success, ) = bidder.call{value: refundAmount}("");
      require(success, "Transfer failed.");
      emit BidderRefunded(bidder, refundAmount);
    }
  }

  function withdrawContractBalance() external onlyOwner {
    (bool success, ) = beneficiaryAddress.call{value: address(this).balance}(
      ""
    );
    require(success, "Transfer failed.");
  }

  // When a bidder places a bid or updates their existing bid, they will use this function.
  // - total value can never be lowered
  // - unit price can never be lowered
  // - quantity can be raised or lowered, but only if unit price is raised to meet or exceed previous total price
  function placeBid(uint256 quantity, uint256 unitPrice)
    external
    payable
    whenNotPaused
    whenAuctionActive
  {
    // If the bidder is increasing their bid, the amount being added must be greater than or equal to the minimum bid increment.
    if (msg.value > 0 && msg.value < minimumBidIncrement) {
      revert("Bid lower than minimum bid increment.");
    }

    // Cache initial bid values.
    uint256 initialUnitPrice = _bids[msg.sender].unitPrice;
    uint256 initialQuantity = _bids[msg.sender].quantity;
    uint256 initialTotalValue = initialUnitPrice * initialQuantity;

    // Cache final bid values.
    uint256 finalUnitPrice = unitPrice;
    uint256 finalQuantity = quantity;
    uint256 finalTotalValue = initialTotalValue + msg.value;

    // Don't allow bids with a unit price scale smaller than unitPriceStepSize.
    // For example, allow 1.01 or 111.01 but don't allow 1.011.
    require(
      finalUnitPrice % unitPriceStepSize == 0,
      "Unit price step too small."
    );

    // Reject bids that don't have a quantity within the valid range.
    require(finalQuantity >= minimumQuantity, "Quantity too low.");
    require(finalQuantity <= maximumQuantity, "Quantity too high.");

    // Total value can never be lowered.
    require(
      finalTotalValue >= initialTotalValue,
      "Total value can't be lowered."
    );

    // Unit price can never be lowered.
    // Quantity can be raised or lowered, but it can only be lowered if the unit price is raised to meet or exceed the initial total value. Ensuring the the unit price is never lowered takes care of this.
    require(finalUnitPrice >= initialUnitPrice, "Unit price can't be lowered.");

    // Ensure the new totalValue equals quantity * the unit price that was given in this txn exactly. This is important to prevent rounding errors later when returning ether.
    require(
      finalQuantity * finalUnitPrice == finalTotalValue,
      "Quantity * Unit Price != Total Value"
    );

    // Unit price must be greater than or equal to the minimumUnitPrice.
    require(finalUnitPrice >= minimumUnitPrice, "Bid unit price too low.");

    // Something must be changing from the initial bid for this new bid to be valid.
    if (
      initialUnitPrice == finalUnitPrice && initialQuantity == finalQuantity
    ) {
      revert("This bid doesn't change anything.");
    }

    // Update the bidder's bid.
    _bids[msg.sender].unitPrice = uint128(finalUnitPrice);
    _bids[msg.sender].quantity = uint128(finalQuantity);

    emit BidPlaced(
      msg.sender,
      _bidPlacedCounter.current(),
      finalUnitPrice,
      finalQuantity
    );
    // Increment after emitting the BidPlaced event because counter is 0-indexed.
    _bidPlacedCounter.increment();

    // After the bid has been placed, check to see whether the auction is ended
    _checkAuctionEnd();
  }

  // Handles receiving ether to the contract.
  // Reject all direct payments to the contract except from beneficiary and owner.
  // Bids must be placed using the placeBid function.
  receive() external payable {
    require(msg.value > 0, "No ether was sent.");
    require(
      msg.sender == beneficiaryAddress || msg.sender == owner(),
      "Only owner or beneficiary can fund contract."
    );
  }

  function _checkAuctionEnd() internal {
    // (1) If we are at or past the end time it's the end of the action:
    if (block.timestamp >= auctionEnd) {
      endAuctionFromBid();
    } else {
      // (2) Still going? See if we are in the threshold:
      uint256 auctionEndThreshold = auctionEnd -
        (auctionEndThresholdHrs * hoursInSeconds);
      if (block.timestamp >= auctionEndThreshold) {
        // End logic is simple, we do a modulo on the random number using the number of
        // seconds until the end of the action, and check if the remainder is = 7
        // as we approach the end of the auction the odds of such a small remainder increase
        // (while being possible at all times in the threshold)
        if (_getRandomNumber() % (auctionEnd - block.timestamp) == 7) {
          endAuctionFromBid();
        }
      }
    }
  }

  function _getRandomNumber() internal view returns (uint256) {
    return
      uint256(
        keccak256(
          abi.encodePacked(
            _bidPlacedCounter.current(),
            blockhash(block.number - 1)
          )
        )
      );
  }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @title Counters
 * @author Matt Condon (@shrugs)
 * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
 * of elements in a mapping, issuing ERC721 ids, or counting request ids.
 *
 * Include with `using Counters for Counters.Counter;`
 */
library Counters {
    struct Counter {
        // This variable should never be directly accessed by users of the library: interactions must be restricted to
        // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add
        // this feature: see https://github.com/ethereum/solidity/issues/4637
        uint256 _value; // default: 0
    }

    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }

    function increment(Counter storage counter) internal {
        unchecked {
            counter._value += 1;
        }
    }

    function decrement(Counter storage counter) internal {
        uint256 value = counter._value;
        require(value > 0, "Counter: decrement overflow");
        unchecked {
            counter._value = value - 1;
        }
    }

    function reset(Counter storage counter) internal {
        counter._value = 0;
    }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address payable","name":"_beneficiaryAddress","type":"address"},{"internalType":"uint256","name":"_minimumUnitPrice","type":"uint256"},{"internalType":"uint256","name":"_minimumBidIncrement","type":"uint256"},{"internalType":"uint256","name":"_unitPriceStepSize","type":"uint256"},{"internalType":"uint256","name":"_minimumQuantity","type":"uint256"},{"internalType":"uint256","name":"_maximumQuantity","type":"uint256"},{"internalType":"uint256","name":"_itemsPerDay","type":"uint256"},{"internalType":"uint256","name":"_auctionLengthHrs","type":"uint256"},{"internalType":"uint256","name":"_auctionEnd","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"AuctionEnded","type":"event"},{"anonymous":false,"inputs":[],"name":"AuctionStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"bidder","type":"address"},{"indexed":false,"internalType":"uint256","name":"bidIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unitPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"BidPlaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"bidder","type":"address"},{"indexed":false,"internalType":"uint256","name":"refundAmount","type":"uint256"}],"name":"BidderRefunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"auctionEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"auctionEndThresholdHrs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"auctionLengthHrs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"auctionStatus","outputs":[{"internalType":"bool","name":"started","type":"bool"},{"internalType":"bool","name":"ended","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beneficiaryAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bidsPlacedCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"bidder","type":"address"}],"name":"getBid","outputs":[{"components":[{"internalType":"uint128","name":"unitPrice","type":"uint128"},{"internalType":"uint128","name":"quantity","type":"uint128"}],"internalType":"struct Auction.Bid","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hoursInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"itemsPerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumQuantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumBidIncrement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumQuantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumUnitPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"unitPrice","type":"uint256"}],"name":"placeBid","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"bidders_","type":"address[]"},{"internalType":"uint128[]","name":"quantities_","type":"uint128[]"}],"name":"refundBidders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unitPriceStepSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawContractBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101a06040523480156200001257600080fd5b5060405162001eee38038062001eee83398101604081905262000035916200029c565b620000403362000135565b6000805460ff60a01b191690556001600160a01b03891661018052608088905260a087905260c086905260e08590526101008490526101208390526101408290526200008f610e108362000334565b6200009b904262000356565b811015620001165760405162461bcd60e51b815260206004820152603660248201527f41756374696f6e20656e64206d757374206265206174206c656173742061756360448201527f74696f6e206475726174696f6e2066726f6d206e6f770000000000000000000060648201526084015b60405180910390fd5b6101608190526200012662000185565b50505050505050505062000371565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620001e15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200010d565b620001eb620001ed565b565b62000201600054600160a01b900460ff1690565b15620002435760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200010d565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586200027f3390565b6040516001600160a01b03909116815260200160405180910390a1565b60008060008060008060008060006101208a8c031215620002bc57600080fd5b89516001600160a01b0381168114620002d457600080fd5b8099505060208a0151975060408a0151965060608a0151955060808a0151945060a08a0151935060c08a0151925060e08a015191506101008a015190509295985092959850929598565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156200035157620003516200031e565b500290565b600082198211156200036c576200036c6200031e565b500190565b60805160a05160c05160e0516101005161012051610140516101605161018051611abf6200042f600039600081816101c40152818161059e01526112070152600081816102db015281816113da015281816115410152818161158301526115b601526000610343015260006106510152600081816104d20152610dab0152600081816102740152610d470152600081816103f30152610cd30152600081816105fd0152610c0f01526000818161030f0152610f140152611abf6000f3fe60806040526004361061016a5760003560e01c80638456cb59116100d1578063d9c4870e1161008a578063ec89b5e011610064578063ec89b5e0146105eb578063f2fde38b1461061f578063f4d62fa21461063f578063fe67a54b1461067357600080fd5b8063d9c4870e1461058c578063e07bf1b4146105c0578063eada586b146105d657600080fd5b80638456cb591461042a5780638da5cb5b1461043f5780639d6a0f2814610471578063bfab3db9146104ab578063c04b18d8146104c0578063c8b342ab146104f457600080fd5b806357c90de51161012357806357c90de51461037a5780635c975abb1461038d5780636b64c769146103b7578063715018a6146103cc5780637f06cd22146103e157806382449a911461041557600080fd5b80631d75ddcc146102625780631dc38533146102a95780632a24f46c146102c9578063338bd126146102fd5780633dff97c6146103315780633f4ba83a1461036557600080fd5b3661025d57600034116101b95760405162461bcd60e51b815260206004820152601260248201527127379032ba3432b9103bb0b99039b2b73a1760711b60448201526064015b60405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806101fa57506000546001600160a01b031633145b61025b5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f776e6572206f722062656e65666963696172792063616e20667560448201526b37321031b7b73a3930b1ba1760a11b60648201526084016101b0565b005b600080fd5b34801561026e57600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b3480156102b557600080fd5b5061025b6102c43660046117e8565b610688565b3480156102d557600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000081565b34801561030957600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000081565b34801561033d57600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000081565b34801561037157600080fd5b5061025b610b37565b61025b610388366004611854565b610b6b565b34801561039957600080fd5b50600054600160a01b900460ff1660405190151581526020016102a0565b3480156103c357600080fd5b5061025b611075565b3480156103d857600080fd5b5061025b611173565b3480156103ed57600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000081565b34801561042157600080fd5b50610296600181565b34801561043657600080fd5b5061025b6111a7565b34801561044b57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a0565b34801561047d57600080fd5b506002546104949060ff8082169161010090041682565b6040805192151583529015156020830152016102a0565b3480156104b757600080fd5b5061025b6111d9565b3480156104cc57600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b5061056561050f36600461188b565b6040805180820190915260008082526020820152506001600160a01b03166000908152600360209081526040918290208251808401909352546001600160801b038082168452600160801b909104169082015290565b6040805182516001600160801b0390811682526020938401511692810192909252016102a0565b34801561059857600080fd5b506104597f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cc57600080fd5b50610296610e1081565b3480156105e257600080fd5b506102966112bc565b3480156105f757600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000081565b34801561062b57600080fd5b5061025b61063a36600461188b565b6112cc565b34801561064b57600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000081565b34801561067f57600080fd5b5061025b611364565b6000546001600160a01b031633146106b25760405162461bcd60e51b81526004016101b0906118af565b600054600160a01b900460ff166107025760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016101b0565b600254610100900460ff166107595760405162461bcd60e51b815260206004820152601960248201527f41756374696f6e206861736e277420656e646564207965742e0000000000000060448201526064016101b0565b60025460ff1661077b5760405162461bcd60e51b81526004016101b0906118e4565b8281146107e15760405162461bcd60e51b815260206004820152602e60248201527f62696464657273206c656e67746820646f65736e2774206d617463682071756160448201526d0dce8d2e8d2cae640d8cadccee8d60931b60648201526084016101b0565b60005b83811015610b305760008383838181106108005761080061191b565b90506020020160208101906108159190611931565b6001600160801b03161161085b5760405162461bcd60e51b815260206004820152600d60248201526c05175616e74697479206973203609c1b60448201526064016101b0565b600085858381811061086f5761086f61191b565b9050602002016020810190610884919061188b565b9050600084848481811061089a5761089a61191b565b90506020020160208101906108af9190611931565b6001600160a01b0383166000908152600360205260409020546108db91906001600160801b0316611970565b6001600160a01b03831660009081526003602052604081205491925090610914906001600160801b03600160801b820481169116611970565b9050806001600160801b0316826001600160801b031611156109865760405162461bcd60e51b815260206004820152602560248201527f526566756e6420616d6f756e742069732067726561746572207468616e2062616044820152646c616e636560d81b60648201526084016101b0565b6001600160801b03821615806109a357506001600160801b038116155b156109b057505050610b1e565b8585858181106109c2576109c261191b565b90506020020160208101906109d79190611931565b6001600160a01b03841660009081526003602052604090208054601090610a0f908490600160801b90046001600160801b031661199f565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000836001600160a01b0316836001600160801b031660405160006040518083038185875af1925050503d8060008114610a89576040519150601f19603f3d011682016040523d82523d6000602084013e610a8e565b606091505b5050905080610ad25760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016101b0565b6040516001600160801b03841681526001600160a01b038516907fb68630624831a3c69cc6bb427a9b914261a14121aa4a23b9a98bcb9b0d98afdf9060200160405180910390a2505050505b80610b28816119c7565b9150506107e4565b5050505050565b6000546001600160a01b03163314610b615760405162461bcd60e51b81526004016101b0906118af565b610b696114a2565b565b600054600160a01b900460ff1615610bb85760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016101b0565b600254610100900460ff1615610be05760405162461bcd60e51b81526004016101b0906119e2565b60025460ff16610c025760405162461bcd60e51b81526004016101b0906118e4565b600034118015610c3157507f000000000000000000000000000000000000000000000000000000000000000034105b15610c8c5760405162461bcd60e51b815260206004820152602560248201527f426964206c6f776572207468616e206d696e696d756d2062696420696e63726560448201526436b2b73a1760d91b60648201526084016101b0565b336000908152600360205260408120546001600160801b0380821692600160801b9092041690610cbc8284611a19565b905083856000610ccc3485611a38565b9050610cf87f000000000000000000000000000000000000000000000000000000000000000084611a50565b15610d455760405162461bcd60e51b815260206004820152601a60248201527f556e6974207072696365207374657020746f6f20736d616c6c2e00000000000060448201526064016101b0565b7f0000000000000000000000000000000000000000000000000000000000000000821015610da95760405162461bcd60e51b815260206004820152601160248201527028bab0b73a34ba3c903a37b7903637bb9760791b60448201526064016101b0565b7f0000000000000000000000000000000000000000000000000000000000000000821115610e0e5760405162461bcd60e51b815260206004820152601260248201527128bab0b73a34ba3c903a37b7903434b3b41760711b60448201526064016101b0565b83811015610e5e5760405162461bcd60e51b815260206004820152601d60248201527f546f74616c2076616c75652063616e2774206265206c6f77657265642e00000060448201526064016101b0565b85831015610eae5760405162461bcd60e51b815260206004820152601c60248201527f556e69742070726963652063616e2774206265206c6f77657265642e0000000060448201526064016101b0565b80610eb98484611a19565b14610f125760405162461bcd60e51b8152602060048201526024808201527f5175616e74697479202a20556e697420507269636520213d20546f74616c2056604482015263616c756560e01b60648201526084016101b0565b7f0000000000000000000000000000000000000000000000000000000000000000831015610f825760405162461bcd60e51b815260206004820152601760248201527f42696420756e697420707269636520746f6f206c6f772e00000000000000000060448201526064016101b0565b8286148015610f9057508185145b15610fe75760405162461bcd60e51b815260206004820152602160248201527f546869732062696420646f65736e2774206368616e676520616e797468696e676044820152601760f91b60648201526084016101b0565b3360008181526003602052604090206001600160801b03848116600160801b029086161790557fb46d776cdb48d081a0c7d3ff32dc2792e4e8fbce788723207515723628020d3261103760015490565b6040805191825260208201879052810185905260600160405180910390a2611063600180546001019055565b61106b61153f565b5050505050505050565b6000546001600160a01b0316331461109f5760405162461bcd60e51b81526004016101b0906118af565b600254610100900460ff16156110c75760405162461bcd60e51b81526004016101b0906119e2565b60025460ff161561111a5760405162461bcd60e51b815260206004820152601c60248201527f41756374696f6e2068617320616c726561647920737461727465642e0000000060448201526064016101b0565b6002805460ff1916600117905561113b60005460ff600160a01b9091041690565b1561114857611148610b37565b6040517fc8f99b9ac2a284b93c3652b9f064a6706724088cdafa9e0a8437c026191b2f0390600090a1565b6000546001600160a01b0316331461119d5760405162461bcd60e51b81526004016101b0906118af565b610b6960006115fc565b6000546001600160a01b031633146111d15760405162461bcd60e51b81526004016101b0906118af565b610b6961164c565b6000546001600160a01b031633146112035760405162461bcd60e51b81526004016101b0906118af565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03164760405160006040518083038185875af1925050503d8060008114611270576040519150601f19603f3d011682016040523d82523d6000602084013e611275565b606091505b50509050806112b95760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016101b0565b50565b60006112c760015490565b905090565b6000546001600160a01b031633146112f65760405162461bcd60e51b81526004016101b0906118af565b6001600160a01b03811661135b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101b0565b6112b9816115fc565b6000546001600160a01b0316331461138e5760405162461bcd60e51b81526004016101b0906118af565b600254610100900460ff16156113b65760405162461bcd60e51b81526004016101b0906119e2565b60025460ff166113d85760405162461bcd60e51b81526004016101b0906118e4565b7f00000000000000000000000000000000000000000000000000000000000000004210156114485760405162461bcd60e51b815260206004820152601c60248201527f41756374696f6e20656e642074696d65206e6f7420726561636865640000000060448201526064016101b0565b6002805461ff00191661010017905561146b60005460ff600160a01b9091041690565b611477576114776111a7565b6040517fa0e92984607195c326795751263414ee1074526323552e694c90ef2b99ae3f2990600090a1565b600054600160a01b900460ff166114f25760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016101b0565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b7f0000000000000000000000000000000000000000000000000000000000000000421061156e57610b696116d4565b600061157d610e106001611a19565b6115a7907f0000000000000000000000000000000000000000000000000000000000000000611a72565b90508042106112b9576115da427f0000000000000000000000000000000000000000000000000000000000000000611a72565b6115e261174d565b6115ec9190611a50565b600714156112b9576112b96116d4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff16156116995760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016101b0565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115223390565b600254610100900460ff16156116fc5760405162461bcd60e51b81526004016101b0906119e2565b60025460ff1661171e5760405162461bcd60e51b81526004016101b0906118e4565b6002805461ff00191661010017905561174160005460ff600160a01b9091041690565b6114775761147761164c565b600061175860015490565b611763600143611a72565b4060405160200161177e929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c905090565b60008083601f8401126117ae57600080fd5b50813567ffffffffffffffff8111156117c657600080fd5b6020830191508360208260051b85010111156117e157600080fd5b9250929050565b600080600080604085870312156117fe57600080fd5b843567ffffffffffffffff8082111561181657600080fd5b6118228883890161179c565b9096509450602087013591508082111561183b57600080fd5b506118488782880161179c565b95989497509550505050565b6000806040838503121561186757600080fd5b50508035926020909101359150565b6001600160a01b03811681146112b957600080fd5b60006020828403121561189d57600080fd5b81356118a881611876565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601b908201527f41756374696f6e206861736e27742073746172746564207965742e0000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561194357600080fd5b81356001600160801b03811681146118a857600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160801b03808316818516818304811182151516156119965761199661195a565b02949350505050565b60006001600160801b03838116908316818110156119bf576119bf61195a565b039392505050565b60006000198214156119db576119db61195a565b5060010190565b6020808252601a908201527f41756374696f6e2068617320616c726561647920656e6465642e000000000000604082015260600190565b6000816000190483118215151615611a3357611a3361195a565b500290565b60008219821115611a4b57611a4b61195a565b500190565b600082611a6d57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015611a8457611a8461195a565b50039056fea2646970667358221220470252e8965f6562c2bd156e35ad33e6c5b49d044eb260aa13ce52552e01f5d564736f6c6343000809003300000000000000000000000058233c73e18f1172bc0eb9f4c7a6c534957d75a600000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000061f595b8

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80638456cb59116100d1578063d9c4870e1161008a578063ec89b5e011610064578063ec89b5e0146105eb578063f2fde38b1461061f578063f4d62fa21461063f578063fe67a54b1461067357600080fd5b8063d9c4870e1461058c578063e07bf1b4146105c0578063eada586b146105d657600080fd5b80638456cb591461042a5780638da5cb5b1461043f5780639d6a0f2814610471578063bfab3db9146104ab578063c04b18d8146104c0578063c8b342ab146104f457600080fd5b806357c90de51161012357806357c90de51461037a5780635c975abb1461038d5780636b64c769146103b7578063715018a6146103cc5780637f06cd22146103e157806382449a911461041557600080fd5b80631d75ddcc146102625780631dc38533146102a95780632a24f46c146102c9578063338bd126146102fd5780633dff97c6146103315780633f4ba83a1461036557600080fd5b3661025d57600034116101b95760405162461bcd60e51b815260206004820152601260248201527127379032ba3432b9103bb0b99039b2b73a1760711b60448201526064015b60405180910390fd5b336001600160a01b037f00000000000000000000000058233c73e18f1172bc0eb9f4c7a6c534957d75a61614806101fa57506000546001600160a01b031633145b61025b5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f776e6572206f722062656e65666963696172792063616e20667560448201526b37321031b7b73a3930b1ba1760a11b60648201526084016101b0565b005b600080fd5b34801561026e57600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000181565b6040519081526020015b60405180910390f35b3480156102b557600080fd5b5061025b6102c43660046117e8565b610688565b3480156102d557600080fd5b506102967f0000000000000000000000000000000000000000000000000000000061f595b881565b34801561030957600080fd5b506102967f00000000000000000000000000000000000000000000000002c68af0bb14000081565b34801561033d57600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000001881565b34801561037157600080fd5b5061025b610b37565b61025b610388366004611854565b610b6b565b34801561039957600080fd5b50600054600160a01b900460ff1660405190151581526020016102a0565b3480156103c357600080fd5b5061025b611075565b3480156103d857600080fd5b5061025b611173565b3480156103ed57600080fd5b506102967f000000000000000000000000000000000000000000000000002386f26fc1000081565b34801561042157600080fd5b50610296600181565b34801561043657600080fd5b5061025b6111a7565b34801561044b57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a0565b34801561047d57600080fd5b506002546104949060ff8082169161010090041682565b6040805192151583529015156020830152016102a0565b3480156104b757600080fd5b5061025b6111d9565b3480156104cc57600080fd5b506102967f000000000000000000000000000000000000000000000000000000000000000181565b34801561050057600080fd5b5061056561050f36600461188b565b6040805180820190915260008082526020820152506001600160a01b03166000908152600360209081526040918290208251808401909352546001600160801b038082168452600160801b909104169082015290565b6040805182516001600160801b0390811682526020938401511692810192909252016102a0565b34801561059857600080fd5b506104597f00000000000000000000000058233c73e18f1172bc0eb9f4c7a6c534957d75a681565b3480156105cc57600080fd5b50610296610e1081565b3480156105e257600080fd5b506102966112bc565b3480156105f757600080fd5b506102967f000000000000000000000000000000000000000000000000002386f26fc1000081565b34801561062b57600080fd5b5061025b61063a36600461188b565b6112cc565b34801561064b57600080fd5b506102967f00000000000000000000000000000000000000000000000000000000000003e881565b34801561067f57600080fd5b5061025b611364565b6000546001600160a01b031633146106b25760405162461bcd60e51b81526004016101b0906118af565b600054600160a01b900460ff166107025760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016101b0565b600254610100900460ff166107595760405162461bcd60e51b815260206004820152601960248201527f41756374696f6e206861736e277420656e646564207965742e0000000000000060448201526064016101b0565b60025460ff1661077b5760405162461bcd60e51b81526004016101b0906118e4565b8281146107e15760405162461bcd60e51b815260206004820152602e60248201527f62696464657273206c656e67746820646f65736e2774206d617463682071756160448201526d0dce8d2e8d2cae640d8cadccee8d60931b60648201526084016101b0565b60005b83811015610b305760008383838181106108005761080061191b565b90506020020160208101906108159190611931565b6001600160801b03161161085b5760405162461bcd60e51b815260206004820152600d60248201526c05175616e74697479206973203609c1b60448201526064016101b0565b600085858381811061086f5761086f61191b565b9050602002016020810190610884919061188b565b9050600084848481811061089a5761089a61191b565b90506020020160208101906108af9190611931565b6001600160a01b0383166000908152600360205260409020546108db91906001600160801b0316611970565b6001600160a01b03831660009081526003602052604081205491925090610914906001600160801b03600160801b820481169116611970565b9050806001600160801b0316826001600160801b031611156109865760405162461bcd60e51b815260206004820152602560248201527f526566756e6420616d6f756e742069732067726561746572207468616e2062616044820152646c616e636560d81b60648201526084016101b0565b6001600160801b03821615806109a357506001600160801b038116155b156109b057505050610b1e565b8585858181106109c2576109c261191b565b90506020020160208101906109d79190611931565b6001600160a01b03841660009081526003602052604090208054601090610a0f908490600160801b90046001600160801b031661199f565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000836001600160a01b0316836001600160801b031660405160006040518083038185875af1925050503d8060008114610a89576040519150601f19603f3d011682016040523d82523d6000602084013e610a8e565b606091505b5050905080610ad25760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016101b0565b6040516001600160801b03841681526001600160a01b038516907fb68630624831a3c69cc6bb427a9b914261a14121aa4a23b9a98bcb9b0d98afdf9060200160405180910390a2505050505b80610b28816119c7565b9150506107e4565b5050505050565b6000546001600160a01b03163314610b615760405162461bcd60e51b81526004016101b0906118af565b610b696114a2565b565b600054600160a01b900460ff1615610bb85760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016101b0565b600254610100900460ff1615610be05760405162461bcd60e51b81526004016101b0906119e2565b60025460ff16610c025760405162461bcd60e51b81526004016101b0906118e4565b600034118015610c3157507f000000000000000000000000000000000000000000000000002386f26fc1000034105b15610c8c5760405162461bcd60e51b815260206004820152602560248201527f426964206c6f776572207468616e206d696e696d756d2062696420696e63726560448201526436b2b73a1760d91b60648201526084016101b0565b336000908152600360205260408120546001600160801b0380821692600160801b9092041690610cbc8284611a19565b905083856000610ccc3485611a38565b9050610cf87f000000000000000000000000000000000000000000000000002386f26fc1000084611a50565b15610d455760405162461bcd60e51b815260206004820152601a60248201527f556e6974207072696365207374657020746f6f20736d616c6c2e00000000000060448201526064016101b0565b7f0000000000000000000000000000000000000000000000000000000000000001821015610da95760405162461bcd60e51b815260206004820152601160248201527028bab0b73a34ba3c903a37b7903637bb9760791b60448201526064016101b0565b7f0000000000000000000000000000000000000000000000000000000000000001821115610e0e5760405162461bcd60e51b815260206004820152601260248201527128bab0b73a34ba3c903a37b7903434b3b41760711b60448201526064016101b0565b83811015610e5e5760405162461bcd60e51b815260206004820152601d60248201527f546f74616c2076616c75652063616e2774206265206c6f77657265642e00000060448201526064016101b0565b85831015610eae5760405162461bcd60e51b815260206004820152601c60248201527f556e69742070726963652063616e2774206265206c6f77657265642e0000000060448201526064016101b0565b80610eb98484611a19565b14610f125760405162461bcd60e51b8152602060048201526024808201527f5175616e74697479202a20556e697420507269636520213d20546f74616c2056604482015263616c756560e01b60648201526084016101b0565b7f00000000000000000000000000000000000000000000000002c68af0bb140000831015610f825760405162461bcd60e51b815260206004820152601760248201527f42696420756e697420707269636520746f6f206c6f772e00000000000000000060448201526064016101b0565b8286148015610f9057508185145b15610fe75760405162461bcd60e51b815260206004820152602160248201527f546869732062696420646f65736e2774206368616e676520616e797468696e676044820152601760f91b60648201526084016101b0565b3360008181526003602052604090206001600160801b03848116600160801b029086161790557fb46d776cdb48d081a0c7d3ff32dc2792e4e8fbce788723207515723628020d3261103760015490565b6040805191825260208201879052810185905260600160405180910390a2611063600180546001019055565b61106b61153f565b5050505050505050565b6000546001600160a01b0316331461109f5760405162461bcd60e51b81526004016101b0906118af565b600254610100900460ff16156110c75760405162461bcd60e51b81526004016101b0906119e2565b60025460ff161561111a5760405162461bcd60e51b815260206004820152601c60248201527f41756374696f6e2068617320616c726561647920737461727465642e0000000060448201526064016101b0565b6002805460ff1916600117905561113b60005460ff600160a01b9091041690565b1561114857611148610b37565b6040517fc8f99b9ac2a284b93c3652b9f064a6706724088cdafa9e0a8437c026191b2f0390600090a1565b6000546001600160a01b0316331461119d5760405162461bcd60e51b81526004016101b0906118af565b610b6960006115fc565b6000546001600160a01b031633146111d15760405162461bcd60e51b81526004016101b0906118af565b610b6961164c565b6000546001600160a01b031633146112035760405162461bcd60e51b81526004016101b0906118af565b60007f00000000000000000000000058233c73e18f1172bc0eb9f4c7a6c534957d75a66001600160a01b03164760405160006040518083038185875af1925050503d8060008114611270576040519150601f19603f3d011682016040523d82523d6000602084013e611275565b606091505b50509050806112b95760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016101b0565b50565b60006112c760015490565b905090565b6000546001600160a01b031633146112f65760405162461bcd60e51b81526004016101b0906118af565b6001600160a01b03811661135b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101b0565b6112b9816115fc565b6000546001600160a01b0316331461138e5760405162461bcd60e51b81526004016101b0906118af565b600254610100900460ff16156113b65760405162461bcd60e51b81526004016101b0906119e2565b60025460ff166113d85760405162461bcd60e51b81526004016101b0906118e4565b7f0000000000000000000000000000000000000000000000000000000061f595b84210156114485760405162461bcd60e51b815260206004820152601c60248201527f41756374696f6e20656e642074696d65206e6f7420726561636865640000000060448201526064016101b0565b6002805461ff00191661010017905561146b60005460ff600160a01b9091041690565b611477576114776111a7565b6040517fa0e92984607195c326795751263414ee1074526323552e694c90ef2b99ae3f2990600090a1565b600054600160a01b900460ff166114f25760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016101b0565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b7f0000000000000000000000000000000000000000000000000000000061f595b8421061156e57610b696116d4565b600061157d610e106001611a19565b6115a7907f0000000000000000000000000000000000000000000000000000000061f595b8611a72565b90508042106112b9576115da427f0000000000000000000000000000000000000000000000000000000061f595b8611a72565b6115e261174d565b6115ec9190611a50565b600714156112b9576112b96116d4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff16156116995760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016101b0565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115223390565b600254610100900460ff16156116fc5760405162461bcd60e51b81526004016101b0906119e2565b60025460ff1661171e5760405162461bcd60e51b81526004016101b0906118e4565b6002805461ff00191661010017905561174160005460ff600160a01b9091041690565b6114775761147761164c565b600061175860015490565b611763600143611a72565b4060405160200161177e929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c905090565b60008083601f8401126117ae57600080fd5b50813567ffffffffffffffff8111156117c657600080fd5b6020830191508360208260051b85010111156117e157600080fd5b9250929050565b600080600080604085870312156117fe57600080fd5b843567ffffffffffffffff8082111561181657600080fd5b6118228883890161179c565b9096509450602087013591508082111561183b57600080fd5b506118488782880161179c565b95989497509550505050565b6000806040838503121561186757600080fd5b50508035926020909101359150565b6001600160a01b03811681146112b957600080fd5b60006020828403121561189d57600080fd5b81356118a881611876565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601b908201527f41756374696f6e206861736e27742073746172746564207965742e0000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561194357600080fd5b81356001600160801b03811681146118a857600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160801b03808316818516818304811182151516156119965761199661195a565b02949350505050565b60006001600160801b03838116908316818110156119bf576119bf61195a565b039392505050565b60006000198214156119db576119db61195a565b5060010190565b6020808252601a908201527f41756374696f6e2068617320616c726561647920656e6465642e000000000000604082015260600190565b6000816000190483118215151615611a3357611a3361195a565b500290565b60008219821115611a4b57611a4b61195a565b500190565b600082611a6d57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015611a8457611a8461195a565b50039056fea2646970667358221220470252e8965f6562c2bd156e35ad33e6c5b49d044eb260aa13ce52552e01f5d564736f6c63430008090033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000058233c73e18f1172bc0eb9f4c7a6c534957d75a600000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000061f595b8

-----Decoded View---------------
Arg [0] : _beneficiaryAddress (address): 0x58233C73E18f1172bC0Eb9F4c7A6c534957D75a6
Arg [1] : _minimumUnitPrice (uint256): 200000000000000000
Arg [2] : _minimumBidIncrement (uint256): 10000000000000000
Arg [3] : _unitPriceStepSize (uint256): 10000000000000000
Arg [4] : _minimumQuantity (uint256): 1
Arg [5] : _maximumQuantity (uint256): 1
Arg [6] : _itemsPerDay (uint256): 1000
Arg [7] : _auctionLengthHrs (uint256): 24
Arg [8] : _auctionEnd (uint256): 1643484600

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000058233c73e18f1172bc0eb9f4c7a6c534957d75a6
Arg [1] : 00000000000000000000000000000000000000000000000002c68af0bb140000
Arg [2] : 000000000000000000000000000000000000000000000000002386f26fc10000
Arg [3] : 000000000000000000000000000000000000000000000000002386f26fc10000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [6] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000018
Arg [8] : 0000000000000000000000000000000000000000000000000000000061f595b8


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.