ETH Price: $1,646.21 (-2.74%)
Gas: 23 Gwei
 

Overview

ETH Balance

0.04314 ETH

Eth Value

$71.02 (@ $1,646.21/ETH)
Transaction Hash
Method
Block
From
To
Value
Bid174079722023-06-04 14:57:23121 days 12 mins ago1685890643IN
0xA54E8f...75a6887d
0.00001 ETH0.0020582828.06578142
Cancel Listing172820862023-05-17 21:46:11138 days 17 hrs ago1684359971IN
0xA54E8f...75a6887d
0 ETH0.0021614479.40948036
List171480982023-04-29 0:09:35157 days 15 hrs ago1682726975IN
0xA54E8f...75a6887d
0 ETH0.0029586540.19798547
List171422802023-04-28 4:33:35158 days 10 hrs ago1682656415IN
0xA54E8f...75a6887d
0 ETH0.0025775935.02649772
Buy170293162023-04-12 3:38:11174 days 11 hrs ago1681270691IN
0xA54E8f...75a6887d
0.0001 ETH0.0064502821.22971094
List170292992023-04-12 3:34:47174 days 11 hrs ago1681270487IN
0xA54E8f...75a6887d
0 ETH0.0014897820.24438538
List170278892023-04-11 22:48:47174 days 16 hrs ago1681253327IN
0xA54E8f...75a6887d
0 ETH0.0017667224.00379369
Bid169890152023-04-06 10:31:59180 days 4 hrs ago1680777119IN
0xA54E8f...75a6887d
0.0007 ETH0.0019956127.21126723
List169653162023-04-03 1:41:23183 days 13 hrs ago1680486083IN
0xA54E8f...75a6887d
0 ETH0.0011812616.0493619
Bid169272972023-03-28 17:25:59188 days 21 hrs ago1680024359IN
0xA54E8f...75a6887d
0.001 ETH0.0023567232.13512584
Cancel Listing169225832023-03-28 1:30:11189 days 13 hrs ago1679967011IN
0xA54E8f...75a6887d
0 ETH0.0005570820.46664177
Buy169133182023-03-26 18:15:23190 days 20 hrs ago1679854523IN
0xA54E8f...75a6887d
0.00069 ETH0.005971819.65488817
List169020922023-03-25 4:25:23192 days 10 hrs ago1679718323IN
0xA54E8f...75a6887d
0 ETH0.0010217313.88194755
Cancel Listing169020342023-03-25 4:13:47192 days 10 hrs ago1679717627IN
0xA54E8f...75a6887d
0 ETH0.0003234411.88300028
List169020292023-03-25 4:12:35192 days 10 hrs ago1679717555IN
0xA54E8f...75a6887d
0 ETH0.0009584113.02164338
Bid168794192023-03-21 23:58:23195 days 15 hrs ago1679443103IN
0xA54E8f...75a6887d
0.005 ETH0.0011681715.92860066
Bid168374262023-03-16 2:24:59201 days 12 hrs ago1678933499IN
0xA54E8f...75a6887d
0.00003 ETH0.0015093120.58027792
List167918022023-03-09 16:21:23207 days 22 hrs ago1678378883IN
0xA54E8f...75a6887d
0 ETH0.0026922536.57854665
List167753492023-03-07 8:50:35210 days 6 hrs ago1678179035IN
0xA54E8f...75a6887d
0 ETH0.0020044127.23321036
List167731132023-03-07 1:17:59210 days 13 hrs ago1678151879IN
0xA54E8f...75a6887d
0 ETH0.0024267532.97128885
Buy167723202023-03-06 22:37:59210 days 16 hrs ago1678142279IN
0xA54E8f...75a6887d
1 ETH0.0101748233.48820362
List167723122023-03-06 22:36:23210 days 16 hrs ago1678142183IN
0xA54E8f...75a6887d
0 ETH0.0024793433.68588968
List167646172023-03-05 20:38:11211 days 18 hrs ago1678048691IN
0xA54E8f...75a6887d
0 ETH0.0020402927.72066679
List167592692023-03-05 2:35:35212 days 12 hrs ago1677983735IN
0xA54E8f...75a6887d
0 ETH0.0019000625.81542986
List167573842023-03-04 20:15:11212 days 18 hrs ago1677960911IN
0xA54E8f...75a6887d
0 ETH0.002287331.07669459
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Advanced Filter
Parent Txn Hash Block From To Value
170293162023-04-12 3:38:11174 days 11 hrs ago1681270691
0xA54E8f...75a6887d
0.00009 ETH
170293162023-04-12 3:38:11174 days 11 hrs ago1681270691
0xA54E8f...75a6887d
0.00001 ETH
169133182023-03-26 18:15:23190 days 20 hrs ago1679854523
0xA54E8f...75a6887d
0.000621 ETH
169133182023-03-26 18:15:23190 days 20 hrs ago1679854523
0xA54E8f...75a6887d
0.000069 ETH
167723202023-03-06 22:37:59210 days 16 hrs ago1678142279
0xA54E8f...75a6887d
0.9 ETH
167723202023-03-06 22:37:59210 days 16 hrs ago1678142279
0xA54E8f...75a6887d
0.1 ETH
167569892023-03-04 18:54:59212 days 20 hrs ago1677956099
0xA54E8f...75a6887d
0.00045 ETH
167569892023-03-04 18:54:59212 days 20 hrs ago1677956099
0xA54E8f...75a6887d
0.00005 ETH
167431512023-03-02 20:10:59214 days 18 hrs ago1677787859
0xA54E8f...75a6887d
0.27 ETH
167431512023-03-02 20:10:59214 days 18 hrs ago1677787859
0xA54E8f...75a6887d
0.03 ETH
167358052023-03-01 19:20:11215 days 19 hrs ago1677698411
0xA54E8f...75a6887d
0.081 ETH
167358052023-03-01 19:20:11215 days 19 hrs ago1677698411
0xA54E8f...75a6887d
0.009 ETH
167308722023-03-01 2:41:59216 days 12 hrs ago1677638519
0xA54E8f...75a6887d
0.000009 ETH
167308722023-03-01 2:41:59216 days 12 hrs ago1677638519
0xA54E8f...75a6887d
0.000001 ETH
167160962023-02-27 0:54:23218 days 14 hrs ago1677459263
0xA54E8f...75a6887d
0.00378 ETH
167160962023-02-27 0:54:23218 days 14 hrs ago1677459263
0xA54E8f...75a6887d
0.00042 ETH
166950092023-02-24 1:40:23221 days 13 hrs ago1677202823
0xA54E8f...75a6887d
0.009 ETH
166950092023-02-24 1:40:23221 days 13 hrs ago1677202823
0xA54E8f...75a6887d
0.001 ETH
165861642023-02-08 19:35:59236 days 19 hrs ago1675884959
0xA54E8f...75a6887d
0.039951 ETH
165861642023-02-08 19:35:59236 days 19 hrs ago1675884959
0xA54E8f...75a6887d
0.004439 ETH
165452022023-02-03 2:12:11242 days 12 hrs ago1675390331
0xA54E8f...75a6887d
0.09 ETH
165452022023-02-03 2:12:11242 days 12 hrs ago1675390331
0xA54E8f...75a6887d
0.01 ETH
165324452023-02-01 7:21:47244 days 7 hrs ago1675236107
0xA54E8f...75a6887d
0.045 ETH
165324452023-02-01 7:21:47244 days 7 hrs ago1675236107
0xA54E8f...75a6887d
0.005 ETH
165296902023-01-31 22:07:59244 days 17 hrs ago1675202879
0xA54E8f...75a6887d
0.009 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LiquidDelegateMarket

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : LiquidDelegateMarket.sol
// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.17;

import {IERC721} from "openzeppelin-contracts/contracts/token/ERC721/IERC721.sol";
import {IERC2981} from "openzeppelin-contracts/contracts/interfaces/IERC2981.sol";

/**
 * Built with <3 by 0xfoobar
 */

contract LiquidDelegateMarket {

    address public immutable LIQUID_DELEGATE;

    struct Bid {
        address bidder;
        uint96 rightsId;
        uint256 weiAmount;
    }

    struct Listing {
        address seller;
        uint96 rightsId;
        uint256 weiAmount;
    }

    /// @notice A mapping pointing bid ids to bid structs
    mapping(uint256 => Bid) public bids;

    /// @notice A mapping pointing listing ids to listing structs
    mapping(uint256 => Listing) public listings;

    /// @notice The next bid id to be created
    uint256 public nextBidId = 1;

    /// @notice The next listing id to be created
    uint256 public nextListingId = 1;

    /// @notice Emitted when a bid is created
    event BidCreated(uint256 indexed bidId, address indexed bidder, uint256 indexed rightsId, uint256 weiAmount);

    /// @notice Emitted when a bid is canceled or fulfilled
    event BidCanceled(uint256 indexed bidId, address indexed bidder, uint256 indexed rightsId, uint256 weiAmount);

    /// @notice Emitted when a listing is created
    event ListingCreated(uint256 indexed listingId, address indexed seller, uint256 indexed rightsId, uint256 weiAmount);

    /// @notice Emitted when a listing is canceled or fulfilled
    event ListingCanceled(uint256 indexed listingId, address indexed seller, uint256 indexed rightsId, uint256 weiAmount);

    /// @notice Emitted when a liquid delegate is sold
    event Sale(uint256 indexed rightsId, address indexed buyer, address indexed seller, uint256 weiAmount);

    constructor(address _liquidDelegate) {
        LIQUID_DELEGATE = _liquidDelegate;
    }

    /// @notice Create a bid to buy a liquid delegate
    /// @param rightsId The id of the liquid delegate
    function bid(uint256 rightsId) external payable {
        bids[nextBidId] = Bid({
            bidder: msg.sender,
            rightsId: uint96(rightsId),
            weiAmount: msg.value
        });
        emit BidCreated(nextBidId++, msg.sender, rightsId, msg.value);
    }

    /// @notice Cancel your bid
    /// @param bidId The id of the bid to cancel
    function cancelBid(uint256 bidId) external {
       // Move data into memory to delete the bid data first, preventing reentrancy
        Bid memory bid = bids[bidId];
        uint256 rightsId = bid.rightsId;
        uint256 bidAmount = bid.weiAmount;
        address bidder = bid.bidder;
        delete bids[bidId];

        require(msg.sender == bidder, "NOT_YOUR_BID");
        _pay(payable(bidder), bidAmount, true);
        emit BidCanceled(bidId, bidder, rightsId, bidAmount);
    }

    /// @notice Create a new listing to sell your liquid delegate
    /// @param rightsId The id of the liquid delegate
    /// @param weiAmount The amount to sell for
    function list(uint256 rightsId, uint256 weiAmount) external {
        listings[nextListingId] = Listing({
            seller: msg.sender,
            rightsId: uint96(rightsId),
            weiAmount: weiAmount
        });
        emit ListingCreated(nextListingId++, msg.sender, rightsId, weiAmount);
    }

    /// @notice Cancel your own listing
    /// @param listingId The id of the listing
    function cancelListing(uint256 listingId) external {
        // No re-entrancy possible here, no external calls
        Listing memory listing = listings[listingId];
        require(msg.sender == listing.seller, "NOT_YOUR_LISTING");
        emit ListingCanceled(listingId, msg.sender, listing.rightsId, listing.weiAmount);
        delete listings[listingId];
    }

    /// @notice Fulfill a listing and buy a liquid delegate
    /// @param listingId The id of the listing, not the liquid delegate
    function buy(uint256 listingId) external payable {
        Listing memory listing = listings[listingId];
        address seller = listing.seller;
        uint256 listPrice = listing.weiAmount;
        uint256 rightsId = listing.rightsId;
        delete listings[listingId];

        address currentOwner = IERC721(LIQUID_DELEGATE).ownerOf(rightsId);
        require(msg.value == listPrice, "WRONG_PRICE");
        require(currentOwner == seller, "NOT_OWNER");
        IERC721(LIQUID_DELEGATE).transferFrom(currentOwner, msg.sender, rightsId);
        (address receiver, uint256 royaltyAmount) = IERC2981(LIQUID_DELEGATE).royaltyInfo(rightsId, listPrice);
        _pay(payable(receiver), royaltyAmount, true);
        _pay(payable(currentOwner), listPrice - royaltyAmount, true);
        emit ListingCanceled(listingId, seller, rightsId, listPrice);
        emit Sale(rightsId, msg.sender, currentOwner, listPrice);
    }

    /// @notice Accept a bid and sell your liquid delegate
    /// @param bidId The id of the bid, not the liquid delegate
    function sell(uint256 bidId) external {
        // Move data into memory to delete the bid data first, preventing reentrancy
        Bid memory bid = bids[bidId];
        uint256 rightsId = bid.rightsId;
        uint256 bidAmount = bid.weiAmount;
        address bidder = bid.bidder;
        delete bids[bidId];

        address currentOwner = IERC721(LIQUID_DELEGATE).ownerOf(rightsId);
        require(currentOwner == msg.sender, "NOT_OWNER");
        IERC721(LIQUID_DELEGATE).transferFrom(currentOwner, bidder, rightsId);
        (address receiver, uint256 royaltyAmount) = IERC2981(LIQUID_DELEGATE).royaltyInfo(rightsId, bidAmount);
        _pay(payable(receiver), royaltyAmount, true);
        _pay(payable(currentOwner), bidAmount - royaltyAmount, true);
        emit BidCanceled(bidId, bidder, rightsId, bidAmount);
        emit Sale(rightsId, bidder, currentOwner, bidAmount);
    }

    /// @dev Send ether
    function _pay(address payable recipient, uint256 amount, bool errorOnFail) internal {
        (bool sent,) = recipient.call{value: amount}("");
        require(sent || errorOnFail, "SEND_ETHER_FAILED");
    }
}

File 2 of 4 : IERC2981.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)

pragma solidity ^0.8.0;

import "../utils/introspection/IERC165.sol";

/**
 * @dev Interface for the NFT Royalty Standard.
 *
 * A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal
 * support for royalty payments across all NFT marketplaces and ecosystem participants.
 *
 * _Available since v4.5._
 */
interface IERC2981 is IERC165 {
    /**
     * @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of
     * exchange. The royalty amount is denominated and should be paid in that same unit of exchange.
     */
    function royaltyInfo(
        uint256 tokenId,
        uint256 salePrice
    ) external view returns (address receiver, uint256 royaltyAmount);
}

File 3 of 4 : IERC721.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol)

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
     */
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
     */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(address from, address to, uint256 tokenId) external;

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721
     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must
     * understand this adds an external call which potentially creates a reentrancy vulnerability.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 tokenId) external;

    /**
     * @dev Gives permission to `to` to transfer `tokenId` token to another account.
     * The approval is cleared when the token is transferred.
     *
     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
     *
     * Requirements:
     *
     * - The caller must own the token or be an approved operator.
     * - `tokenId` must exist.
     *
     * Emits an {Approval} event.
     */
    function approve(address to, uint256 tokenId) external;

    /**
     * @dev Approve or remove `operator` as an operator for the caller.
     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
     *
     * Requirements:
     *
     * - The `operator` cannot be the caller.
     *
     * Emits an {ApprovalForAll} event.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns the account approved for `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function getApproved(uint256 tokenId) external view returns (address operator);

    /**
     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
     *
     * See {setApprovalForAll}
     */
    function isApprovedForAll(address owner, address operator) external view returns (bool);
}

File 4 of 4 : IERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "solmate/=lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_liquidDelegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"bidId","type":"uint256"},{"indexed":true,"internalType":"address","name":"bidder","type":"address"},{"indexed":true,"internalType":"uint256","name":"rightsId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"BidCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"bidId","type":"uint256"},{"indexed":true,"internalType":"address","name":"bidder","type":"address"},{"indexed":true,"internalType":"uint256","name":"rightsId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"BidCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"listingId","type":"uint256"},{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":true,"internalType":"uint256","name":"rightsId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"ListingCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"listingId","type":"uint256"},{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":true,"internalType":"uint256","name":"rightsId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"ListingCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"rightsId","type":"uint256"},{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"Sale","type":"event"},{"inputs":[],"name":"LIQUID_DELEGATE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rightsId","type":"uint256"}],"name":"bid","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bids","outputs":[{"internalType":"address","name":"bidder","type":"address"},{"internalType":"uint96","name":"rightsId","type":"uint96"},{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"listingId","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bidId","type":"uint256"}],"name":"cancelBid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"listingId","type":"uint256"}],"name":"cancelListing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rightsId","type":"uint256"},{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"list","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"listings","outputs":[{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint96","name":"rightsId","type":"uint96"},{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextBidId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextListingId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bidId","type":"uint256"}],"name":"sell","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a06040526001600255600160035534801561001a57600080fd5b50604051610ead380380610ead8339810160408190526100399161004a565b6001600160a01b031660805261007a565b60006020828403121561005c57600080fd5b81516001600160a01b038116811461007357600080fd5b9392505050565b608051610def6100be6000396000818160d501528181610662015281816107850152818161080b015281816109ad01528181610a8e0152610b140152610def6000f3fe60806040526004361061009c5760003560e01c80639703ef35116100645780639703ef35146101c4578063aaccf1ec146101e4578063d96a094a14610208578063dc2690491461021b578063de74e57b14610231578063e4849b321461028157600080fd5b8063305a67a8146100a1578063432b5020146100c35780634423c5f114610114578063454a2ab31461019157806350fd7367146101a4575b600080fd5b3480156100ad57600080fd5b506100c16100bc366004610ccc565b6102a1565b005b3480156100cf57600080fd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561012057600080fd5b5061016461012f366004610ccc565b600060208190529081526040902080546001909101546001600160a01b03821691600160a01b90046001600160601b03169083565b604080516001600160a01b0390941684526001600160601b0390921660208401529082015260600161010b565b6100c161019f366004610ccc565b6103a1565b3480156101b057600080fd5b506100c16101bf366004610ce5565b61044f565b3480156101d057600080fd5b506100c16101df366004610ccc565b6104fb565b3480156101f057600080fd5b506101fa60035481565b60405190815260200161010b565b6100c1610216366004610ccc565b6105eb565b34801561022757600080fd5b506101fa60025481565b34801561023d57600080fd5b5061016461024c366004610ccc565b600160208190526000918252604090912080549101546001600160a01b03821691600160a01b90046001600160601b03169083565b34801561028d57600080fd5b506100c161029c366004610ccc565b610937565b600081815260016020818152604092839020835160608101855281546001600160a01b038116808352600160a01b9091046001600160601b031693820193909352920154928201929092529033146103335760405162461bcd60e51b815260206004820152601060248201526f4e4f545f594f55525f4c495354494e4760801b60448201526064015b60405180910390fd5b80602001516001600160601b0316336001600160a01b0316837f08e1c3692993684b95c785b759d11ce9cbcf361a6a39ffaa4d9f1d4df29db894846040015160405161038191815260200190565b60405180910390a450600090815260016020819052604082208281550155565b60408051606081018252338082526001600160601b038085166020808501918252348587019081526002805460009081529283905296822095519251909316600160a01b026001600160a01b0392909216919091178455905160019093019290925582548493919290919061041583610d1d565b909155506040513481527f77689ebf788c0f9d9e045fa81e22903cc7a1e34686c3fa4874c9a6a4d8a239f59060200160405180910390a450565b60408051606081018252338082526001600160601b03808616602080850191825284860187815260038054600090815260019384905297882096519351909416600160a01b026001600160a01b0393909316929092178555905193019290925581548593919290916104c083610d1d565b909155506040518481527f12dc294b81a709d694b1337a350a12a00076c19a77a25aab67a5f0c07e0f164d9060200160405180910390a45050565b600081815260208181526040808320815160608101835281546001600160a01b038116808352600160a01b9091046001600160601b031682860181905260018401805495840186905288885295879052928690559490935591923381146105935760405162461bcd60e51b815260206004820152600c60248201526b1393d517d653d55497d0925160a21b604482015260640161032a565b61059f81836001610c27565b82816001600160a01b0316867f31fee466c49d9600dc1a988f1077fea98f16bd7bd7497231cbf24549a4d78c5e856040516105dc91815260200190565b60405180910390a45050505050565b6000818152600160208181526040808420815160608101835281546001600160a01b03808216808452600160a01b9092046001600160601b031683870181905284880180548588018190528b8b5298909752938890559487905592516331a9108f60e11b81526004810183905290959294939192917f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156106a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cd9190610d52565b905082341461070c5760405162461bcd60e51b815260206004820152600b60248201526a57524f4e475f505249434560a81b604482015260640161032a565b836001600160a01b0316816001600160a01b0316146107595760405162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015260640161032a565b6040516323b872dd60e01b81526001600160a01b038281166004830152336024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd90606401600060405180830381600087803b1580156107c957600080fd5b505af11580156107dd573d6000803e3d6000fd5b505060405163152a902d60e11b81526004810185905260248101869052600092508291506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632a55205a906044016040805180830381865afa158015610851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108759190610d74565b9150915061088582826001610c27565b61089a836108938388610da0565b6001610c27565b83866001600160a01b0316897f08e1c3692993684b95c785b759d11ce9cbcf361a6a39ffaa4d9f1d4df29db894886040516108d791815260200190565b60405180910390a4826001600160a01b0316336001600160a01b0316857f88863d5e20f64464b554931394e2e4b6f09c10015147215bf26b3ba5070acebe8860405161092591815260200190565b60405180910390a45050505050505050565b600081815260208181526040808320815160608101835281546001600160a01b03808216808452600160a01b9092046001600160601b03168387018190526001850180548588018190528a8a5297899052948890559387905593516331a9108f60e11b81526004810184905291959294939092917f000000000000000000000000000000000000000000000000000000000000000090911690636352211e90602401602060405180830381865afa1580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a9190610d52565b90506001600160a01b0381163314610a605760405162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015260640161032a565b6040516323b872dd60e01b81526001600160a01b0382811660048301528381166024830152604482018690527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd90606401600060405180830381600087803b158015610ad257600080fd5b505af1158015610ae6573d6000803e3d6000fd5b505060405163152a902d60e11b81526004810187905260248101869052600092508291506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632a55205a906044016040805180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190610d74565b91509150610b8e82826001610c27565b610b9c836108938388610da0565b85846001600160a01b0316897f31fee466c49d9600dc1a988f1077fea98f16bd7bd7497231cbf24549a4d78c5e88604051610bd991815260200190565b60405180910390a4826001600160a01b0316846001600160a01b0316877f88863d5e20f64464b554931394e2e4b6f09c10015147215bf26b3ba5070acebe8860405161092591815260200190565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610c74576040519150601f19603f3d011682016040523d82523d6000602084013e610c79565b606091505b505090508080610c865750815b610cc65760405162461bcd60e51b815260206004820152601160248201527014d1539117d15512115497d19052531151607a1b604482015260640161032a565b50505050565b600060208284031215610cde57600080fd5b5035919050565b60008060408385031215610cf857600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b600060018201610d2f57610d2f610d07565b5060010190565b80516001600160a01b0381168114610d4d57600080fd5b919050565b600060208284031215610d6457600080fd5b610d6d82610d36565b9392505050565b60008060408385031215610d8757600080fd5b610d9083610d36565b9150602083015190509250929050565b81810381811115610db357610db3610d07565b9291505056fea2646970667358221220e0631c952f17fc33ccd850e6d6557f22e93d9dd766563a35c4830081a342bc2164736f6c634300081100330000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf356

Deployed Bytecode

0x60806040526004361061009c5760003560e01c80639703ef35116100645780639703ef35146101c4578063aaccf1ec146101e4578063d96a094a14610208578063dc2690491461021b578063de74e57b14610231578063e4849b321461028157600080fd5b8063305a67a8146100a1578063432b5020146100c35780634423c5f114610114578063454a2ab31461019157806350fd7367146101a4575b600080fd5b3480156100ad57600080fd5b506100c16100bc366004610ccc565b6102a1565b005b3480156100cf57600080fd5b506100f77f0000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf35681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561012057600080fd5b5061016461012f366004610ccc565b600060208190529081526040902080546001909101546001600160a01b03821691600160a01b90046001600160601b03169083565b604080516001600160a01b0390941684526001600160601b0390921660208401529082015260600161010b565b6100c161019f366004610ccc565b6103a1565b3480156101b057600080fd5b506100c16101bf366004610ce5565b61044f565b3480156101d057600080fd5b506100c16101df366004610ccc565b6104fb565b3480156101f057600080fd5b506101fa60035481565b60405190815260200161010b565b6100c1610216366004610ccc565b6105eb565b34801561022757600080fd5b506101fa60025481565b34801561023d57600080fd5b5061016461024c366004610ccc565b600160208190526000918252604090912080549101546001600160a01b03821691600160a01b90046001600160601b03169083565b34801561028d57600080fd5b506100c161029c366004610ccc565b610937565b600081815260016020818152604092839020835160608101855281546001600160a01b038116808352600160a01b9091046001600160601b031693820193909352920154928201929092529033146103335760405162461bcd60e51b815260206004820152601060248201526f4e4f545f594f55525f4c495354494e4760801b60448201526064015b60405180910390fd5b80602001516001600160601b0316336001600160a01b0316837f08e1c3692993684b95c785b759d11ce9cbcf361a6a39ffaa4d9f1d4df29db894846040015160405161038191815260200190565b60405180910390a450600090815260016020819052604082208281550155565b60408051606081018252338082526001600160601b038085166020808501918252348587019081526002805460009081529283905296822095519251909316600160a01b026001600160a01b0392909216919091178455905160019093019290925582548493919290919061041583610d1d565b909155506040513481527f77689ebf788c0f9d9e045fa81e22903cc7a1e34686c3fa4874c9a6a4d8a239f59060200160405180910390a450565b60408051606081018252338082526001600160601b03808616602080850191825284860187815260038054600090815260019384905297882096519351909416600160a01b026001600160a01b0393909316929092178555905193019290925581548593919290916104c083610d1d565b909155506040518481527f12dc294b81a709d694b1337a350a12a00076c19a77a25aab67a5f0c07e0f164d9060200160405180910390a45050565b600081815260208181526040808320815160608101835281546001600160a01b038116808352600160a01b9091046001600160601b031682860181905260018401805495840186905288885295879052928690559490935591923381146105935760405162461bcd60e51b815260206004820152600c60248201526b1393d517d653d55497d0925160a21b604482015260640161032a565b61059f81836001610c27565b82816001600160a01b0316867f31fee466c49d9600dc1a988f1077fea98f16bd7bd7497231cbf24549a4d78c5e856040516105dc91815260200190565b60405180910390a45050505050565b6000818152600160208181526040808420815160608101835281546001600160a01b03808216808452600160a01b9092046001600160601b031683870181905284880180548588018190528b8b5298909752938890559487905592516331a9108f60e11b81526004810183905290959294939192917f0000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf3561690636352211e90602401602060405180830381865afa1580156106a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cd9190610d52565b905082341461070c5760405162461bcd60e51b815260206004820152600b60248201526a57524f4e475f505249434560a81b604482015260640161032a565b836001600160a01b0316816001600160a01b0316146107595760405162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015260640161032a565b6040516323b872dd60e01b81526001600160a01b038281166004830152336024830152604482018490527f0000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf35616906323b872dd90606401600060405180830381600087803b1580156107c957600080fd5b505af11580156107dd573d6000803e3d6000fd5b505060405163152a902d60e11b81526004810185905260248101869052600092508291506001600160a01b037f0000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf3561690632a55205a906044016040805180830381865afa158015610851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108759190610d74565b9150915061088582826001610c27565b61089a836108938388610da0565b6001610c27565b83866001600160a01b0316897f08e1c3692993684b95c785b759d11ce9cbcf361a6a39ffaa4d9f1d4df29db894886040516108d791815260200190565b60405180910390a4826001600160a01b0316336001600160a01b0316857f88863d5e20f64464b554931394e2e4b6f09c10015147215bf26b3ba5070acebe8860405161092591815260200190565b60405180910390a45050505050505050565b600081815260208181526040808320815160608101835281546001600160a01b03808216808452600160a01b9092046001600160601b03168387018190526001850180548588018190528a8a5297899052948890559387905593516331a9108f60e11b81526004810184905291959294939092917f0000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf35690911690636352211e90602401602060405180830381865afa1580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a9190610d52565b90506001600160a01b0381163314610a605760405162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015260640161032a565b6040516323b872dd60e01b81526001600160a01b0382811660048301528381166024830152604482018690527f0000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf35616906323b872dd90606401600060405180830381600087803b158015610ad257600080fd5b505af1158015610ae6573d6000803e3d6000fd5b505060405163152a902d60e11b81526004810187905260248101869052600092508291506001600160a01b037f0000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf3561690632a55205a906044016040805180830381865afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190610d74565b91509150610b8e82826001610c27565b610b9c836108938388610da0565b85846001600160a01b0316897f31fee466c49d9600dc1a988f1077fea98f16bd7bd7497231cbf24549a4d78c5e88604051610bd991815260200190565b60405180910390a4826001600160a01b0316846001600160a01b0316877f88863d5e20f64464b554931394e2e4b6f09c10015147215bf26b3ba5070acebe8860405161092591815260200190565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610c74576040519150601f19603f3d011682016040523d82523d6000602084013e610c79565b606091505b505090508080610c865750815b610cc65760405162461bcd60e51b815260206004820152601160248201527014d1539117d15512115497d19052531151607a1b604482015260640161032a565b50505050565b600060208284031215610cde57600080fd5b5035919050565b60008060408385031215610cf857600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b600060018201610d2f57610d2f610d07565b5060010190565b80516001600160a01b0381168114610d4d57600080fd5b919050565b600060208284031215610d6457600080fd5b610d6d82610d36565b9392505050565b60008060408385031215610d8757600080fd5b610d9083610d36565b9150602083015190509250929050565b81810381811115610db357610db3610d07565b9291505056fea2646970667358221220e0631c952f17fc33ccd850e6d6557f22e93d9dd766563a35c4830081a342bc2164736f6c63430008110033

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

0000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf356

-----Decoded View---------------
Arg [0] : _liquidDelegate (address): 0x2E7AfEE4d068Cdcc427Dba6AE2A7de94D15cf356

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002e7afee4d068cdcc427dba6ae2a7de94d15cf356


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.