ETH Price: $3,135.93 (+1.79%)
Gas: 1 Gwei

Contract

0xf76550821b62702E95e181aEB77284cE70d4FE90
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Sell Shares188399162023-12-22 7:31:47204 days ago1703230307IN
0xf7655082...E70d4FE90
0 ETH0.0022380833.52279482
Sell Shares188399032023-12-22 7:28:59204 days ago1703230139IN
0xf7655082...E70d4FE90
0 ETH0.0020312734.16037922
Sell Shares188399002023-12-22 7:28:23204 days ago1703230103IN
0xf7655082...E70d4FE90
0 ETH0.0021780135.15030951
Set Subject Fee ...188398252023-12-22 7:13:23204 days ago1703229203IN
0xf7655082...E70d4FE90
0 ETH0.000877430.30957459
Sell Shares188397932023-12-22 7:06:59204 days ago1703228819IN
0xf7655082...E70d4FE90
0 ETH0.0018227430.65343539
Set Subject Fee ...188396922023-12-22 6:46:11204 days ago1703227571IN
0xf7655082...E70d4FE90
0 ETH0.0009612833.207132
Buy Shares185329972023-11-09 7:48:35247 days ago1699516115IN
0xf7655082...E70d4FE90
0.09497437 ETH0.0017075926.79469265
Buy Shares185329612023-11-09 7:41:23247 days ago1699515683IN
0xf7655082...E70d4FE90
0.08991 ETH0.0017642527.68373175
Buy Shares185329502023-11-09 7:39:11247 days ago1699515551IN
0xf7655082...E70d4FE90
0.08498437 ETH0.0018048628.32090455
Buy Shares185329422023-11-09 7:37:35247 days ago1699515455IN
0xf7655082...E70d4FE90
0.0801975 ETH0.0016787326.34179743
Buy Shares185272412023-11-08 12:29:11247 days ago1699446551IN
0xf7655082...E70d4FE90
3.87801562 ETH0.0021772526.12846543
Set Subject Fee ...185272012023-11-08 12:21:11247 days ago1699446071IN
0xf7655082...E70d4FE90
0 ETH0.0009387928.0194762
Set Subject Fee ...185271962023-11-08 12:20:11247 days ago1699446011IN
0xf7655082...E70d4FE90
0 ETH0.0009048427.00621896
Buy Shares185191852023-11-07 9:29:11248 days ago1699349351IN
0xf7655082...E70d4FE90
0.82701875 ETH0.0015026222.68832288
Sell Shares184707092023-10-31 14:29:23255 days ago1698762563IN
0xf7655082...E70d4FE90
0 ETH0.0016790323.66072974
Buy Shares184511542023-10-28 20:44:11258 days ago1698525851IN
0xf7655082...E70d4FE90
0.03065125 ETH0.0011498513.79895808
Buy Shares184511502023-10-28 20:43:23258 days ago1698525803IN
0xf7655082...E70d4FE90
0.02767187 ETH0.0008773313.76668957
First Share184511482023-10-28 20:42:59258 days ago1698525779IN
0xf7655082...E70d4FE90
0 ETH0.0016516414.2199355
Transfer Share184442712023-10-27 21:37:11259 days ago1698442631IN
0xf7655082...E70d4FE90
0 ETH0.0008536916.29593331
Transfer Share184442482023-10-27 21:32:35259 days ago1698442355IN
0xf7655082...E70d4FE90
0 ETH0.0011230618.28263073
Buy Shares184442092023-10-27 21:24:47259 days ago1698441887IN
0xf7655082...E70d4FE90
0.02719062 ETH0.0019341721.79863801
First Share184442042023-10-27 21:23:47259 days ago1698441827IN
0xf7655082...E70d4FE90
0 ETH0.0026815623.08946023
0x60806040184323282023-10-26 5:32:11261 days ago1698298331IN
 Create: HiMarket
0 ETH0.0243005917.42019654

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
188399162023-12-22 7:31:47204 days ago1703230307
0xf7655082...E70d4FE90
0.12632812 ETH
188399162023-12-22 7:31:47204 days ago1703230307
0xf7655082...E70d4FE90
2.40023437 ETH
188399032023-12-22 7:28:59204 days ago1703230139
0xf7655082...E70d4FE90
0.05173437 ETH
188399032023-12-22 7:28:59204 days ago1703230139
0xf7655082...E70d4FE90
0.98295312 ETH
188399002023-12-22 7:28:23204 days ago1703230103
0xf7655082...E70d4FE90
0.0215625 ETH
188399002023-12-22 7:28:23204 days ago1703230103
0xf7655082...E70d4FE90
0.4096875 ETH
188397932023-12-22 7:06:59204 days ago1703228819
0xf7655082...E70d4FE90
0.03326562 ETH
188397932023-12-22 7:06:59204 days ago1703228819
0xf7655082...E70d4FE90
0.63204687 ETH
185329972023-11-09 7:48:35247 days ago1699516115
0xf7655082...E70d4FE90
0.006845 ETH
185329972023-11-09 7:48:35247 days ago1699516115
0xf7655082...E70d4FE90
0.00256687 ETH
185329612023-11-09 7:41:23247 days ago1699515683
0xf7655082...E70d4FE90
0.00648 ETH
185329612023-11-09 7:41:23247 days ago1699515683
0xf7655082...E70d4FE90
0.00243 ETH
185329502023-11-09 7:39:11247 days ago1699515551
0xf7655082...E70d4FE90
0.006125 ETH
185329502023-11-09 7:39:11247 days ago1699515551
0xf7655082...E70d4FE90
0.00229687 ETH
185329422023-11-09 7:37:35247 days ago1699515455
0xf7655082...E70d4FE90
0.00578 ETH
185329422023-11-09 7:37:35247 days ago1699515455
0xf7655082...E70d4FE90
0.0021675 ETH
185272412023-11-08 12:29:11247 days ago1699446551
0xf7655082...E70d4FE90
0.284625 ETH
185272412023-11-08 12:29:11247 days ago1699446551
0xf7655082...E70d4FE90
0.03557812 ETH
185191852023-11-07 9:29:11248 days ago1699349351
0xf7655082...E70d4FE90
0.0731875 ETH
185191852023-11-07 9:29:11248 days ago1699349351
0xf7655082...E70d4FE90
0.02195625 ETH
184707092023-10-31 14:29:23255 days ago1698762563
0xf7655082...E70d4FE90
0.0028875 ETH
184707092023-10-31 14:29:23255 days ago1698762563
0xf7655082...E70d4FE90
0.00020625 ETH
184707092023-10-31 14:29:23255 days ago1698762563
0xf7655082...E70d4FE90
0.01753125 ETH
184511542023-10-28 20:44:11258 days ago1698525851
0xf7655082...E70d4FE90
0.0027125 ETH
184511542023-10-28 20:44:11258 days ago1698525851
0xf7655082...E70d4FE90
0.00081375 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HiMarket

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-10-26
*/

// SPDX-License-Identifier: MIT

// File: contracts/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// File: contracts/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}



pragma solidity >=0.8.2 <0.9.0;

contract HiMarket is Ownable {
    address public protocolFeeDestination = 0xd45DCFa9b6136C24c80578B50Ff793E374F3F427;
    address public protocolFeeDestination2 = 0x8a8Cf648e6A7325AaE25bEfD04FF2a2cb29B0A16;
    uint256 public protocolFeePercentBuy = 50000000000000000;
    uint256 public protocolFeePercentSell = 50000000000000000;
    mapping(address => uint256) public subjectFeePercent;
    mapping(address => uint256) public holderFeePercent;
    uint256 public subjectFeeMax = 100000000000000000;
    mapping(address => mapping(address => uint256)) public sharesBalance;
    mapping(address => uint256) public sharesSupply;

    event Transfer(address trader,address subject, address from, uint256 isBuy, uint256 shareAmount, uint256 ethAmount, uint256 subjectEthAmount, uint256 supply , uint256 holderFee);

    //SET
    function setFeeDestination(address _feeDestination, address _feeDestination2) public onlyOwner {
        protocolFeeDestination = _feeDestination;
        protocolFeeDestination2 = _feeDestination2;
    }

    function setProtocolFeePercent(uint256 _feePercentBuy,uint256 _feePercentSell) public onlyOwner {
        protocolFeePercentBuy = _feePercentBuy;
        protocolFeePercentSell = _feePercentSell;
    }

    function setSubjectFeePercentMax(uint256 _feePercent) public onlyOwner {
        subjectFeeMax = _feePercent;

    }

    function setSubjectFeePercent(uint256 _feePercent, uint256 _feeHolderPercent) public {
        require(sharesSupply[msg.sender] > 0,"No own");
        require(_feePercent + _feeHolderPercent<=subjectFeeMax, "Max Fee Error");
        subjectFeePercent[msg.sender]=_feePercent;
        holderFeePercent[msg.sender]=_feeHolderPercent;
    }

    
    function firstShare(uint256 subjectFee_, uint256 holderFee_) public payable {
    require(subjectFee_+holderFee_<=subjectFeeMax, "Max Fee Error");
    require(sharesSupply[msg.sender]==0,"You already have an account subject");
    sharesBalance[msg.sender][msg.sender] = 1;
    sharesSupply[msg.sender]=1;
    subjectFeePercent[msg.sender]=subjectFee_;
    holderFeePercent[msg.sender]=holderFee_;
    emit Transfer(msg.sender, msg.sender, 0x0000000000000000000000000000000000000000, 1, 1, 0, 0, 1, 0);
    }

    function transferShare(address shareAddress, uint256 amount, address to) public {
        require(sharesBalance[shareAddress][msg.sender]>=amount);
        if (to==0x0000000000000000000000000000000000000000) {
            (bool success, ) = protocolFeeDestination.call{value: getPrice(sharesBalance[shareAddress][0x0000000000000000000000000000000000000000],amount)}("");
            require(success, "Unable to send funds"); 
        }
        sharesBalance[shareAddress][msg.sender] = sharesBalance[shareAddress][msg.sender] - amount;
        sharesBalance[shareAddress][to] = sharesBalance[shareAddress][to] + amount;
        emit Transfer(msg.sender, shareAddress, to, 3, amount, 0, 0, sharesSupply[shareAddress], 0);
    }
     

    //GET
    function getPrice(uint256 supply, uint256 amount) public pure returns (uint256) {
        uint256 sum1 = supply == 0 ? 0 : (supply - 1 )* (supply) * (2 * (supply - 1) + 1) / 6;
        uint256 sum2 = supply == 0 && amount == 1 ? 0 : (supply - 1 + amount) * (supply + amount) * (2 * (supply - 1 + amount) + 1) / 6;
        uint256 summation = sum2 - sum1;
        return summation * 1 ether / 16000;
    }

    function getBuyPrice(address shareAddress, uint256 amount) public view returns (uint256) {
        return getPrice(sharesSupply[shareAddress], amount);
    }

    function getSellPrice(address shareAddress, uint256 amount) public view returns (uint256) {
        return getPrice(sharesSupply[shareAddress] - amount, amount);
    }

    function getBuyPriceAfterFee(address shareAddress, uint256 amount) public view returns (uint256) {
        uint256 price = getBuyPrice(shareAddress, amount);
        uint256 protocolFee = price * protocolFeePercentBuy / 1 ether;
        uint256 subjectFee = price * subjectFeePercent[shareAddress] / 1 ether;
        uint256 holderFee = price * holderFeePercent[shareAddress] / 1 ether;
        return price + protocolFee + subjectFee + holderFee;
    }

    function getSellPriceAfterFee(address shareAddress, uint256 amount) public view returns (uint256) {
        uint256 price = getSellPrice(shareAddress, amount);
        uint256 protocolFee = price * protocolFeePercentSell / 1 ether;
        uint256 subjectFee = price * subjectFeePercent[shareAddress] / 1 ether;
        uint256 holderFee = price * holderFeePercent[shareAddress] / 1 ether;
        return price - protocolFee - subjectFee - holderFee;
    }

    //TRADE
    function buyShares(address shareAddress, uint256 amount) public payable {
        uint256 supply = sharesSupply[shareAddress];
        require(supply > 0, "Supply > 0");
        uint256 price = getPrice(supply, amount);
        uint256 protocolFee = price * protocolFeePercentBuy / 1 ether;
        uint256 subjectFee = price * subjectFeePercent[shareAddress] / 1 ether;
        uint256 holderFee = price * holderFeePercent[shareAddress] / 1 ether;
        require(msg.value >= price + protocolFee + subjectFee + holderFee, "Insufficient payment");
        sharesBalance[shareAddress][msg.sender] = sharesBalance[shareAddress][msg.sender] + amount;
        sharesSupply[shareAddress] = supply + amount;
        emit Transfer(msg.sender, shareAddress, 0x0000000000000000000000000000000000000000 , 1, amount, price, subjectFee, supply + amount, holderFee);
        (bool success, ) = shareAddress.call{value: subjectFee}("");
        (bool success2, ) = protocolFeeDestination.call{value: holderFee+protocolFee}("");
        require(success && success2, "Unable to send funds"); 
    }

    function sellShares(address shareAddress, uint256 amount) public payable {
        uint256 supply = sharesSupply[shareAddress];
        require(supply > amount, "Cannot sell the last share");
        uint256 price = getPrice(supply - amount, amount);
        uint256 protocolFee = price * protocolFeePercentSell / 1 ether;
        uint256 subjectFee = price * subjectFeePercent[shareAddress] / 1 ether;
        uint256 holderFee = price * holderFeePercent[shareAddress] / 1 ether;
        require(sharesBalance[shareAddress][msg.sender] >= amount, "Insufficient shares");
        sharesBalance[shareAddress][msg.sender] = sharesBalance[shareAddress][msg.sender] - amount;
        sharesSupply[shareAddress] = supply - amount;
        emit Transfer(msg.sender, shareAddress, 0x0000000000000000000000000000000000000000, 2, amount, price, subjectFee, supply - amount, holderFee);
        (bool success1, ) = msg.sender.call{value: price - protocolFee - subjectFee - holderFee}(""); 
        (bool success2, ) = shareAddress.call{value: subjectFee}("");
        (bool success3, ) = protocolFeeDestination2.call{value: holderFee+protocolFee}("");
        require(success1 && success2 && success3, "Unable to send funds"); 

    }
}

Contract Security Audit

Contract ABI

[{"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":"trader","type":"address"},{"indexed":false,"internalType":"address","name":"subject","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"isBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shareAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"subjectEthAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"holderFee","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"shareAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyShares","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"subjectFee_","type":"uint256"},{"internalType":"uint256","name":"holderFee_","type":"uint256"}],"name":"firstShare","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"shareAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getBuyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getBuyPriceAfterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"shareAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getSellPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getSellPriceAfterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holderFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeDestination2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeePercentBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeePercentSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sellShares","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeDestination","type":"address"},{"internalType":"address","name":"_feeDestination2","type":"address"}],"name":"setFeeDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercentBuy","type":"uint256"},{"internalType":"uint256","name":"_feePercentSell","type":"uint256"}],"name":"setProtocolFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercent","type":"uint256"},{"internalType":"uint256","name":"_feeHolderPercent","type":"uint256"}],"name":"setSubjectFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercent","type":"uint256"}],"name":"setSubjectFeePercentMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"sharesBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sharesSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"subjectFeeMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"subjectFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"transferShare","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600180546001600160a01b031990811673d45dcfa9b6136c24c80578b50ff793e374f3f4271790915560028054909116738a8cf648e6a7325aae25befd04ff2a2cb29b0a1617905566b1a2bc2ec50000600381905560045567016345785d8a000060075534801561007457600080fd5b5061007e33610083565b6100d3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6115c9806100e26000396000f3fe6080604052600436106101665760003560e01c8063715018a6116100d1578063c53f33871161008a578063f2fde38b11610064578063f2fde38b1461040b578063f6f632141461042b578063f9931be014610458578063fe7cb8601461048557600080fd5b8063c53f3387146103b8578063c769d4aa146103cb578063d4d7f794146103eb57600080fd5b8063715018a6146103265780638d7976111461033b5780638da5cb5b146103515780639ae717811461036f578063b51d05341461038f578063bba1d22f146103a257600080fd5b806330eee8d71161012357806330eee8d71461027d5780634635256e146102935780634ce7957c146102b357806350fb1647146102d35780635cf4ee91146102f35780636945b1231461031357600080fd5b8063020235ff1461016b5780630a6d8122146101b65780630f026f6d146101ee5780631588c7181461020e5780632267a89c1461023b5780632f82b8341461025b575b600080fd5b34801561017757600080fd5b506101a3610186366004611391565b600860209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156101c257600080fd5b506002546101d6906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b3480156101fa57600080fd5b506101a36102093660046113c4565b6104a5565b34801561021a57600080fd5b506101a36102293660046113ee565b60056020526000908152604090205481565b34801561024757600080fd5b506101a36102563660046113c4565b61057c565b34801561026757600080fd5b5061027b610276366004611409565b610646565b005b34801561028957600080fd5b506101a360045481565b34801561029f57600080fd5b506101a36102ae3660046113c4565b610659565b3480156102bf57600080fd5b506001546101d6906001600160a01b031681565b3480156102df57600080fd5b5061027b6102ee366004611409565b610683565b3480156102ff57600080fd5b506101a361030e366004611409565b610739565b61027b6103213660046113c4565b61085a565b34801561033257600080fd5b5061027b610b5c565b34801561034757600080fd5b506101a360075481565b34801561035d57600080fd5b506000546001600160a01b03166101d6565b34801561037b57600080fd5b506101a361038a3660046113c4565b610b70565b61027b61039d3660046113c4565b610b9e565b3480156103ae57600080fd5b506101a360035481565b61027b6103c6366004611409565b610f34565b3480156103d757600080fd5b5061027b6103e636600461142b565b611058565b3480156103f757600080fd5b5061027b610406366004611444565b611065565b34801561041757600080fd5b5061027b6104263660046113ee565b61121c565b34801561043757600080fd5b506101a36104463660046113ee565b60066020526000908152604090205481565b34801561046457600080fd5b506101a36104733660046113ee565b60096020526000908152604090205481565b34801561049157600080fd5b5061027b6104a0366004611391565b611295565b6000806104b28484610659565b90506000670de0b6b3a7640000600354836104cd9190611496565b6104d791906114ad565b6001600160a01b03861660009081526005602052604081205491925090670de0b6b3a7640000906105089085611496565b61051291906114ad565b6001600160a01b03871660009081526006602052604081205491925090670de0b6b3a7640000906105439086611496565b61054d91906114ad565b9050808261055b85876114cf565b61056591906114cf565b61056f91906114cf565b9450505050505b92915050565b6000806105898484610b70565b90506000670de0b6b3a7640000600454836105a49190611496565b6105ae91906114ad565b6001600160a01b03861660009081526005602052604081205491925090670de0b6b3a7640000906105df9085611496565b6105e991906114ad565b6001600160a01b03871660009081526006602052604081205491925090670de0b6b3a76400009061061a9086611496565b61062491906114ad565b9050808261063285876114e2565b61063c91906114e2565b61056f91906114e2565b61064e6112cb565b600391909155600455565b6001600160a01b03821660009081526009602052604081205461067c9083610739565b9392505050565b336000908152600960205260409020546106cd5760405162461bcd60e51b815260206004820152600660248201526527379037bbb760d11b60448201526064015b60405180910390fd5b6007546106da82846114cf565b11156107185760405162461bcd60e51b815260206004820152600d60248201526c26b0bc102332b29022b93937b960991b60448201526064016106c4565b33600090815260056020908152604080832094909455600690529190912055565b600080831561079457600661074f6001866114e2565b61075a906002611496565b6107659060016114cf565b856107716001826114e2565b61077b9190611496565b6107859190611496565b61078f91906114ad565b610797565b60005b90506000841580156107a95750836001145b61081e576006846107bb6001886114e2565b6107c591906114cf565b6107d0906002611496565b6107db9060016114cf565b6107e586886114cf565b866107f160018a6114e2565b6107fb91906114cf565b6108059190611496565b61080f9190611496565b61081991906114ad565b610821565b60005b9050600061082f83836114e2565b9050613e8061084682670de0b6b3a7640000611496565b61085091906114ad565b9695505050505050565b6001600160a01b038216600090815260096020526040902054806108ad5760405162461bcd60e51b815260206004820152600a6024820152690537570706c79203e20360b41b60448201526064016106c4565b60006108b98284610739565b90506000670de0b6b3a7640000600354836108d49190611496565b6108de91906114ad565b6001600160a01b03861660009081526005602052604081205491925090670de0b6b3a76400009061090f9085611496565b61091991906114ad565b6001600160a01b03871660009081526006602052604081205491925090670de0b6b3a76400009061094a9086611496565b61095491906114ad565b9050808261096285876114cf565b61096c91906114cf565b61097691906114cf565b3410156109bc5760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58da595b9d081c185e5b595b9d60621b60448201526064016106c4565b6001600160a01b03871660009081526008602090815260408083203384529091529020546109eb9087906114cf565b6001600160a01b0388166000908152600860209081526040808320338452909152902055610a1986866114cf565b6001600160a01b038816600090815260096020526040812091909155600080516020611574833981519152903390899060018a8988610a58838e6114cf565b89604051610a6e999897969594939291906114f5565b60405180910390a16000876001600160a01b03168360405160006040518083038185875af1925050503d8060008114610ac3576040519150601f19603f3d011682016040523d82523d6000602084013e610ac8565b606091505b50506001549091506000906001600160a01b0316610ae686856114cf565b604051600081818185875af1925050503d8060008114610b22576040519150601f19603f3d011682016040523d82523d6000602084013e610b27565b606091505b50509050818015610b355750805b610b515760405162461bcd60e51b81526004016106c490611545565b505050505050505050565b610b646112cb565b610b6e6000611325565b565b6001600160a01b03821660009081526009602052604081205461067c90610b989084906114e2565b83610739565b6001600160a01b038216600090815260096020526040902054818111610c065760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073656c6c20746865206c61737420736861726500000000000060448201526064016106c4565b6000610c1b610c1584846114e2565b84610739565b90506000670de0b6b3a764000060045483610c369190611496565b610c4091906114ad565b6001600160a01b03861660009081526005602052604081205491925090670de0b6b3a764000090610c719085611496565b610c7b91906114ad565b6001600160a01b03871660009081526006602052604081205491925090670de0b6b3a764000090610cac9086611496565b610cb691906114ad565b6001600160a01b0388166000908152600860209081526040808320338452909152902054909150861115610d225760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742073686172657360681b60448201526064016106c4565b6001600160a01b0387166000908152600860209081526040808320338452909152902054610d519087906114e2565b6001600160a01b0388166000908152600860209081526040808320338452909152902055610d7f86866114e2565b6001600160a01b038816600090815260096020526040812091909155600080516020611574833981519152903390899060028a8988610dbe838e6114e2565b89604051610dd4999897969594939291906114f5565b60405180910390a16000338284610deb87896114e2565b610df591906114e2565b610dff91906114e2565b604051600081818185875af1925050503d8060008114610e3b576040519150601f19603f3d011682016040523d82523d6000602084013e610e40565b606091505b505090506000886001600160a01b03168460405160006040518083038185875af1925050503d8060008114610e91576040519150601f19603f3d011682016040523d82523d6000602084013e610e96565b606091505b50506002549091506000906001600160a01b0316610eb487866114cf565b604051600081818185875af1925050503d8060008114610ef0576040519150601f19603f3d011682016040523d82523d6000602084013e610ef5565b606091505b50509050828015610f035750815b8015610f0c5750805b610f285760405162461bcd60e51b81526004016106c490611545565b50505050505050505050565b600754610f4182846114cf565b1115610f7f5760405162461bcd60e51b815260206004820152600d60248201526c26b0bc102332b29022b93937b960991b60448201526064016106c4565b3360009081526009602052604090205415610fe85760405162461bcd60e51b815260206004820152602360248201527f596f7520616c7265616479206861766520616e206163636f756e74207375626a6044820152621958dd60ea1b60648201526084016106c4565b336000818152600860209081526040808320825280832060019081905560098352818420819055600583528184208790556006909252808320859055516000805160206115748339815191529361104c9390928392819083908190839082906114f5565b60405180910390a15050565b6110606112cb565b600755565b6001600160a01b038316600090815260086020908152604080832033845290915290205482111561109557600080fd5b6001600160a01b038116600003611143576001546001600160a01b038481166000908152600860209081526040808320838052909152812054909291909116906110df9085610739565b604051600081818185875af1925050503d806000811461111b576040519150601f19603f3d011682016040523d82523d6000602084013e611120565b606091505b50509050806111415760405162461bcd60e51b81526004016106c490611545565b505b6001600160a01b03831660009081526008602090815260408083203384529091529020546111729083906114e2565b6001600160a01b03848116600090815260086020908152604080832033845290915280822093909355908316815220546111ad9083906114cf565b6001600160a01b03808516600081815260086020908152604080832094871683529381528382209490945590815260099092528082205490516000805160206115748339815191529261120f923392889287926003928a9291829182906114f5565b60405180910390a1505050565b6112246112cb565b6001600160a01b0381166112895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c4565b61129281611325565b50565b61129d6112cb565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b6000546001600160a01b03163314610b6e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106c4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461138c57600080fd5b919050565b600080604083850312156113a457600080fd5b6113ad83611375565b91506113bb60208401611375565b90509250929050565b600080604083850312156113d757600080fd5b6113e083611375565b946020939093013593505050565b60006020828403121561140057600080fd5b61067c82611375565b6000806040838503121561141c57600080fd5b50508035926020909101359150565b60006020828403121561143d57600080fd5b5035919050565b60008060006060848603121561145957600080fd5b61146284611375565b92506020840135915061147760408501611375565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761057657610576611480565b6000826114ca57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561057657610576611480565b8181038181111561057657610576611480565b6001600160a01b03998a16815297891660208901529590971660408701526060860193909352608085019190915260a084015260c083015260e08201929092526101008101919091526101200190565b602080825260149082015273556e61626c6520746f2073656e642066756e647360601b60408201526060019056fed5d0045182b94f32cf09835b209ff3ebc9752516ff0986ea566839d3efb96a8ca264697066735822122066a2c1057c4b5c33b61252101719f12f958d18ee883fd9ea7c1c25c55bd25eae64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101665760003560e01c8063715018a6116100d1578063c53f33871161008a578063f2fde38b11610064578063f2fde38b1461040b578063f6f632141461042b578063f9931be014610458578063fe7cb8601461048557600080fd5b8063c53f3387146103b8578063c769d4aa146103cb578063d4d7f794146103eb57600080fd5b8063715018a6146103265780638d7976111461033b5780638da5cb5b146103515780639ae717811461036f578063b51d05341461038f578063bba1d22f146103a257600080fd5b806330eee8d71161012357806330eee8d71461027d5780634635256e146102935780634ce7957c146102b357806350fb1647146102d35780635cf4ee91146102f35780636945b1231461031357600080fd5b8063020235ff1461016b5780630a6d8122146101b65780630f026f6d146101ee5780631588c7181461020e5780632267a89c1461023b5780632f82b8341461025b575b600080fd5b34801561017757600080fd5b506101a3610186366004611391565b600860209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156101c257600080fd5b506002546101d6906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b3480156101fa57600080fd5b506101a36102093660046113c4565b6104a5565b34801561021a57600080fd5b506101a36102293660046113ee565b60056020526000908152604090205481565b34801561024757600080fd5b506101a36102563660046113c4565b61057c565b34801561026757600080fd5b5061027b610276366004611409565b610646565b005b34801561028957600080fd5b506101a360045481565b34801561029f57600080fd5b506101a36102ae3660046113c4565b610659565b3480156102bf57600080fd5b506001546101d6906001600160a01b031681565b3480156102df57600080fd5b5061027b6102ee366004611409565b610683565b3480156102ff57600080fd5b506101a361030e366004611409565b610739565b61027b6103213660046113c4565b61085a565b34801561033257600080fd5b5061027b610b5c565b34801561034757600080fd5b506101a360075481565b34801561035d57600080fd5b506000546001600160a01b03166101d6565b34801561037b57600080fd5b506101a361038a3660046113c4565b610b70565b61027b61039d3660046113c4565b610b9e565b3480156103ae57600080fd5b506101a360035481565b61027b6103c6366004611409565b610f34565b3480156103d757600080fd5b5061027b6103e636600461142b565b611058565b3480156103f757600080fd5b5061027b610406366004611444565b611065565b34801561041757600080fd5b5061027b6104263660046113ee565b61121c565b34801561043757600080fd5b506101a36104463660046113ee565b60066020526000908152604090205481565b34801561046457600080fd5b506101a36104733660046113ee565b60096020526000908152604090205481565b34801561049157600080fd5b5061027b6104a0366004611391565b611295565b6000806104b28484610659565b90506000670de0b6b3a7640000600354836104cd9190611496565b6104d791906114ad565b6001600160a01b03861660009081526005602052604081205491925090670de0b6b3a7640000906105089085611496565b61051291906114ad565b6001600160a01b03871660009081526006602052604081205491925090670de0b6b3a7640000906105439086611496565b61054d91906114ad565b9050808261055b85876114cf565b61056591906114cf565b61056f91906114cf565b9450505050505b92915050565b6000806105898484610b70565b90506000670de0b6b3a7640000600454836105a49190611496565b6105ae91906114ad565b6001600160a01b03861660009081526005602052604081205491925090670de0b6b3a7640000906105df9085611496565b6105e991906114ad565b6001600160a01b03871660009081526006602052604081205491925090670de0b6b3a76400009061061a9086611496565b61062491906114ad565b9050808261063285876114e2565b61063c91906114e2565b61056f91906114e2565b61064e6112cb565b600391909155600455565b6001600160a01b03821660009081526009602052604081205461067c9083610739565b9392505050565b336000908152600960205260409020546106cd5760405162461bcd60e51b815260206004820152600660248201526527379037bbb760d11b60448201526064015b60405180910390fd5b6007546106da82846114cf565b11156107185760405162461bcd60e51b815260206004820152600d60248201526c26b0bc102332b29022b93937b960991b60448201526064016106c4565b33600090815260056020908152604080832094909455600690529190912055565b600080831561079457600661074f6001866114e2565b61075a906002611496565b6107659060016114cf565b856107716001826114e2565b61077b9190611496565b6107859190611496565b61078f91906114ad565b610797565b60005b90506000841580156107a95750836001145b61081e576006846107bb6001886114e2565b6107c591906114cf565b6107d0906002611496565b6107db9060016114cf565b6107e586886114cf565b866107f160018a6114e2565b6107fb91906114cf565b6108059190611496565b61080f9190611496565b61081991906114ad565b610821565b60005b9050600061082f83836114e2565b9050613e8061084682670de0b6b3a7640000611496565b61085091906114ad565b9695505050505050565b6001600160a01b038216600090815260096020526040902054806108ad5760405162461bcd60e51b815260206004820152600a6024820152690537570706c79203e20360b41b60448201526064016106c4565b60006108b98284610739565b90506000670de0b6b3a7640000600354836108d49190611496565b6108de91906114ad565b6001600160a01b03861660009081526005602052604081205491925090670de0b6b3a76400009061090f9085611496565b61091991906114ad565b6001600160a01b03871660009081526006602052604081205491925090670de0b6b3a76400009061094a9086611496565b61095491906114ad565b9050808261096285876114cf565b61096c91906114cf565b61097691906114cf565b3410156109bc5760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58da595b9d081c185e5b595b9d60621b60448201526064016106c4565b6001600160a01b03871660009081526008602090815260408083203384529091529020546109eb9087906114cf565b6001600160a01b0388166000908152600860209081526040808320338452909152902055610a1986866114cf565b6001600160a01b038816600090815260096020526040812091909155600080516020611574833981519152903390899060018a8988610a58838e6114cf565b89604051610a6e999897969594939291906114f5565b60405180910390a16000876001600160a01b03168360405160006040518083038185875af1925050503d8060008114610ac3576040519150601f19603f3d011682016040523d82523d6000602084013e610ac8565b606091505b50506001549091506000906001600160a01b0316610ae686856114cf565b604051600081818185875af1925050503d8060008114610b22576040519150601f19603f3d011682016040523d82523d6000602084013e610b27565b606091505b50509050818015610b355750805b610b515760405162461bcd60e51b81526004016106c490611545565b505050505050505050565b610b646112cb565b610b6e6000611325565b565b6001600160a01b03821660009081526009602052604081205461067c90610b989084906114e2565b83610739565b6001600160a01b038216600090815260096020526040902054818111610c065760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073656c6c20746865206c61737420736861726500000000000060448201526064016106c4565b6000610c1b610c1584846114e2565b84610739565b90506000670de0b6b3a764000060045483610c369190611496565b610c4091906114ad565b6001600160a01b03861660009081526005602052604081205491925090670de0b6b3a764000090610c719085611496565b610c7b91906114ad565b6001600160a01b03871660009081526006602052604081205491925090670de0b6b3a764000090610cac9086611496565b610cb691906114ad565b6001600160a01b0388166000908152600860209081526040808320338452909152902054909150861115610d225760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742073686172657360681b60448201526064016106c4565b6001600160a01b0387166000908152600860209081526040808320338452909152902054610d519087906114e2565b6001600160a01b0388166000908152600860209081526040808320338452909152902055610d7f86866114e2565b6001600160a01b038816600090815260096020526040812091909155600080516020611574833981519152903390899060028a8988610dbe838e6114e2565b89604051610dd4999897969594939291906114f5565b60405180910390a16000338284610deb87896114e2565b610df591906114e2565b610dff91906114e2565b604051600081818185875af1925050503d8060008114610e3b576040519150601f19603f3d011682016040523d82523d6000602084013e610e40565b606091505b505090506000886001600160a01b03168460405160006040518083038185875af1925050503d8060008114610e91576040519150601f19603f3d011682016040523d82523d6000602084013e610e96565b606091505b50506002549091506000906001600160a01b0316610eb487866114cf565b604051600081818185875af1925050503d8060008114610ef0576040519150601f19603f3d011682016040523d82523d6000602084013e610ef5565b606091505b50509050828015610f035750815b8015610f0c5750805b610f285760405162461bcd60e51b81526004016106c490611545565b50505050505050505050565b600754610f4182846114cf565b1115610f7f5760405162461bcd60e51b815260206004820152600d60248201526c26b0bc102332b29022b93937b960991b60448201526064016106c4565b3360009081526009602052604090205415610fe85760405162461bcd60e51b815260206004820152602360248201527f596f7520616c7265616479206861766520616e206163636f756e74207375626a6044820152621958dd60ea1b60648201526084016106c4565b336000818152600860209081526040808320825280832060019081905560098352818420819055600583528184208790556006909252808320859055516000805160206115748339815191529361104c9390928392819083908190839082906114f5565b60405180910390a15050565b6110606112cb565b600755565b6001600160a01b038316600090815260086020908152604080832033845290915290205482111561109557600080fd5b6001600160a01b038116600003611143576001546001600160a01b038481166000908152600860209081526040808320838052909152812054909291909116906110df9085610739565b604051600081818185875af1925050503d806000811461111b576040519150601f19603f3d011682016040523d82523d6000602084013e611120565b606091505b50509050806111415760405162461bcd60e51b81526004016106c490611545565b505b6001600160a01b03831660009081526008602090815260408083203384529091529020546111729083906114e2565b6001600160a01b03848116600090815260086020908152604080832033845290915280822093909355908316815220546111ad9083906114cf565b6001600160a01b03808516600081815260086020908152604080832094871683529381528382209490945590815260099092528082205490516000805160206115748339815191529261120f923392889287926003928a9291829182906114f5565b60405180910390a1505050565b6112246112cb565b6001600160a01b0381166112895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c4565b61129281611325565b50565b61129d6112cb565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b6000546001600160a01b03163314610b6e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106c4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461138c57600080fd5b919050565b600080604083850312156113a457600080fd5b6113ad83611375565b91506113bb60208401611375565b90509250929050565b600080604083850312156113d757600080fd5b6113e083611375565b946020939093013593505050565b60006020828403121561140057600080fd5b61067c82611375565b6000806040838503121561141c57600080fd5b50508035926020909101359150565b60006020828403121561143d57600080fd5b5035919050565b60008060006060848603121561145957600080fd5b61146284611375565b92506020840135915061147760408501611375565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761057657610576611480565b6000826114ca57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561057657610576611480565b8181038181111561057657610576611480565b6001600160a01b03998a16815297891660208901529590971660408701526060860193909352608085019190915260a084015260c083015260e08201929092526101008101919091526101200190565b602080825260149082015273556e61626c6520746f2073656e642066756e647360601b60408201526060019056fed5d0045182b94f32cf09835b209ff3ebc9752516ff0986ea566839d3efb96a8ca264697066735822122066a2c1057c4b5c33b61252101719f12f958d18ee883fd9ea7c1c25c55bd25eae64736f6c63430008120033

Deployed Bytecode Sourcemap

3626:7097:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4141:68;;;;;;;;;;-1:-1:-1;4141:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;603:25:1;;;591:2;576:18;4141:68:0;;;;;;;;3751:83;;;;;;;;;;-1:-1:-1;3751:83:0;;;;-1:-1:-1;;;;;3751:83:0;;;;;;-1:-1:-1;;;;;803:32:1;;;785:51;;773:2;758:18;3751:83:0;639:203:1;7425:459:0;;;;;;;;;;-1:-1:-1;7425:459:0;;;;;:::i;:::-;;:::i;3968:52::-;;;;;;;;;;-1:-1:-1;3968:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;7892:462;;;;;;;;;;-1:-1:-1;7892:462:0;;;;;:::i;:::-;;:::i;4684:204::-;;;;;;;;;;-1:-1:-1;4684:204:0;;;;;:::i;:::-;;:::i;:::-;;3904:57;;;;;;;;;;;;;;;;7081:159;;;;;;;;;;-1:-1:-1;7081:159:0;;;;;:::i;:::-;;:::i;3662:82::-;;;;;;;;;;-1:-1:-1;3662:82:0;;;;-1:-1:-1;;;;;3662:82:0;;;5023:342;;;;;;;;;;-1:-1:-1;5023:342:0;;;;;:::i;:::-;;:::i;6664:409::-;;;;;;;;;;-1:-1:-1;6664:409:0;;;;;:::i;:::-;;:::i;8375:1097::-;;;;;;:::i;:::-;;:::i;2770:103::-;;;;;;;;;;;;;:::i;4085:49::-;;;;;;;;;;;;;;;;2122:87;;;;;;;;;;-1:-1:-1;2168:7:0;2195:6;-1:-1:-1;;;;;2195:6:0;2122:87;;7248:169;;;;;;;;;;-1:-1:-1;7248:169:0;;;;;:::i;:::-;;:::i;9480:1240::-;;;;;;:::i;:::-;;:::i;3841:56::-;;;;;;;;;;;;;;;;5379:516;;;;;;:::i;:::-;;:::i;4896:119::-;;;;;;;;;;-1:-1:-1;4896:119:0;;;;;:::i;:::-;;:::i;5903:735::-;;;;;;;;;;-1:-1:-1;5903:735:0;;;;;:::i;:::-;;:::i;3028:201::-;;;;;;;;;;-1:-1:-1;3028:201:0;;;;;:::i;:::-;;:::i;4027:51::-;;;;;;;;;;-1:-1:-1;4027:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;4216:47;;;;;;;;;;-1:-1:-1;4216:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;4469:207;;;;;;;;;;-1:-1:-1;4469:207:0;;;;;:::i;:::-;;:::i;7425:459::-;7513:7;7533:13;7549:33;7561:12;7575:6;7549:11;:33::i;:::-;7533:49;;7593:19;7647:7;7623:21;;7615:5;:29;;;;:::i;:::-;:39;;;;:::i;:::-;-1:-1:-1;;;;;7694:31:0;;7665:18;7694:31;;;:17;:31;;;;;;7593:61;;-1:-1:-1;7665:18:0;7728:7;;7686:39;;:5;:39;:::i;:::-;:49;;;;:::i;:::-;-1:-1:-1;;;;;7774:30:0;;7746:17;7774:30;;;:16;:30;;;;;;7665:70;;-1:-1:-1;7746:17:0;7807:7;;7766:38;;:5;:38;:::i;:::-;:48;;;;:::i;:::-;7746:68;-1:-1:-1;7746:68:0;7854:10;7832:19;7840:11;7832:5;:19;:::i;:::-;:32;;;;:::i;:::-;:44;;;;:::i;:::-;7825:51;;;;;;7425:459;;;;;:::o;7892:462::-;7981:7;8001:13;8017:34;8030:12;8044:6;8017:12;:34::i;:::-;8001:50;;8062:19;8117:7;8092:22;;8084:5;:30;;;;:::i;:::-;:40;;;;:::i;:::-;-1:-1:-1;;;;;8164:31:0;;8135:18;8164:31;;;:17;:31;;;;;;8062:62;;-1:-1:-1;8135:18:0;8198:7;;8156:39;;:5;:39;:::i;:::-;:49;;;;:::i;:::-;-1:-1:-1;;;;;8244:30:0;;8216:17;8244:30;;;:16;:30;;;;;;8135:70;;-1:-1:-1;8216:17:0;8277:7;;8236:38;;:5;:38;:::i;:::-;:48;;;;:::i;:::-;8216:68;-1:-1:-1;8216:68:0;8324:10;8302:19;8310:11;8302:5;:19;:::i;:::-;:32;;;;:::i;:::-;:44;;;;:::i;4684:204::-;2008:13;:11;:13::i;:::-;4791:21:::1;:38:::0;;;;4840:22:::1;:40:::0;4684:204::o;7081:159::-;-1:-1:-1;;;;;7197:26:0;;7161:7;7197:26;;;:12;:26;;;;;;7188:44;;7225:6;7188:8;:44::i;:::-;7181:51;7081:159;-1:-1:-1;;;7081:159:0:o;5023:342::-;5140:10;5154:1;5127:24;;;:12;:24;;;;;;5119:46;;;;-1:-1:-1;;;5119:46:0;;3060:2:1;5119:46:0;;;3042:21:1;3099:1;3079:18;;;3072:29;-1:-1:-1;;;3117:18:1;;;3110:36;3163:18;;5119:46:0;;;;;;;;;5217:13;;5184:31;5198:17;5184:11;:31;:::i;:::-;:46;;5176:72;;;;-1:-1:-1;;;5176:72:0;;3394:2:1;5176:72:0;;;3376:21:1;3433:2;3413:18;;;3406:30;-1:-1:-1;;;3452:18:1;;;3445:43;3505:18;;5176:72:0;3192:337:1;5176:72:0;5277:10;5259:29;;;;:17;:29;;;;;;;;:41;;;;5311:16;:28;;;;;;:46;5023:342::o;6664:409::-;6735:7;;6770:11;;:70;;6839:1;6820:10;6829:1;6820:6;:10;:::i;:::-;6815:16;;:1;:16;:::i;:::-;:20;;6834:1;6815:20;:::i;:::-;6804:6;6789:10;6798:1;6804:6;6789:10;:::i;:::-;6788:23;;;;:::i;:::-;:48;;;;:::i;:::-;:52;;;;:::i;:::-;6770:70;;;6784:1;6770:70;6755:85;-1:-1:-1;6851:12:0;6866:11;;:26;;;;;6881:6;6891:1;6881:11;6866:26;:112;;6977:1;6962:6;6949:10;6958:1;6949:6;:10;:::i;:::-;:19;;;;:::i;:::-;6944:25;;:1;:25;:::i;:::-;:29;;6972:1;6944:29;:::i;:::-;6924:15;6933:6;6924;:15;:::i;:::-;6913:6;6900:10;6909:1;6900:6;:10;:::i;:::-;:19;;;;:::i;:::-;6899:41;;;;:::i;:::-;:75;;;;:::i;:::-;:79;;;;:::i;:::-;6866:112;;;6895:1;6866:112;6851:127;-1:-1:-1;6989:17:0;7009:11;7016:4;6851:127;7009:11;:::i;:::-;6989:31;-1:-1:-1;7060:5:0;7038:19;6989:31;7050:7;7038:19;:::i;:::-;:27;;;;:::i;:::-;7031:34;6664:409;-1:-1:-1;;;;;;6664:409:0:o;8375:1097::-;-1:-1:-1;;;;;8475:26:0;;8458:14;8475:26;;;:12;:26;;;;;;8520:10;8512:33;;;;-1:-1:-1;;;8512:33:0;;3736:2:1;8512:33:0;;;3718:21:1;3775:2;3755:18;;;3748:30;-1:-1:-1;;;3794:18:1;;;3787:40;3844:18;;8512:33:0;3534:334:1;8512:33:0;8556:13;8572:24;8581:6;8589;8572:8;:24::i;:::-;8556:40;;8607:19;8661:7;8637:21;;8629:5;:29;;;;:::i;:::-;:39;;;;:::i;:::-;-1:-1:-1;;;;;8708:31:0;;8679:18;8708:31;;;:17;:31;;;;;;8607:61;;-1:-1:-1;8679:18:0;8742:7;;8700:39;;:5;:39;:::i;:::-;:49;;;;:::i;:::-;-1:-1:-1;;;;;8788:30:0;;8760:17;8788:30;;;:16;:30;;;;;;8679:70;;-1:-1:-1;8760:17:0;8821:7;;8780:38;;:5;:38;:::i;:::-;:48;;;;:::i;:::-;8760:68;-1:-1:-1;8760:68:0;8882:10;8860:19;8868:11;8860:5;:19;:::i;:::-;:32;;;;:::i;:::-;:44;;;;:::i;:::-;8847:9;:57;;8839:90;;;;-1:-1:-1;;;8839:90:0;;4075:2:1;8839:90:0;;;4057:21:1;4114:2;4094:18;;;4087:30;-1:-1:-1;;;4133:18:1;;;4126:50;4193:18;;8839:90:0;3873:344:1;8839:90:0;-1:-1:-1;;;;;8982:27:0;;;;;;:13;:27;;;;;;;;9010:10;8982:39;;;;;;;;:48;;9024:6;;8982:48;:::i;:::-;-1:-1:-1;;;;;8940:27:0;;;;;;:13;:27;;;;;;;;8968:10;8940:39;;;;;;;:90;9070:15;9079:6;9070;:15;:::i;:::-;-1:-1:-1;;;;;9041:26:0;;;;;;:12;:26;;;;;:44;;;;-1:-1:-1;;;;;;;;;;;9101:137:0;9110:10;;9054:12;;9181:1;9184:6;9192:5;9199:10;9211:15;9184:6;9211;:15;:::i;:::-;9228:9;9101:137;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9250:12;9268;-1:-1:-1;;;;;9268:17:0;9293:10;9268:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9339:22:0;;9249:59;;-1:-1:-1;9320:13:0;;-1:-1:-1;;;;;9339:22:0;9374:21;9384:11;9374:9;:21;:::i;:::-;9339:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9319:81;;;9419:7;:19;;;;;9430:8;9419:19;9411:52;;;;-1:-1:-1;;;9411:52:0;;;;;;;:::i;:::-;8447:1025;;;;;;;8375:1097;;:::o;2770:103::-;2008:13;:11;:13::i;:::-;2835:30:::1;2862:1;2835:18;:30::i;:::-;2770:103::o:0;7248:169::-;-1:-1:-1;;;;;7365:26:0;;7329:7;7365:26;;;:12;:26;;;;;;7356:53;;7365:35;;7394:6;;7365:35;:::i;:::-;7402:6;7356:8;:53::i;9480:1240::-;-1:-1:-1;;;;;9581:26:0;;9564:14;9581:26;;;:12;:26;;;;;;9626:15;;;9618:54;;;;-1:-1:-1;;;9618:54:0;;5812:2:1;9618:54:0;;;5794:21:1;5851:2;5831:18;;;5824:30;5890:28;5870:18;;;5863:56;5936:18;;9618:54:0;5610:350:1;9618:54:0;9683:13;9699:33;9708:15;9717:6;9708;:15;:::i;:::-;9725:6;9699:8;:33::i;:::-;9683:49;;9743:19;9798:7;9773:22;;9765:5;:30;;;;:::i;:::-;:40;;;;:::i;:::-;-1:-1:-1;;;;;9845:31:0;;9816:18;9845:31;;;:17;:31;;;;;;9743:62;;-1:-1:-1;9816:18:0;9879:7;;9837:39;;:5;:39;:::i;:::-;:49;;;;:::i;:::-;-1:-1:-1;;;;;9925:30:0;;9897:17;9925:30;;;:16;:30;;;;;;9816:70;;-1:-1:-1;9897:17:0;9958:7;;9917:38;;:5;:38;:::i;:::-;:48;;;;:::i;:::-;-1:-1:-1;;;;;9984:27:0;;;;;;:13;:27;;;;;;;;10012:10;9984:39;;;;;;;;9897:68;;-1:-1:-1;9984:49:0;-1:-1:-1;9984:49:0;9976:81;;;;-1:-1:-1;;;9976:81:0;;6167:2:1;9976:81:0;;;6149:21:1;6206:2;6186:18;;;6179:30;-1:-1:-1;;;6225:18:1;;;6218:49;6284:18;;9976:81:0;5965:343:1;9976:81:0;-1:-1:-1;;;;;10110:27:0;;;;;;:13;:27;;;;;;;;10138:10;10110:39;;;;;;;;:48;;10152:6;;10110:48;:::i;:::-;-1:-1:-1;;;;;10068:27:0;;;;;;:13;:27;;;;;;;;10096:10;10068:39;;;;;;;:90;10198:15;10207:6;10198;:15;:::i;:::-;-1:-1:-1;;;;;10169:26:0;;;;;;:12;:26;;;;;:44;;;;-1:-1:-1;;;;;;;;;;;10229:136:0;10238:10;;10182:12;;10308:1;10311:6;10319:5;10326:10;10338:15;10311:6;10338;:15;:::i;:::-;10355:9;10229:136;;;;;;;;;;;;;;:::i;:::-;;;;;;;;10377:13;10396:10;10454:9;10441:10;10419:19;10427:11;10419:5;:19;:::i;:::-;:32;;;;:::i;:::-;:44;;;;:::i;:::-;10396:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10376:92;;;10481:13;10500:12;-1:-1:-1;;;;;10500:17:0;10525:10;10500:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10571:23:0;;10480:60;;-1:-1:-1;10552:13:0;;-1:-1:-1;;;;;10571:23:0;10607:21;10617:11;10607:9;:21;:::i;:::-;10571:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10551:82;;;10652:8;:20;;;;;10664:8;10652:20;:32;;;;;10676:8;10652:32;10644:65;;;;-1:-1:-1;;;10644:65:0;;;;;;;:::i;:::-;9553:1167;;;;;;;;9480:1240;;:::o;5379:516::-;5494:13;;5470:22;5482:10;5470:11;:22;:::i;:::-;:37;;5462:63;;;;-1:-1:-1;;;5462:63:0;;3394:2:1;5462:63:0;;;3376:21:1;3433:2;3413:18;;;3406:30;-1:-1:-1;;;3452:18:1;;;3445:43;3505:18;;5462:63:0;3192:337:1;5462:63:0;5553:10;5540:24;;;;:12;:24;;;;;;:27;5532:74;;;;-1:-1:-1;;;5532:74:0;;7344:2:1;5532:74:0;;;7326:21:1;7383:2;7363:18;;;7356:30;7422:34;7402:18;;;7395:62;-1:-1:-1;;;7473:18:1;;;7466:33;7516:19;;5532:74:0;7142:399:1;5532:74:0;5627:10;5613:25;;;;:13;:25;;;;;;;;:37;;;;;5653:1;5613:41;;;;5661:12;:24;;;;;:26;;;5694:17;:29;;;;;:41;;;5742:16;:28;;;;;;:39;;;5793:94;-1:-1:-1;;;;;;;;;;;5793:94:0;;;5627:10;;;;5653:1;;5613:25;;;;5653:1;;5613:25;;5793:94;:::i;:::-;;;;;;;;5379:516;;:::o;4896:119::-;2008:13;:11;:13::i;:::-;4978::::1;:27:::0;4896:119::o;5903:735::-;-1:-1:-1;;;;;6002:27:0;;;;;;:13;:27;;;;;;;;6030:10;6002:39;;;;;;;;:47;-1:-1:-1;6002:47:0;5994:56;;;;;;-1:-1:-1;;;;;6065:46:0;;6069:42;6065:46;6061:282;;6147:22;;-1:-1:-1;;;;;6191:27:0;;;6129:12;6191:27;;;:13;:27;;;;;;;;:71;;;;;;;;;6129:12;;6147:22;;;;;6182:88;;6263:6;6182:8;:88::i;:::-;6147:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6128:147;;;6298:7;6290:40;;;;-1:-1:-1;;;6290:40:0;;;;;;;:::i;:::-;6113:230;6061:282;-1:-1:-1;;;;;6395:27:0;;;;;;:13;:27;;;;;;;;6423:10;6395:39;;;;;;;;:48;;6437:6;;6395:48;:::i;:::-;-1:-1:-1;;;;;6353:27:0;;;;;;;:13;:27;;;;;;;;6381:10;6353:39;;;;;;;;:90;;;;6488:31;;;;;;;:40;;6522:6;;6488:40;:::i;:::-;-1:-1:-1;;;;;6454:27:0;;;;;;;:13;:27;;;;;;;;:31;;;;;;;;;;;:74;;;;6600:26;;;:12;:26;;;;;;;6544:86;;-1:-1:-1;;;;;;;;;;;6544:86:0;;;6553:10;;6468:12;;6482:2;;6583:1;;6586:6;;6454:27;;;;;6544:86;:::i;:::-;;;;;;;;5903:735;;;:::o;3028:201::-;2008:13;:11;:13::i;:::-;-1:-1:-1;;;;;3117:22:0;::::1;3109:73;;;::::0;-1:-1:-1;;;3109:73:0;;9470:2:1;3109:73:0::1;::::0;::::1;9452:21:1::0;9509:2;9489:18;;;9482:30;9548:34;9528:18;;;9521:62;-1:-1:-1;;;9599:18:1;;;9592:36;9645:19;;3109:73:0::1;9268:402:1::0;3109:73:0::1;3193:28;3212:8;3193:18;:28::i;:::-;3028:201:::0;:::o;4469:207::-;2008:13;:11;:13::i;:::-;4575:22:::1;:40:::0;;-1:-1:-1;;;;;4575:40:0;;::::1;-1:-1:-1::0;;;;;;4575:40:0;;::::1;;::::0;;;4626:23:::1;:42:::0;;;;;::::1;::::0;::::1;;::::0;;4469:207::o;2287:132::-;2168:7;2195:6;-1:-1:-1;;;;;2195:6:0;774:10;2351:23;2343:68;;;;-1:-1:-1;;;2343:68:0;;9877:2:1;2343:68:0;;;9859:21:1;;;9896:18;;;9889:30;9955:34;9935:18;;;9928:62;10007:18;;2343:68:0;9675:356:1;3389:191:0;3463:16;3482:6;;-1:-1:-1;;;;;3499:17:0;;;-1:-1:-1;;;;;;3499:17:0;;;;;;3532:40;;3482:6;;;;;;;3532:40;;3463:16;3532:40;3452:128;3389:191;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:260::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;;408:38;442:2;431:9;427:18;408:38;:::i;:::-;398:48;;192:260;;;;;:::o;847:254::-;915:6;923;976:2;964:9;955:7;951:23;947:32;944:52;;;992:1;989;982:12;944:52;1015:29;1034:9;1015:29;:::i;:::-;1005:39;1091:2;1076:18;;;;1063:32;;-1:-1:-1;;;847:254:1:o;1106:186::-;1165:6;1218:2;1206:9;1197:7;1193:23;1189:32;1186:52;;;1234:1;1231;1224:12;1186:52;1257:29;1276:9;1257:29;:::i;1297:248::-;1365:6;1373;1426:2;1414:9;1405:7;1401:23;1397:32;1394:52;;;1442:1;1439;1432:12;1394:52;-1:-1:-1;;1465:23:1;;;1535:2;1520:18;;;1507:32;;-1:-1:-1;1297:248:1:o;1550:180::-;1609:6;1662:2;1650:9;1641:7;1637:23;1633:32;1630:52;;;1678:1;1675;1668:12;1630:52;-1:-1:-1;1701:23:1;;1550:180;-1:-1:-1;1550:180:1:o;1735:328::-;1812:6;1820;1828;1881:2;1869:9;1860:7;1856:23;1852:32;1849:52;;;1897:1;1894;1887:12;1849:52;1920:29;1939:9;1920:29;:::i;:::-;1910:39;;1996:2;1985:9;1981:18;1968:32;1958:42;;2019:38;2053:2;2042:9;2038:18;2019:38;:::i;:::-;2009:48;;1735:328;;;;;:::o;2068:127::-;2129:10;2124:3;2120:20;2117:1;2110:31;2160:4;2157:1;2150:15;2184:4;2181:1;2174:15;2200:168;2273:9;;;2304;;2321:15;;;2315:22;;2301:37;2291:71;;2342:18;;:::i;2373:217::-;2413:1;2439;2429:132;;2483:10;2478:3;2474:20;2471:1;2464:31;2518:4;2515:1;2508:15;2546:4;2543:1;2536:15;2429:132;-1:-1:-1;2575:9:1;;2373:217::o;2595:125::-;2660:9;;;2681:10;;;2678:36;;;2694:18;;:::i;2725:128::-;2792:9;;;2813:11;;;2810:37;;;2827:18;;:::i;4222:824::-;-1:-1:-1;;;;;4657:15:1;;;4639:34;;4709:15;;;4704:2;4689:18;;4682:43;4761:15;;;;4756:2;4741:18;;4734:43;4808:2;4793:18;;4786:34;;;;4851:3;4836:19;;4829:35;;;;4619:3;4880:19;;4873:35;4939:3;4924:19;;4917:35;4983:3;4968:19;;4961:35;;;;5027:3;5012:19;;5005:35;;;;4588:3;4573:19;;4222:824::o;5261:344::-;5463:2;5445:21;;;5502:2;5482:18;;;5475:30;-1:-1:-1;;;5536:2:1;5521:18;;5514:50;5596:2;5581:18;;5261:344::o

Swarm Source

ipfs://66a2c1057c4b5c33b61252101719f12f958d18ee883fd9ea7c1c25c55bd25eae

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.