ETH Price: $3,728.73 (+1.51%)
Gas: 31.2 Gwei

Contract

0x688EF823820B01Bcd737106bB7D8d3b4990D6c75
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deposit208510122024-09-28 18:45:3573 days ago1727549135IN
0x688EF823...4990D6c75
0 ETH0.00015915
Deposit208510122024-09-28 18:45:3573 days ago1727549135IN
0x688EF823...4990D6c75
0 ETH0.000410255
Bulk Withdraw208402742024-09-27 6:49:5975 days ago1727419799IN
0x688EF823...4990D6c75
0 ETH0.001311712.17012459
Deposit202238622024-07-03 5:21:47161 days ago1719984107IN
0x688EF823...4990D6c75
0 ETH0.000154721.88575688
Deposit202191962024-07-02 13:41:35162 days ago1719927695IN
0x688EF823...4990D6c75
0 ETH0.000478535.50985586
Deposit201506562024-06-22 23:55:59171 days ago1719100559IN
0x688EF823...4990D6c75
0 ETH0.000123071.5
Deposit182890532023-10-06 4:23:47432 days ago1696566227IN
0x688EF823...4990D6c75
0 ETH0.000418135.096
Deposit173061702023-05-21 7:09:23570 days ago1684652963IN
0x688EF823...4990D6c75
0 ETH0.0021466826.16287231
Deposit172474442023-05-13 0:14:23578 days ago1683936863IN
0x688EF823...4990D6c75
0 ETH0.0050557561.61721801
Deposit168589052023-03-19 2:50:23633 days ago1679194223IN
0x688EF823...4990D6c75
0 ETH0.0011818214.7
Deposit168302632023-03-15 2:12:59637 days ago1678846379IN
0x688EF823...4990D6c75
0 ETH0.0026445232.2302
Bulk Withdraw167433172023-03-02 20:44:11649 days ago1677789851IN
0x688EF823...4990D6c75
0 ETH0.0028248726.20939822
Bulk Withdraw165058112023-01-28 14:08:11683 days ago1674914891IN
0x688EF823...4990D6c75
0 ETH0.0022016316.77510984
Bulk Withdraw164918742023-01-26 15:26:11684 days ago1674746771IN
0x688EF823...4990D6c75
0 ETH0.0024698627.23689925
Bulk Withdraw164875042023-01-26 0:47:11685 days ago1674694031IN
0x688EF823...4990D6c75
0 ETH0.0025086719.11460516
Deposit163318122023-01-04 7:04:35707 days ago1672815875IN
0x688EF823...4990D6c75
0 ETH0.0016475520.07964897
Bulk Withdraw160678472022-11-28 10:20:23744 days ago1669630823IN
0x688EF823...4990D6c75
0 ETH0.0016378915.19648086
Deposit160140042022-11-20 21:47:11751 days ago1668980831IN
0x688EF823...4990D6c75
0 ETH0.000816619.95258363
Deposit159682562022-11-14 12:24:59758 days ago1668428699IN
0x688EF823...4990D6c75
0 ETH0.0014391117.53931542
Bulk Withdraw159645472022-11-13 23:59:11758 days ago1668383951IN
0x688EF823...4990D6c75
0 ETH0.0016269112.39720729
Bulk Withdraw159397732022-11-10 12:59:11762 days ago1668085151IN
0x688EF823...4990D6c75
0 ETH0.0056741752.64539637
Deposit159325852022-11-09 12:51:35763 days ago1667998295IN
0x688EF823...4990D6c75
0 ETH0.0045948556
Deposit158739942022-11-01 8:28:23771 days ago1667291303IN
0x688EF823...4990D6c75
0 ETH0.000754229.19211769
Bulk Withdraw158721772022-11-01 2:20:23771 days ago1667269223IN
0x688EF823...4990D6c75
0 ETH0.001070219.92955299
Deposit158453042022-10-28 8:16:47775 days ago1666945007IN
0x688EF823...4990D6c75
0 ETH0.000724898.83467999
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BFHLandTerritoryGateway

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-06-01
*/

// Copyright (c) 2018-2020 double jump.tokyo inc.
pragma solidity 0.5.17;

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    function add(Role storage role, address account) internal {
        require(!has(role, account), "role already has the account");
        role.bearer[account] = true;
    }

    function remove(Role storage role, address account) internal {
        require(has(role, account), "role dosen't have the account");
        role.bearer[account] = false;
    }

    function has(Role storage role, address account) internal view returns (bool) {
        return role.bearer[account];
    }
}

interface IERC721TokenReceiver {
    /// @notice Handle the receipt of an NFT
    /// @dev The ERC721 smart contract calls this function on the recipient
    ///  after a `transfer`. This function MAY throw to revert and reject the
    ///  transfer. Return of other than the magic value MUST result in the
    ///  transaction being reverted.
    ///  Note: the contract address is always the message sender.
    /// @param _operator The address which called `safeTransferFrom` function
    /// @param _from The address which previously owned the token
    /// @param _tokenId The NFT identifier which is being transferred
    /// @param _data Additional data with no specified format
    /// @return `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`
    ///  unless throwing
    function onERC721Received(
        address _operator,
        address _from,
        uint256 _tokenId,
        bytes calldata _data
    )
        external
        returns(bytes4);
}

interface IERC165 {
    function supportsInterface(bytes4 interfaceID) external view returns (bool);
}

/// @title ERC-165 Standard Interface Detection
/// @dev See https://eips.ethereum.org/EIPS/eip-165
contract ERC165 is IERC165 {
    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;
    mapping(bytes4 => bool) private _supportedInterfaces;

    constructor () internal {
        _registerInterface(_INTERFACE_ID_ERC165);
    }

    function supportsInterface(bytes4 interfaceId) external view returns (bool) {
        return _supportedInterfaces[interfaceId];
    }

    function _registerInterface(bytes4 interfaceId) internal {
        require(interfaceId != 0xffffffff, "ERC165: invalid interface id");
        _supportedInterfaces[interfaceId] = true;
    }
}

interface AssetContract {
    function balanceOf(address _owner) external view returns (uint256);
    function ownerOf(uint256 _tokenId) external view returns (address);
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes calldata data) external payable;
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
    function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
    function approve(address _approved, uint256 _tokenId) external payable;
    function setApprovalForAll(address _operator, bool _approved) external;
    function getApproved(uint256 _tokenId) external view returns (address);
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);

    function exist(uint256 _tokenId) external view returns (bool);
    function mint(address _to, uint256 _tokenId) external;
}

interface IERC721Gateway {
    event Deposit(address indexed owner, uint256 tokenId);
    event Withdraw(address indexed owner, uint256 tokenId, uint256 supportEther, bytes32 eventHash);
    function isTransactedEventHash(bytes32 _eventHash) external view returns (bool);
    function setTransactedEventHash(bytes32 _eventHash, bool _desired) external;
    function deposit(uint256 _tokenId) external;
    function bulkDeposit(uint256[] calldata _tokenIds) external;
    function withdraw(address payable _to, uint256 _tokenId, uint256 _supportEther, bytes32 _eventHash) external payable;
    function bulkWithdraw(address payable[] calldata _tos, uint256[] calldata _tokenIds, uint256[] calldata _supportEther, bytes32[] calldata _eventHashes) external payable;
}
contract ERC721Holder is IERC721TokenReceiver {
    function onERC721Received(address, address, uint256, bytes memory) public returns (bytes4) {
        return this.onERC721Received.selector;
    }
}

interface IERC173 /* is ERC165 */ {
    /// @dev This emits when ownership of a contract changes.
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /// @notice Get the address of the owner
    /// @return The address of the owner.
    function owner() external view returns (address);

    /// @notice Set the address of the new owner of the contract
    /// @param _newOwner The address of the new owner of the contract
    function transferOwnership(address _newOwner) external;
}

contract ERC173 is IERC173, ERC165  {
    address private _owner;

    constructor() public {
        _registerInterface(0x7f5828d0);
        _transferOwnership(msg.sender);
    }

    modifier onlyOwner() {
        require(msg.sender == owner(), "Must be owner");
        _;
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function transferOwnership(address _newOwner) public onlyOwner() {
        _transferOwnership(_newOwner);
    }

    function _transferOwnership(address _newOwner) internal {
        address previousOwner = owner();
	_owner = _newOwner;
        emit OwnershipTransferred(previousOwner, _newOwner);
    }
}

contract Operatable is ERC173 {
    using Roles for Roles.Role;

    event OperatorAdded(address indexed account);
    event OperatorRemoved(address indexed account);

    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;
    Roles.Role private operators;

    constructor() public {
        operators.add(msg.sender);
        _paused = false;
    }

    modifier onlyOperator() {
        require(isOperator(msg.sender), "Must be operator");
        _;
    }

    modifier whenNotPaused() {
        require(!_paused, "Pausable: paused");
        _;
    }

    modifier whenPaused() {
        require(_paused, "Pausable: not paused");
        _;
    }

    function transferOwnership(address _newOwner) public onlyOperator() {
        _transferOwnership(_newOwner);
    }

    function isOperator(address account) public view returns (bool) {
        return operators.has(account);
    }

    function addOperator(address account) public onlyOperator() {
        operators.add(account);
        emit OperatorAdded(account);
    }

    function removeOperator(address account) public onlyOperator() {
        operators.remove(account);
        emit OperatorRemoved(account);
    }

    function paused() public view returns (bool) {
        return _paused;
    }

    function pause() public onlyOperator() whenNotPaused() {
        _paused = true;
        emit Paused(msg.sender);
    }

    function unpause() public onlyOperator() whenPaused() {
        _paused = false;
        emit Unpaused(msg.sender);
    }

    function withdrawEther() public onlyOperator() {
        msg.sender.transfer(address(this).balance);
    }

}

contract BFHLandTerritoryGateway is IERC721Gateway, Operatable, ERC721Holder {
    AssetContract public assetContract;

    mapping(bytes32 => bool) private eventHashTransacted;

    constructor(address _assetContract) public {
        assetContract = AssetContract(_assetContract);
    }

    function isTransactedEventHash(bytes32 _eventHash) public view returns (bool) {
        return eventHashTransacted[_eventHash];
    }

    function setTransactedEventHash(bytes32 _eventHash, bool _desired) public onlyOperator() {
        eventHashTransacted[_eventHash] = _desired;
    }

    function deposit(uint256 _tokenId) public whenNotPaused() {
        address owner = assetContract.ownerOf(_tokenId);
        require(owner == msg.sender, "msg.sender must be _tokenId owner");
        assetContract.safeTransferFrom(owner, address(this), _tokenId);
        emit Deposit(owner, _tokenId);
    }

    function bulkDeposit(uint256[] calldata _tokenIds) external {
        for (uint256 i = 0; i < _tokenIds.length; i++) {
            deposit(_tokenIds[i]);
        }
    }

    function withdraw(address payable _to, uint256 _tokenId, uint256 _supportEther, bytes32 _eventHash) public payable whenNotPaused() onlyOperator() {
        require(!isTransactedEventHash(_eventHash), "_eventHash is already transacted");

        if (assetContract.exist(_tokenId)) {
            assetContract.safeTransferFrom(address(this), _to, _tokenId);
        } else {
            assetContract.mint(_to, _tokenId);
        }
        setTransactedEventHash(_eventHash, true);

        _to.transfer(_supportEther);
        emit Withdraw(msg.sender, _tokenId, _supportEther, _eventHash);
    }

    function bulkWithdraw(
        address payable[] calldata _tos,
        uint256[] calldata _tokenIds,
        uint256[] calldata _supportEthers,
        bytes32[] calldata _eventHashes
    ) external payable {
        require(_tokenIds.length == _tos.length && _tokenIds.length == _supportEthers.length && _tokenIds.length == _eventHashes.length, "invalid length");
        for (uint256 i = 0; i < _tokenIds.length; i++) {
            withdraw(_tos[i], _tokenIds[i], _supportEthers[i], _eventHashes[i]);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_assetContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supportEther","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"eventHash","type":"bytes32"}],"name":"Withdraw","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"assetContract","outputs":[{"internalType":"contract AssetContract","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"bulkDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable[]","name":"_tos","type":"address[]"},{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_supportEthers","type":"uint256[]"},{"internalType":"bytes32[]","name":"_eventHashes","type":"bytes32[]"}],"name":"bulkWithdraw","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_eventHash","type":"bytes32"}],"name":"isTransactedEventHash","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_eventHash","type":"bytes32"},{"internalType":"bool","name":"_desired","type":"bool"}],"name":"setTransactedEventHash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_supportEther","type":"uint256"},{"internalType":"bytes32","name":"_eventHash","type":"bytes32"}],"name":"withdraw","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620020af380380620020af833981810160405260208110156200003757600080fd5b8101908080519060200190929190505050620000606301ffc9a760e01b6200010760201b60201c565b62000078637f5828d060e01b6200010760201b60201c565b62000089336200021060201b60201c565b620000a4336002620002c360201b620019bf1790919060201c565b6000600160146101000a81548160ff02191690831515021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200042a565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620001a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600062000222620003a760201b60201c565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002d58282620003d160201b60201c565b1562000349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f726f6c6520616c72656164792068617320746865206163636f756e740000000081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611c75806200043a6000396000f3fe6080604052600436106101095760003560e01c80637362377b11610095578063ac8a584a11610064578063ac8a584a146105bc578063b6b55f251461060d578063eeeb019814610648578063f2fde38b146106ce578063f592c79c1461071f57610109565b80637362377b146104e65780638456cb59146104fd5780638da5cb5b146105145780639870d7fe1461056b57610109565b806344c7d8c2116100dc57806344c7d8c21461035d57806345711ecd146103b05780634d16304f146103f75780635c975abb1461044e5780636d70f7ae1461047d57610109565b806301ffc9a71461010e578063150b7a02146101805780633f4ba83a146102e45780634250a6f3146102fb575b600080fd5b34801561011a57600080fd5b506101666004803603602081101561013157600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610897565b604051808215151515815260200191505060405180910390f35b34801561018c57600080fd5b50610290600480360360808110156101a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561020a57600080fd5b82018360208201111561021c57600080fd5b8035906020019184600183028401116401000000008311171561023e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506108fe565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156102f057600080fd5b506102f9610912565b005b61035b6004803603608081101561031157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050610a8f565b005b34801561036957600080fd5b506103966004803603602081101561038057600080fd5b8101908080359060200190929190505050610f2e565b604051808215151515815260200191505060405180910390f35b3480156103bc57600080fd5b506103f5600480360360408110156103d357600080fd5b8101908080359060200190929190803515159060200190929190505050610f58565b005b34801561040357600080fd5b5061040c611002565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561045a57600080fd5b50610463611028565b604051808215151515815260200191505060405180910390f35b34801561048957600080fd5b506104cc600480360360208110156104a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061103f565b604051808215151515815260200191505060405180910390f35b3480156104f257600080fd5b506104fb61105c565b005b34801561050957600080fd5b50610512611120565b005b34801561052057600080fd5b5061052961129d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057757600080fd5b506105ba6004803603602081101561058e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c7565b005b3480156105c857600080fd5b5061060b600480360360208110156105df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139c565b005b34801561061957600080fd5b506106466004803603602081101561063057600080fd5b8101908080359060200190929190505050611471565b005b34801561065457600080fd5b506106cc6004803603602081101561066b57600080fd5b810190808035906020019064010000000081111561068857600080fd5b82018360208201111561069a57600080fd5b803590602001918460208302840111640100000000831117156106bc57600080fd5b9091929391929390505050611771565b005b3480156106da57600080fd5b5061071d600480360360208110156106f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117af565b005b6108956004803603608081101561073557600080fd5b810190808035906020019064010000000081111561075257600080fd5b82018360208201111561076457600080fd5b8035906020019184602083028401116401000000008311171561078657600080fd5b9091929391929390803590602001906401000000008111156107a757600080fd5b8201836020820111156107b957600080fd5b803590602001918460208302840111640100000000831117156107db57600080fd5b9091929391929390803590602001906401000000008111156107fc57600080fd5b82018360208201111561080e57600080fd5b8035906020019184602083028401116401000000008311171561083057600080fd5b90919293919293908035906020019064010000000081111561085157600080fd5b82018360208201111561086357600080fd5b8035906020019184602083028401116401000000008311171561088557600080fd5b9091929391929390505050611836565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600063150b7a0260e01b9050949350505050565b61091b3361103f565b61098d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16610a0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600160149054906101000a900460ff1615610b12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610b1b3361103f565b610b8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b610b9681610f2e565b15610c09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5f6576656e744861736820697320616c7265616479207472616e73616374656481525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ebbc92a846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610c7c57600080fd5b505afa158015610c90573d6000803e3d6000fd5b505050506040513d6020811015610ca657600080fd5b810190808051906020019092919050505015610db657600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610d9957600080fd5b505af1158015610dad573d6000803e3d6000fd5b50505050610e78565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1985856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610e5f57600080fd5b505af1158015610e73573d6000803e3d6000fd5b505050505b610e83816001610f58565b8373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610ec9573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f80bd7e915c065f64ef8e41fa6334d4a2b752591cb4d462c204b8e2449eb0a1f784848460405180848152602001838152602001828152602001935050505060405180910390a250505050565b60006004600083815260200190815260200160002060009054906101000a900460ff169050919050565b610f613361103f565b610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b806004600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160149054906101000a900460ff16905090565b600061105582600261196690919063ffffffff16565b9050919050565b6110653361103f565b6110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561111d573d6000803e3d6000fd5b50565b6111293361103f565b61119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff161561121e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112d03361103f565b611342576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b6113568160026119bf90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b6113a53361103f565b611417576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b61142b816002611a9a90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60405160405180910390a250565b600160149054906101000a900460ff16156114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561156957600080fd5b505afa15801561157d573d6000803e3d6000fd5b505050506040513d602081101561159357600080fd5b810190808051906020019092919050505090503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461162a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611c206021913960400191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e8230856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c836040518082815260200191505060405180910390a25050565b60008090505b828290508110156117aa5761179d83838381811061179157fe5b90506020020135611471565b8080600101915050611777565b505050565b6117b83361103f565b61182a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b61183381611b74565b50565b878790508686905014801561185057508383905086869050145b801561186157508181905086869050145b6118d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c6964206c656e67746800000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b8686905081101561195b5761194e8989838181106118f357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1688888481811061191c57fe5b9050602002013587878581811061192f57fe5b9050602002013586868681811061194257fe5b90506020020135610a8f565b80806001019150506118d9565b505050505050505050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6119c98282611966565b15611a3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f726f6c6520616c72656164792068617320746865206163636f756e740000000081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611aa48282611966565b611b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f726f6c6520646f73656e2774206861766520746865206163636f756e7400000081525060200191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b7e61129d565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505056fe6d73672e73656e646572206d757374206265205f746f6b656e4964206f776e6572a265627a7a7231582022a89ba9a0e478707e2136dda3f3ce87f4768b590a1d6e28cf60984efc0ee2f264736f6c6343000511003200000000000000000000000079f75e9f93f89d33c20573dec03710c6d9ec538d

Deployed Bytecode

0x6080604052600436106101095760003560e01c80637362377b11610095578063ac8a584a11610064578063ac8a584a146105bc578063b6b55f251461060d578063eeeb019814610648578063f2fde38b146106ce578063f592c79c1461071f57610109565b80637362377b146104e65780638456cb59146104fd5780638da5cb5b146105145780639870d7fe1461056b57610109565b806344c7d8c2116100dc57806344c7d8c21461035d57806345711ecd146103b05780634d16304f146103f75780635c975abb1461044e5780636d70f7ae1461047d57610109565b806301ffc9a71461010e578063150b7a02146101805780633f4ba83a146102e45780634250a6f3146102fb575b600080fd5b34801561011a57600080fd5b506101666004803603602081101561013157600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610897565b604051808215151515815260200191505060405180910390f35b34801561018c57600080fd5b50610290600480360360808110156101a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561020a57600080fd5b82018360208201111561021c57600080fd5b8035906020019184600183028401116401000000008311171561023e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506108fe565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156102f057600080fd5b506102f9610912565b005b61035b6004803603608081101561031157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050610a8f565b005b34801561036957600080fd5b506103966004803603602081101561038057600080fd5b8101908080359060200190929190505050610f2e565b604051808215151515815260200191505060405180910390f35b3480156103bc57600080fd5b506103f5600480360360408110156103d357600080fd5b8101908080359060200190929190803515159060200190929190505050610f58565b005b34801561040357600080fd5b5061040c611002565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561045a57600080fd5b50610463611028565b604051808215151515815260200191505060405180910390f35b34801561048957600080fd5b506104cc600480360360208110156104a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061103f565b604051808215151515815260200191505060405180910390f35b3480156104f257600080fd5b506104fb61105c565b005b34801561050957600080fd5b50610512611120565b005b34801561052057600080fd5b5061052961129d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057757600080fd5b506105ba6004803603602081101561058e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c7565b005b3480156105c857600080fd5b5061060b600480360360208110156105df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139c565b005b34801561061957600080fd5b506106466004803603602081101561063057600080fd5b8101908080359060200190929190505050611471565b005b34801561065457600080fd5b506106cc6004803603602081101561066b57600080fd5b810190808035906020019064010000000081111561068857600080fd5b82018360208201111561069a57600080fd5b803590602001918460208302840111640100000000831117156106bc57600080fd5b9091929391929390505050611771565b005b3480156106da57600080fd5b5061071d600480360360208110156106f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117af565b005b6108956004803603608081101561073557600080fd5b810190808035906020019064010000000081111561075257600080fd5b82018360208201111561076457600080fd5b8035906020019184602083028401116401000000008311171561078657600080fd5b9091929391929390803590602001906401000000008111156107a757600080fd5b8201836020820111156107b957600080fd5b803590602001918460208302840111640100000000831117156107db57600080fd5b9091929391929390803590602001906401000000008111156107fc57600080fd5b82018360208201111561080e57600080fd5b8035906020019184602083028401116401000000008311171561083057600080fd5b90919293919293908035906020019064010000000081111561085157600080fd5b82018360208201111561086357600080fd5b8035906020019184602083028401116401000000008311171561088557600080fd5b9091929391929390505050611836565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600063150b7a0260e01b9050949350505050565b61091b3361103f565b61098d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16610a0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600160149054906101000a900460ff1615610b12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610b1b3361103f565b610b8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b610b9681610f2e565b15610c09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5f6576656e744861736820697320616c7265616479207472616e73616374656481525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ebbc92a846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610c7c57600080fd5b505afa158015610c90573d6000803e3d6000fd5b505050506040513d6020811015610ca657600080fd5b810190808051906020019092919050505015610db657600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610d9957600080fd5b505af1158015610dad573d6000803e3d6000fd5b50505050610e78565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1985856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610e5f57600080fd5b505af1158015610e73573d6000803e3d6000fd5b505050505b610e83816001610f58565b8373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610ec9573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f80bd7e915c065f64ef8e41fa6334d4a2b752591cb4d462c204b8e2449eb0a1f784848460405180848152602001838152602001828152602001935050505060405180910390a250505050565b60006004600083815260200190815260200160002060009054906101000a900460ff169050919050565b610f613361103f565b610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b806004600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160149054906101000a900460ff16905090565b600061105582600261196690919063ffffffff16565b9050919050565b6110653361103f565b6110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561111d573d6000803e3d6000fd5b50565b6111293361103f565b61119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff161561121e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112d03361103f565b611342576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b6113568160026119bf90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b6113a53361103f565b611417576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b61142b816002611a9a90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60405160405180910390a250565b600160149054906101000a900460ff16156114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561156957600080fd5b505afa15801561157d573d6000803e3d6000fd5b505050506040513d602081101561159357600080fd5b810190808051906020019092919050505090503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461162a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611c206021913960400191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e8230856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c836040518082815260200191505060405180910390a25050565b60008090505b828290508110156117aa5761179d83838381811061179157fe5b90506020020135611471565b8080600101915050611777565b505050565b6117b83361103f565b61182a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4d757374206265206f70657261746f720000000000000000000000000000000081525060200191505060405180910390fd5b61183381611b74565b50565b878790508686905014801561185057508383905086869050145b801561186157508181905086869050145b6118d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c6964206c656e67746800000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b8686905081101561195b5761194e8989838181106118f357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1688888481811061191c57fe5b9050602002013587878581811061192f57fe5b9050602002013586868681811061194257fe5b90506020020135610a8f565b80806001019150506118d9565b505050505050505050565b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6119c98282611966565b15611a3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f726f6c6520616c72656164792068617320746865206163636f756e740000000081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611aa48282611966565b611b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f726f6c6520646f73656e2774206861766520746865206163636f756e7400000081525060200191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b7e61129d565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505056fe6d73672e73656e646572206d757374206265205f746f6b656e4964206f776e6572a265627a7a7231582022a89ba9a0e478707e2136dda3f3ce87f4768b590a1d6e28cf60984efc0ee2f264736f6c63430005110032

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

00000000000000000000000079f75e9f93f89d33c20573dec03710c6d9ec538d

-----Decoded View---------------
Arg [0] : _assetContract (address): 0x79F75E9f93F89d33c20573DeC03710c6d9EC538D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000079f75e9f93f89d33c20573dec03710c6d9ec538d


Deployed Bytecode Sourcemap

7391:2254:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2139:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2139:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2139:135:0;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4247:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4247:147:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4247:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4247:147:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4247:147:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4247:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4247:147:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7142:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7142:124:0;;;:::i;:::-;;8497:608;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;8497:608:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7694:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7694:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7694:135:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7837:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7837:150:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7837:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7475:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7475:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6926:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6926:78:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6504:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6504:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6504:112:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7274:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7274:108:0;;;:::i;:::-;;7012:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7012:122:0;;;:::i;:::-;;5242:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5242:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6624:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6624:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6624:139:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6771:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6771:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6771:147:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7995:313;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7995:313:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7995:313:0;;;;;;;;;;;;;;;;;:::i;:::-;;8316:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8316:173:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8316:173:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8316:173:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8316:173:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8316:173:0;;;;;;;;;;;;:::i;:::-;;6380:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6380:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6380:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9113:529;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9113:529:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9113:529:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9113:529:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9113:529:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9113:529:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9113:529:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9113:529:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9113:529:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9113:529:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9113:529:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9113:529:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9113:529:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9113:529:0;;;;;;;;;;;;:::i;:::-;;2139:135;2209:4;2233:20;:33;2254:11;2233:33;;;;;;;;;;;;;;;;;;;;;;;;;;;2226:40;;2139:135;;;:::o;4247:147::-;4330:6;4356:30;;;4349:37;;4247:147;;;;;;:::o;7142:124::-;6107:22;6118:10;6107;:22::i;:::-;6099:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6320:7;;;;;;;;;;;6312:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7217:5;7207:7;;:15;;;;;;;;;;;;;;;;;;7238:20;7247:10;7238:20;;;;;;;;;;;;;;;;;;;;;;7142:124::o;8497:608::-;6223:7;;;;;;;;;;;6222:8;6214:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6107:22;6118:10;6107;:22::i;:::-;6099:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8663:33;8685:10;8663:21;:33::i;:::-;8662:34;8654:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8750:13;;;;;;;;;;;:19;;;8770:8;8750:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8750:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8750:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8750:29:0;;;;;;;;;;;;;;;;8746:188;;;8796:13;;;;;;;;;;;:30;;;8835:4;8842:3;8847:8;8796:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8796:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8796:60:0;;;;8746:188;;;8889:13;;;;;;;;;;;:18;;;8908:3;8913:8;8889:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8889:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8889:33:0;;;;8746:188;8944:40;8967:10;8979:4;8944:22;:40::i;:::-;8997:3;:12;;:27;9010:13;8997:27;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8997:27:0;9049:10;9040:57;;;9061:8;9071:13;9086:10;9040:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8497:608;;;;:::o;7694:135::-;7766:4;7790:19;:31;7810:10;7790:31;;;;;;;;;;;;;;;;;;;;;7783:38;;7694:135;;;:::o;7837:150::-;6107:22;6118:10;6107;:22::i;:::-;6099:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7971:8;7937:19;:31;7957:10;7937:31;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;7837:150;;:::o;7475:34::-;;;;;;;;;;;;;:::o;6926:78::-;6965:4;6989:7;;;;;;;;;;;6982:14;;6926:78;:::o;6504:112::-;6562:4;6586:22;6600:7;6586:9;:13;;:22;;;;:::i;:::-;6579:29;;6504:112;;;:::o;7274:108::-;6107:22;6118:10;6107;:22::i;:::-;6099:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7332:10;:19;;:42;7352:21;7332:42;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7332:42:0;7274:108::o;7012:122::-;6107:22;6118:10;6107;:22::i;:::-;6099:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6223:7;;;;;;;;;;;6222:8;6214:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7088:4;7078:7;;:14;;;;;;;;;;;;;;;;;;7108:18;7115:10;7108:18;;;;;;;;;;;;;;;;;;;;;;7012:122::o;5242:79::-;5280:7;5307:6;;;;;;;;;;;5300:13;;5242:79;:::o;6624:139::-;6107:22;6118:10;6107;:22::i;:::-;6099:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6695:22;6709:7;6695:9;:13;;:22;;;;:::i;:::-;6747:7;6733:22;;;;;;;;;;;;6624:139;:::o;6771:147::-;6107:22;6118:10;6107;:22::i;:::-;6099:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6845:25;6862:7;6845:9;:16;;:25;;;;:::i;:::-;6902:7;6886:24;;;;;;;;;;;;6771:147;:::o;7995:313::-;6223:7;;;;;;;;;;;6222:8;6214:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8064:13;8080;;;;;;;;;;;:21;;;8102:8;8080:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8080:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8080:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8080:31:0;;;;;;;;;;;;;;;;8064:47;;8139:10;8130:19;;:5;:19;;;8122:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8198:13;;;;;;;;;;;:30;;;8229:5;8244:4;8251:8;8198:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8198:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8198:62:0;;;;8284:5;8276:24;;;8291:8;8276:24;;;;;;;;;;;;;;;;;;6262:1;7995:313;:::o;8316:173::-;8392:9;8404:1;8392:13;;8387:95;8411:9;;:16;;8407:1;:20;8387:95;;;8449:21;8457:9;;8467:1;8457:12;;;;;;;;;;;;;8449:7;:21::i;:::-;8429:3;;;;;;;8387:95;;;;8316:173;;:::o;6380:116::-;6107:22;6118:10;6107;:22::i;:::-;6099:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6459:29;6478:9;6459:18;:29::i;:::-;6380:116;:::o;9113:529::-;9365:4;;:11;;9345:9;;:16;;:31;:76;;;;;9400:14;;:21;;9380:9;;:16;;:41;9345:76;:119;;;;;9445:12;;:19;;9425:9;;:16;;:39;9345:119;9337:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9499:9;9511:1;9499:13;;9494:141;9518:9;;:16;;9514:1;:20;9494:141;;;9556:67;9565:4;;9570:1;9565:7;;;;;;;;;;;;;;;9574:9;;9584:1;9574:12;;;;;;;;;;;;;9588:14;;9603:1;9588:17;;;;;;;;;;;;;9607:12;;9620:1;9607:15;;;;;;;;;;;;;9556:8;:67::i;:::-;9536:3;;;;;;;9494:141;;;;9113:529;;;;;;;;:::o;540:124::-;612:4;636;:11;;:20;648:7;636:20;;;;;;;;;;;;;;;;;;;;;;;;;629:27;;540:124;;;;:::o;170:175::-;248:18;252:4;258:7;248:3;:18::i;:::-;247:19;239:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;333:4;310;:11;;:20;322:7;310:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;170:175;;:::o;353:179::-;433:18;437:4;443:7;433:3;:18::i;:::-;425:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;519:5;496:4;:11;;:20;508:7;496:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;353:179;;:::o;5450:190::-;5517:21;5541:7;:5;:7::i;:::-;5517:31;;5561:9;5552:6;;:18;;;;;;;;;;;;;;;;;;5622:9;5586:46;;5607:13;5586:46;;;;;;;;;;;;5450:190;;:::o

Swarm Source

bzzr://22a89ba9a0e478707e2136dda3f3ce87f4768b590a1d6e28cf60984efc0ee2f2

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  ]

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.