ETH Price: $3,275.55 (+3.50%)
Gas: 1 Gwei

Contract

0xc6CFBA0E7f7213a3F1809e96b2A166Fd2B137DFF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Buy Hash Rate Wi...126966992021-06-24 11:56:301128 days ago1624535790IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0009274810
Buy Hash Rate Wi...126899702021-06-23 10:51:281129 days ago1624445488IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0012955914.3
Buy Hash Rate Wi...126899622021-06-23 10:50:391129 days ago1624445439IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0012684114
Buy Hash Rate Wi...126899622021-06-23 10:50:391129 days ago1624445439IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0012684114
Buy Hash Rate Wi...126899612021-06-23 10:50:351129 days ago1624445435IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0012682414
Buy Hash Rate Wi...126899452021-06-23 10:48:211129 days ago1624445301IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0012684114
Buy Hash Rate Wi...126899422021-06-23 10:47:231129 days ago1624445243IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0012502913.8
Buy Hash Rate Wi...126899422021-06-23 10:47:231129 days ago1624445243IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0012557213.86
Buy Hash Rate Wi...126899232021-06-23 10:42:491129 days ago1624444969IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0012502913.8
Buy Hash Rate Wi...126899002021-06-23 10:36:221129 days ago1624444582IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0005684612
Buy Hash Rate Wi...126898332021-06-23 10:23:071129 days ago1624443787IN
0xc6CFBA0E...d2B137DFF
0 ETH0.00072488
Buy Hash Rate Wi...126897802021-06-23 10:11:111129 days ago1624443071IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0010872112
Buy Hash Rate Wi...126897722021-06-23 10:08:531129 days ago1624442933IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0013590115
Buy Hash Rate Wi...126897672021-06-23 10:08:081129 days ago1624442888IN
0xc6CFBA0E...d2B137DFF
0 ETH0.000664327.5
Buy Hash Rate Wi...126897472021-06-23 10:04:241129 days ago1624442664IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0009963411
Buy Hash Rate Wi...126897402021-06-23 10:03:211129 days ago1624442601IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0009963411.00000145
Buy Hash Rate Wi...126897392021-06-23 10:03:171129 days ago1624442597IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0009057710
Buy Hash Rate Wi...126897382021-06-23 10:03:111129 days ago1624442591IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0013498810.00000145
Buy Hash Rate Wi...126897382021-06-23 10:03:111129 days ago1624442591IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0009057710.00000145
Buy Hash Rate Wi...126897362021-06-23 10:02:591129 days ago1624442579IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0010203611
Buy Hash Rate Wi...126897362021-06-23 10:02:591129 days ago1624442579IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0009963411
Buy Hash Rate Wi...126897352021-06-23 10:02:561129 days ago1624442576IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0010872112
Buy Hash Rate Wi...126897332021-06-23 10:02:131129 days ago1624442533IN
0xc6CFBA0E...d2B137DFF
0 ETH0.001177513.00000145
Buy Hash Rate Wi...126897332021-06-23 10:02:131129 days ago1624442533IN
0xc6CFBA0E...d2B137DFF
0 ETH0.00320.00000156
Buy Hash Rate Wi...126897272021-06-23 9:59:241129 days ago1624442364IN
0xc6CFBA0E...d2B137DFF
0 ETH0.0010202211
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:
HackerFederation

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-02-07
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

pragma solidity ^0.6.6;

interface Token {
    function balanceOf(address account) external view returns (uint256);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}

contract HackerFederation {
    using SafeMath for uint256;

    // Hashrate decimals
    uint256 public constant hashRateDecimals = 5;
    // 10 usdt = 1 T
    uint256 public constant hashRatePerUsdt = 10;
    // Manager address
    address public owner;
    // Root address
    address public rootAddress;
    // Burn address
    address public burnAddress;

    // DAI-HE3 pair address
    address public daiToHe3Address;

    // DAI ERC20 address
    address public daiTokenAddress;
    Token tokenDai;
    // HE-3 ERC20 address
    address public he3TokenAddress;
    Token tokenHe3;

    // HE-1 ERC20 address
    address public he1TokenAddress;

    // Userinfo
    struct User {
        address superior;
        uint256 hashRate;
        bool isUser;
    }
    mapping(address => User) public users;

    // Buy hashrate event
    event LogBuyHashRate(address indexed owner, address indexed superior, uint256 hashRate);

    constructor(
        address _rootAddress, 
        address _burnAddress, 
        address _daiToHe3Address, 
        address _daiTokenAddress, 
        address _he3TokenAddress, 
        address _he1TokenAddress
    ) public {
        owner = msg.sender;
        rootAddress = _rootAddress;
        burnAddress = _burnAddress;
        daiToHe3Address = _daiToHe3Address;

        daiTokenAddress = _daiTokenAddress;
        tokenDai = Token(daiTokenAddress);

        he3TokenAddress = _he3TokenAddress;
        tokenHe3 = Token(he3TokenAddress);

        he1TokenAddress = _he1TokenAddress;
    }

    // Modifier func
    modifier onlyOwner() {
        require(msg.sender == owner, "This function is restricted to the owner");
        _;
    }

    modifier notAddress0(address newAddress) {
        require(newAddress != address(0), "Address should not be address(0)");
        _;
    }

    /**
     * Use HE-1 to buy hashrate
     *
     * Requirements:
     *
     * - `_tokenAmount`: Amount of HE-1 
     * - `_superior`: User's inviter
     */
    function buyHashRateWithHE1(uint256 _tokenAmount, address _superior) public {
        _buyHashRate(he1TokenAddress, _tokenAmount, _tokenAmount.div(10**12), _superior);
    }

    /**
     * Use HE-3 to buy hashrate
     *
     * Requirements:
     *
     * - `_tokenAmount`: Amount of HE-3
     * - `_superior`: User's inviter
     */
    function buyHashRateWithHE3(uint256 _tokenAmount, address _superior) public {
        uint256 totalDai = getHe3ToDai(_tokenAmount);
        _buyHashRate(he3TokenAddress, _tokenAmount, totalDai.div(10**12), _superior);
    }

    /**
     * Buy hashrate
     *
     * Requirements:
     *
     * - `_token`: HE-1 or HE-3 address
     * - `_tokenAmount`: Amount of token
     * - `_usdtAmount`: Value of _tokenAmount to USDT
     * - `_superior`: inviter
     */
    function _buyHashRate(address _tokenAddress,uint256 _tokenAmount, uint256 _usdtAmount, address _superior) internal {
        // require _superior
        require(users[_superior].isUser || _superior == rootAddress, "Superiorshould be a user or rootAddress");
        
        // burn the token sent by user
        bool sent = Token(_tokenAddress).transferFrom(msg.sender, burnAddress, _tokenAmount);
        require(sent, "Token transfer failed");

        // USDT decimals = 6
        require(_usdtAmount >= 10000000, "Usdt should be great than or equal 10");
        
        uint256 hashRate = _usdtAmount.div(10).div(hashRatePerUsdt);
        if (users[msg.sender].isUser) {
            users[msg.sender].hashRate = users[msg.sender].hashRate.add(hashRate);
        } else {
            users[msg.sender].superior = _superior;
            users[msg.sender].hashRate = hashRate;
            users[msg.sender].isUser = true;
        }
        
        // Buy hashrate event
        emit LogBuyHashRate(msg.sender, _superior, hashRate);
    }

    // Update owner address
    function updateOwnerAddress(address _newOwnerAddress) public onlyOwner {
        owner = _newOwnerAddress;
    }

    // Update burn address
    function updateBurnAddress(address _newBurnAddress) public onlyOwner {
        burnAddress = _newBurnAddress;
    }

    // update HE-3 contract address
    function updateHe3TokenAddress(address _he3TokenAddress) public onlyOwner notAddress0(_he3TokenAddress) {
        he3TokenAddress = _he3TokenAddress;
        tokenHe3 = Token(he3TokenAddress);
    }

    // update HE-1 contract address
    function updateHe1TokenAddress(address _he1TokenAddress) public onlyOwner notAddress0(_he1TokenAddress) {
        he1TokenAddress = _he1TokenAddress;
    }

    // update DAI contract address
    function updateDaiToHe3AddressAddress(address _daiToHe3Address) public onlyOwner notAddress0(_daiToHe3Address) {
        daiToHe3Address = _daiToHe3Address;
    }

    // update DAI-HE3 uniswap pair contract address
    function updateDaiTokenAddress(address _daiTokenAddress) public onlyOwner notAddress0(_daiTokenAddress) {
        daiTokenAddress = _daiTokenAddress;
        tokenDai = Token(daiTokenAddress);
    }

    /**
     * Is user?
     */
    function isUser(address _userAddress) public view returns (bool) {
        return users[_userAddress].isUser;
    }

    // Get amount 1 HE3 to DAI
    function getDaiPerHe3() public view returns (uint256) {
        return getHe3ToDai(10**18);
    }

    // Get amount _he3Amount HE3 to DAI 
    function getHe3ToDai(uint256 _he3Amount) internal view returns (uint256) {
        return tokenDai.balanceOf(daiToHe3Address).mul(_he3Amount).div(tokenHe3.balanceOf(daiToHe3Address));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_rootAddress","type":"address"},{"internalType":"address","name":"_burnAddress","type":"address"},{"internalType":"address","name":"_daiToHe3Address","type":"address"},{"internalType":"address","name":"_daiTokenAddress","type":"address"},{"internalType":"address","name":"_he3TokenAddress","type":"address"},{"internalType":"address","name":"_he1TokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"superior","type":"address"},{"indexed":false,"internalType":"uint256","name":"hashRate","type":"uint256"}],"name":"LogBuyHashRate","type":"event"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"},{"internalType":"address","name":"_superior","type":"address"}],"name":"buyHashRateWithHE1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"},{"internalType":"address","name":"_superior","type":"address"}],"name":"buyHashRateWithHE3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"daiToHe3Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daiTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDaiPerHe3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hashRateDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hashRatePerUsdt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"he1TokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"he3TokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"}],"name":"isUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rootAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newBurnAddress","type":"address"}],"name":"updateBurnAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_daiToHe3Address","type":"address"}],"name":"updateDaiToHe3AddressAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_daiTokenAddress","type":"address"}],"name":"updateDaiTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_he1TokenAddress","type":"address"}],"name":"updateHe1TokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_he3TokenAddress","type":"address"}],"name":"updateHe3TokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwnerAddress","type":"address"}],"name":"updateOwnerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"address","name":"superior","type":"address"},{"internalType":"uint256","name":"hashRate","type":"uint256"},{"internalType":"bool","name":"isUser","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50604051611eab380380611eab833981810160405260c081101561003357600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050611b94806103176000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80639a5248c4116100ad578063d6187a1f11610071578063d6187a1f146104eb578063db53864f14610539578063e6c578971461056d578063fc5091e4146105a1578063ff0c0e5d146105e55761012c565b80639a5248c414610393578063a87430ba146103d7578063aaa2b8c814610455578063ab86496c14610489578063bd16b5b4146104cd5761012c565b80634c16cd51116100f45780634c16cd51146102555780636aa1e6d2146102995780636bd89cdd146102e757806370d5ae051461032b5780638da5cb5b1461035f5761012c565b806313e083a9146101315780632eaee35e1461014f578063382fa5a0146101835780634209fff1146101b757806345783f3314610211575b600080fd5b610139610603565b6040518082815260200191505060405180910390f35b610157610608565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61018b61062e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101f9600480360360208110156101cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610654565b60405180821515815260200191505060405180910390f35b6102536004803603602081101561022757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106ad565b005b6102976004803603602081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083a565b005b6102e5600480360360408110156102af57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109c7565b005b610329600480360360208110156102fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1e565b005b610333610b06565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610367610b2c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d5600480360360208110156103a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b50565b005b610419600480360360208110156103ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d40565b604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018215158152602001935050505060405180910390f35b61045d610d97565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104cb6004803603602081101561049f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dbd565b005b6104d5610ea4565b6040518082815260200191505060405180910390f35b6105376004803603604081101561050157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea9565b005b610541610ef2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610575610f18565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e3600480360360208110156105b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f3e565b005b6105ed61112e565b6040518082815260200191505060405180910390f35b600581565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610751576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416464726573732073686f756c64206e6f74206265206164647265737328302981525060200191505060405180910390fd5b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108de576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416464726573732073686f756c64206e6f74206265206164647265737328302981525060200191505060405180910390fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60006109d283611146565b9050610a19600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610a1364e8d4a510008561133e90919063ffffffff16565b85611388565b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416464726573732073686f756c64206e6f74206265206164647265737328302981525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60096020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a81565b610eee600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610ee864e8d4a510008661133e90919063ffffffff16565b84611388565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611086576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416464726573732073686f756c64206e6f74206265206164647265737328302981525060200191505060405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000611141670de0b6b3a7640000611146565b905090565b6000611337600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156111f657600080fd5b505afa15801561120a573d6000803e3d6000fd5b505050506040513d602081101561122057600080fd5b810190808051906020019092919050505061132984600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156112e057600080fd5b505afa1580156112f4573d6000803e3d6000fd5b505050506040513d602081101561130a57600080fd5b81019080805190602001909291905050506118f590919063ffffffff16565b61133e90919063ffffffff16565b9050919050565b600061138083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061197b565b905092915050565b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16806114305750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611485576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611aeb6027913960400191505060405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff166323b872dd33600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561153857600080fd5b505af115801561154c573d6000803e3d6000fd5b505050506040513d602081101561156257600080fd5b81019080805190602001909291905050509050806115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f546f6b656e207472616e73666572206661696c6564000000000000000000000081525060200191505060405180910390fd5b62989680831015611644576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611b126025913960400191505060405180910390fd5b600061166d600a61165f600a8761133e90919063ffffffff16565b61133e90919063ffffffff16565b9050600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16156117645761171981600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154611a4190919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550611888565b82600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc1612959650266eb829acf1e64f1b947b9b76f280f0fe7313f3a6e9e90947305836040518082815260200191505060405180910390a3505050505050565b6000808314156119085760009050611975565b600082840290508284828161191957fe5b0414611970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611aca6021913960400191505060405180910390fd5b809150505b92915050565b60008083118290611a27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119ec5780820151818401526020810190506119d1565b50505050905090810190601f168015611a195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611a3357fe5b049050809150509392505050565b600080828401905083811015611abf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775375706572696f7273686f756c6420626520612075736572206f7220726f6f7441646472657373557364742073686f756c64206265206772656174207468616e206f7220657175616c203130546869732066756e6374696f6e206973207265737472696374656420746f20746865206f776e6572a264697066735822122015a217f7f6da172e08e9349ce7b75484b6b408dbc1abafa81def5b77960037b164736f6c634300060c00330000000000000000000000003585762fbff4b2b7d92af16b2bcfa90fe3562087000000000000000000000000c206f4cc6ef3c7bd1c3aade977f0a28ac42f3e37000000000000000000000000f121cd3955f55bb13d546c29c32962d0e853095a0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a15bfa50d2169ef5ba7a938db2f1c09584bd93fe000000000000000000000000e782a9d03a573ea4bea937ca0c95a57c0bc1fb5f

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80639a5248c4116100ad578063d6187a1f11610071578063d6187a1f146104eb578063db53864f14610539578063e6c578971461056d578063fc5091e4146105a1578063ff0c0e5d146105e55761012c565b80639a5248c414610393578063a87430ba146103d7578063aaa2b8c814610455578063ab86496c14610489578063bd16b5b4146104cd5761012c565b80634c16cd51116100f45780634c16cd51146102555780636aa1e6d2146102995780636bd89cdd146102e757806370d5ae051461032b5780638da5cb5b1461035f5761012c565b806313e083a9146101315780632eaee35e1461014f578063382fa5a0146101835780634209fff1146101b757806345783f3314610211575b600080fd5b610139610603565b6040518082815260200191505060405180910390f35b610157610608565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61018b61062e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101f9600480360360208110156101cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610654565b60405180821515815260200191505060405180910390f35b6102536004803603602081101561022757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106ad565b005b6102976004803603602081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083a565b005b6102e5600480360360408110156102af57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109c7565b005b610329600480360360208110156102fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1e565b005b610333610b06565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610367610b2c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d5600480360360208110156103a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b50565b005b610419600480360360208110156103ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d40565b604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018215158152602001935050505060405180910390f35b61045d610d97565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104cb6004803603602081101561049f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dbd565b005b6104d5610ea4565b6040518082815260200191505060405180910390f35b6105376004803603604081101561050157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea9565b005b610541610ef2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610575610f18565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e3600480360360208110156105b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f3e565b005b6105ed61112e565b6040518082815260200191505060405180910390f35b600581565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610751576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416464726573732073686f756c64206e6f74206265206164647265737328302981525060200191505060405180910390fd5b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108de576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416464726573732073686f756c64206e6f74206265206164647265737328302981525060200191505060405180910390fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60006109d283611146565b9050610a19600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610a1364e8d4a510008561133e90919063ffffffff16565b85611388565b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416464726573732073686f756c64206e6f74206265206164647265737328302981525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60096020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a81565b610eee600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610ee864e8d4a510008661133e90919063ffffffff16565b84611388565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611b376028913960400191505060405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611086576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416464726573732073686f756c64206e6f74206265206164647265737328302981525060200191505060405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000611141670de0b6b3a7640000611146565b905090565b6000611337600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156111f657600080fd5b505afa15801561120a573d6000803e3d6000fd5b505050506040513d602081101561122057600080fd5b810190808051906020019092919050505061132984600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156112e057600080fd5b505afa1580156112f4573d6000803e3d6000fd5b505050506040513d602081101561130a57600080fd5b81019080805190602001909291905050506118f590919063ffffffff16565b61133e90919063ffffffff16565b9050919050565b600061138083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061197b565b905092915050565b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16806114305750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611485576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611aeb6027913960400191505060405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff166323b872dd33600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561153857600080fd5b505af115801561154c573d6000803e3d6000fd5b505050506040513d602081101561156257600080fd5b81019080805190602001909291905050509050806115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f546f6b656e207472616e73666572206661696c6564000000000000000000000081525060200191505060405180910390fd5b62989680831015611644576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611b126025913960400191505060405180910390fd5b600061166d600a61165f600a8761133e90919063ffffffff16565b61133e90919063ffffffff16565b9050600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16156117645761171981600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154611a4190919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550611888565b82600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc1612959650266eb829acf1e64f1b947b9b76f280f0fe7313f3a6e9e90947305836040518082815260200191505060405180910390a3505050505050565b6000808314156119085760009050611975565b600082840290508284828161191957fe5b0414611970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611aca6021913960400191505060405180910390fd5b809150505b92915050565b60008083118290611a27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119ec5780820151818401526020810190506119d1565b50505050905090810190601f168015611a195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611a3357fe5b049050809150509392505050565b600080828401905083811015611abf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775375706572696f7273686f756c6420626520612075736572206f7220726f6f7441646472657373557364742073686f756c64206265206772656174207468616e206f7220657175616c203130546869732066756e6374696f6e206973207265737472696374656420746f20746865206f776e6572a264697066735822122015a217f7f6da172e08e9349ce7b75484b6b408dbc1abafa81def5b77960037b164736f6c634300060c0033

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

0000000000000000000000003585762fbff4b2b7d92af16b2bcfa90fe3562087000000000000000000000000c206f4cc6ef3c7bd1c3aade977f0a28ac42f3e37000000000000000000000000f121cd3955f55bb13d546c29c32962d0e853095a0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a15bfa50d2169ef5ba7a938db2f1c09584bd93fe000000000000000000000000e782a9d03a573ea4bea937ca0c95a57c0bc1fb5f

-----Decoded View---------------
Arg [0] : _rootAddress (address): 0x3585762FBFf4b2b7D92Af16b2BCfa90FE3562087
Arg [1] : _burnAddress (address): 0xC206F4CC6ef3C7bD1c3aade977f0A28ac42F3E37
Arg [2] : _daiToHe3Address (address): 0xf121CD3955f55BB13D546C29C32962D0e853095A
Arg [3] : _daiTokenAddress (address): 0x6B175474E89094C44Da98b954EedeAC495271d0F
Arg [4] : _he3TokenAddress (address): 0xA15BFa50D2169ef5ba7A938DB2F1C09584BD93Fe
Arg [5] : _he1TokenAddress (address): 0xE782a9d03a573eA4BeA937ca0c95a57c0Bc1fb5F

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000003585762fbff4b2b7d92af16b2bcfa90fe3562087
Arg [1] : 000000000000000000000000c206f4cc6ef3c7bd1c3aade977f0a28ac42f3e37
Arg [2] : 000000000000000000000000f121cd3955f55bb13d546c29c32962d0e853095a
Arg [3] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [4] : 000000000000000000000000a15bfa50d2169ef5ba7a938db2f1c09584bd93fe
Arg [5] : 000000000000000000000000e782a9d03a573ea4bea937ca0c95a57c0bc1fb5f


Deployed Bytecode Sourcemap

5593:5732:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5687:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6066:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6238;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10825:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10155:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10356:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8014:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9747:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5937:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5835:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9909:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6396:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5883:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9597:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5760:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7663:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6151:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6001;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10581:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10982:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5687:44;5730:1;5687:44;:::o;6066:30::-;;;;;;;;;;;;;:::o;6238:::-;;;;;;;;;;;;;:::o;10825:117::-;10884:4;10908:5;:19;10914:12;10908:19;;;;;;;;;;;;;;;:26;;;;;;;;;;;;10901:33;;10825:117;;;:::o;10155:157::-;7267:5;;;;;;;;;;7253:19;;:10;:19;;;7245:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10241:16:::1;7427:1;7405:24;;:10;:24;;;;7397:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10288:16:::2;10270:15;;:34;;;;;;;;;;;;;;;;;;7328:1:::1;10155:157:::0;:::o;10356:164::-;7267:5;;;;;;;;;;7253:19;;:10;:19;;;7245:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10449:16:::1;7427:1;7405:24;;:10;:24;;;;7397:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10496:16:::2;10478:15;;:34;;;;;;;;;;;;;;;;;;7328:1:::1;10356:164:::0;:::o;8014:226::-;8101:16;8120:25;8132:12;8120:11;:25::i;:::-;8101:44;;8156:76;8169:15;;;;;;;;;;;8186:12;8200:20;8213:6;8200:8;:12;;:20;;;;:::i;:::-;8222:9;8156:12;:76::i;:::-;8014:226;;;:::o;9747:117::-;7267:5;;;;;;;;;;7253:19;;:10;:19;;;7245:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9841:15:::1;9827:11;;:29;;;;;;;;;;;;;;;;;;9747:117:::0;:::o;5937:26::-;;;;;;;;;;;;;:::o;5835:20::-;;;;;;;;;;;;:::o;9909:201::-;7267:5;;;;;;;;;;7253:19;;:10;:19;;;7245:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9995:16:::1;7427:1;7405:24;;:10;:24;;;;7397:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10042:16:::2;10024:15;;:34;;;;;;;;;;;;;;;;;;10086:15;;;;;;;;;;;10069:8;;:33;;;;;;;;;;;;;;;;;;7328:1:::1;9909:201:::0;:::o;6396:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5883:26::-;;;;;;;;;;;;;:::o;9597:114::-;7267:5;;;;;;;;;;7253:19;;:10;:19;;;7245:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9687:16:::1;9679:5;::::0;:24:::1;;;;;;;;;;;;;;;;;;9597:114:::0;:::o;5760:44::-;5802:2;5760:44;:::o;7663:175::-;7750:80;7763:15;;;;;;;;;;;7780:12;7794:24;7811:6;7794:12;:16;;:24;;;;:::i;:::-;7820:9;7750:12;:80::i;:::-;7663:175;;:::o;6151:30::-;;;;;;;;;;;;;:::o;6001:::-;;;;;;;;;;;;;:::o;10581:201::-;7267:5;;;;;;;;;;7253:19;;:10;:19;;;7245:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10667:16:::1;7427:1;7405:24;;:10;:24;;;;7397:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10714:16:::2;10696:15;;:34;;;;;;;;;;;;;;;;;;10758:15;;;;;;;;;;;10741:8;;:33;;;;;;;;;;;;;;;;;;7328:1:::1;10581:201:::0;:::o;10982:99::-;11027:7;11054:19;11066:6;11054:11;:19::i;:::-;11047:26;;10982:99;:::o;11131:191::-;11195:7;11222:92;11278:8;;;;;;;;;;;:18;;;11297:15;;;;;;;;;;;11278:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11222:51;11262:10;11222:8;;;;;;;;;;;:18;;;11241:15;;;;;;;;;;;11222:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:39;;:51;;;;:::i;:::-;:55;;:92;;;;:::i;:::-;11215:99;;11131:191;;;:::o;3163:132::-;3221:7;3248:39;3252:1;3255;3248:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3241:46;;3163:132;;;;:::o;8494:1066::-;8658:5;:16;8664:9;8658:16;;;;;;;;;;;;;;;:23;;;;;;;;;;;;:51;;;;8698:11;;;;;;;;;;;8685:24;;:9;:24;;;8658:51;8650:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8814:9;8832:13;8826:33;;;8860:10;8872:11;;;;;;;;;;;8885:12;8826:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8814:84;;8917:4;8909:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9013:8;8998:11;:23;;8990:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9084:16;9103:40;5802:2;9103:19;9119:2;9103:11;:15;;:19;;;;:::i;:::-;:23;;:40;;;;:::i;:::-;9084:59;;9158:5;:17;9164:10;9158:17;;;;;;;;;;;;;;;:24;;;;;;;;;;;;9154:295;;;9228:40;9259:8;9228:5;:17;9234:10;9228:17;;;;;;;;;;;;;;;:26;;;:30;;:40;;;;:::i;:::-;9199:5;:17;9205:10;9199:17;;;;;;;;;;;;;;;:26;;:69;;;;9154:295;;;9330:9;9301:5;:17;9307:10;9301:17;;;;;;;;;;;;;;;:26;;;:38;;;;;;;;;;;;;;;;;;9383:8;9354:5;:17;9360:10;9354:17;;;;;;;;;;;;;;;:26;;:37;;;;9433:4;9406:5;:17;9412:10;9406:17;;;;;;;;;;;;;;;:24;;;:31;;;;;;;;;;;;;;;;;;9154:295;9532:9;9505:47;;9520:10;9505:47;;;9543:8;9505:47;;;;;;;;;;;;;;;;;;8494:1066;;;;;;:::o;2224:471::-;2282:7;2532:1;2527;:6;2523:47;;;2557:1;2550:8;;;;2523:47;2582:9;2598:1;2594;:5;2582:17;;2627:1;2622;2618;:5;;;;;;:10;2610:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2686:1;2679:8;;;2224:471;;;;;:::o;3783:345::-;3869:7;3968:1;3964;:5;3971:12;3956:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3995:9;4011:1;4007;:5;;;;;;3995:17;;4119:1;4112:8;;;3783:345;;;;;:::o;894:181::-;952:7;972:9;988:1;984;:5;972:17;;1013:1;1008;:6;;1000:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:1;1059:8;;;894:181;;;;:::o

Swarm Source

ipfs://15a217f7f6da172e08e9349ce7b75484b6b408dbc1abafa81def5b77960037b1

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.