POL Price: $0.095969 (-3.34%)
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Set User Offer786410532025-11-05 23:56:09128 days ago1762386969IN
0xe20E3972...Bf798B7A7
0 POL0.0054534965.06970719
Set User Offer786260712025-11-05 15:36:45128 days ago1762357005IN
0xe20E3972...Bf798B7A7
0 POL0.02664665317.94118263
Cancel User Offe...769238432025-09-26 12:13:45168 days ago1758888825IN
0xe20E3972...Bf798B7A7
0 POL0.001350342.00000345
Set User Offer769237862025-09-26 12:11:43168 days ago1758888703IN
0xe20E3972...Bf798B7A7
0 POL0.0035619242.5000005
Set User Offer750944152025-08-12 1:09:12214 days ago1754960952IN
0xe20E3972...Bf798B7A7
0 POL0.0027648232.98923282
Cancel User Offe...729229902025-06-18 14:21:37268 days ago1750256497IN
0xe20E3972...Bf798B7A7
0 POL0.00468032145.57767138
Cancel User Offe...704549932025-04-18 14:01:59329 days ago1744984919IN
0xe20E3972...Bf798B7A7
0 POL0.000964530.00000038
Cancel User Offe...699859692025-04-06 23:45:47341 days ago1743983147IN
0xe20E3972...Bf798B7A7
0 POL0.00328957102.31959227
Cancel User Offe...697922042025-04-02 4:52:40345 days ago1743569560IN
0xe20E3972...Bf798B7A7
0 POL0.000964530.00000004
Cancel User Offe...694820772025-03-25 12:25:32353 days ago1742905532IN
0xe20E3972...Bf798B7A7
0 POL0.000964530.00000133
Set User Offer694820632025-03-25 12:25:02353 days ago1742905502IN
0xe20E3972...Bf798B7A7
0 POL0.001320330.00000117
Set User Offer694478622025-03-24 16:11:42354 days ago1742832702IN
0xe20E3972...Bf798B7A7
0 POL0.002514330.00007869
Cancel User Offe...693787762025-03-22 23:03:08356 days ago1742684588IN
0xe20E3972...Bf798B7A7
0 POL0.0011133534.63
Cancel User Offe...693112032025-03-21 6:59:03357 days ago1742540343IN
0xe20E3972...Bf798B7A7
0 POL0.001093134.00000004
Set User Offer685175112025-03-01 13:11:58377 days ago1740834718IN
0xe20E3972...Bf798B7A7
0 POL0.0025443830.35460962
Set User Offer684803272025-02-28 15:05:31378 days ago1740755131IN
0xe20E3972...Bf798B7A7
0 POL0.0081539397.26287593
Set User Offer684340532025-02-27 11:40:20379 days ago1740656420IN
0xe20E3972...Bf798B7A7
0 POL0.0026513556.64071463
Set User Offer681888822025-02-21 9:23:52385 days ago1740129832IN
0xe20E3972...Bf798B7A7
0 POL0.0045105990.92116753
Cancel User Offe...679497702025-02-15 10:28:38391 days ago1739615318IN
0xe20E3972...Bf798B7A7
0 POL0.000964530.00000004
Set User Offer678089672025-02-11 20:07:12395 days ago1739304432IN
0xe20E3972...Bf798B7A7
0 POL0.0026879232.07170141
Buy677776832025-02-11 0:25:14396 days ago1739233514IN
0xe20E3972...Bf798B7A7
119.7 POL0.0020960530.20780015
Buy677749822025-02-10 22:38:28396 days ago1739227108IN
0xe20E3972...Bf798B7A7
63 POL0.0019203630.53000005
Buy677643462025-02-10 15:44:11396 days ago1739202251IN
0xe20E3972...Bf798B7A7
35 POL0.01090953126.15680024
Set User Offer677535502025-02-10 8:49:47396 days ago1739177387IN
0xe20E3972...Bf798B7A7
0 POL0.0016815535.91368722
Buy677504282025-02-10 6:50:05396 days ago1739170205IN
0xe20E3972...Bf798B7A7
77.7 POL0.0045641172.56022806
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
677776832025-02-11 0:25:14396 days ago1739233514
0xe20E3972...Bf798B7A7
119.7 POL
677749822025-02-10 22:38:28396 days ago1739227108
0xe20E3972...Bf798B7A7
63 POL
677643462025-02-10 15:44:11396 days ago1739202251
0xe20E3972...Bf798B7A7
35 POL
677504282025-02-10 6:50:05396 days ago1739170205
0xe20E3972...Bf798B7A7
77.7 POL
677503752025-02-10 6:48:13396 days ago1739170093
0xe20E3972...Bf798B7A7
7.8 POL
677503642025-02-10 6:47:49396 days ago1739170069
0xe20E3972...Bf798B7A7
7.8 POL
677486572025-02-10 5:39:58396 days ago1739165998
0xe20E3972...Bf798B7A7
3.5 POL
677486482025-02-10 5:39:34396 days ago1739165974
0xe20E3972...Bf798B7A7
3.5 POL
677219242025-02-09 12:52:29397 days ago1739105549
0xe20E3972...Bf798B7A7
19 POL
677179632025-02-09 10:21:18397 days ago1739096478
0xe20E3972...Bf798B7A7
65.66 POL
677153652025-02-09 8:36:25397 days ago1739090185
0xe20E3972...Bf798B7A7
32.079516 POL
677108312025-02-09 5:34:19397 days ago1739079259
0xe20E3972...Bf798B7A7
14.8 POL
676848502025-02-08 12:43:08398 days ago1739018588
0xe20E3972...Bf798B7A7
152 POL
676809422025-02-08 10:16:07398 days ago1739009767
0xe20E3972...Bf798B7A7
48.1 POL
676775902025-02-08 8:16:27398 days ago1739002587
0xe20E3972...Bf798B7A7
11.1 POL
676673992025-02-08 2:05:18399 days ago1738980318
0xe20E3972...Bf798B7A7
37 POL
676541142025-02-07 17:42:06399 days ago1738950126
0xe20E3972...Bf798B7A7
12 POL
676487302025-02-07 14:31:14399 days ago1738938674
0xe20E3972...Bf798B7A7
7.6 POL
676486692025-02-07 14:29:04399 days ago1738938544
0xe20E3972...Bf798B7A7
19 POL
676232232025-02-06 22:40:38400 days ago1738881638
0xe20E3972...Bf798B7A7
6.144 POL
676001932025-02-06 8:29:18400 days ago1738830558
0xe20E3972...Bf798B7A7
23.4 POL
675987022025-02-06 7:36:26400 days ago1738827386
0xe20E3972...Bf798B7A7
5.85 POL
675986962025-02-06 7:36:14400 days ago1738827374
0xe20E3972...Bf798B7A7
5.85 POL
675952332025-02-06 5:32:47400 days ago1738819967
0xe20E3972...Bf798B7A7
195 POL
675910732025-02-06 3:01:41400 days ago1738810901
0xe20E3972...Bf798B7A7
8.6 POL
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
dBMarketplace

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";


contract dBMarketplace is ReentrancyGuard {

    IERC1155 private immutable nft;

    struct Offer {
        uint256 price;
        uint256 quantity;
    }

    mapping(address => Offer) public offers; // Mapping from user's wallet address to Offer

    event OfferCancelled(address indexed user, uint256 indexed tokenId);
    event OfferUpdated(address indexed user, uint256 indexed tokenId, uint256 quantity, uint256 price);
    event OfferFulfilled(address indexed seller, uint256 indexed tokenId, address buyer, uint256 quantity);

    uint256 tokenId=1;

    constructor() {
        nft = IERC1155(0x76B6bFFd69D0568756fa4B30ab07B0445d0D888f);
    }

    function setUserOffer( uint256 quantity, uint256 price) external nonReentrant {
       
        require(quantity>0&&price>0, "Quantity and price must be greater than 0");
        require(nft.isApprovedForAll(msg.sender, address(this)), "Contract must be approved");
        require(nft.balanceOf(msg.sender, tokenId) >= quantity, "Not enough NFTs");

        offers[msg.sender] = Offer(price, quantity);       
        emit OfferUpdated(msg.sender, tokenId, quantity, price);

    }

    function buy(address seller, uint256 quantity) external payable nonReentrant {
        
        Offer storage offer = offers[seller];

        require(quantity>0, "Quantity must be greater than 0");
        require(offer.quantity >= quantity, "Not enough NFTs available");

        uint256 totalPrice = offer.price * quantity;

        require(msg.value == totalPrice, "Incorrect payment amount");

        // 更新卖家的Offer记录
        offer.quantity -= quantity;

        if (offer.quantity == 0) {
            delete offers[seller];
        }
        
        // 转移MATIC给卖家
        payable(seller).transfer(msg.value);

        // 转移dB给买家
        nft.safeTransferFrom(seller, msg.sender, tokenId, quantity, "");

        emit OfferFulfilled(seller, tokenId, msg.sender, quantity);
    }


    function cancelUserOffer() external nonReentrant {
        delete offers[msg.sender];
        emit OfferCancelled(msg.sender, tokenId);
    }

}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (token/ERC1155/IERC1155.sol)

pragma solidity ^0.8.20;

import {IERC165} from "../../utils/introspection/IERC165.sol";

/**
 * @dev Required interface of an ERC1155 compliant contract, as defined in the
 * https://eips.ethereum.org/EIPS/eip-1155[EIP].
 */
interface IERC1155 is IERC165 {
    /**
     * @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.
     */
    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);

    /**
     * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
     * transfers.
     */
    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] values
    );

    /**
     * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
     * `approved`.
     */
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);

    /**
     * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
     *
     * If an {URI} event was emitted for `id`, the standard
     * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
     * returned by {IERC1155MetadataURI-uri}.
     */
    event URI(string value, uint256 indexed id);

    /**
     * @dev Returns the value of tokens of token type `id` owned by `account`.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) external view returns (uint256);

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(
        address[] calldata accounts,
        uint256[] calldata ids
    ) external view returns (uint256[] memory);

    /**
     * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
     *
     * Emits an {ApprovalForAll} event.
     *
     * Requirements:
     *
     * - `operator` cannot be the caller.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
     *
     * See {setApprovalForAll}.
     */
    function isApprovedForAll(address account, address operator) external view returns (bool);

    /**
     * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.
     *
     * WARNING: This function can potentially allow a reentrancy attack when transferring tokens
     * to an untrusted contract, when invoking {onERC1155Received} on the receiver.
     * Ensure to follow the checks-effects-interactions pattern and consider employing
     * reentrancy guards when interacting with untrusted contracts.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.
     * - `from` must have a balance of tokens of type `id` of at least `value` amount.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes calldata data) external;

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
     *
     * WARNING: This function can potentially allow a reentrancy attack when transferring tokens
     * to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.
     * Ensure to follow the checks-effects-interactions pattern and consider employing
     * reentrancy guards when interacting with untrusted contracts.
     *
     * Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.
     *
     * Requirements:
     *
     * - `ids` and `values` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    ) external;
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)

pragma solidity ^0.8.20;

/**
 * @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
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"OfferCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"OfferFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"quantity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"OfferUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cancelUserOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"offers","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setUserOffer","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405260016002553480156013575f80fd5b5060015f819055507376b6bffd69d0568756fa4b30ab07b0445d0d888f73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050608051610e686100895f395f81816101300152818161020a015261064d0152610e685ff3fe60806040526004361061003e575f3560e01c80633504c49714610042578063413bf38f1461006a578063a8a99815146100a7578063cce7ec13146100bd575b5f80fd5b34801561004d575f80fd5b50610068600480360381019061006391906107c7565b6100d9565b005b348015610075575f80fd5b50610090600480360381019061008b919061085f565b6103aa565b60405161009e929190610899565b60405180910390f35b3480156100b2575f80fd5b506100bb6103ca565b005b6100d760048036038101906100d291906108c0565b61046f565b005b6100e161073a565b5f821180156100ef57505f81115b61012e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101259061097e565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e985e9c533306040518363ffffffff1660e01b81526004016101899291906109ab565b602060405180830381865afa1580156101a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101c89190610a07565b610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fe90610a7c565b60405180910390fd5b817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1662fdd58e336002546040518363ffffffff1660e01b8152600401610264929190610a9a565b602060405180830381865afa15801561027f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a39190610ad5565b10156102e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102db90610b4a565b60405180910390fd5b60405180604001604052808281526020018381525060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f0155602082015181600101559050506002543373ffffffffffffffffffffffffffffffffffffffff167fa6b8f484c6ce421086fb51c03cb90e40c840f6ca777618540ed43603006bcb2c8484604051610396929190610899565b60405180910390a36103a6610787565b5050565b6001602052805f5260405f205f91509050805f0154908060010154905082565b6103d261073a565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8082015f9055600182015f905550506002543373ffffffffffffffffffffffffffffffffffffffff167f899cab278284ae4a91172caa0943607a0bcb19766254c3ebe1139be00650b10260405160405180910390a361046d610787565b565b61047761073a565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f82116104f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f090610bb2565b60405180910390fd5b8181600101541015610540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053790610c1a565b60405180910390fd5b5f82825f01546105509190610c65565b9050803414610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90610cf0565b60405180910390fd5b82826001015f8282546105a79190610d0e565b925050819055505f8260010154036106075760015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8082015f9055600182015f905550505b8373ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f1935050505015801561064a573d5f803e3d5ffd5b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f242432a8533600254876040518563ffffffff1660e01b81526004016106ac9493929190610d74565b5f604051808303815f87803b1580156106c3575f80fd5b505af11580156106d5573d5f803e3d5ffd5b505050506002548473ffffffffffffffffffffffffffffffffffffffff167f9796719cfde3d0fe387fdb46dd7ecafd08b6952b3f26d120c81b56daa78da3d63386604051610724929190610a9a565b60405180910390a35050610736610787565b5050565b60025f540361077e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077590610e14565b60405180910390fd5b60025f81905550565b60015f81905550565b5f80fd5b5f819050919050565b6107a681610794565b81146107b0575f80fd5b50565b5f813590506107c18161079d565b92915050565b5f80604083850312156107dd576107dc610790565b5b5f6107ea858286016107b3565b92505060206107fb858286016107b3565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61082e82610805565b9050919050565b61083e81610824565b8114610848575f80fd5b50565b5f8135905061085981610835565b92915050565b5f6020828403121561087457610873610790565b5b5f6108818482850161084b565b91505092915050565b61089381610794565b82525050565b5f6040820190506108ac5f83018561088a565b6108b9602083018461088a565b9392505050565b5f80604083850312156108d6576108d5610790565b5b5f6108e38582860161084b565b92505060206108f4858286016107b3565b9150509250929050565b5f82825260208201905092915050565b7f5175616e7469747920616e64207072696365206d7573742062652067726561745f8201527f6572207468616e20300000000000000000000000000000000000000000000000602082015250565b5f6109686029836108fe565b91506109738261090e565b604082019050919050565b5f6020820190508181035f8301526109958161095c565b9050919050565b6109a581610824565b82525050565b5f6040820190506109be5f83018561099c565b6109cb602083018461099c565b9392505050565b5f8115159050919050565b6109e6816109d2565b81146109f0575f80fd5b50565b5f81519050610a01816109dd565b92915050565b5f60208284031215610a1c57610a1b610790565b5b5f610a29848285016109f3565b91505092915050565b7f436f6e7472616374206d75737420626520617070726f766564000000000000005f82015250565b5f610a666019836108fe565b9150610a7182610a32565b602082019050919050565b5f6020820190508181035f830152610a9381610a5a565b9050919050565b5f604082019050610aad5f83018561099c565b610aba602083018461088a565b9392505050565b5f81519050610acf8161079d565b92915050565b5f60208284031215610aea57610ae9610790565b5b5f610af784828501610ac1565b91505092915050565b7f4e6f7420656e6f756768204e46547300000000000000000000000000000000005f82015250565b5f610b34600f836108fe565b9150610b3f82610b00565b602082019050919050565b5f6020820190508181035f830152610b6181610b28565b9050919050565b7f5175616e74697479206d7573742062652067726561746572207468616e2030005f82015250565b5f610b9c601f836108fe565b9150610ba782610b68565b602082019050919050565b5f6020820190508181035f830152610bc981610b90565b9050919050565b7f4e6f7420656e6f756768204e46547320617661696c61626c65000000000000005f82015250565b5f610c046019836108fe565b9150610c0f82610bd0565b602082019050919050565b5f6020820190508181035f830152610c3181610bf8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c6f82610794565b9150610c7a83610794565b9250828202610c8881610794565b91508282048414831517610c9f57610c9e610c38565b5b5092915050565b7f496e636f7272656374207061796d656e7420616d6f756e7400000000000000005f82015250565b5f610cda6018836108fe565b9150610ce582610ca6565b602082019050919050565b5f6020820190508181035f830152610d0781610cce565b9050919050565b5f610d1882610794565b9150610d2383610794565b9250828203905081811115610d3b57610d3a610c38565b5b92915050565b5f82825260208201905092915050565b50565b5f610d5f5f83610d41565b9150610d6a82610d51565b5f82019050919050565b5f60a082019050610d875f83018761099c565b610d94602083018661099c565b610da1604083018561088a565b610dae606083018461088a565b8181036080830152610dbf81610d54565b905095945050505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f610dfe601f836108fe565b9150610e0982610dca565b602082019050919050565b5f6020820190508181035f830152610e2b81610df2565b905091905056fea2646970667358221220886bf14f17f22ad0e5cfbae1ea30f8296f9a710be1ec48e62baa651f45bd969264736f6c63430008190033

Deployed Bytecode

0x60806040526004361061003e575f3560e01c80633504c49714610042578063413bf38f1461006a578063a8a99815146100a7578063cce7ec13146100bd575b5f80fd5b34801561004d575f80fd5b50610068600480360381019061006391906107c7565b6100d9565b005b348015610075575f80fd5b50610090600480360381019061008b919061085f565b6103aa565b60405161009e929190610899565b60405180910390f35b3480156100b2575f80fd5b506100bb6103ca565b005b6100d760048036038101906100d291906108c0565b61046f565b005b6100e161073a565b5f821180156100ef57505f81115b61012e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101259061097e565b60405180910390fd5b7f00000000000000000000000076b6bffd69d0568756fa4b30ab07b0445d0d888f73ffffffffffffffffffffffffffffffffffffffff1663e985e9c533306040518363ffffffff1660e01b81526004016101899291906109ab565b602060405180830381865afa1580156101a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101c89190610a07565b610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fe90610a7c565b60405180910390fd5b817f00000000000000000000000076b6bffd69d0568756fa4b30ab07b0445d0d888f73ffffffffffffffffffffffffffffffffffffffff1662fdd58e336002546040518363ffffffff1660e01b8152600401610264929190610a9a565b602060405180830381865afa15801561027f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a39190610ad5565b10156102e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102db90610b4a565b60405180910390fd5b60405180604001604052808281526020018381525060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f0155602082015181600101559050506002543373ffffffffffffffffffffffffffffffffffffffff167fa6b8f484c6ce421086fb51c03cb90e40c840f6ca777618540ed43603006bcb2c8484604051610396929190610899565b60405180910390a36103a6610787565b5050565b6001602052805f5260405f205f91509050805f0154908060010154905082565b6103d261073a565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8082015f9055600182015f905550506002543373ffffffffffffffffffffffffffffffffffffffff167f899cab278284ae4a91172caa0943607a0bcb19766254c3ebe1139be00650b10260405160405180910390a361046d610787565b565b61047761073a565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f82116104f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f090610bb2565b60405180910390fd5b8181600101541015610540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053790610c1a565b60405180910390fd5b5f82825f01546105509190610c65565b9050803414610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90610cf0565b60405180910390fd5b82826001015f8282546105a79190610d0e565b925050819055505f8260010154036106075760015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8082015f9055600182015f905550505b8373ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f1935050505015801561064a573d5f803e3d5ffd5b507f00000000000000000000000076b6bffd69d0568756fa4b30ab07b0445d0d888f73ffffffffffffffffffffffffffffffffffffffff1663f242432a8533600254876040518563ffffffff1660e01b81526004016106ac9493929190610d74565b5f604051808303815f87803b1580156106c3575f80fd5b505af11580156106d5573d5f803e3d5ffd5b505050506002548473ffffffffffffffffffffffffffffffffffffffff167f9796719cfde3d0fe387fdb46dd7ecafd08b6952b3f26d120c81b56daa78da3d63386604051610724929190610a9a565b60405180910390a35050610736610787565b5050565b60025f540361077e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077590610e14565b60405180910390fd5b60025f81905550565b60015f81905550565b5f80fd5b5f819050919050565b6107a681610794565b81146107b0575f80fd5b50565b5f813590506107c18161079d565b92915050565b5f80604083850312156107dd576107dc610790565b5b5f6107ea858286016107b3565b92505060206107fb858286016107b3565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61082e82610805565b9050919050565b61083e81610824565b8114610848575f80fd5b50565b5f8135905061085981610835565b92915050565b5f6020828403121561087457610873610790565b5b5f6108818482850161084b565b91505092915050565b61089381610794565b82525050565b5f6040820190506108ac5f83018561088a565b6108b9602083018461088a565b9392505050565b5f80604083850312156108d6576108d5610790565b5b5f6108e38582860161084b565b92505060206108f4858286016107b3565b9150509250929050565b5f82825260208201905092915050565b7f5175616e7469747920616e64207072696365206d7573742062652067726561745f8201527f6572207468616e20300000000000000000000000000000000000000000000000602082015250565b5f6109686029836108fe565b91506109738261090e565b604082019050919050565b5f6020820190508181035f8301526109958161095c565b9050919050565b6109a581610824565b82525050565b5f6040820190506109be5f83018561099c565b6109cb602083018461099c565b9392505050565b5f8115159050919050565b6109e6816109d2565b81146109f0575f80fd5b50565b5f81519050610a01816109dd565b92915050565b5f60208284031215610a1c57610a1b610790565b5b5f610a29848285016109f3565b91505092915050565b7f436f6e7472616374206d75737420626520617070726f766564000000000000005f82015250565b5f610a666019836108fe565b9150610a7182610a32565b602082019050919050565b5f6020820190508181035f830152610a9381610a5a565b9050919050565b5f604082019050610aad5f83018561099c565b610aba602083018461088a565b9392505050565b5f81519050610acf8161079d565b92915050565b5f60208284031215610aea57610ae9610790565b5b5f610af784828501610ac1565b91505092915050565b7f4e6f7420656e6f756768204e46547300000000000000000000000000000000005f82015250565b5f610b34600f836108fe565b9150610b3f82610b00565b602082019050919050565b5f6020820190508181035f830152610b6181610b28565b9050919050565b7f5175616e74697479206d7573742062652067726561746572207468616e2030005f82015250565b5f610b9c601f836108fe565b9150610ba782610b68565b602082019050919050565b5f6020820190508181035f830152610bc981610b90565b9050919050565b7f4e6f7420656e6f756768204e46547320617661696c61626c65000000000000005f82015250565b5f610c046019836108fe565b9150610c0f82610bd0565b602082019050919050565b5f6020820190508181035f830152610c3181610bf8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c6f82610794565b9150610c7a83610794565b9250828202610c8881610794565b91508282048414831517610c9f57610c9e610c38565b5b5092915050565b7f496e636f7272656374207061796d656e7420616d6f756e7400000000000000005f82015250565b5f610cda6018836108fe565b9150610ce582610ca6565b602082019050919050565b5f6020820190508181035f830152610d0781610cce565b9050919050565b5f610d1882610794565b9150610d2383610794565b9250828203905081811115610d3b57610d3a610c38565b5b92915050565b5f82825260208201905092915050565b50565b5f610d5f5f83610d41565b9150610d6a82610d51565b5f82019050919050565b5f60a082019050610d875f83018761099c565b610d94602083018661099c565b610da1604083018561088a565b610dae606083018461088a565b8181036080830152610dbf81610d54565b905095945050505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f610dfe601f836108fe565b9150610e0982610dca565b602082019050919050565b5f6020820190508181035f830152610e2b81610df2565b905091905056fea2646970667358221220886bf14f17f22ad0e5cfbae1ea30f8296f9a710be1ec48e62baa651f45bd969264736f6c63430008190033

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

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