ETH Price: $3,892.52 (+0.21%)

Contract

0x66Cbb819FaE06Cfb584d31e91e267eB0904a51D7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Generate Single92725152020-01-13 11:53:421798 days ago1578916422IN
0x66Cbb819...0904a51D7
0 ETH0.000417443
Generate Single92721292020-01-13 10:33:421798 days ago1578911622IN
0x66Cbb819...0904a51D7
0 ETH0.000417233
Generate Single92721262020-01-13 10:32:441798 days ago1578911564IN
0x66Cbb819...0904a51D7
0 ETH0.000417373
Generate Single92720552020-01-13 10:19:571798 days ago1578910797IN
0x66Cbb819...0904a51D7
0 ETH0.00055644
Generate Single92718992020-01-13 9:48:501798 days ago1578908930IN
0x66Cbb819...0904a51D7
0 ETH0.00055644
Generate Single92718982020-01-13 9:48:211798 days ago1578908901IN
0x66Cbb819...0904a51D7
0 ETH0.000556354
Generate Single92716702020-01-13 9:00:171798 days ago1578906017IN
0x66Cbb819...0904a51D7
0 ETH0.000765255.5
Generate Single92705832020-01-13 4:54:401798 days ago1578891280IN
0x66Cbb819...0904a51D7
0 ETH0.000417263
Generate Single92705802020-01-13 4:54:191798 days ago1578891259IN
0x66Cbb819...0904a51D7
0 ETH0.000417193
Generate Single92705532020-01-13 4:46:171798 days ago1578890777IN
0x66Cbb819...0904a51D7
0 ETH0.000417443
Generate Single92705232020-01-13 4:39:341798 days ago1578890374IN
0x66Cbb819...0904a51D7
0 ETH0.000278292
Generate Single92705222020-01-13 4:39:001798 days ago1578890340IN
0x66Cbb819...0904a51D7
0 ETH0.000277772
Generate Single92703782020-01-13 4:06:261798 days ago1578888386IN
0x66Cbb819...0904a51D7
0 ETH0.000278272
Generate Single92701962020-01-13 3:28:041798 days ago1578886084IN
0x66Cbb819...0904a51D7
0 ETH0.000277772
Generate Single92701882020-01-13 3:26:401798 days ago1578886000IN
0x66Cbb819...0904a51D7
0 ETH0.000306072.2
Generate Single92701782020-01-13 3:24:271798 days ago1578885867IN
0x66Cbb819...0904a51D7
0 ETH0.000278272
Generate Single92700612020-01-13 3:01:111798 days ago1578884471IN
0x66Cbb819...0904a51D7
0 ETH0.000278252
Generate Single92699952020-01-13 2:46:131798 days ago1578883573IN
0x66Cbb819...0904a51D7
0 ETH0.000278292
Generate Single92698532020-01-13 2:15:371798 days ago1578881737IN
0x66Cbb819...0904a51D7
0 ETH0.000278172
Generate Single92694292020-01-13 0:39:581798 days ago1578875998IN
0x66Cbb819...0904a51D7
0 ETH0.000278252
Generate Single92693552020-01-13 0:23:461798 days ago1578875026IN
0x66Cbb819...0904a51D7
0 ETH0.00027822
Generate Single92692922020-01-13 0:09:281798 days ago1578874168IN
0x66Cbb819...0904a51D7
0 ETH0.00027822
Generate Single92692882020-01-13 0:08:321798 days ago1578874112IN
0x66Cbb819...0904a51D7
0 ETH0.000278292
Generate Single92692472020-01-13 0:00:401798 days ago1578873640IN
0x66Cbb819...0904a51D7
0 ETH0.000277772
Generate Single92690212020-01-12 23:07:221798 days ago1578870442IN
0x66Cbb819...0904a51D7
0 ETH0.000278272
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:
CutieGenerator

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-07-09
*/

pragma solidity ^0.4.23;

pragma solidity ^0.4.23;

pragma solidity ^0.4.23;


pragma solidity ^0.4.23;


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}



/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    emit Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    emit Unpause();
  }
}

pragma solidity ^0.4.23;

/// @author https://BlockChainArchitect.iocontract Bank is CutiePluginBase
contract PluginInterface
{
    /// @dev simply a boolean to indicate this is the contract we expect to be
    function isPluginInterface() public pure returns (bool);

    function onRemove() public;

    /// @dev Begins new feature.
    /// @param _cutieId - ID of token to auction, sender must be owner.
    /// @param _parameter - arbitrary parameter
    /// @param _seller - Old owner, if not the message sender
    function run(
        uint40 _cutieId,
        uint256 _parameter,
        address _seller
    )
    public
    payable;

    /// @dev Begins new feature, approved and signed by COO.
    /// @param _cutieId - ID of token to auction, sender must be owner.
    /// @param _parameter - arbitrary parameter
    function runSigned(
        uint40 _cutieId,
        uint256 _parameter,
        address _owner
    ) external payable;

    function withdraw() external;
}

pragma solidity ^0.4.23;

pragma solidity ^0.4.23;

/// @title BlockchainCuties: Collectible and breedable cuties on the Ethereum blockchain.
/// @author https://BlockChainArchitect.io
/// @dev This is the BlockchainCuties configuration. It can be changed redeploying another version.
interface ConfigInterface
{
    function isConfig() external pure returns (bool);

    function getCooldownIndexFromGeneration(uint16 _generation, uint40 _cutieId) external view returns (uint16);
    function getCooldownEndTimeFromIndex(uint16 _cooldownIndex, uint40 _cutieId) external view returns (uint40);
    function getCooldownIndexFromGeneration(uint16 _generation) external view returns (uint16);
    function getCooldownEndTimeFromIndex(uint16 _cooldownIndex) external view returns (uint40);

    function getCooldownIndexCount() external view returns (uint256);

    function getBabyGenFromId(uint40 _momId, uint40 _dadId) external view returns (uint16);
    function getBabyGen(uint16 _momGen, uint16 _dadGen) external pure returns (uint16);

    function getTutorialBabyGen(uint16 _dadGen) external pure returns (uint16);

    function getBreedingFee(uint40 _momId, uint40 _dadId) external view returns (uint256);
}


contract CutieCoreInterface
{
    function isCutieCore() pure public returns (bool);

    ConfigInterface public config;

    function transferFrom(address _from, address _to, uint256 _cutieId) external;
    function transfer(address _to, uint256 _cutieId) external;

    function ownerOf(uint256 _cutieId)
        external
        view
        returns (address owner);

    function getCutie(uint40 _id)
        external
        view
        returns (
        uint256 genes,
        uint40 birthTime,
        uint40 cooldownEndTime,
        uint40 momId,
        uint40 dadId,
        uint16 cooldownIndex,
        uint16 generation
    );

    function getGenes(uint40 _id)
        public
        view
        returns (
        uint256 genes
    );


    function getCooldownEndTime(uint40 _id)
        public
        view
        returns (
        uint40 cooldownEndTime
    );

    function getCooldownIndex(uint40 _id)
        public
        view
        returns (
        uint16 cooldownIndex
    );


    function getGeneration(uint40 _id)
        public
        view
        returns (
        uint16 generation
    );

    function getOptional(uint40 _id)
        public
        view
        returns (
        uint64 optional
    );


    function changeGenes(
        uint40 _cutieId,
        uint256 _genes)
        public;

    function changeCooldownEndTime(
        uint40 _cutieId,
        uint40 _cooldownEndTime)
        public;

    function changeCooldownIndex(
        uint40 _cutieId,
        uint16 _cooldownIndex)
        public;

    function changeOptional(
        uint40 _cutieId,
        uint64 _optional)
        public;

    function changeGeneration(
        uint40 _cutieId,
        uint16 _generation)
        public;

    function createSaleAuction(
        uint40 _cutieId,
        uint128 _startPrice,
        uint128 _endPrice,
        uint40 _duration
    )
    public;

    function getApproved(uint256 _tokenId) external returns (address);
    function totalSupply() view external returns (uint256);
    function createPromoCutie(uint256 _genes, address _owner) external;
    function checkOwnerAndApprove(address _claimant, uint40 _cutieId, address _pluginsContract) external view;
    function breedWith(uint40 _momId, uint40 _dadId) public payable returns (uint40);
    function getBreedingFee(uint40 _momId, uint40 _dadId) public view returns (uint256);
    function restoreCutieToAddress(uint40 _cutieId, address _recipient) external;
    function createGen0Auction(uint256 _genes, uint128 startPrice, uint128 endPrice, uint40 duration) external;
    function createGen0AuctionWithTokens(uint256 _genes, uint128 startPrice, uint128 endPrice, uint40 duration, address[] allowedTokens) external;
    function createPromoCutieWithGeneration(uint256 _genes, address _owner, uint16 _generation) external;
    function createPromoCutieBulk(uint256[] _genes, address _owner, uint16 _generation) external;
}

pragma solidity ^0.4.23;


pragma solidity ^0.4.23;

contract Operators
{
    mapping (address=>bool) ownerAddress;
    mapping (address=>bool) operatorAddress;

    constructor() public
    {
        ownerAddress[msg.sender] = true;
    }

    modifier onlyOwner()
    {
        require(ownerAddress[msg.sender]);
        _;
    }

    function isOwner(address _addr) public view returns (bool) {
        return ownerAddress[_addr];
    }

    function addOwner(address _newOwner) external onlyOwner {
        require(_newOwner != address(0));

        ownerAddress[_newOwner] = true;
    }

    function removeOwner(address _oldOwner) external onlyOwner {
        delete(ownerAddress[_oldOwner]);
    }

    modifier onlyOperator() {
        require(isOperator(msg.sender));
        _;
    }

    function isOperator(address _addr) public view returns (bool) {
        return operatorAddress[_addr] || ownerAddress[_addr];
    }

    function addOperator(address _newOperator) external onlyOwner {
        require(_newOperator != address(0));

        operatorAddress[_newOperator] = true;
    }

    function removeOperator(address _oldOperator) external onlyOwner {
        delete(operatorAddress[_oldOperator]);
    }
}



/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract PausableOperators is Operators {
    event Pause();
    event Unpause();

    bool public paused = false;


    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() onlyOwner whenNotPaused public {
        paused = true;
        emit Pause();
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() onlyOwner whenPaused public {
        paused = false;
        emit Unpause();
    }
}


/// @author https://BlockChainArchitect.iocontract Bank is CutiePluginBase
contract CutiePluginBase is PluginInterface, PausableOperators
{
    function isPluginInterface() public pure returns (bool)
    {
        return true;
    }

    // Reference to contract tracking NFT ownership
    CutieCoreInterface public coreContract;
    address public pluginsContract;

    // @dev Throws if called by any account other than the owner.
    modifier onlyCore() {
        require(msg.sender == address(coreContract));
        _;
    }

    modifier onlyPlugins() {
        require(msg.sender == pluginsContract);
        _;
    }

    /// @dev Constructor creates a reference to the NFT ownership contract
    ///  and verifies the owner cut is in the valid range.
    /// @param _coreAddress - address of a deployed contract implementing
    ///  the Nonfungible Interface.
    function setup(address _coreAddress, address _pluginsContract) public onlyOwner {
        CutieCoreInterface candidateContract = CutieCoreInterface(_coreAddress);
        require(candidateContract.isCutieCore());
        coreContract = candidateContract;

        pluginsContract = _pluginsContract;
    }

    /// @dev Returns true if the claimant owns the token.
    /// @param _claimant - Address claiming to own the token.
    /// @param _cutieId - ID of token whose ownership to verify.
    function _isOwner(address _claimant, uint40 _cutieId) internal view returns (bool) {
        return (coreContract.ownerOf(_cutieId) == _claimant);
    }

    /// @dev Escrows the NFT, assigning ownership to this contract.
    /// Throws if the escrow fails.
    /// @param _owner - Current owner address of token to escrow.
    /// @param _cutieId - ID of token whose approval to verify.
    function _escrow(address _owner, uint40 _cutieId) internal {
        // it will throw if transfer fails
        coreContract.transferFrom(_owner, this, _cutieId);
    }

    /// @dev Transfers an NFT owned by this contract to another address.
    /// Returns true if the transfer succeeds.
    /// @param _receiver - Address to transfer NFT to.
    /// @param _cutieId - ID of token to transfer.
    function _transfer(address _receiver, uint40 _cutieId) internal {
        // it will throw if transfer fails
        coreContract.transfer(_receiver, _cutieId);
    }

    function withdraw() external
    {
        require(
            isOwner(msg.sender) ||
            msg.sender == address(coreContract)
        );
        _withdraw();
    }

    function _withdraw() internal
    {
        if (address(this).balance > 0)
        {
            address(coreContract).transfer(address(this).balance);
        }
    }

    function onRemove() public onlyPlugins
    {
        _withdraw();
    }

    function run(uint40, uint256, address) public payable onlyCore
    {
        revert();
    }

    function runSigned(uint40, uint256, address) external payable onlyCore
    {
        revert();
    }
}


/// @dev Receives payments for payd features from players for Blockchain Cuties
/// @author https://BlockChainArchitect.io
contract CutieGenerator is CutiePluginBase
{
    uint40[] public parents;
    uint public parentIndex;
    CutieCoreInterface public proxy;

    function setupGenerator(CutieCoreInterface _proxy, uint40 _parent1, uint40 _parent2) external onlyOwner
    {
        addParent(_parent1);
        addParent(_parent2);
        proxy = _proxy;
    }

    function generateSingle(uint _genome, uint16 _generation, address _target) external onlyOperator returns (uint40 babyId)
    {
        return _generate(_genome, _generation, _target);
    }

    function generate(uint _genome, uint16 _generation, address[] _target) external onlyOperator
    {
        for (uint i = 0; i < _target.length; i++)
        {
            _generate(_genome, _generation, _target[i]);
        }
    }

    function _generate(uint _genome, uint16 _generation, address _target) internal returns (uint40 babyId)
    {
        if (_generation == 0)
        {
            return _generatePromo(_genome, _target);
        }
        else
        {
            return uint40(_generateBreed(_genome, _generation, _target));
        }
    }

    function _generatePromo(uint _genome, address _target) internal returns (uint40 babyId)
    {
        proxy.createPromoCutie(_genome, _target);
        return uint40(coreContract.totalSupply());
    }

    function addParent(uint40 _newParent) public
    {
        parents.push(_newParent);
    }

    function _getNextParent() internal returns (uint40 parent)
    {
        parent = parents[parentIndex];
        parentIndex++;
        if (parentIndex >= parents.length)
        {
            parentIndex = 0;
        }
    }

    function _generateBreed(uint _genome, uint16 _generation, address _target) internal returns (uint40 babyId)
    {
        uint40 momId = _getNextParent();
        uint40 dadId = _getNextParent();

        coreContract.changeCooldownEndTime(momId, 0);
        coreContract.changeCooldownEndTime(dadId, 0);
        coreContract.changeCooldownIndex(momId, 0);
        coreContract.changeCooldownIndex(dadId, 0);

        babyId = coreContract.breedWith(momId, dadId);

        coreContract.changeCooldownIndex(babyId, _generation);
        coreContract.changeGeneration(babyId, _generation);

        coreContract.changeGenes(babyId, _genome);

        coreContract.transfer(_target, babyId);

        return babyId;
    }

    function recoverCutie(uint40 _cutieId) external onlyOwner
    {
        coreContract.transfer(msg.sender, _cutieId);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"onRemove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_oldOwner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_proxy","type":"address"},{"name":"_parent1","type":"uint40"},{"name":"_parent2","type":"uint40"}],"name":"setupGenerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_coreAddress","type":"address"},{"name":"_pluginsContract","type":"address"}],"name":"setup","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isOperator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_genome","type":"uint256"},{"name":"_generation","type":"uint16"},{"name":"_target","type":"address"}],"name":"generateSingle","outputs":[{"name":"babyId","type":"uint40"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"parentIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"parents","outputs":[{"name":"","type":"uint40"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"recoverCutie","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isPluginInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"","type":"uint40"},{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"runSigned","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"pluginsContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOperator","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"uint40"},{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"run","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_oldOperator","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_genome","type":"uint256"},{"name":"_generation","type":"uint16"},{"name":"_target","type":"address[]"}],"name":"generate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newParent","type":"uint40"}],"name":"addParent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"coreContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]

608060409081526002805460ff19908116909155336000908152602081905291909120805490911660011790556111b78061003b6000396000f30060806040526004361061012f5763ffffffff60e060020a600035041663119523698114610134578063173825d91461014b5780631b5cb0661461016c5780632d34ba791461019d5780632f54bf6e146101c45780633ccfd60b146101f95780633f4ba83a1461020e5780635c975abb146102235780636d70f7ae146102385780637065cb48146102595780637895fe981461027a5780637948690a146102bf5780638456cb59146102e6578063898572a6146102fb578063940bb2171461031357806394a89233146103325780639652713e14610347578063976ef75b146103685780639870d7fe14610399578063a055d45514610347578063ac8a584a146103ba578063bb620e3c146103db578063d116f54914610407578063e80db5db14610426578063ec5568891461043b575b600080fd5b34801561014057600080fd5b50610149610450565b005b34801561015757600080fd5b50610149600160a060020a0360043516610471565b34801561017857600080fd5b50610149600160a060020a036004351664ffffffffff602435811690604435166104b0565b3480156101a957600080fd5b50610149600160a060020a0360043581169060243516610511565b3480156101d057600080fd5b506101e5600160a060020a03600435166105fd565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061014961061b565b34801561021a57600080fd5b50610149610649565b34801561022f57600080fd5b506101e56106ad565b34801561024457600080fd5b506101e5600160a060020a03600435166106b6565b34801561026557600080fd5b50610149600160a060020a03600435166106fb565b34801561028657600080fd5b506102a560043561ffff60243516600160a060020a0360443516610752565b6040805164ffffffffff9092168252519081900360200190f35b3480156102cb57600080fd5b506102d461077d565b60408051918252519081900360200190f35b3480156102f257600080fd5b50610149610783565b34801561030757600080fd5b506102a56004356107e9565b34801561031f57600080fd5b5061014964ffffffffff60043516610822565b34801561033e57600080fd5b506101e56108d1565b61014964ffffffffff60043516602435600160a060020a03604435166108d7565b34801561037457600080fd5b5061037d6108f3565b60408051600160a060020a039092168252519081900360200190f35b3480156103a557600080fd5b50610149600160a060020a0360043516610902565b3480156103c657600080fd5b50610149600160a060020a036004351661095c565b3480156103e757600080fd5b5061014960048035906024803561ffff169160443591820191013561099b565b34801561041357600080fd5b5061014964ffffffffff600435166109ec565b34801561043257600080fd5b5061037d610a4d565b34801561044757600080fd5b5061037d610a61565b600354600160a060020a0316331461046757600080fd5b61046f610a70565b565b3360009081526020819052604090205460ff16151561048f57600080fd5b600160a060020a03166000908152602081905260409020805460ff19169055565b3360009081526020819052604090205460ff1615156104ce57600080fd5b6104d7826109ec565b6104e0816109ec565b50506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b3360009081526020819052604081205460ff16151561052f57600080fd5b82905080600160a060020a0316634d6a813a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561057057600080fd5b505af1158015610584573d6000803e3d6000fd5b505050506040513d602081101561059a57600080fd5b505115156105a757600080fd5b6002805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03938416021790556003805473ffffffffffffffffffffffffffffffffffffffff19169290911691909117905550565b600160a060020a031660009081526020819052604090205460ff1690565b610624336105fd565b8061063e57506002546101009004600160a060020a031633145b151561046757600080fd5b3360009081526020819052604090205460ff16151561066757600080fd5b60025460ff16151561067857600080fd5b6002805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60025460ff1681565b600160a060020a03811660009081526001602052604081205460ff16806106f55750600160a060020a03821660009081526020819052604090205460ff165b92915050565b3360009081526020819052604090205460ff16151561071957600080fd5b600160a060020a038116151561072e57600080fd5b600160a060020a03166000908152602081905260409020805460ff19166001179055565b600061075d336106b6565b151561076857600080fd5b610773848484610abe565b90505b9392505050565b60055481565b3360009081526020819052604090205460ff1615156107a157600080fd5b60025460ff16156107b157600080fd5b6002805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b60048054829081106107f757fe5b9060005260206000209060069182820401919006600502915054906101000a900464ffffffffff1681565b3360009081526020819052604090205460ff16151561084057600080fd5b600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015264ffffffffff841660248201529051610100909204600160a060020a03169163a9059cbb9160448082019260009290919082900301818387803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b5050505050565b60015b90565b6002546101009004600160a060020a0316331461012f57600080fd5b600354600160a060020a031681565b3360009081526020819052604090205460ff16151561092057600080fd5b600160a060020a038116151561093557600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16151561097a57600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b60006109a6336106b6565b15156109b157600080fd5b5060005b818110156108ca576109e385858585858181106109ce57fe5b90506020020135600160a060020a0316610abe565b506001016109b5565b6004805460018101825560009190915260068082047f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805464ffffffffff948516600593909406929092026101000a928302939092021916919091179055565b6002546101009004600160a060020a031681565b600654600160a060020a031681565b60003031111561046f57600254604051600160a060020a036101009092049190911690303180156108fc02916000818181858888f19350505050158015610abb573d6000803e3d6000fd5b50565b600061ffff83161515610adc57610ad58483610ae7565b9050610776565b610ad5848484610bf6565b600654604080517f210fcbf600000000000000000000000000000000000000000000000000000000815260048101859052600160a060020a0384811660248301529151600093929092169163210fcbf691604480820192869290919082900301818387803b158015610b5857600080fd5b505af1158015610b6c573d6000803e3d6000fd5b50505050600260019054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050506040513d6020811015610bed57600080fd5b50519392505050565b6000806000610c03611137565b9150610c0d611137565b600254604080517fc479142100000000000000000000000000000000000000000000000000000000815264ffffffffff861660048201526000602482018190529151939450610100909204600160a060020a03169263c479142192604480820193929182900301818387803b158015610c8557600080fd5b505af1158015610c99573d6000803e3d6000fd5b5050600254604080517fc479142100000000000000000000000000000000000000000000000000000000815264ffffffffff861660048201526000602482018190529151610100909304600160a060020a0316945063c479142193506044808201939182900301818387803b158015610d1157600080fd5b505af1158015610d25573d6000803e3d6000fd5b5050600254604080517fcf7e69f800000000000000000000000000000000000000000000000000000000815264ffffffffff871660048201526000602482018190529151610100909304600160a060020a0316945063cf7e69f893506044808201939182900301818387803b158015610d9d57600080fd5b505af1158015610db1573d6000803e3d6000fd5b5050600254604080517fcf7e69f800000000000000000000000000000000000000000000000000000000815264ffffffffff861660048201526000602482018190529151610100909304600160a060020a0316945063cf7e69f893506044808201939182900301818387803b158015610e2957600080fd5b505af1158015610e3d573d6000803e3d6000fd5b5050600254604080517fc30bc5ef00000000000000000000000000000000000000000000000000000000815264ffffffffff8781166004830152861660248201529051610100909204600160a060020a0316935063c30bc5ef92506044808201926020929091908290030181600087803b158015610eba57600080fd5b505af1158015610ece573d6000803e3d6000fd5b505050506040513d6020811015610ee457600080fd5b5051600254604080517fcf7e69f800000000000000000000000000000000000000000000000000000000815264ffffffffff8416600482015261ffff891660248201529051929550610100909104600160a060020a03169163cf7e69f89160448082019260009290919082900301818387803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b5050600254604080517f5a3f88f000000000000000000000000000000000000000000000000000000000815264ffffffffff8816600482015261ffff8a1660248201529051610100909204600160a060020a03169350635a3f88f0925060448082019260009290919082900301818387803b158015610ff557600080fd5b505af1158015611009573d6000803e3d6000fd5b5050600254604080517fe1af915d00000000000000000000000000000000000000000000000000000000815264ffffffffff88166004820152602481018b90529051610100909204600160a060020a0316935063e1af915d925060448082019260009290919082900301818387803b15801561108457600080fd5b505af1158015611098573d6000803e3d6000fd5b5050600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015264ffffffffff891660248301529151610100909304909116935063a9059cbb925060448082019260009290919082900301818387803b15801561111657600080fd5b505af115801561112a573d6000803e3d6000fd5b5050505050509392505050565b6000600460055481548110151561114a57fe5b600091825260209091206006808304909101546005805460010180825560045493909406026101000a900464ffffffffff169250116108d4576000600555905600a165627a7a723058201892ca6086d903417a540c8d70dec9a86ca9f2719685a899368f7afb5d51296a0029

Deployed Bytecode

0x60806040526004361061012f5763ffffffff60e060020a600035041663119523698114610134578063173825d91461014b5780631b5cb0661461016c5780632d34ba791461019d5780632f54bf6e146101c45780633ccfd60b146101f95780633f4ba83a1461020e5780635c975abb146102235780636d70f7ae146102385780637065cb48146102595780637895fe981461027a5780637948690a146102bf5780638456cb59146102e6578063898572a6146102fb578063940bb2171461031357806394a89233146103325780639652713e14610347578063976ef75b146103685780639870d7fe14610399578063a055d45514610347578063ac8a584a146103ba578063bb620e3c146103db578063d116f54914610407578063e80db5db14610426578063ec5568891461043b575b600080fd5b34801561014057600080fd5b50610149610450565b005b34801561015757600080fd5b50610149600160a060020a0360043516610471565b34801561017857600080fd5b50610149600160a060020a036004351664ffffffffff602435811690604435166104b0565b3480156101a957600080fd5b50610149600160a060020a0360043581169060243516610511565b3480156101d057600080fd5b506101e5600160a060020a03600435166105fd565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061014961061b565b34801561021a57600080fd5b50610149610649565b34801561022f57600080fd5b506101e56106ad565b34801561024457600080fd5b506101e5600160a060020a03600435166106b6565b34801561026557600080fd5b50610149600160a060020a03600435166106fb565b34801561028657600080fd5b506102a560043561ffff60243516600160a060020a0360443516610752565b6040805164ffffffffff9092168252519081900360200190f35b3480156102cb57600080fd5b506102d461077d565b60408051918252519081900360200190f35b3480156102f257600080fd5b50610149610783565b34801561030757600080fd5b506102a56004356107e9565b34801561031f57600080fd5b5061014964ffffffffff60043516610822565b34801561033e57600080fd5b506101e56108d1565b61014964ffffffffff60043516602435600160a060020a03604435166108d7565b34801561037457600080fd5b5061037d6108f3565b60408051600160a060020a039092168252519081900360200190f35b3480156103a557600080fd5b50610149600160a060020a0360043516610902565b3480156103c657600080fd5b50610149600160a060020a036004351661095c565b3480156103e757600080fd5b5061014960048035906024803561ffff169160443591820191013561099b565b34801561041357600080fd5b5061014964ffffffffff600435166109ec565b34801561043257600080fd5b5061037d610a4d565b34801561044757600080fd5b5061037d610a61565b600354600160a060020a0316331461046757600080fd5b61046f610a70565b565b3360009081526020819052604090205460ff16151561048f57600080fd5b600160a060020a03166000908152602081905260409020805460ff19169055565b3360009081526020819052604090205460ff1615156104ce57600080fd5b6104d7826109ec565b6104e0816109ec565b50506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b3360009081526020819052604081205460ff16151561052f57600080fd5b82905080600160a060020a0316634d6a813a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561057057600080fd5b505af1158015610584573d6000803e3d6000fd5b505050506040513d602081101561059a57600080fd5b505115156105a757600080fd5b6002805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03938416021790556003805473ffffffffffffffffffffffffffffffffffffffff19169290911691909117905550565b600160a060020a031660009081526020819052604090205460ff1690565b610624336105fd565b8061063e57506002546101009004600160a060020a031633145b151561046757600080fd5b3360009081526020819052604090205460ff16151561066757600080fd5b60025460ff16151561067857600080fd5b6002805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60025460ff1681565b600160a060020a03811660009081526001602052604081205460ff16806106f55750600160a060020a03821660009081526020819052604090205460ff165b92915050565b3360009081526020819052604090205460ff16151561071957600080fd5b600160a060020a038116151561072e57600080fd5b600160a060020a03166000908152602081905260409020805460ff19166001179055565b600061075d336106b6565b151561076857600080fd5b610773848484610abe565b90505b9392505050565b60055481565b3360009081526020819052604090205460ff1615156107a157600080fd5b60025460ff16156107b157600080fd5b6002805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b60048054829081106107f757fe5b9060005260206000209060069182820401919006600502915054906101000a900464ffffffffff1681565b3360009081526020819052604090205460ff16151561084057600080fd5b600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015264ffffffffff841660248201529051610100909204600160a060020a03169163a9059cbb9160448082019260009290919082900301818387803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b5050505050565b60015b90565b6002546101009004600160a060020a0316331461012f57600080fd5b600354600160a060020a031681565b3360009081526020819052604090205460ff16151561092057600080fd5b600160a060020a038116151561093557600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16151561097a57600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b60006109a6336106b6565b15156109b157600080fd5b5060005b818110156108ca576109e385858585858181106109ce57fe5b90506020020135600160a060020a0316610abe565b506001016109b5565b6004805460018101825560009190915260068082047f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805464ffffffffff948516600593909406929092026101000a928302939092021916919091179055565b6002546101009004600160a060020a031681565b600654600160a060020a031681565b60003031111561046f57600254604051600160a060020a036101009092049190911690303180156108fc02916000818181858888f19350505050158015610abb573d6000803e3d6000fd5b50565b600061ffff83161515610adc57610ad58483610ae7565b9050610776565b610ad5848484610bf6565b600654604080517f210fcbf600000000000000000000000000000000000000000000000000000000815260048101859052600160a060020a0384811660248301529151600093929092169163210fcbf691604480820192869290919082900301818387803b158015610b5857600080fd5b505af1158015610b6c573d6000803e3d6000fd5b50505050600260019054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050506040513d6020811015610bed57600080fd5b50519392505050565b6000806000610c03611137565b9150610c0d611137565b600254604080517fc479142100000000000000000000000000000000000000000000000000000000815264ffffffffff861660048201526000602482018190529151939450610100909204600160a060020a03169263c479142192604480820193929182900301818387803b158015610c8557600080fd5b505af1158015610c99573d6000803e3d6000fd5b5050600254604080517fc479142100000000000000000000000000000000000000000000000000000000815264ffffffffff861660048201526000602482018190529151610100909304600160a060020a0316945063c479142193506044808201939182900301818387803b158015610d1157600080fd5b505af1158015610d25573d6000803e3d6000fd5b5050600254604080517fcf7e69f800000000000000000000000000000000000000000000000000000000815264ffffffffff871660048201526000602482018190529151610100909304600160a060020a0316945063cf7e69f893506044808201939182900301818387803b158015610d9d57600080fd5b505af1158015610db1573d6000803e3d6000fd5b5050600254604080517fcf7e69f800000000000000000000000000000000000000000000000000000000815264ffffffffff861660048201526000602482018190529151610100909304600160a060020a0316945063cf7e69f893506044808201939182900301818387803b158015610e2957600080fd5b505af1158015610e3d573d6000803e3d6000fd5b5050600254604080517fc30bc5ef00000000000000000000000000000000000000000000000000000000815264ffffffffff8781166004830152861660248201529051610100909204600160a060020a0316935063c30bc5ef92506044808201926020929091908290030181600087803b158015610eba57600080fd5b505af1158015610ece573d6000803e3d6000fd5b505050506040513d6020811015610ee457600080fd5b5051600254604080517fcf7e69f800000000000000000000000000000000000000000000000000000000815264ffffffffff8416600482015261ffff891660248201529051929550610100909104600160a060020a03169163cf7e69f89160448082019260009290919082900301818387803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b5050600254604080517f5a3f88f000000000000000000000000000000000000000000000000000000000815264ffffffffff8816600482015261ffff8a1660248201529051610100909204600160a060020a03169350635a3f88f0925060448082019260009290919082900301818387803b158015610ff557600080fd5b505af1158015611009573d6000803e3d6000fd5b5050600254604080517fe1af915d00000000000000000000000000000000000000000000000000000000815264ffffffffff88166004820152602481018b90529051610100909204600160a060020a0316935063e1af915d925060448082019260009290919082900301818387803b15801561108457600080fd5b505af1158015611098573d6000803e3d6000fd5b5050600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015264ffffffffff891660248301529151610100909304909116935063a9059cbb925060448082019260009290919082900301818387803b15801561111657600080fd5b505af115801561112a573d6000803e3d6000fd5b5050505050509392505050565b6000600460055481548110151561114a57fe5b600091825260209091206006808304909101546005805460010180825560045493909406026101000a900464ffffffffff169250116108d4576000600555905600a165627a7a723058201892ca6086d903417a540c8d70dec9a86ca9f2719685a899368f7afb5d51296a0029

Deployed Bytecode Sourcemap

12845:2576:0:-;;;;;;;;;-1:-1:-1;;;12845:2576:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12423:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12423:74:0;;;;;;7999:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7999:109:0;-1:-1:-1;;;;;7999:109:0;;;;;12996:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12996:202:0;-1:-1:-1;;;;;12996:202:0;;;;;;;;;;;;;;10562:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10562:311:0;-1:-1:-1;;;;;10562:311:0;;;;;;;;;;7729:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7729:104:0;-1:-1:-1;;;;;7729:104:0;;;;;;;;;;;;;;;;;;;;;;;12055:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12055:179:0;;;;9547:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9547:105:0;;;;8864:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8864:26:0;;;;8210:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8210:133:0;-1:-1:-1;;;;;8210:133:0;;;;;7841:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7841:150:0;-1:-1:-1;;;;;7841:150:0;;;;;13206:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13206:192:0;;;;;;;-1:-1:-1;;;;;13206:192:0;;;;;;;;;;;;;;;;;;;;;;;;12926:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12926:23:0;;;;;;;;;;;;;;;;;;;;9349:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9349:103:0;;;;12896:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12896:23:0;;;;;15293:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15293:125:0;;;;;;;9808:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9808:91:0;;;;12608:103;;;;;;;;-1:-1:-1;;;;;12608:103:0;;;;;10005:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10005:30:0;;;;;;;;-1:-1:-1;;;;;10005:30:0;;;;;;;;;;;;;;8351:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8351:165:0;-1:-1:-1;;;;;8351:165:0;;;;;8524:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8524:121:0;-1:-1:-1;;;;;8524:121:0;;;;;13406:237;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13406:237:0;;;;;;;;;;;;;;;;;;;;;14205:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14205:93:0;;;;;;;9960:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9960:38:0;;;;12956:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12956:31:0;;;;12423:74;10270:15;;-1:-1:-1;;;;;10270:15:0;10256:10;:29;10248:38;;;;;;12478:11;:9;:11::i;:::-;12423:74::o;7999:109::-;7689:10;7676:12;:24;;;;;;;;;;;;;7668:33;;;;;;;;-1:-1:-1;;;;;8076:23:0;:12;:23;;;;;;;;;;8069:31;;-1:-1:-1;;8069:31:0;;;7999:109::o;12996:202::-;7689:10;7676:12;:24;;;;;;;;;;;;;7668:33;;;;;;;;13116:19;13126:8;13116:9;:19::i;:::-;13146;13156:8;13146:9;:19::i;:::-;-1:-1:-1;;13176:5:0;:14;;-1:-1:-1;;13176:14:0;-1:-1:-1;;;;;13176:14:0;;;;;;;;;;12996:202::o;10562:311::-;7689:10;10653:36;7676:24;;;;;;;;;;;;;7668:33;;;;;;;;10711:12;10653:71;;10743:17;-1:-1:-1;;;;;10743:29:0;;:31;;;;;-1:-1:-1;;;10743:31:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10743:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10743:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10743:31:0;10735:40;;;;;;;;10786:12;:32;;-1:-1:-1;;10786:32:0;;-1:-1:-1;;;;;10786:32:0;;;;;;;10831:15;:34;;-1:-1:-1;;10831:34:0;;;;;;;;;;;-1:-1:-1;10562:311:0:o;7729:104::-;-1:-1:-1;;;;;7806:19:0;7782:4;7806:19;;;;;;;;;;;;;;7729:104::o;12055:179::-;12122:19;12130:10;12122:7;:19::i;:::-;:71;;;-1:-1:-1;12180:12:0;;;;;-1:-1:-1;;;;;12180:12:0;12158:10;:35;12122:71;12100:104;;;;;;;9547:105;7689:10;7676:12;:24;;;;;;;;;;;;;7668:33;;;;;;;;9230:6;;;;9222:15;;;;;;;;9605:6;:14;;-1:-1:-1;;9605:14:0;;;9635:9;;;;9614:5;;9635:9;9547:105::o;8864:26::-;;;;;;:::o;8210:133::-;-1:-1:-1;;;;;8290:22:0;;8266:4;8290:22;;;:15;:22;;;;;;;;;:45;;-1:-1:-1;;;;;;8316:19:0;;:12;:19;;;;;;;;;;;;;8290:45;8283:52;8210:133;-1:-1:-1;;8210:133:0:o;7841:150::-;7689:10;7676:12;:24;;;;;;;;;;;;;7668:33;;;;;;;;-1:-1:-1;;;;;7916:23:0;;;;7908:32;;;;;;-1:-1:-1;;;;;7953:23:0;:12;:23;;;;;;;;;;:30;;-1:-1:-1;;7953:30:0;7979:4;7953:30;;;7841:150::o;13206:192::-;13312:13;8159:22;8170:10;8159;:22::i;:::-;8151:31;;;;;;;;13350:40;13360:7;13369:11;13382:7;13350:9;:40::i;:::-;13343:47;;8193:1;13206:192;;;;;:::o;12926:23::-;;;;:::o;9349:103::-;7689:10;7676:12;:24;;;;;;;;;;;;;7668:33;;;;;;;;9052:6;;;;9051:7;9043:16;;;;;;9408:6;:13;;-1:-1:-1;;9408:13:0;9417:4;9408:13;;;9437:7;;;;9408:6;;9437:7;9349:103::o;12896:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15293:125::-;7689:10;7676:12;:24;;;;;;;;;;;;;7668:33;;;;;;;;15367:12;;:43;;;;;;15389:10;15367:43;;;;;;;;;;;;;:12;;;;-1:-1:-1;;;;;15367:12:0;;:21;;:43;;;;;-1:-1:-1;;15367:43:0;;;;;;;;-1:-1:-1;15367:12:0;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;15367:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15367:43:0;;;;15293:125;:::o;9808:91::-;9887:4;9808:91;;:::o;12608:103::-;10172:12;;;;;-1:-1:-1;;;;;10172:12:0;10150:10;:35;10142:44;;;;;10005:30;;;-1:-1:-1;;;;;10005:30:0;;:::o;8351:165::-;7689:10;7676:12;:24;;;;;;;;;;;;;7668:33;;;;;;;;-1:-1:-1;;;;;8432:26:0;;;;8424:35;;;;;;-1:-1:-1;;;;;8472:29:0;;;;;8504:4;8472:29;;;;;;;;:36;;-1:-1:-1;;8472:36:0;;;;;;8351:165::o;8524:121::-;7689:10;7676:12;:24;;;;;;;;;;;;;7668:33;;;;;;;;-1:-1:-1;;;;;8607:29:0;;;;;:15;:29;;;;;8600:37;;-1:-1:-1;;8600:37:0;;;8524:121::o;13406:237::-;13520:6;8159:22;8170:10;8159;:22::i;:::-;8151:31;;;;;;;;-1:-1:-1;13529:1:0;13515:121;13532:18;;;13515:121;;;13581:43;13591:7;13600:11;13613:7;;13621:1;13613:10;;;;;;;;;;;;;-1:-1:-1;;;;;13613:10:0;13581:9;:43::i;:::-;-1:-1:-1;13552:3:0;;13515:121;;14205:93;14266:7;27:10:-1;;39:1;23:18;;45:23;;-1:-1;14266:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14205:93::o;9960:38::-;;;;;;-1:-1:-1;;;;;9960:38:0;;:::o;12956:31::-;;;-1:-1:-1;;;;;12956:31:0;;:::o;12242:173::-;12316:1;12300:4;12292:21;:25;12288:120;;;12351:12;;12343:53;;-1:-1:-1;;;;;12351:12:0;;;;;;;;;12382:4;12374:21;12343:53;;;;;;;;;12374:21;12351:12;12343:53;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12343:53:0;12242:173::o;13651:334::-;13739:13;13774:16;;;;13770:208;;;13823:32;13838:7;13847;13823:14;:32::i;:::-;13816:39;;;;13770:208;13920:45;13935:7;13944:11;13957:7;13920:14;:45::i;13993:204::-;14097:5;;:40;;;;;;;;;;;;-1:-1:-1;;;;;14097:40:0;;;;;;;;;14066:13;;14097:5;;;;;:22;;:40;;;;;14066:13;;14097:40;;;;;;;;14066:13;14097:5;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;14097:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14097:40:0;;;;14162:12;;;;;;;;;-1:-1:-1;;;;;14162:12:0;-1:-1:-1;;;;;14162:24:0;;:26;;;;;-1:-1:-1;;;14162:26:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14162:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14162:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14162:26:0;;13993:204;-1:-1:-1;;;13993:204:0:o;14546:739::-;14639:13;14670:12;14712;14685:16;:14;:16::i;:::-;14670:31;;14727:16;:14;:16::i;:::-;14756:12;;:44;;;;;;;;;;;;;-1:-1:-1;14756:44:0;;;;;;;;14712:31;;-1:-1:-1;14756:12:0;;;;-1:-1:-1;;;;;14756:12:0;;:34;;:44;;;;;-1:-1:-1;14756:44:0;;;;;;-1:-1:-1;14756:12:0;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;14756:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14811:12:0;;:44;;;;;;;;;;;;;-1:-1:-1;14811:44:0;;;;;;;;:12;;;;-1:-1:-1;;;;;14811:12:0;;-1:-1:-1;14811:34:0;;-1:-1:-1;14811:44:0;;;;;;;;;;;-1:-1:-1;14811:12:0;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;14811:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14866:12:0;;:42;;;;;;;;;;;;;-1:-1:-1;14866:42:0;;;;;;;;:12;;;;-1:-1:-1;;;;;14866:12:0;;-1:-1:-1;14866:32:0;;-1:-1:-1;14866:42:0;;;;;;;;;;;-1:-1:-1;14866:12:0;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;14866:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14919:12:0;;:42;;;;;;;;;;;;;-1:-1:-1;14919:42:0;;;;;;;;:12;;;;-1:-1:-1;;;;;14919:12:0;;-1:-1:-1;14919:32:0;;-1:-1:-1;14919:42:0;;;;;;;;;;;-1:-1:-1;14919:12:0;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;14919:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14983:12:0;;:36;;;;;;;;;;;;;;;;;;;;;;:12;;;;-1:-1:-1;;;;;14983:12:0;;-1:-1:-1;14983:22:0;;-1:-1:-1;14983:36:0;;;;;;;;;;;;;;;-1:-1:-1;14983:12:0;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;14983:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14983:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14983:36:0;15032:12;;:53;;;;;;;;;;;;;;;;;;;;;;14983:36;;-1:-1:-1;15032:12:0;;;;-1:-1:-1;;;;;15032:12:0;;:32;;:53;;;;;-1:-1:-1;;15032:53:0;;;;;;;;-1:-1:-1;15032:12:0;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;15032:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15096:12:0;;:50;;;;;;;;;;;;;;;;;;;;;;:12;;;;-1:-1:-1;;;;;15096:12:0;;-1:-1:-1;15096:29:0;;-1:-1:-1;15096:50:0;;;;;-1:-1:-1;;15096:50:0;;;;;;;;-1:-1:-1;15096:12:0;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;15096:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15159:12:0;;:41;;;;;;;;;;;;;;;;;;;;;:12;;;;-1:-1:-1;;;;;15159:12:0;;-1:-1:-1;15159:24:0;;-1:-1:-1;15159:41:0;;;;;-1:-1:-1;;15159:41:0;;;;;;;;-1:-1:-1;15159:12:0;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;15159:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15213:12:0;;:38;;;;;;-1:-1:-1;;;;;15213:38:0;;;;;;;;;;;;;;;;:12;;;;;;;;-1:-1:-1;15213:21:0;;-1:-1:-1;15213:38:0;;;;;-1:-1:-1;;15213:38:0;;;;;;;;-1:-1:-1;15213:12:0;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;15213:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;14546:739:0;;;;;;;:::o;14306:232::-;14350:13;14390:7;14398:11;;14390:20;;;;;;;;;;;;;;;;;;;;;;;;;;;14421:13;;;;;;;14464:7;:14;14390:20;;;;;;;;;;;;-1:-1:-1;;14445:86:0;;14518:1;14504:11;:15;14306:232;:::o

Swarm Source

bzzr://1892ca6086d903417a540c8d70dec9a86ca9f2719685a899368f7afb5d51296a

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.