ETH Price: $3,149.10 (+1.20%)

Contract

0x952224e9CBA38b9f330fceba40a7AFd88cB87df4
 

Overview

ETH Balance

2.7901 ETH

Eth Value

$8,786.30 (@ $3,149.10/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Bid182184962023-09-26 7:34:47419 days ago1695713687IN
0x952224e9...88cB87df4
0.01 ETH0.000723887.82556558
Withdraw165390492023-02-02 5:31:23655 days ago1675315883IN
0x952224e9...88cB87df4
0 ETH0.0003948816.59237367
Withdraw162712452022-12-26 20:13:59693 days ago1672085639IN
0x952224e9...88cB87df4
0 ETH0.0002646611.1208572
Withdraw152525982022-07-31 21:14:41841 days ago1659302081IN
0x952224e9...88cB87df4
0 ETH0.000159246.69137145
Withdraw152525802022-07-31 21:10:53841 days ago1659301853IN
0x952224e9...88cB87df4
0 ETH0.000189137.94720477
Collect Fees146423222022-04-23 17:10:14940 days ago1650733814IN
0x952224e9...88cB87df4
0 ETH0.0012590941.00493711
Withdraw143439962022-03-08 4:17:47986 days ago1646713067IN
0x952224e9...88cB87df4
0 ETH0.00096540.5479933
Withdraw141230402022-02-01 23:12:201021 days ago1643757140IN
0x952224e9...88cB87df4
0 ETH0.00372731156.61650855
Withdraw141175892022-02-01 3:00:101022 days ago1643684410IN
0x952224e9...88cB87df4
0 ETH0.00319146111.98509333
Accept Bid141175842022-02-01 2:59:101022 days ago1643684350IN
0x952224e9...88cB87df4
0 ETH0.01483851138.64405676
Withdraw141175472022-02-01 2:50:011022 days ago1643683801IN
0x952224e9...88cB87df4
0 ETH0.0034897146.63246423
Withdraw141175242022-02-01 2:44:341022 days ago1643683474IN
0x952224e9...88cB87df4
0 ETH0.00336549118.09167705
Accept Bid141175212022-02-01 2:44:151022 days ago1643683455IN
0x952224e9...88cB87df4
0 ETH0.01165184108.86930557
Withdraw141175102022-02-01 2:41:491022 days ago1643683309IN
0x952224e9...88cB87df4
0 ETH0.00404308141.86774513
Accept Bid141175022022-02-01 2:40:411022 days ago1643683241IN
0x952224e9...88cB87df4
0 ETH0.0196578183.67316034
Withdraw141174832022-02-01 2:34:361022 days ago1643682876IN
0x952224e9...88cB87df4
0 ETH0.00326055114.40929143
Accept Bid141174762022-02-01 2:32:551022 days ago1643682775IN
0x952224e9...88cB87df4
0 ETH0.01280533119.64699489
Bid140758292022-01-25 16:29:161028 days ago1643128156IN
0x952224e9...88cB87df4
0.35 ETH0.01210583130.88806512
Withdraw140117542022-01-15 18:53:431038 days ago1642272823IN
0x952224e9...88cB87df4
0 ETH0.00462288162.21200895
Accept Bid139805972022-01-10 23:03:221043 days ago1641855802IN
0x952224e9...88cB87df4
0 ETH0.02035355190.17390013
Withdraw139291992022-01-03 0:07:151051 days ago1641168435IN
0x952224e9...88cB87df4
0 ETH0.00332322116.60854639
Withdraw139291942022-01-03 0:05:461051 days ago1641168346IN
0x952224e9...88cB87df4
0 ETH0.0031491110.49874471
Accept Bid139270882022-01-02 16:21:201051 days ago1641140480IN
0x952224e9...88cB87df4
0 ETH0.0053060256.84862929
Bid139252302022-01-02 9:36:421051 days ago1641116202IN
0x952224e9...88cB87df4
0.02 ETH0.0055350276.25050526
Accept Bid139251462022-01-02 9:16:001051 days ago1641114960IN
0x952224e9...88cB87df4
0 ETH0.009397477.42777086
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
146423222022-04-23 17:10:14940 days ago1650733814
0x952224e9...88cB87df4
0.2495 ETH
141175892022-02-01 3:00:101022 days ago1643684410
0x952224e9...88cB87df4
0.475 ETH
141175242022-02-01 2:44:341022 days ago1643683474
0x952224e9...88cB87df4
0.665 ETH
141175102022-02-01 2:41:491022 days ago1643683309
0x952224e9...88cB87df4
1.425 ETH
141174832022-02-01 2:34:361022 days ago1643682876
0x952224e9...88cB87df4
1.045 ETH
140117542022-01-15 18:53:431038 days ago1642272823
0x952224e9...88cB87df4
0.114 ETH
139291992022-01-03 0:07:151051 days ago1641168435
0x952224e9...88cB87df4
0.038 ETH
139291942022-01-03 0:05:461051 days ago1641168346
0x952224e9...88cB87df4
0.0475 ETH
131971612021-09-10 9:23:591165 days ago1631265839
0x952224e9...88cB87df4
0.15 ETH
131971612021-09-10 9:23:591165 days ago1631265839
0x952224e9...88cB87df4
0.15 ETH
130569962021-08-19 17:14:231187 days ago1629393263
0x952224e9...88cB87df4
0.25 ETH
130267012021-08-15 0:57:291192 days ago1628989049
0x952224e9...88cB87df4
0.1 ETH
130266822021-08-15 0:54:001192 days ago1628988840
0x952224e9...88cB87df4
0.1 ETH
130133402021-08-12 23:28:141194 days ago1628810894
0x952224e9...88cB87df4
0.2375 ETH
130058512021-08-11 19:41:451195 days ago1628710905
0x952224e9...88cB87df4
0.095 ETH
130052902021-08-11 17:46:071195 days ago1628703967
0x952224e9...88cB87df4
0.475 ETH
128016112021-07-10 19:49:091227 days ago1625946549
0x952224e9...88cB87df4
0.1235 ETH
127902302021-07-09 1:22:041229 days ago1625793724
0x952224e9...88cB87df4
0.3184 ETH
127765482021-07-06 22:18:231231 days ago1625609903
0x952224e9...88cB87df4
0.64125 ETH
126179392021-06-12 5:48:361255 days ago1623476916
0x952224e9...88cB87df4
0.8436 ETH
125935962021-06-08 11:26:121259 days ago1623151572
0x952224e9...88cB87df4
0.19 ETH
124454692021-05-16 12:26:571282 days ago1621168017
0x952224e9...88cB87df4
0.3325 ETH
124233712021-05-13 2:38:161286 days ago1620873496
0x952224e9...88cB87df4
1.25 ETH
124038612021-05-10 2:18:331289 days ago1620613113
0x952224e9...88cB87df4
0.1425 ETH
123788482021-05-06 5:15:581292 days ago1620278158
0x952224e9...88cB87df4
1.3015 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoCatsMarketV2

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 6: CryptoCatsMarketV2.sol
pragma solidity ^0.8.0;

import "AccessControl.sol";
import "SafeMath.sol";
import "Context.sol";
import "ERC165.sol";
import "IERC165.sol";

interface CryptoCats{
	function catIndexToAddress(uint catIndex) external view returns(address);
	function buyCat(uint catIndex) external payable;
	function transfer(address addressto, uint catIndex) external;
}

contract CryptoCatsMarketV2 is AccessControl {

	/*
	Marketplace based on the Larvalabs OGs!
	*/

	using SafeMath for uint256;

	string public name = "CryptoCatsMarketV2";

	CryptoCats public constant cryptocats = CryptoCats(0x19c320b43744254ebdBcb1F1BD0e2a3dc08E01dc);

	uint public FEE = 20; //5%
	uint public feesToCollect = 0;

    struct Bid {
        uint catIndex;
		uint amount;
        address bidder;
    }

    // A record of the highest Cryptocat bid
    mapping (uint => Bid) public bids;
	mapping (address => uint) public pendingWithdrawals;

    event CryptoCatsTransfer(uint indexed index, address from, address to);
    event CryptoCatsBidCreated(uint indexed index, uint amount, address bidder);
    event CryptoCatsBidWithdrawn(uint indexed index, uint amount, address bidder);
    event CryptoCatsBought(uint indexed index, uint amount, address seller, address bidder);

    constructor() public {
		_setupRole(DEFAULT_ADMIN_ROLE, 0xaaEa1B588c41dddEa4afDa5105e1C4f0bdB017F5);
    }

	function collectFees() public {
		require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender));
		uint amount = feesToCollect;
		feesToCollect = 0;
		payable(0xaaEa1B588c41dddEa4afDa5105e1C4f0bdB017F5).transfer(amount);
	}

	function changeFee(uint newFee) public {
		require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender));
		FEE = newFee;
	}
	
	
	
	function bid(uint catIndex) public payable {
		//require(etheria.getOwner(col, row) != msg.sender);
		require(msg.value > 0, "BID::Value is 0");
		Bid memory bid = bids[catIndex];
		require(msg.value > bid.amount, "BID::New bid too low");
		//refund failing bid
		pendingWithdrawals[bid.bidder] += bid.amount;
		//new bid
		bids[catIndex] = Bid(catIndex, msg.value, msg.sender);
		emit CryptoCatsBidCreated(catIndex, msg.value, msg.sender);
	}

	function withdrawBid(uint catIndex) public {
		Bid memory bid = bids[catIndex];
		require(msg.sender == bid.bidder, "WITHDRAW_BID::Only bidder can withdraw his bid");
		emit CryptoCatsBidWithdrawn(catIndex, bid.amount, msg.sender);
		uint amount = bid.amount;
		bids[catIndex] = Bid(catIndex, 0, address(0x0));
		payable(msg.sender).transfer(amount);
	}


	function acceptBid(uint catIndex, uint minPrice) public {
		require(cryptocats.catIndexToAddress(catIndex) == msg.sender, "ACCEPT_BID::Only owner can accept bid");
        Bid memory bid = bids[catIndex];
		require(bid.amount > 0, "ACCEPT_BID::Bid amount is 0");
		require(bid.amount >= minPrice, "ACCEPT_BID::Min price not respected");
		// With the require getOwner we check already, if it can be assigned, no other checks needed
		cryptocats.buyCat(catIndex);
		cryptocats.transfer(bid.bidder, catIndex);

		//collect fee
		uint fees = bid.amount.div(FEE);
		feesToCollect += fees;

        uint amount = bid.amount.sub(fees);
		bids[catIndex] = Bid(catIndex, 0, address(0x0));
        pendingWithdrawals[msg.sender] += amount;
        emit CryptoCatsBought(catIndex, amount, msg.sender, bid.bidder);
		emit CryptoCatsTransfer(catIndex, msg.sender, bid.bidder);
    }



	function withdraw() public {
		uint amount = pendingWithdrawals[msg.sender];
        // Remember to zero the pending refund before
        // sending to prevent re-entrancy attacks
        pendingWithdrawals[msg.sender] = 0;
        payable(msg.sender).transfer(amount);
	}
}

File 2 of 6: AccessControl.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "Context.sol";
import "ERC165.sol";

/**
 * @dev External interface of AccessControl declared to support ERC165 detection.
 */
interface IAccessControl {
    function hasRole(bytes32 role, address account) external view returns (bool);
    function getRoleAdmin(bytes32 role) external view returns (bytes32);
    function grantRole(bytes32 role, address account) external;
    function revokeRole(bytes32 role, address account) external;
    function renounceRole(bytes32 role, address account) external;
}

/**
 * @dev Contract module that allows children to implement role-based access
 * control mechanisms. This is a lightweight version that doesn't allow enumerating role
 * members except through off-chain means by accessing the contract event logs. Some
 * applications may benefit from on-chain enumerability, for those cases see
 * {AccessControlEnumerable}.
 *
 * Roles are referred to by their `bytes32` identifier. These should be exposed
 * in the external API and be unique. The best way to achieve this is by
 * using `public constant` hash digests:
 *
 * ```
 * bytes32 public constant MY_ROLE = keccak256("MY_ROLE");
 * ```
 *
 * Roles can be used to represent a set of permissions. To restrict access to a
 * function call, use {hasRole}:
 *
 * ```
 * function foo() public {
 *     require(hasRole(MY_ROLE, msg.sender));
 *     ...
 * }
 * ```
 *
 * Roles can be granted and revoked dynamically via the {grantRole} and
 * {revokeRole} functions. Each role has an associated admin role, and only
 * accounts that have a role's admin role can call {grantRole} and {revokeRole}.
 *
 * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means
 * that only accounts with this role will be able to grant or revoke other
 * roles. More complex role relationships can be created by using
 * {_setRoleAdmin}.
 *
 * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to
 * grant and revoke this role. Extra precautions should be taken to secure
 * accounts that have been granted it.
 */
abstract contract AccessControl is Context, IAccessControl, ERC165 {
    struct RoleData {
        mapping (address => bool) members;
        bytes32 adminRole;
    }

    mapping (bytes32 => RoleData) private _roles;

    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;

    /**
     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`
     *
     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite
     * {RoleAdminChanged} not being emitted signaling this.
     *
     * _Available since v3.1._
     */
    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);

    /**
     * @dev Emitted when `account` is granted `role`.
     *
     * `sender` is the account that originated the contract call, an admin role
     * bearer except when using {_setupRole}.
     */
    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);

    /**
     * @dev Emitted when `account` is revoked `role`.
     *
     * `sender` is the account that originated the contract call:
     *   - if using `revokeRole`, it is the admin role bearer
     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)
     */
    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);

    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IAccessControl).interfaceId
            || super.supportsInterface(interfaceId);
    }

    /**
     * @dev Returns `true` if `account` has been granted `role`.
     */
    function hasRole(bytes32 role, address account) public view override returns (bool) {
        return _roles[role].members[account];
    }

    /**
     * @dev Returns the admin role that controls `role`. See {grantRole} and
     * {revokeRole}.
     *
     * To change a role's admin, use {_setRoleAdmin}.
     */
    function getRoleAdmin(bytes32 role) public view override returns (bytes32) {
        return _roles[role].adminRole;
    }

    /**
     * @dev Grants `role` to `account`.
     *
     * If `account` had not been already granted `role`, emits a {RoleGranted}
     * event.
     *
     * Requirements:
     *
     * - the caller must have ``role``'s admin role.
     */
    function grantRole(bytes32 role, address account) public virtual override {
        require(hasRole(getRoleAdmin(role), _msgSender()), "AccessControl: sender must be an admin to grant");

        _grantRole(role, account);
    }

    /**
     * @dev Revokes `role` from `account`.
     *
     * If `account` had been granted `role`, emits a {RoleRevoked} event.
     *
     * Requirements:
     *
     * - the caller must have ``role``'s admin role.
     */
    function revokeRole(bytes32 role, address account) public virtual override {
        require(hasRole(getRoleAdmin(role), _msgSender()), "AccessControl: sender must be an admin to revoke");

        _revokeRole(role, account);
    }

    /**
     * @dev Revokes `role` from the calling account.
     *
     * Roles are often managed via {grantRole} and {revokeRole}: this function's
     * purpose is to provide a mechanism for accounts to lose their privileges
     * if they are compromised (such as when a trusted device is misplaced).
     *
     * If the calling account had been granted `role`, emits a {RoleRevoked}
     * event.
     *
     * Requirements:
     *
     * - the caller must be `account`.
     */
    function renounceRole(bytes32 role, address account) public virtual override {
        require(account == _msgSender(), "AccessControl: can only renounce roles for self");

        _revokeRole(role, account);
    }

    /**
     * @dev Grants `role` to `account`.
     *
     * If `account` had not been already granted `role`, emits a {RoleGranted}
     * event. Note that unlike {grantRole}, this function doesn't perform any
     * checks on the calling account.
     *
     * [WARNING]
     * ====
     * This function should only be called from the constructor when setting
     * up the initial roles for the system.
     *
     * Using this function in any other way is effectively circumventing the admin
     * system imposed by {AccessControl}.
     * ====
     */
    function _setupRole(bytes32 role, address account) internal virtual {
        _grantRole(role, account);
    }

    /**
     * @dev Sets `adminRole` as ``role``'s admin role.
     *
     * Emits a {RoleAdminChanged} event.
     */
    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        emit RoleAdminChanged(role, getRoleAdmin(role), adminRole);
        _roles[role].adminRole = adminRole;
    }

    function _grantRole(bytes32 role, address account) private {
        if (!hasRole(role, account)) {
            _roles[role].members[account] = true;
            emit RoleGranted(role, account, _msgSender());
        }
    }

    function _revokeRole(bytes32 role, address account) private {
        if (hasRole(role, account)) {
            _roles[role].members[account] = false;
            emit RoleRevoked(role, account, _msgSender());
        }
    }
}

File 3 of 6: Context.sol
// 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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

File 4 of 6: ERC165.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "IERC165.sol";

/**
 * @dev Implementation of the {IERC165} interface.
 *
 * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
 * for the additional interface id that will be supported. For example:
 *
 * ```solidity
 * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
 *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
 * }
 * ```
 *
 * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
 */
abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

File 5 of 6: IERC165.sol
// SPDX-License-Identifier: MIT

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);
}

File 6 of 6: SafeMath.sol
pragma solidity ^0.8.0;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}


Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"bidder","type":"address"}],"name":"CryptoCatsBidCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"bidder","type":"address"}],"name":"CryptoCatsBidWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"address","name":"bidder","type":"address"}],"name":"CryptoCatsBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"CryptoCatsTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"catIndex","type":"uint256"},{"internalType":"uint256","name":"minPrice","type":"uint256"}],"name":"acceptBid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"catIndex","type":"uint256"}],"name":"bid","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bids","outputs":[{"internalType":"uint256","name":"catIndex","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bidder","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cryptocats","outputs":[{"internalType":"contract CryptoCats","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feesToCollect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pendingWithdrawals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"catIndex","type":"uint256"}],"name":"withdrawBid","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c0604052601260808190527121b93cb83a37a1b0ba39a6b0b935b2ba2b1960711b60a090815262000035916001919062000125565b50601460025560006003553480156200004d57600080fd5b506200006f600073aaea1b588c41dddea4afda5105e1c4f0bdb017f562000075565b62000208565b62000081828262000085565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000081576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000e13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b8280546200013390620001cb565b90600052602060002090601f016020900481019282620001575760008555620001a2565b82601f106200017257805160ff1916838001178555620001a2565b82800160010185558215620001a2579182015b82811115620001a257825182559160200191906001019062000185565b50620001b0929150620001b4565b5090565b5b80821115620001b05760008155600101620001b5565b600181811c90821680620001e057607f821691505b602082108114156200020257634e487b7160e01b600052602260045260246000fd5b50919050565b61117780620002186000396000f3fe6080604052600436106101145760003560e01c80634423c5f1116100a0578063a217fddf11610064578063a217fddf14610357578063c57981b51461036c578063c879657214610382578063d547741f14610397578063f3f43703146103b757610114565b80634423c5f11461025b578063454a2ab3146102c4578063638ca836146102d75780636a1db1bf1461031757806391d148541461033757610114565b806322609200116100e757806322609200146101b2578063248a9ca3146101d65780632f2ff15d1461020657806336568abe146102265780633ccfd60b1461024657610114565b806301ffc9a71461011957806302e9d5e41461014e57806306fdde03146101705780630eaaf4c814610192575b600080fd5b34801561012557600080fd5b50610139610134366004610fed565b6103e4565b60405190151581526020015b60405180910390f35b34801561015a57600080fd5b5061016e610169366004611015565b61041b565b005b34801561017c57600080fd5b50610185610832565b6040516101459190611036565b34801561019e57600080fd5b5061016e6101ad366004610fa6565b6108c0565b3480156101be57600080fd5b506101c860035481565b604051908152602001610145565b3480156101e257600080fd5b506101c86101f1366004610fa6565b60009081526020819052604090206001015490565b34801561021257600080fd5b5061016e610221366004610fbe565b610a3f565b34801561023257600080fd5b5061016e610241366004610fbe565b610ace565b34801561025257600080fd5b5061016e610b48565b34801561026757600080fd5b506102a0610276366004610fa6565b6004602052600090815260409020805460018201546002909201549091906001600160a01b031683565b6040805193845260208401929092526001600160a01b031690820152606001610145565b61016e6102d2366004610fa6565b610b89565b3480156102e357600080fd5b506102ff7319c320b43744254ebdbcb1f1bd0e2a3dc08e01dc81565b6040516001600160a01b039091168152602001610145565b34801561032357600080fd5b5061016e610332366004610fa6565b610d26565b34801561034357600080fd5b50610139610352366004610fbe565b610d3f565b34801561036357600080fd5b506101c8600081565b34801561037857600080fd5b506101c860025481565b34801561038e57600080fd5b5061016e610d68565b3480156103a357600080fd5b5061016e6103b2366004610fbe565b610dc8565b3480156103c357600080fd5b506101c86103d2366004610f6e565b60056020526000908152604090205481565b60006001600160e01b03198216637965db0b60e01b148061041557506301ffc9a760e01b6001600160e01b03198316145b92915050565b60405163210fe93b60e01b81526004810183905233907319c320b43744254ebdbcb1f1bd0e2a3dc08e01dc9063210fe93b9060240160206040518083038186803b15801561046857600080fd5b505afa15801561047c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a09190610f8a565b6001600160a01b0316146105095760405162461bcd60e51b815260206004820152602560248201527f4143434550545f4249443a3a4f6e6c79206f776e65722063616e2061636365706044820152641d08189a5960da1b60648201526084015b60405180910390fd5b60008281526004602090815260409182902082516060810184528154815260018201549281018390526002909101546001600160a01b0316928101929092526105945760405162461bcd60e51b815260206004820152601b60248201527f4143434550545f4249443a3a42696420616d6f756e74206973203000000000006044820152606401610500565b81816020015110156105f45760405162461bcd60e51b815260206004820152602360248201527f4143434550545f4249443a3a4d696e207072696365206e6f74207265737065636044820152621d195960ea1b6064820152608401610500565b604051636b9281dd60e11b8152600481018490527319c320b43744254ebdbcb1f1bd0e2a3dc08e01dc9063d72503ba90602401600060405180830381600087803b15801561064157600080fd5b505af1158015610655573d6000803e3d6000fd5b50505050604081810151905163a9059cbb60e01b81526001600160a01b039091166004820152602481018490527319c320b43744254ebdbcb1f1bd0e2a3dc08e01dc9063a9059cbb90604401600060405180830381600087803b1580156106bb57600080fd5b505af11580156106cf573d6000803e3d6000fd5b5050505060006106ee6002548360200151610e4890919063ffffffff16565b905080600360008282546107029190611089565b909155505060208201516000906107199083610e5b565b60408051606081018252878152600060208083018281528385018381528b845260048352858420945185559051600185015551600290930180546001600160a01b0319166001600160a01b039094169390931790925533815260059091529081208054929350839290919061078f908490611089565b909155505060408381015181518381523360208201526001600160a01b0390911681830152905186917fa62a87b669c17a8585f1bb435a88b64368f843f186fe0894727334fe9f87c30c919081900360600190a260408084015181513381526001600160a01b03909116602082015286917f832b21287ea2432795be6aebd348b8d8cc7f347223914f037ae328ecefada43d910160405180910390a25050505050565b6001805461083f906110d8565b80601f016020809104026020016040519081016040528092919081815260200182805461086b906110d8565b80156108b85780601f1061088d576101008083540402835291602001916108b8565b820191906000526020600020905b81548152906001019060200180831161089b57829003601f168201915b505050505081565b600081815260046020908152604091829020825160608101845281548152600182015492810192909252600201546001600160a01b03169181018290529033146109635760405162461bcd60e51b815260206004820152602e60248201527f57495448445241575f4249443a3a4f6e6c79206269646465722063616e20776960448201526d1d1a191c985dc81a1a5cc8189a5960921b6064820152608401610500565b817f4892df4f50261a48b8d2c353c7615a02fc3ff11b1aabac4a13005154a0e9a7888260200151336040516109ab9291909182526001600160a01b0316602082015260400190565b60405180910390a26020818101516040805160608101825285815260008185018181528284018281528883526004909652838220925183555160018301559351600290910180546001600160a01b0319166001600160a01b0390921691909117905551909133916108fc84150291849190818181858888f19350505050158015610a39573d6000803e3d6000fd5b50505050565b600082815260208190526040902060010154610a5c905b33610352565b610ac05760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610500565b610aca8282610e85565b5050565b6001600160a01b0381163314610b3e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610500565b610aca8282610f09565b33600081815260056020526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015610aca573d6000803e3d6000fd5b60003411610bcb5760405162461bcd60e51b815260206004820152600f60248201526e04249443a3a56616c7565206973203608c1b6044820152606401610500565b60008181526004602090815260409182902082516060810184528154815260018201549281018390526002909101546001600160a01b0316928101929092523411610c4f5760405162461bcd60e51b81526020600482015260146024820152734249443a3a4e65772062696420746f6f206c6f7760601b6044820152606401610500565b80602001516005600083604001516001600160a01b03166001600160a01b031681526020019081526020016000206000828254610c8c9190611089565b9091555050604080516060810182528381523460208083018281523384860181815260008981526004855287902095518655915160018601559051600290940180546001600160a01b0319166001600160a01b0390951694909417909355835191825281019190915283917f1d0aa36f54a51c89497eacc23c8987355551876ff03dd88337aae300f6a59cbe910160405180910390a25050565b610d31600033610d3f565b610d3a57600080fd5b600255565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610d73600033610d3f565b610d7c57600080fd5b60038054600091829055604051909173aaea1b588c41dddea4afda5105e1c4f0bdb017f59183156108fc0291849190818181858888f19350505050158015610aca573d6000803e3d6000fd5b600082815260208190526040902060010154610de390610a56565b610b3e5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610500565b6000610e5482846110a1565b9392505050565b600082821115610e7b57634e487b7160e01b600052600160045260246000fd5b610e5482846110c1565b610e8f8282610d3f565b610aca576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610ec53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610f138282610d3f565b15610aca576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600060208284031215610f7f578081fd5b8135610e5481611129565b600060208284031215610f9b578081fd5b8151610e5481611129565b600060208284031215610fb7578081fd5b5035919050565b60008060408385031215610fd0578081fd5b823591506020830135610fe281611129565b809150509250929050565b600060208284031215610ffe578081fd5b81356001600160e01b031981168114610e54578182fd5b60008060408385031215611027578182fd5b50508035926020909101359150565b6000602080835283518082850152825b8181101561106257858101830151858201604001528201611046565b818111156110735783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561109c5761109c611113565b500190565b6000826110bc57634e487b7160e01b81526012600452602481fd5b500490565b6000828210156110d3576110d3611113565b500390565b600181811c908216806110ec57607f821691505b6020821081141561110d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461113e57600080fd5b5056fea2646970667358221220f2f2458808bc7279af08926af4c13c84043233b17f0ce18549427fe7594878d664736f6c63430008030033

Deployed Bytecode

0x6080604052600436106101145760003560e01c80634423c5f1116100a0578063a217fddf11610064578063a217fddf14610357578063c57981b51461036c578063c879657214610382578063d547741f14610397578063f3f43703146103b757610114565b80634423c5f11461025b578063454a2ab3146102c4578063638ca836146102d75780636a1db1bf1461031757806391d148541461033757610114565b806322609200116100e757806322609200146101b2578063248a9ca3146101d65780632f2ff15d1461020657806336568abe146102265780633ccfd60b1461024657610114565b806301ffc9a71461011957806302e9d5e41461014e57806306fdde03146101705780630eaaf4c814610192575b600080fd5b34801561012557600080fd5b50610139610134366004610fed565b6103e4565b60405190151581526020015b60405180910390f35b34801561015a57600080fd5b5061016e610169366004611015565b61041b565b005b34801561017c57600080fd5b50610185610832565b6040516101459190611036565b34801561019e57600080fd5b5061016e6101ad366004610fa6565b6108c0565b3480156101be57600080fd5b506101c860035481565b604051908152602001610145565b3480156101e257600080fd5b506101c86101f1366004610fa6565b60009081526020819052604090206001015490565b34801561021257600080fd5b5061016e610221366004610fbe565b610a3f565b34801561023257600080fd5b5061016e610241366004610fbe565b610ace565b34801561025257600080fd5b5061016e610b48565b34801561026757600080fd5b506102a0610276366004610fa6565b6004602052600090815260409020805460018201546002909201549091906001600160a01b031683565b6040805193845260208401929092526001600160a01b031690820152606001610145565b61016e6102d2366004610fa6565b610b89565b3480156102e357600080fd5b506102ff7319c320b43744254ebdbcb1f1bd0e2a3dc08e01dc81565b6040516001600160a01b039091168152602001610145565b34801561032357600080fd5b5061016e610332366004610fa6565b610d26565b34801561034357600080fd5b50610139610352366004610fbe565b610d3f565b34801561036357600080fd5b506101c8600081565b34801561037857600080fd5b506101c860025481565b34801561038e57600080fd5b5061016e610d68565b3480156103a357600080fd5b5061016e6103b2366004610fbe565b610dc8565b3480156103c357600080fd5b506101c86103d2366004610f6e565b60056020526000908152604090205481565b60006001600160e01b03198216637965db0b60e01b148061041557506301ffc9a760e01b6001600160e01b03198316145b92915050565b60405163210fe93b60e01b81526004810183905233907319c320b43744254ebdbcb1f1bd0e2a3dc08e01dc9063210fe93b9060240160206040518083038186803b15801561046857600080fd5b505afa15801561047c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a09190610f8a565b6001600160a01b0316146105095760405162461bcd60e51b815260206004820152602560248201527f4143434550545f4249443a3a4f6e6c79206f776e65722063616e2061636365706044820152641d08189a5960da1b60648201526084015b60405180910390fd5b60008281526004602090815260409182902082516060810184528154815260018201549281018390526002909101546001600160a01b0316928101929092526105945760405162461bcd60e51b815260206004820152601b60248201527f4143434550545f4249443a3a42696420616d6f756e74206973203000000000006044820152606401610500565b81816020015110156105f45760405162461bcd60e51b815260206004820152602360248201527f4143434550545f4249443a3a4d696e207072696365206e6f74207265737065636044820152621d195960ea1b6064820152608401610500565b604051636b9281dd60e11b8152600481018490527319c320b43744254ebdbcb1f1bd0e2a3dc08e01dc9063d72503ba90602401600060405180830381600087803b15801561064157600080fd5b505af1158015610655573d6000803e3d6000fd5b50505050604081810151905163a9059cbb60e01b81526001600160a01b039091166004820152602481018490527319c320b43744254ebdbcb1f1bd0e2a3dc08e01dc9063a9059cbb90604401600060405180830381600087803b1580156106bb57600080fd5b505af11580156106cf573d6000803e3d6000fd5b5050505060006106ee6002548360200151610e4890919063ffffffff16565b905080600360008282546107029190611089565b909155505060208201516000906107199083610e5b565b60408051606081018252878152600060208083018281528385018381528b845260048352858420945185559051600185015551600290930180546001600160a01b0319166001600160a01b039094169390931790925533815260059091529081208054929350839290919061078f908490611089565b909155505060408381015181518381523360208201526001600160a01b0390911681830152905186917fa62a87b669c17a8585f1bb435a88b64368f843f186fe0894727334fe9f87c30c919081900360600190a260408084015181513381526001600160a01b03909116602082015286917f832b21287ea2432795be6aebd348b8d8cc7f347223914f037ae328ecefada43d910160405180910390a25050505050565b6001805461083f906110d8565b80601f016020809104026020016040519081016040528092919081815260200182805461086b906110d8565b80156108b85780601f1061088d576101008083540402835291602001916108b8565b820191906000526020600020905b81548152906001019060200180831161089b57829003601f168201915b505050505081565b600081815260046020908152604091829020825160608101845281548152600182015492810192909252600201546001600160a01b03169181018290529033146109635760405162461bcd60e51b815260206004820152602e60248201527f57495448445241575f4249443a3a4f6e6c79206269646465722063616e20776960448201526d1d1a191c985dc81a1a5cc8189a5960921b6064820152608401610500565b817f4892df4f50261a48b8d2c353c7615a02fc3ff11b1aabac4a13005154a0e9a7888260200151336040516109ab9291909182526001600160a01b0316602082015260400190565b60405180910390a26020818101516040805160608101825285815260008185018181528284018281528883526004909652838220925183555160018301559351600290910180546001600160a01b0319166001600160a01b0390921691909117905551909133916108fc84150291849190818181858888f19350505050158015610a39573d6000803e3d6000fd5b50505050565b600082815260208190526040902060010154610a5c905b33610352565b610ac05760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610500565b610aca8282610e85565b5050565b6001600160a01b0381163314610b3e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610500565b610aca8282610f09565b33600081815260056020526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015610aca573d6000803e3d6000fd5b60003411610bcb5760405162461bcd60e51b815260206004820152600f60248201526e04249443a3a56616c7565206973203608c1b6044820152606401610500565b60008181526004602090815260409182902082516060810184528154815260018201549281018390526002909101546001600160a01b0316928101929092523411610c4f5760405162461bcd60e51b81526020600482015260146024820152734249443a3a4e65772062696420746f6f206c6f7760601b6044820152606401610500565b80602001516005600083604001516001600160a01b03166001600160a01b031681526020019081526020016000206000828254610c8c9190611089565b9091555050604080516060810182528381523460208083018281523384860181815260008981526004855287902095518655915160018601559051600290940180546001600160a01b0319166001600160a01b0390951694909417909355835191825281019190915283917f1d0aa36f54a51c89497eacc23c8987355551876ff03dd88337aae300f6a59cbe910160405180910390a25050565b610d31600033610d3f565b610d3a57600080fd5b600255565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610d73600033610d3f565b610d7c57600080fd5b60038054600091829055604051909173aaea1b588c41dddea4afda5105e1c4f0bdb017f59183156108fc0291849190818181858888f19350505050158015610aca573d6000803e3d6000fd5b600082815260208190526040902060010154610de390610a56565b610b3e5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610500565b6000610e5482846110a1565b9392505050565b600082821115610e7b57634e487b7160e01b600052600160045260246000fd5b610e5482846110c1565b610e8f8282610d3f565b610aca576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610ec53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610f138282610d3f565b15610aca576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600060208284031215610f7f578081fd5b8135610e5481611129565b600060208284031215610f9b578081fd5b8151610e5481611129565b600060208284031215610fb7578081fd5b5035919050565b60008060408385031215610fd0578081fd5b823591506020830135610fe281611129565b809150509250929050565b600060208284031215610ffe578081fd5b81356001600160e01b031981168114610e54578182fd5b60008060408385031215611027578182fd5b50508035926020909101359150565b6000602080835283518082850152825b8181101561106257858101830151858201604001528201611046565b818111156110735783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561109c5761109c611113565b500190565b6000826110bc57634e487b7160e01b81526012600452602481fd5b500490565b6000828210156110d3576110d3611113565b500390565b600181811c908216806110ec57607f821691505b6020821081141561110d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461113e57600080fd5b5056fea2646970667358221220f2f2458808bc7279af08926af4c13c84043233b17f0ce18549427fe7594878d664736f6c63430008030033

Deployed Bytecode Sourcemap

369:3388:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3630:217:0;;;;;;;;;;-1:-1:-1;3630:217:0;;;;;:::i;:::-;;:::i;:::-;;;2589:14:6;;2582:22;2564:41;;2552:2;2537:18;3630:217:0;;;;;;;;2578:888:2;;;;;;;;;;-1:-1:-1;2578:888:2;;;;;:::i;:::-;;:::i;:::-;;506:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2211:360::-;;;;;;;;;;-1:-1:-1;2211:360:2;;;;;:::i;:::-;;:::i;682:29::-;;;;;;;;;;;;;;;;;;;2762:25:6;;;2750:2;2735:18;682:29:2;2717:76:6;4267:123:0;;;;;;;;;;-1:-1:-1;4267:123:0;;;;;:::i;:::-;4333:7;4360:12;;;;;;;;;;:22;;;;4267:123;4652:232;;;;;;;;;;-1:-1:-1;4652:232:0;;;;;:::i;:::-;;:::i;5871:218::-;;;;;;;;;;-1:-1:-1;5871:218:0;;;;;:::i;:::-;;:::i;3475:279:2:-;;;;;;;;;;;;;:::i;858:33::-;;;;;;;;;;-1:-1:-1;858:33:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;858:33:2;;;;;;;8198:25:6;;;8254:2;8239:18;;8232:34;;;;-1:-1:-1;;;;;8302:32:6;8282:18;;;8275:60;8186:2;8171:18;858:33:2;8153:188:6;1753:453:2;;;;;;:::i;:::-;;:::i;553:94::-;;;;;;;;;;;;604:42;553:94;;;;;-1:-1:-1;;;;;2980:32:6;;;2962:51;;2950:2;2935:18;553:94:2;2917:102:6;1627:114:2;;;;;;;;;;-1:-1:-1;1627:114:2;;;;;:::i;:::-;;:::i;3939:139:0:-;;;;;;;;;;-1:-1:-1;3939:139:0;;;;;:::i;:::-;;:::i;2395:49::-;;;;;;;;;;-1:-1:-1;2395:49:0;2440:4;2395:49;;653:20:2;;;;;;;;;;;;;;;;1407:215;;;;;;;;;;;;;:::i;5129:235:0:-;;;;;;;;;;-1:-1:-1;5129:235:0;;;;;:::i;:::-;;:::i;895:51:2:-;;;;;;;;;;-1:-1:-1;895:51:2;;;;;:::i;:::-;;;;;;;;;;;;;;3630:217:0;3715:4;-1:-1:-1;;;;;;3739:47:0;;-1:-1:-1;;;3739:47:0;;:100;;-1:-1:-1;;;;;;;;;;894:40:3;;;3803:36:0;3732:107;3630:217;-1:-1:-1;;3630:217:0:o;2578:888:2:-;2647:38;;-1:-1:-1;;;2647:38:2;;;;;2762:25:6;;;2689:10:2;;604:42;;2647:28;;2735:18:6;;2647:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2647:52:2;;2639:102;;;;-1:-1:-1;;;2639:102:2;;4250:2:6;2639:102:2;;;4232:21:6;4289:2;4269:18;;;4262:30;4328:34;4308:18;;;4301:62;-1:-1:-1;;;4379:18:6;;;4372:35;4424:19;;2639:102:2;;;;;;;;;2752:14;2769;;;:4;:14;;;;;;;;;2752:31;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2752:31:2;;;;;;;;2788:54;;;;-1:-1:-1;;;2788:54:2;;5488:2:6;2788:54:2;;;5470:21:6;5527:2;5507:18;;;5500:30;5566:29;5546:18;;;5539:57;5613:18;;2788:54:2;5460:177:6;2788:54:2;2869:8;2855:3;:10;;;:22;;2847:70;;;;-1:-1:-1;;;2847:70:2;;5844:2:6;2847:70:2;;;5826:21:6;5883:2;5863:18;;;5856:30;5922:34;5902:18;;;5895:62;-1:-1:-1;;;5973:18:6;;;5966:33;6016:19;;2847:70:2;5816:225:6;2847:70:2;3018:27;;-1:-1:-1;;;3018:27:2;;;;;2762:25:6;;;604:42:2;;3018:17;;2735:18:6;;3018:27:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3070:10:2;;;;;3050:41;;-1:-1:-1;;;3050:41:2;;-1:-1:-1;;;;;2337:32:6;;;3050:41:2;;;2319:51:6;2386:18;;;2379:34;;;604:42:2;;3050:19;;2292:18:6;;3050:41:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3115:9;3127:19;3142:3;;3127;:10;;;:14;;:19;;;;:::i;:::-;3115:31;;3168:4;3151:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;3199:10:2;;;;3185:11;;3199:20;;3214:4;3199:14;:20::i;:::-;3241:30;;;;;;;;;;;-1:-1:-1;3241:30:2;;;;;;;;;;;;;3224:14;;;:4;:14;;;;;:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3224:47:2;-1:-1:-1;;;;;3224:47:2;;;;;;;;;;3301:10;3282:30;;:18;:30;;;;;;:40;;3185:34;;-1:-1:-1;3185:34:2;;3282:30;;-1:-1:-1;3282:40:2;;3185:34;;3282:40;:::i;:::-;;;;-1:-1:-1;;3385:10:2;;;;;3338:58;;7818:25:6;;;3373:10:2;7912:2:6;7897:18;;7890:43;-1:-1:-1;;;;;7969:15:6;;;7949:18;;;7942:43;3338:58:2;;3355:8;;3338:58;;;;;;7806:2:6;3338:58:2;;;3447:10;;;;;3406:52;;3435:10;2048:34:6;;-1:-1:-1;;;;;2118:15:6;;;2113:2;2098:18;;2091:43;3425:8:2;;3406:52;;1983:18:6;3406:52:2;;;;;;;2578:888;;;;;:::o;506:41::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2211:360::-;2259:14;2276;;;:4;:14;;;;;;;;;2259:31;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2259:31:2;;;;;;;;2303:10;:24;2295:83;;;;-1:-1:-1;;;2295:83:2;;4656:2:6;2295:83:2;;;4638:21:6;4695:2;4675:18;;;4668:30;4734:34;4714:18;;;4707:62;-1:-1:-1;;;4785:18:6;;;4778:44;4839:19;;2295:83:2;4628:236:6;2295:83:2;2411:8;2388:56;2421:3;:10;;;2433;2388:56;;;;;;7511:25:6;;;-1:-1:-1;;;;;7572:32:6;7567:2;7552:18;;7545:60;7499:2;7484:18;;7466:145;2388:56:2;;;;;;;;2463:10;;;;;2495:30;;;;;;;;;;;-1:-1:-1;2495:30:2;;;;;;;;;;;;2478:14;;;:4;:14;;;;;;:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2478:47:2;-1:-1:-1;;;;;2478:47:2;;;;;;;;;2530:36;2463:10;;2538;;2530:36;;;;;2463:10;;2530:36;;-1:-1:-1;2530:36:2;2463:10;2538;2530:36;;;;;;;;;;;;;;;;;;;;;2211:360;;;:::o;4652:232:0:-;4333:7;4360:12;;;;;;;;;;:22;;;4745:41;;4753:18;681:10:1;4773:12:0;601:98:1;4745:41:0;4737:101;;;;-1:-1:-1;;;4737:101:0;;3834:2:6;4737:101:0;;;3816:21:6;3873:2;3853:18;;;3846:30;3912:34;3892:18;;;3885:62;-1:-1:-1;;;3963:18:6;;;3956:45;4018:19;;4737:101:0;3806:237:6;4737:101:0;4851:25;4862:4;4868:7;4851:10;:25::i;:::-;4652:232;;:::o;5871:218::-;-1:-1:-1;;;;;5967:23:0;;681:10:1;5967:23:0;5959:83;;;;-1:-1:-1;;;5959:83:0;;6941:2:6;5959:83:0;;;6923:21:6;6980:2;6960:18;;;6953:30;7019:34;6999:18;;;6992:62;-1:-1:-1;;;7070:18:6;;;7063:45;7125:19;;5959:83:0;6913:237:6;5959:83:0;6055:26;6067:4;6073:7;6055:11;:26::i;3475:279:2:-;3540:10;3507:11;3521:30;;;:18;:30;;;;;;;;3668:34;;;;3713:36;;3521:30;;3540:10;3713:36;;;;;3521:30;;3713:36;3507:11;3713:36;3521:30;3540:10;3713:36;;;;;;;;;;;;;;;;;;;1753:453;1877:1;1865:9;:13;1857:41;;;;-1:-1:-1;;;1857:41:2;;6248:2:6;1857:41:2;;;6230:21:6;6287:2;6267:18;;;6260:30;-1:-1:-1;;;6306:18:6;;;6299:45;6361:18;;1857:41:2;6220:165:6;1857:41:2;1903:14;1920;;;:4;:14;;;;;;;;;1903:31;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1903:31:2;;;;;;;;1947:9;:22;1939:55;;;;-1:-1:-1;;;1939:55:2;;6592:2:6;1939:55:2;;;6574:21:6;6631:2;6611:18;;;6604:30;-1:-1:-1;;;6650:18:6;;;6643:50;6710:18;;1939:55:2;6564:170:6;1939:55:2;2057:3;:10;;;2023:18;:30;2042:3;:10;;;-1:-1:-1;;;;;2023:30:2;-1:-1:-1;;;;;2023:30:2;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;-1:-1:-1;;2102:36:2;;;;;;;;;;;2116:9;2102:36;;;;;;;2127:10;2102:36;;;;;;-1:-1:-1;2085:14:2;;;:4;:14;;;;;:53;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2085:53:2;-1:-1:-1;;;;;2085:53:2;;;;;;;;;;2148;;7511:25:6;;;7552:18;;7545:60;;;;2102:36:2;;2148:53;;7484:18:6;2148:53:2;;;;;;;1753:453;;:::o;1627:114::-;1679:39;2440:4:0;1707:10:2;1679:7;:39::i;:::-;1671:48;;;;;;1724:3;:12;1627:114::o;3939:139:0:-;4017:4;4041:12;;;;;;;;;;;-1:-1:-1;;;;;4041:29:0;;;;;;;;;;;;;;;3939:139::o;1407:215:2:-;1450:39;2440:4:0;1478:10:2;1450:7;:39::i;:::-;1442:48;;;;;;1509:13;;;1495:11;1527:17;;;;1549:68;;1509:13;;1557:42;;1549:68;;;;;1509:13;;1549:68;;1495:11;1549:68;1509:13;1557:42;1549:68;;;;;;;;;;;;;;;;;;;5129:235:0;4333:7;4360:12;;;;;;;;;;:22;;;5223:41;;5231:18;4267:123;5223:41;5215:102;;;;-1:-1:-1;;;5215:102:0;;5071:2:6;5215:102:0;;;5053:21:6;5110:2;5090:18;;;5083:30;5149:34;5129:18;;;5122:62;-1:-1:-1;;;5200:18:6;;;5193:46;5256:19;;5215:102:0;5043:238:6;475:277:5;533:7;741:5;745:1;741;:5;:::i;:::-;734:12;475:277;-1:-1:-1;;;475:277:5:o;869:113::-;927:7;955:1;950;:6;;943:14;;-1:-1:-1;;;943:14:5;;;;;;;;;971:5;975:1;971;:5;:::i;7119:229:0:-;7194:22;7202:4;7208:7;7194;:22::i;:::-;7189:152;;7233:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7233:29:0;;;;;;;;;:36;;-1:-1:-1;;7233:36:0;7265:4;7233:36;;;7316:12;681:10:1;601:98;;7316:12:0;-1:-1:-1;;;;;7289:40:0;7307:7;-1:-1:-1;;;;;7289:40:0;7301:4;7289:40;;;;;;;;;;7119:229;;:::o;7356:230::-;7431:22;7439:4;7445:7;7431;:22::i;:::-;7427:152;;;7502:5;7470:12;;;;;;;;;;;-1:-1:-1;;;;;7470:29:0;;;;;;;;;;:37;;-1:-1:-1;;7470:37:0;;;7527:40;681:10:1;;7470:12:0;;7527:40;;7502:5;7527:40;7356:230;;:::o;14:257:6:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:190::-;;654:2;642:9;633:7;629:23;625:32;622:2;;;675:6;667;660:22;622:2;-1:-1:-1;703:23:6;;612:120;-1:-1:-1;612:120:6:o;737:325::-;;;866:2;854:9;845:7;841:23;837:32;834:2;;;887:6;879;872:22;834:2;928:9;915:23;905:33;;988:2;977:9;973:18;960:32;1001:31;1026:5;1001:31;:::i;:::-;1051:5;1041:15;;;824:238;;;;;:::o;1067:306::-;;1178:2;1166:9;1157:7;1153:23;1149:32;1146:2;;;1199:6;1191;1184:22;1146:2;1230:23;;-1:-1:-1;;;;;;1282:32:6;;1272:43;;1262:2;;1334:6;1326;1319:22;1573:258;;;1702:2;1690:9;1681:7;1677:23;1673:32;1670:2;;;1723:6;1715;1708:22;1670:2;-1:-1:-1;;1751:23:6;;;1821:2;1806:18;;;1793:32;;-1:-1:-1;1660:171:6:o;3024:603::-;;3165:2;3194;3183:9;3176:21;3226:6;3220:13;3269:6;3264:2;3253:9;3249:18;3242:34;3294:4;3307:140;3321:6;3318:1;3315:13;3307:140;;;3416:14;;;3412:23;;3406:30;3382:17;;;3401:2;3378:26;3371:66;3336:10;;3307:140;;;3465:6;3462:1;3459:13;3456:2;;;3535:4;3530:2;3521:6;3510:9;3506:22;3502:31;3495:45;3456:2;-1:-1:-1;3611:2:6;3590:15;-1:-1:-1;;3586:29:6;3571:45;;;;3618:2;3567:54;;3145:482;-1:-1:-1;;;3145:482:6:o;8346:128::-;;8417:1;8413:6;8410:1;8407:13;8404:2;;;8423:18;;:::i;:::-;-1:-1:-1;8459:9:6;;8394:80::o;8479:217::-;;8545:1;8535:2;;-1:-1:-1;;;8570:31:6;;8624:4;8621:1;8614:15;8652:4;8577:1;8642:15;8535:2;-1:-1:-1;8681:9:6;;8525:171::o;8701:125::-;;8769:1;8766;8763:8;8760:2;;;8774:18;;:::i;:::-;-1:-1:-1;8811:9:6;;8750:76::o;8831:380::-;8910:1;8906:12;;;;8953;;;8974:2;;9028:4;9020:6;9016:17;9006:27;;8974:2;9081;9073:6;9070:14;9050:18;9047:38;9044:2;;;9127:10;9122:3;9118:20;9115:1;9108:31;9162:4;9159:1;9152:15;9190:4;9187:1;9180:15;9044:2;;8886:325;;;:::o;9216:127::-;9277:10;9272:3;9268:20;9265:1;9258:31;9308:4;9305:1;9298:15;9332:4;9329:1;9322:15;9348:131;-1:-1:-1;;;;;9423:31:6;;9413:42;;9403:2;;9469:1;9466;9459:12;9403:2;9393:86;:::o

Swarm Source

ipfs://f2f2458808bc7279af08926af4c13c84043233b17f0ce18549427fe7594878d6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.