Overview
ETH Balance
4.6934100001 ETH
Eth Value
$12,284.99 (@ $2,617.50/ETH)Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 947 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Auction Start | 15972388 | 646 days ago | IN | 0.06 ETH | 0.002216 | ||||
Auction End | 13905700 | 966 days ago | IN | 0 ETH | 0.00220057 | ||||
Auction End | 13765426 | 987 days ago | IN | 0 ETH | 0.00179462 | ||||
Auction End | 13765426 | 987 days ago | IN | 0 ETH | 0.0033844 | ||||
Auction End | 13765426 | 987 days ago | IN | 0 ETH | 0.00179462 | ||||
Auction End | 13749271 | 990 days ago | IN | 0 ETH | 0.00281204 | ||||
Auction End | 13699219 | 998 days ago | IN | 0 ETH | 0.00246078 | ||||
Auction End | 13694104 | 999 days ago | IN | 0 ETH | 0.00536741 | ||||
Auction End | 13693687 | 999 days ago | IN | 0 ETH | 0.00504943 | ||||
Transfer | 13692458 | 999 days ago | IN | 0.06585831 ETH | 0.00171685 | ||||
Auction Start | 13692458 | 999 days ago | IN | 0.06 ETH | 0.00959455 | ||||
Auction Start | 13692440 | 999 days ago | IN | 0.045 ETH | 0.01128198 | ||||
Auction Start | 13692307 | 999 days ago | IN | 0.045 ETH | 0.01123773 | ||||
Auction Start | 13692279 | 999 days ago | IN | 0.046 ETH | 0.01330226 | ||||
Auction Start | 13692258 | 999 days ago | IN | 0.045 ETH | 0.01141048 | ||||
Auction Start | 13692249 | 999 days ago | IN | 0.045 ETH | 0.01384684 | ||||
Auction Start | 13692007 | 999 days ago | IN | 0.1 ETH | 0.01368512 | ||||
Auction Start | 13691777 | 999 days ago | IN | 0.045 ETH | 0.01172031 | ||||
Auction Start | 13691676 | 999 days ago | IN | 0.045 ETH | 0.01353854 | ||||
Auction Start | 13691033 | 999 days ago | IN | 0.05 ETH | 0.0152414 | ||||
Auction Start | 13690838 | 999 days ago | IN | 0.046 ETH | 0.013987 | ||||
Auction End | 13690827 | 999 days ago | IN | 0 ETH | 0.00591785 | ||||
Auction End | 13690824 | 999 days ago | IN | 0 ETH | 0.00606535 | ||||
Auction Start | 13690810 | 999 days ago | IN | 0.045 ETH | 0.00281535 | ||||
Auction Start | 13690790 | 999 days ago | IN | 0.045 ETH | 0.00296771 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
13765426 | 987 days ago | 0.07 ETH | ||||
13694104 | 999 days ago | 0.045 ETH | ||||
13693687 | 999 days ago | 0.046 ETH | ||||
13690827 | 999 days ago | 0.05 ETH | ||||
13690824 | 999 days ago | 0.045 ETH | ||||
13690733 | 999 days ago | 0.045 ETH | ||||
13689454 | 1000 days ago | 0.045 ETH | ||||
13688948 | 1000 days ago | 0.05 ETH | ||||
13688409 | 1000 days ago | 0.045 ETH | ||||
13687132 | 1000 days ago | 0.05 ETH | ||||
13686916 | 1000 days ago | 0.045 ETH | ||||
13686773 | 1000 days ago | 0.046 ETH | ||||
13686650 | 1000 days ago | 0.05 ETH | ||||
13686648 | 1000 days ago | 0.045 ETH | ||||
13686618 | 1000 days ago | 0.045 ETH | ||||
13686579 | 1000 days ago | 0.045 ETH | ||||
13686579 | 1000 days ago | 0.045 ETH | ||||
13686570 | 1000 days ago | 0.045 ETH | ||||
13686154 | 1000 days ago | 0.045 ETH | ||||
13685344 | 1000 days ago | 0.046 ETH | ||||
13684806 | 1000 days ago | 0.05 ETH | ||||
13684806 | 1000 days ago | 0.055 ETH | ||||
13684806 | 1000 days ago | 0.055 ETH | ||||
13684802 | 1000 days ago | 0.05 ETH | ||||
13684802 | 1000 days ago | 0.045 ETH |
Loading...
Loading
Contract Name:
originSale
Compiler Version
v0.8.2+commit.661d1103
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.2; import "@openzeppelin/contracts/access/AccessControl.sol"; contract originSale is AccessControl { uint256 public minBid; uint256 public aDay = 86400; bytes32 public constant CEO = keccak256("CEO"); bytes32 public constant CTO = keccak256("CTO"); bytes32 public constant CFO = keccak256("CFO"); address internal _safe = 0xd8806d66E24b702e0A56fb972b75D24CAd656821; struct logBid { address bidder; uint256 id; uint256 bid; uint256 timestamp; } struct auction { bool began; bool ended; address highestBidder; uint256 highestBid; uint256 totalBids; uint256 timeEnded; uint256 timeStarted; mapping(uint256 => logBid) logBids; } mapping(uint256 => auction) public Auctions; enum state {START, BID, END} event getBids(state action, uint256 id, address bidder, uint256 bid, uint256 time); constructor(){ minBid = 100000000000000000; _setupRole(DEFAULT_ADMIN_ROLE, msg.sender); _setupRole(CEO, address(0x47c06B50C2a6D28Ce3B130384b19a8929f414030)); _setupRole(CFO, _safe); _setupRole(CTO, msg.sender); } modifier validate() { require( hasRole(CEO, msg.sender) || hasRole(CFO, msg.sender) || hasRole(CTO, msg.sender), "AccessControl: Address does not have valid Rights" ); _; } function auctionStart(uint256 id) external payable { auction storage inst = Auctions[id]; uint256 amount = msg.value; require(!inst.began, "Auction already started"); require(!inst.ended, "Auction already ended"); require(amount >= minBid, "Amount should be greater than minimum bid"); emit getBids(state.START, id, msg.sender, msg.value, block.timestamp); inst.began = true; inst.highestBid = amount; inst.highestBidder = msg.sender; inst.timeStarted = block.timestamp; inst.timeEnded = block.timestamp + aDay; } function Bid(uint256 id) external payable returns(string memory) { uint256 amount = msg.value; auction storage inst = Auctions[id]; require(inst.began, "Auction not yet started"); require(!inst.ended, "Auction Finished"); require( amount > inst.highestBid, "The bid amount should higher than current bid" ); if (block.timestamp >= inst.timeEnded){ this.auctionEnd(id); return "Auction ended"; } payable(inst.highestBidder).transfer(inst.highestBid); emit getBids(state.BID, id, msg.sender, msg.value, block.timestamp); inst.highestBidder = msg.sender; inst.highestBid = amount; inst.logBids[inst.totalBids++] = logBid({ bidder: inst.highestBidder, bid: inst.highestBid, timestamp: block.timestamp, id: id }); return "Bid placed"; } function auctionEnd(uint256 id) external payable returns(address) { auction storage inst = Auctions[id]; require(inst.began, "Auction not yet started"); require(!inst.ended, "Auction already Finished!"); require(block.timestamp >= inst.timeEnded, "Auction Time Not yet finished"); payable(_safe).transfer(inst.highestBid); emit getBids(state.END, id, msg.sender, inst.highestBid, block.timestamp); inst.ended = true; return inst.highestBidder; } function highestBid(uint256 id) public view returns(uint256) { return Auctions[id].highestBid; } function highestBidder(uint256 id) public view returns(address) { return Auctions[id].highestBidder; } function timeEnded(uint256 id) public view returns(uint256) { return Auctions[id].timeEnded; } function totalBids(uint256 id) public view returns(uint256) { return Auctions[id].totalBids; } function getLoggedBids(uint256 id, uint256 _bid) public view returns(address, uint256, uint256, uint256) { logBid storage inst = Auctions[id].logBids[_bid]; return (inst.bidder, inst.bid, inst.timestamp, inst.id); } function auctionBegin(uint256 id) public view returns(bool) { return Auctions[id].began; } function auctionEnded(uint256 id) public view returns(bool) { return Auctions[id].ended; } function setBid(uint256 _val) public validate{ minBid = _val; } function setTimer(uint256 _val) public validate{ aDay = _val; } function setSafe(address _val) public validate{ _safe = _val; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./IAccessControl.sol"; import "../utils/Context.sol"; import "../utils/Strings.sol"; import "../utils/introspection/ERC165.sol"; /** * @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 Modifier that checks that an account has a specific role. Reverts * with a standardized message including the required role. * * The format of the revert reason is given by the following regular expression: * * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/ * * _Available since v4.1._ */ modifier onlyRole(bytes32 role) { _checkRole(role, _msgSender()); _; } /** * @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 Revert with a standard message if `account` is missing `role`. * * The format of the revert reason is given by the following regular expression: * * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/ */ function _checkRole(bytes32 role, address account) internal view { if (!hasRole(role, account)) { revert( string( abi.encodePacked( "AccessControl: account ", Strings.toHexString(uint160(account), 20), " is missing role ", Strings.toHexString(uint256(role), 32) ) ) ); } } /** * @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 onlyRole(getRoleAdmin(role)) { _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 onlyRole(getRoleAdmin(role)) { _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 { bytes32 previousAdminRole = getRoleAdmin(role); _roles[role].adminRole = adminRole; emit RoleAdminChanged(role, previousAdminRole, 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()); } } }
// 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; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev External interface of AccessControl declared to support ERC165 detection. */ interface IAccessControl { /** * @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 {AccessControl-_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 Returns `true` if `account` has been granted `role`. */ function hasRole(bytes32 role, address account) external view returns (bool); /** * @dev Returns the admin role that controls `role`. See {grantRole} and * {revokeRole}. * * To change a role's admin, use {AccessControl-_setRoleAdmin}. */ function getRoleAdmin(bytes32 role) external view returns (bytes32); /** * @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) external; /** * @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) external; /** * @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) external; }
// 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); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum originSale.state","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"bidder","type":"address"},{"indexed":false,"internalType":"uint256","name":"bid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"getBids","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"Auctions","outputs":[{"internalType":"bool","name":"began","type":"bool"},{"internalType":"bool","name":"ended","type":"bool"},{"internalType":"address","name":"highestBidder","type":"address"},{"internalType":"uint256","name":"highestBid","type":"uint256"},{"internalType":"uint256","name":"totalBids","type":"uint256"},{"internalType":"uint256","name":"timeEnded","type":"uint256"},{"internalType":"uint256","name":"timeStarted","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"Bid","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"CEO","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CFO","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CTO","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"auctionBegin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"auctionEnd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"auctionEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"auctionStart","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"_bid","type":"uint256"}],"name":"getLoggedBids","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"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":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"highestBid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"highestBidder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBid","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":"uint256","name":"_val","type":"uint256"}],"name":"setBid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_val","type":"address"}],"name":"setSafe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setTimer","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":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"timeEnded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"totalBids","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405262015180600255600380546001600160a01b03191673d8806d66e24b702e0a56fb972b75d24cad6568211790553480156200003e57600080fd5b5067016345785d8a00006001556200005860003362000103565b620000987fdc0d7a095c4e917ecbeb7deda7c942ff9744013d419e37549215a413915e421d7347c06b50c2a6d28ce3b130384b19a8929f41403062000103565b600354620000d1907f33fa24d9aab6b79237248a16094d5f78ea83bb51e42c123ce925a264e7d816cc906001600160a01b031662000103565b620000fd7ff5562c8b4b9dcf5083521725556cccf96ad230969b26cc8a145f067d5ab9ac833362000103565b620001b3565b6200010f828262000113565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200010f576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200016f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61160280620001c36000396000f3fe6080604052600436106101815760003560e01c80637a183e84116100d1578063b14c63c51161008a578063cef55b9a11610064578063cef55b9a14610544578063d547741f14610564578063e21bcb7a14610584578063e8cd181f1461059757610181565b8063b14c63c5146104c4578063b8baf28e146104f4578063b976bd171461052457610181565b80637a183e84146104025780637e4104271461042257806391d14854146104385780639e71238714610458578063a10885711461048d578063a217fddf146104af57610181565b806332246e9f1161013e5780633e109a19116101185780633e109a191461030a578063451df52e146103205780635db0cb941461035c5780636abcc0ac1461037c57610181565b806332246e9f1461029d57806336568abe146102c85780633d01bdec146102e857610181565b806301ffc9a71461018657806319906eb5146101bb578063248a9ca3146101eb57806328e3d190146102295780632f2ff15d1461025957806330d500bf1461027b575b600080fd5b34801561019257600080fd5b506101a66101a1366004611317565b610643565b60405190151581526020015b60405180910390f35b3480156101c757600080fd5b506101a66101d63660046112d0565b60009081526004602052604090205460ff1690565b3480156101f757600080fd5b5061021b6102063660046112d0565b60009081526020819052604090206001015490565b6040519081526020016101b2565b34801561023557600080fd5b5061021b6102443660046112d0565b60009081526004602052604090206002015490565b34801561026557600080fd5b506102796102743660046112e8565b61067c565b005b34801561028757600080fd5b5061021b6000805160206115ad83398151915281565b6102b06102ab3660046112d0565b6106a8565b6040516001600160a01b0390911681526020016101b2565b3480156102d457600080fd5b506102796102e33660046112e8565b61085a565b3480156102f457600080fd5b5061021b60008051602061158d83398151915281565b34801561031657600080fd5b5061021b60015481565b34801561032c57600080fd5b506102b061033b3660046112d0565b6000908152600460205260409020546201000090046001600160a01b031690565b34801561036857600080fd5b50610279610377366004611298565b6108d8565b34801561038857600080fd5b506103d861039736600461133f565b60009182526004602090815260408084209284526005909201905290208054600282015460038301546001909301546001600160a01b039092169390929190565b604080516001600160a01b03909516855260208501939093529183015260608201526080016101b2565b6104156104103660046112d0565b61096a565b6040516101b29190611421565b34801561042e57600080fd5b5061021b60025481565b34801561044457600080fd5b506101a66104533660046112e8565b610c8d565b34801561046457600080fd5b506101a66104733660046112d0565b600090815260046020526040902054610100900460ff1690565b34801561049957600080fd5b5061021b60008051602061156d83398151915281565b3480156104bb57600080fd5b5061021b600081565b3480156104d057600080fd5b5061021b6104df3660046112d0565b60009081526004602052604090206001015490565b34801561050057600080fd5b5061021b61050f3660046112d0565b60009081526004602052604090206003015490565b34801561053057600080fd5b5061027961053f3660046112d0565b610cb6565b34801561055057600080fd5b5061027961055f3660046112d0565b610d2b565b34801561057057600080fd5b5061027961057f3660046112e8565b610da0565b6102796105923660046112d0565b610dc6565b3480156105a357600080fd5b506105fe6105b23660046112d0565b60046020819052600091825260409091208054600182015460028301546003840154939094015460ff80841695610100850490911694620100009094046001600160a01b031693909187565b60408051971515885295151560208801526001600160a01b03909416948601949094526060850191909152608084015260a083019190915260c082015260e0016101b2565b60006001600160e01b03198216637965db0b60e01b148061067457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60008281526020819052604090206001015461069981335b610f62565b6106a38383610fc6565b505050565b6000818152600460205260408120805460ff166107065760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b60448201526064015b60405180910390fd5b8054610100900460ff161561075d5760405162461bcd60e51b815260206004820152601960248201527f41756374696f6e20616c72656164792046696e6973686564210000000000000060448201526064016106fd565b80600301544210156107b15760405162461bcd60e51b815260206004820152601d60248201527f41756374696f6e2054696d65204e6f74207965742066696e697368656400000060448201526064016106fd565b60035460018201546040516001600160a01b039092169181156108fc0291906000818181858888f193505050501580156107ef573d6000803e3d6000fd5b507fad6e6da4dcd165b6f0de5eac6a5f56328d0de62d6e4d37620fe57609a30bc7e66002843384600101544260405161082c9594939291906113d5565b60405180910390a1805461ff00191661010017908190556001600160a01b0362010000909104169050919050565b6001600160a01b03811633146108ca5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106fd565b6108d4828261104a565b5050565b6108f060008051602061156d83398151915233610c8d565b8061090e575061090e6000805160206115ad83398151915233610c8d565b8061092c575061092c60008051602061158d83398151915233610c8d565b6109485760405162461bcd60e51b81526004016106fd90611454565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008181526004602052604090208054606091349160ff166109c85760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b60448201526064016106fd565b8054610100900460ff1615610a125760405162461bcd60e51b815260206004820152601060248201526f105d58dd1a5bdb88119a5b9a5cda195960821b60448201526064016106fd565b80600101548211610a7b5760405162461bcd60e51b815260206004820152602d60248201527f5468652062696420616d6f756e742073686f756c64206869676865722074686160448201526c1b8818dd5c9c995b9d08189a59609a1b60648201526084016106fd565b80600301544210610b27576040516332246e9f60e01b81526004810185905230906332246e9f90602401602060405180830381600087803b158015610abf57600080fd5b505af1158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906112b4565b506040518060400160405280600d81526020016c105d58dd1a5bdb88195b991959609a1b81525092505050610677565b80546001820154604051620100009092046001600160a01b0316916108fc82150291906000818181858888f19350505050158015610b69573d6000803e3d6000fd5b507fad6e6da4dcd165b6f0de5eac6a5f56328d0de62d6e4d37620fe57609a30bc7e6600185333442604051610ba29594939291906113d5565b60405180910390a180546201000033810262010000600160b01b0319909216919091178083556001830184905560408051608081018252929091046001600160a01b0316825260208201869052810183905242606082015260028201805460058401916000919082610c1383611523565b9091555081526020808201929092526040908101600020835181546001600160a01b0319166001600160a01b039091161781558383015160018201558382015160028201556060909301516003909301929092558151808301909252600a825269109a59081c1b1858d95960b21b90820152949350505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610cce60008051602061156d83398151915233610c8d565b80610cec5750610cec6000805160206115ad83398151915233610c8d565b80610d0a5750610d0a60008051602061158d83398151915233610c8d565b610d265760405162461bcd60e51b81526004016106fd90611454565b600255565b610d4360008051602061156d83398151915233610c8d565b80610d615750610d616000805160206115ad83398151915233610c8d565b80610d7f5750610d7f60008051602061158d83398151915233610c8d565b610d9b5760405162461bcd60e51b81526004016106fd90611454565b600155565b600082815260208190526040902060010154610dbc8133610694565b6106a3838361104a565b60008181526004602052604090208054349060ff1615610e285760405162461bcd60e51b815260206004820152601760248201527f41756374696f6e20616c7265616479207374617274656400000000000000000060448201526064016106fd565b8154610100900460ff1615610e775760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb88185b1c9958591e48195b991959605a1b60448201526064016106fd565b600154811015610edb5760405162461bcd60e51b815260206004820152602960248201527f416d6f756e742073686f756c642062652067726561746572207468616e206d696044820152681b9a5b5d5b48189a5960ba1b60648201526084016106fd565b7fad6e6da4dcd165b6f0de5eac6a5f56328d0de62d6e4d37620fe57609a30bc7e6600084333442604051610f139594939291906113d5565b60405180910390a18154600180840183905560ff199091161762010000600160b01b0319163362010000021782554260048301819055600254610f55916114a5565b8260030181905550505050565b610f6c8282610c8d565b6108d457610f84816001600160a01b031660146110af565b610f8f8360206110af565b604051602001610fa0929190611360565b60408051601f198184030181529082905262461bcd60e51b82526106fd91600401611421565b610fd08282610c8d565b6108d4576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556110063390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6110548282610c8d565b156108d4576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606060006110be8360026114bd565b6110c99060026114a5565b67ffffffffffffffff8111156110ef57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611119576020820181803683370190505b509050600360fc1b8160008151811061114257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061117f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006111a38460026114bd565b6111ae9060016114a5565b90505b6001811115611242576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106111f057634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061121457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361123b8161150c565b90506111b1565b5083156112915760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106fd565b9392505050565b6000602082840312156112a9578081fd5b813561129181611554565b6000602082840312156112c5578081fd5b815161129181611554565b6000602082840312156112e1578081fd5b5035919050565b600080604083850312156112fa578081fd5b82359150602083013561130c81611554565b809150509250929050565b600060208284031215611328578081fd5b81356001600160e01b031981168114611291578182fd5b60008060408385031215611351578182fd5b50508035926020909101359150565b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113988160178501602088016114dc565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113c98160288401602088016114dc565b01602801949350505050565b60a08101600387106113f757634e487b7160e01b600052602160045260246000fd5b95815260208101949094526001600160a01b03929092166040840152606083015260809091015290565b60006020825282518060208401526114408160408501602087016114dc565b601f01601f19169190910160400192915050565b60208082526031908201527f416363657373436f6e74726f6c3a204164647265737320646f6573206e6f7420604082015270686176652076616c69642052696768747360781b606082015260800190565b600082198211156114b8576114b861153e565b500190565b60008160001904831182151516156114d7576114d761153e565b500290565b60005b838110156114f75781810151838201526020016114df565b83811115611506576000848401525b50505050565b60008161151b5761151b61153e565b506000190190565b60006000198214156115375761153761153e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461156957600080fd5b5056fedc0d7a095c4e917ecbeb7deda7c942ff9744013d419e37549215a413915e421df5562c8b4b9dcf5083521725556cccf96ad230969b26cc8a145f067d5ab9ac8333fa24d9aab6b79237248a16094d5f78ea83bb51e42c123ce925a264e7d816cca2646970667358221220f6167a3daa684ae49fdd43acc59e7518fb3359705ebd9bcd62c4988dc157fd5e64736f6c63430008020033
Deployed Bytecode
0x6080604052600436106101815760003560e01c80637a183e84116100d1578063b14c63c51161008a578063cef55b9a11610064578063cef55b9a14610544578063d547741f14610564578063e21bcb7a14610584578063e8cd181f1461059757610181565b8063b14c63c5146104c4578063b8baf28e146104f4578063b976bd171461052457610181565b80637a183e84146104025780637e4104271461042257806391d14854146104385780639e71238714610458578063a10885711461048d578063a217fddf146104af57610181565b806332246e9f1161013e5780633e109a19116101185780633e109a191461030a578063451df52e146103205780635db0cb941461035c5780636abcc0ac1461037c57610181565b806332246e9f1461029d57806336568abe146102c85780633d01bdec146102e857610181565b806301ffc9a71461018657806319906eb5146101bb578063248a9ca3146101eb57806328e3d190146102295780632f2ff15d1461025957806330d500bf1461027b575b600080fd5b34801561019257600080fd5b506101a66101a1366004611317565b610643565b60405190151581526020015b60405180910390f35b3480156101c757600080fd5b506101a66101d63660046112d0565b60009081526004602052604090205460ff1690565b3480156101f757600080fd5b5061021b6102063660046112d0565b60009081526020819052604090206001015490565b6040519081526020016101b2565b34801561023557600080fd5b5061021b6102443660046112d0565b60009081526004602052604090206002015490565b34801561026557600080fd5b506102796102743660046112e8565b61067c565b005b34801561028757600080fd5b5061021b6000805160206115ad83398151915281565b6102b06102ab3660046112d0565b6106a8565b6040516001600160a01b0390911681526020016101b2565b3480156102d457600080fd5b506102796102e33660046112e8565b61085a565b3480156102f457600080fd5b5061021b60008051602061158d83398151915281565b34801561031657600080fd5b5061021b60015481565b34801561032c57600080fd5b506102b061033b3660046112d0565b6000908152600460205260409020546201000090046001600160a01b031690565b34801561036857600080fd5b50610279610377366004611298565b6108d8565b34801561038857600080fd5b506103d861039736600461133f565b60009182526004602090815260408084209284526005909201905290208054600282015460038301546001909301546001600160a01b039092169390929190565b604080516001600160a01b03909516855260208501939093529183015260608201526080016101b2565b6104156104103660046112d0565b61096a565b6040516101b29190611421565b34801561042e57600080fd5b5061021b60025481565b34801561044457600080fd5b506101a66104533660046112e8565b610c8d565b34801561046457600080fd5b506101a66104733660046112d0565b600090815260046020526040902054610100900460ff1690565b34801561049957600080fd5b5061021b60008051602061156d83398151915281565b3480156104bb57600080fd5b5061021b600081565b3480156104d057600080fd5b5061021b6104df3660046112d0565b60009081526004602052604090206001015490565b34801561050057600080fd5b5061021b61050f3660046112d0565b60009081526004602052604090206003015490565b34801561053057600080fd5b5061027961053f3660046112d0565b610cb6565b34801561055057600080fd5b5061027961055f3660046112d0565b610d2b565b34801561057057600080fd5b5061027961057f3660046112e8565b610da0565b6102796105923660046112d0565b610dc6565b3480156105a357600080fd5b506105fe6105b23660046112d0565b60046020819052600091825260409091208054600182015460028301546003840154939094015460ff80841695610100850490911694620100009094046001600160a01b031693909187565b60408051971515885295151560208801526001600160a01b03909416948601949094526060850191909152608084015260a083019190915260c082015260e0016101b2565b60006001600160e01b03198216637965db0b60e01b148061067457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60008281526020819052604090206001015461069981335b610f62565b6106a38383610fc6565b505050565b6000818152600460205260408120805460ff166107065760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b60448201526064015b60405180910390fd5b8054610100900460ff161561075d5760405162461bcd60e51b815260206004820152601960248201527f41756374696f6e20616c72656164792046696e6973686564210000000000000060448201526064016106fd565b80600301544210156107b15760405162461bcd60e51b815260206004820152601d60248201527f41756374696f6e2054696d65204e6f74207965742066696e697368656400000060448201526064016106fd565b60035460018201546040516001600160a01b039092169181156108fc0291906000818181858888f193505050501580156107ef573d6000803e3d6000fd5b507fad6e6da4dcd165b6f0de5eac6a5f56328d0de62d6e4d37620fe57609a30bc7e66002843384600101544260405161082c9594939291906113d5565b60405180910390a1805461ff00191661010017908190556001600160a01b0362010000909104169050919050565b6001600160a01b03811633146108ca5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106fd565b6108d4828261104a565b5050565b6108f060008051602061156d83398151915233610c8d565b8061090e575061090e6000805160206115ad83398151915233610c8d565b8061092c575061092c60008051602061158d83398151915233610c8d565b6109485760405162461bcd60e51b81526004016106fd90611454565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008181526004602052604090208054606091349160ff166109c85760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b60448201526064016106fd565b8054610100900460ff1615610a125760405162461bcd60e51b815260206004820152601060248201526f105d58dd1a5bdb88119a5b9a5cda195960821b60448201526064016106fd565b80600101548211610a7b5760405162461bcd60e51b815260206004820152602d60248201527f5468652062696420616d6f756e742073686f756c64206869676865722074686160448201526c1b8818dd5c9c995b9d08189a59609a1b60648201526084016106fd565b80600301544210610b27576040516332246e9f60e01b81526004810185905230906332246e9f90602401602060405180830381600087803b158015610abf57600080fd5b505af1158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906112b4565b506040518060400160405280600d81526020016c105d58dd1a5bdb88195b991959609a1b81525092505050610677565b80546001820154604051620100009092046001600160a01b0316916108fc82150291906000818181858888f19350505050158015610b69573d6000803e3d6000fd5b507fad6e6da4dcd165b6f0de5eac6a5f56328d0de62d6e4d37620fe57609a30bc7e6600185333442604051610ba29594939291906113d5565b60405180910390a180546201000033810262010000600160b01b0319909216919091178083556001830184905560408051608081018252929091046001600160a01b0316825260208201869052810183905242606082015260028201805460058401916000919082610c1383611523565b9091555081526020808201929092526040908101600020835181546001600160a01b0319166001600160a01b039091161781558383015160018201558382015160028201556060909301516003909301929092558151808301909252600a825269109a59081c1b1858d95960b21b90820152949350505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610cce60008051602061156d83398151915233610c8d565b80610cec5750610cec6000805160206115ad83398151915233610c8d565b80610d0a5750610d0a60008051602061158d83398151915233610c8d565b610d265760405162461bcd60e51b81526004016106fd90611454565b600255565b610d4360008051602061156d83398151915233610c8d565b80610d615750610d616000805160206115ad83398151915233610c8d565b80610d7f5750610d7f60008051602061158d83398151915233610c8d565b610d9b5760405162461bcd60e51b81526004016106fd90611454565b600155565b600082815260208190526040902060010154610dbc8133610694565b6106a3838361104a565b60008181526004602052604090208054349060ff1615610e285760405162461bcd60e51b815260206004820152601760248201527f41756374696f6e20616c7265616479207374617274656400000000000000000060448201526064016106fd565b8154610100900460ff1615610e775760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb88185b1c9958591e48195b991959605a1b60448201526064016106fd565b600154811015610edb5760405162461bcd60e51b815260206004820152602960248201527f416d6f756e742073686f756c642062652067726561746572207468616e206d696044820152681b9a5b5d5b48189a5960ba1b60648201526084016106fd565b7fad6e6da4dcd165b6f0de5eac6a5f56328d0de62d6e4d37620fe57609a30bc7e6600084333442604051610f139594939291906113d5565b60405180910390a18154600180840183905560ff199091161762010000600160b01b0319163362010000021782554260048301819055600254610f55916114a5565b8260030181905550505050565b610f6c8282610c8d565b6108d457610f84816001600160a01b031660146110af565b610f8f8360206110af565b604051602001610fa0929190611360565b60408051601f198184030181529082905262461bcd60e51b82526106fd91600401611421565b610fd08282610c8d565b6108d4576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556110063390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6110548282610c8d565b156108d4576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606060006110be8360026114bd565b6110c99060026114a5565b67ffffffffffffffff8111156110ef57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611119576020820181803683370190505b509050600360fc1b8160008151811061114257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061117f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006111a38460026114bd565b6111ae9060016114a5565b90505b6001811115611242576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106111f057634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061121457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361123b8161150c565b90506111b1565b5083156112915760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106fd565b9392505050565b6000602082840312156112a9578081fd5b813561129181611554565b6000602082840312156112c5578081fd5b815161129181611554565b6000602082840312156112e1578081fd5b5035919050565b600080604083850312156112fa578081fd5b82359150602083013561130c81611554565b809150509250929050565b600060208284031215611328578081fd5b81356001600160e01b031981168114611291578182fd5b60008060408385031215611351578182fd5b50508035926020909101359150565b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113988160178501602088016114dc565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113c98160288401602088016114dc565b01602801949350505050565b60a08101600387106113f757634e487b7160e01b600052602160045260246000fd5b95815260208101949094526001600160a01b03929092166040840152606083015260809091015290565b60006020825282518060208401526114408160408501602087016114dc565b601f01601f19169190910160400192915050565b60208082526031908201527f416363657373436f6e74726f6c3a204164647265737320646f6573206e6f7420604082015270686176652076616c69642052696768747360781b606082015260800190565b600082198211156114b8576114b861153e565b500190565b60008160001904831182151516156114d7576114d761153e565b500290565b60005b838110156114f75781810151838201526020016114df565b83811115611506576000848401525b50505050565b60008161151b5761151b61153e565b506000190190565b60006000198214156115375761153761153e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461156957600080fd5b5056fedc0d7a095c4e917ecbeb7deda7c942ff9744013d419e37549215a413915e421df5562c8b4b9dcf5083521725556cccf96ad230969b26cc8a145f067d5ab9ac8333fa24d9aab6b79237248a16094d5f78ea83bb51e42c123ce925a264e7d816cca2646970667358221220f6167a3daa684ae49fdd43acc59e7518fb3359705ebd9bcd62c4988dc157fd5e64736f6c63430008020033
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.