ETH Price: $3,283.57 (+0.40%)

Token

HYDRO TOKEN (HYDRO)
 

Overview

Max Total Supply

111,111,111.11 HYDRO

Holders

77 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,167 HYDRO

Value
$0.00
0x5Bc2A0F35ee957Ca76BC269a93AD9d2900d15850
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Hydro is a decentralized ecosystem using cutting-edge cryptography to secure user accounts, identities, and transactions. Multi-chain protocols securing the web3 reality.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HydroToken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-02-28
*/

//////////////////////////////////////////
// PROJECT HYDRO
// Multi Chain Token
//////////////////////////////////////////
pragma solidity ^0.6.0;
contract Ownable {
    address public owner;


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


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

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

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

}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

interface Raindrop {
    function authenticate(address _sender, uint _value, uint _challenge, uint _partnerId) external;
}

interface tokenRecipient {
    function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external;
}

interface IERC20 {
  /**
   * @dev Returns the amount of tokens in existence.
   */
  function totalSupply() external view returns (uint256);

  /**
   * @dev Returns the token decimals.
   */
  function decimals() external view returns (uint8);

  /**
   * @dev Returns the token symbol.
   */
  function symbol() external view returns (string memory);

  /**
  * @dev Returns the token name.
  */
  function name() external view returns (string memory);

  /**
   * @dev Returns the amount of tokens owned by `account`.
   */
  function balanceOf(address account) external view returns (uint256);

  /**
   * @dev Moves `amount` tokens from the caller's account to `recipient`.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transfer(address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Returns the remaining number of tokens that `spender` will be
   * allowed to spend on behalf of `owner` through {transferFrom}. This is
   * zero by default.
   *
   * This value changes when {approve} or {transferFrom} are called.
   */
  function allowance(address _owner, address spender) external view returns (uint256);

  /**
   * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * IMPORTANT: Beware that changing an allowance with this method brings the risk
   * that someone may use both the old and the new allowance by unfortunate
   * transaction ordering. One possible solution to mitigate this race
   * condition is to first reduce the spender's allowance to 0 and set the
   * desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   * Emits an {Approval} event.
   */
  function approve(address spender, uint256 amount) external returns (bool);

  /**
   * @dev Moves `amount` tokens from `sender` to `recipient` using the
   * allowance mechanism. `amount` is then deducted from the caller's
   * allowance.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Emitted when `value` tokens are moved from one account (`from`) to
   * another (`to`).
   *
   * Note that `value` may be zero.
   */
  event Transfer(address indexed from, address indexed to, uint256 value);

  /**
   * @dev Emitted when the allowance of a `spender` for an `owner` is set by
   * a call to {approve}. `value` is the new allowance.
   */
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract HydroToken is Ownable,IERC20 {
    using SafeMath for uint256;

    string public _name;
    string public _symbol;
    uint8 public _decimals;            // Number of decimals of the smallest unit
    uint public _totalSupply;
    address public raindropAddress;
    uint256 ratio;
    uint256 public MAX_BURN= 100000000000000000; //0.1 hydro tokens

    mapping (address => uint256) public balances;
    // `allowed` tracks any extra transfer rights as in all ERC20 tokens
    mapping (address => mapping (address => uint256)) public allowed;
    mapping(address=>bool) public whitelistedDapps; //dapps that can burn tokens
    
    //makes sure only dappstore apps can burn tokens
    modifier onlyFromDapps(address _dapp){
        require(whitelistedDapps[msg.sender]==true,'Hydro: Burn error');
        _;
    }
    
    event dappBurned(address indexed _dapp, uint256 _amount );

////////////////
// Constructor
////////////////

    /// @notice Constructor to create a HydroToken
    constructor(uint256 _ratio) public {
        _name='HYDRO TOKEN';
        _symbol='HYDRO';
        _decimals=18;
        raindropAddress=address(0);
       _totalSupply = (11111111111 * 10**18)/_ratio;
        // Give the creator all initial tokens
        balances[msg.sender] = _totalSupply;
        ratio = _ratio;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
    


///////////////////
// ERC20 Methods
///////////////////

    //transfers an amount of tokens from one account to another
    //accepts two variables
    function transfer(address _to, uint256 _amount) public override  returns (bool success) {
        doTransfer(msg.sender, _to, _amount);
        return true;
}

  /**
   * @dev Returns the token symbol.
   */
  function symbol() public override view returns (string memory) {
    return _symbol;
  }
  
  /**
  * @dev Returns the token name.
  */
  function name() public override view returns (string memory) {
    return _name;
  }
  
    //transfers an amount of tokens from one account to another
    //accepts three variables
    function transferFrom(address _from, address _to, uint256 _amount
    ) public override returns (bool success) {
        // The standard ERC 20 transferFrom functionality
        require(allowed[_from][msg.sender] >= _amount);
        allowed[_from][msg.sender] -= _amount;
        doTransfer(_from, _to, _amount);
        return true;
    }
    
    //allows the owner to change the MAX_BURN amount
    function changeMaxBurn(uint256 _newBurn) public onlyOwner returns(uint256 ) {
        MAX_BURN=_newBurn;
        return (_newBurn);
    }

    //internal function to implement the transfer function and perform some safety checks
    function doTransfer(address _from, address _to, uint _amount
    ) internal {
        // Do not allow transfer to 0x0 or the token contract itself
        require((_to != address(0)) && (_to != address(this)));
        require(_amount <= balances[_from]);
        balances[_from] = balances[_from].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Transfer(_from, _to, _amount);
    }

    //returns balance of an address
    function balanceOf(address _owner) public override view returns (uint256 balance) {
        return balances[_owner];
    }

    //allows an address to approve another address to spend its tokens
    function approve(address _spender, uint256 _amount) public override returns (bool success) {
        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender,0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require((_amount == 0) || (allowed[msg.sender][_spender] == 0));
        allowed[msg.sender][_spender] = _amount;
        emit Approval(msg.sender, _spender, _amount);
        return true;
    }
    
    //sends the approve function but with a data argument
    function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) public  returns (bool success) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, address(this), _extraData);
            return true;
        }
    }
    
   /**
   * @dev Returns the token decimals.
   */
  function decimals() external view override returns (uint8) {
    return _decimals;
  }



    //returns the allowance an address has granted a spender
    function allowance(address _owner, address _spender
    ) public view override returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
    
    //allows an owner to whitelist a dapp so it can burn tokens
    function _whiteListDapp(address _dappAddress) public onlyOwner returns(bool){
        whitelistedDapps[_dappAddress]=true;
        return true;
    }
    
    //allows an owner to blacklist a dapp so it can stop burn tokens
    function _blackListDapp(address _dappAddress) public onlyOwner returns(bool){
         whitelistedDapps[_dappAddress]=false;
         return false;
    }

    //returns current hydro totalSupply
    function totalSupply() public view override returns (uint) {
        return _totalSupply;
    }

    //allows the owner to set the Raindrop
    function setRaindropAddress(address _raindrop) public onlyOwner {
        raindropAddress = _raindrop;
    }
    
    //the main public burn function which uses the internal burn function
    function burn(address _from,uint256 _value) external returns(uint burnAmount) {
    _burn(_from,_value);
    emit dappBurned(msg.sender,_value);
    return(burnAmount);
    }

    function authenticate(uint _value, uint _challenge, uint _partnerId) public  {
        Raindrop raindrop = Raindrop(raindropAddress);
        raindrop.authenticate(msg.sender, _value, _challenge, _partnerId);
        doTransfer(msg.sender, owner, _value);
    }

    //internal burn function which makes sure that only whitelisted addresses can burn
    function _burn(address account, uint256 amount) internal onlyFromDapps(msg.sender) {
    require(account != address(0), "ERC20: burn from the zero address");
    require(amount >= MAX_BURN,'ERC20: Exceeds maximum burn amount');
    balances[account] = balances[account].sub(amount); 
    _totalSupply = _totalSupply.sub(amount);
    emit Transfer(account, address(0), amount);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_ratio","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_dapp","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"dappBurned","type":"event"},{"inputs":[],"name":"MAX_BURN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dappAddress","type":"address"}],"name":"_blackListDapp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dappAddress","type":"address"}],"name":"_whiteListDapp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_challenge","type":"uint256"},{"internalType":"uint256","name":"_partnerId","type":"uint256"}],"name":"authenticate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"uint256","name":"burnAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBurn","type":"uint256"}],"name":"changeMaxBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"raindropAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_raindrop","type":"address"}],"name":"setRaindropAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedDapps","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405267016345785d8a00006007553480156200001d57600080fd5b506040516200215738038062002157833981810160405260208110156200004357600080fd5b8101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600b81526020017f485944524f20544f4b454e00000000000000000000000000000000000000000081525060019080519060200190620000e192919062000267565b506040518060400160405280600581526020017f485944524f000000000000000000000000000000000000000000000000000000815250600290805190602001906200012f92919062000267565b506012600360006101000a81548160ff021916908360ff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806b23e6e54c4381ee57e2bc000081620001a457fe5b04600481905550600454600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806006819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a3506200030d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002aa57805160ff1916838001178555620002db565b82800160010185558215620002db579182015b82811115620002da578251825591602001919060010190620002bd565b5b509050620002ea9190620002ee565b5090565b5b8082111562000309576000816000905550600101620002ef565b5090565b611e3a806200031d6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806371ee5ca9116100f9578063b1bbd59e11610097578063d28d885211610071578063d28d885214610988578063dd62ed3e14610a0b578063e749d6a614610a83578063f2fde38b14610add576101a9565b8063b1bbd59e146107ef578063b302ea1e14610849578063cae9ca511461088d576101a9565b806395d89b41116100d357806395d89b41146106235780639dc29fac146106a6578063a9059cbb14610708578063b09f12661461076c576101a9565b806371ee5ca91461058f578063831946c7146105d15780638da5cb5b146105ef576101a9565b806327e235e3116101665780633eaaf86b116101405780633eaaf86b14610447578063540dbf34146104655780635c658165146104bf57806370a0823114610537576101a9565b806327e235e3146103ad578063313ce5671461040557806332424aa314610426576101a9565b806303960631146101ae578063053011b7146101e257806306fdde0314610224578063095ea7b3146102a757806318160ddd1461030b57806323b872dd14610329575b600080fd5b6101b6610b21565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610222600480360360608110156101f857600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610b47565b005b61022c610c38565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026c578082015181840152602081019050610251565b50505050905090810190601f1680156102995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f3600480360360408110156102bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cda565b60405180821515815260200191505060405180910390f35b610313610e5f565b6040518082815260200191505060405180910390f35b6103956004803603606081101561033f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e69565b60405180821515815260200191505060405180910390f35b6103ef600480360360208110156103c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f94565b6040518082815260200191505060405180910390f35b61040d610fac565b604051808260ff16815260200191505060405180910390f35b61042e610fc3565b604051808260ff16815260200191505060405180910390f35b61044f610fd6565b6040518082815260200191505060405180910390f35b6104a76004803603602081101561047b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fdc565b60405180821515815260200191505060405180910390f35b610521600480360360408110156104d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611098565b6040518082815260200191505060405180910390f35b6105796004803603602081101561054d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110bd565b6040518082815260200191505060405180910390f35b6105bb600480360360208110156105a557600080fd5b8101908080359060200190929190505050611106565b6040518082815260200191505060405180910390f35b6105d9611170565b6040518082815260200191505060405180910390f35b6105f7611176565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61062b61119a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066b578082015181840152602081019050610650565b50505050905090810190601f1680156106985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106f2600480360360408110156106bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123c565b6040518082815260200191505060405180910390f35b6107546004803603604081101561071e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061129c565b60405180821515815260200191505060405180910390f35b6107746112b3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107b4578082015181840152602081019050610799565b50505050905090810190601f1680156107e15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108316004803603602081101561080557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611351565b60405180821515815260200191505060405180910390f35b61088b6004803603602081101561085f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140d565b005b610970600480360360608110156108a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156108ea57600080fd5b8201836020820111156108fc57600080fd5b8035906020019184600183028401116401000000008311171561091e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506114a9565b60405180821515815260200191505060405180910390f35b6109906115e5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109d05780820151818401526020810190506109b5565b50505050905090810190601f1680156109fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610a6d60048036036040811015610a2157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611683565b6040518082815260200191505060405180910390f35b610ac560048036036020811015610a9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061170a565b60405180821515815260200191505060405180910390f35b610b1f60048036036020811015610af357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061172a565b005b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c68ae617338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001828152602001945050505050600060405180830381600087803b158015610bef57600080fd5b505af1158015610c03573d6000803e3d6000fd5b50505050610c323360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611879565b50505050565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050905090565b600080821480610d6657506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610d6f57600080fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600454905090565b600081600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ef457600080fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610f89848484611879565b600190509392505050565b60086020528060005260406000206000915090505481565b6000600360009054906101000a900460ff16905090565b600360009054906101000a900460ff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461103757600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060009050919050565b6009602052816000526040600020602052806000526040600020600091509150505481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116157600080fd5b81600781905550819050919050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112325780601f1061120757610100808354040283529160200191611232565b820191906000526020600020905b81548152906001019060200180831161121557829003601f168201915b5050505050905090565b60006112488383611acb565b3373ffffffffffffffffffffffffffffffffffffffff167fe3833cad7d2b62a57b31546765698888596a7671d178a6177e7235131b84fed0836040518082815260200191505060405180910390a292915050565b60006112a9338484611879565b6001905092915050565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113495780601f1061131e57610100808354040283529160200191611349565b820191906000526020600020905b81548152906001019060200180831161132c57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ac57600080fd5b6001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461146557600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808490506114b98585610cda565b156115dc578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561156b578082015181840152602081019050611550565b50505050905090810190601f1680156115985780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b5050505060019150506115de565b505b9392505050565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561167b5780601f106116505761010080835404028352916020019161167b565b820191906000526020600020905b81548152906001019060200180831161165e57829003601f168201915b505050505081565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461178257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117bc57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118e257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118eb57600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561193757600080fd5b61198981600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8e90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a1e81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da590919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b3360011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611b92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f487964726f3a204275726e206572726f7200000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611dc26021913960400191505060405180910390fd5b600754821015611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611de36022913960400191505060405180910390fd5b611cc582600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8e90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d1d82600454611d8e90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082821115611d9a57fe5b818303905092915050565b600080828401905083811015611db757fe5b809150509291505056fe45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a2045786365656473206d6178696d756d206275726e20616d6f756e74a2646970667358221220bb802c5ee77c3dd06dc83cd1372099d23b5e26b0becb7e70c84112f3ba19349664736f6c634300060c00330000000000000000000000000000000000000000000000000000000000000064

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806371ee5ca9116100f9578063b1bbd59e11610097578063d28d885211610071578063d28d885214610988578063dd62ed3e14610a0b578063e749d6a614610a83578063f2fde38b14610add576101a9565b8063b1bbd59e146107ef578063b302ea1e14610849578063cae9ca511461088d576101a9565b806395d89b41116100d357806395d89b41146106235780639dc29fac146106a6578063a9059cbb14610708578063b09f12661461076c576101a9565b806371ee5ca91461058f578063831946c7146105d15780638da5cb5b146105ef576101a9565b806327e235e3116101665780633eaaf86b116101405780633eaaf86b14610447578063540dbf34146104655780635c658165146104bf57806370a0823114610537576101a9565b806327e235e3146103ad578063313ce5671461040557806332424aa314610426576101a9565b806303960631146101ae578063053011b7146101e257806306fdde0314610224578063095ea7b3146102a757806318160ddd1461030b57806323b872dd14610329575b600080fd5b6101b6610b21565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610222600480360360608110156101f857600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610b47565b005b61022c610c38565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026c578082015181840152602081019050610251565b50505050905090810190601f1680156102995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f3600480360360408110156102bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cda565b60405180821515815260200191505060405180910390f35b610313610e5f565b6040518082815260200191505060405180910390f35b6103956004803603606081101561033f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e69565b60405180821515815260200191505060405180910390f35b6103ef600480360360208110156103c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f94565b6040518082815260200191505060405180910390f35b61040d610fac565b604051808260ff16815260200191505060405180910390f35b61042e610fc3565b604051808260ff16815260200191505060405180910390f35b61044f610fd6565b6040518082815260200191505060405180910390f35b6104a76004803603602081101561047b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fdc565b60405180821515815260200191505060405180910390f35b610521600480360360408110156104d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611098565b6040518082815260200191505060405180910390f35b6105796004803603602081101561054d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110bd565b6040518082815260200191505060405180910390f35b6105bb600480360360208110156105a557600080fd5b8101908080359060200190929190505050611106565b6040518082815260200191505060405180910390f35b6105d9611170565b6040518082815260200191505060405180910390f35b6105f7611176565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61062b61119a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066b578082015181840152602081019050610650565b50505050905090810190601f1680156106985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106f2600480360360408110156106bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123c565b6040518082815260200191505060405180910390f35b6107546004803603604081101561071e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061129c565b60405180821515815260200191505060405180910390f35b6107746112b3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107b4578082015181840152602081019050610799565b50505050905090810190601f1680156107e15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108316004803603602081101561080557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611351565b60405180821515815260200191505060405180910390f35b61088b6004803603602081101561085f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140d565b005b610970600480360360608110156108a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156108ea57600080fd5b8201836020820111156108fc57600080fd5b8035906020019184600183028401116401000000008311171561091e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506114a9565b60405180821515815260200191505060405180910390f35b6109906115e5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109d05780820151818401526020810190506109b5565b50505050905090810190601f1680156109fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610a6d60048036036040811015610a2157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611683565b6040518082815260200191505060405180910390f35b610ac560048036036020811015610a9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061170a565b60405180821515815260200191505060405180910390f35b610b1f60048036036020811015610af357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061172a565b005b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c68ae617338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001828152602001945050505050600060405180830381600087803b158015610bef57600080fd5b505af1158015610c03573d6000803e3d6000fd5b50505050610c323360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611879565b50505050565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050905090565b600080821480610d6657506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610d6f57600080fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600454905090565b600081600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ef457600080fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610f89848484611879565b600190509392505050565b60086020528060005260406000206000915090505481565b6000600360009054906101000a900460ff16905090565b600360009054906101000a900460ff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461103757600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060009050919050565b6009602052816000526040600020602052806000526040600020600091509150505481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116157600080fd5b81600781905550819050919050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112325780601f1061120757610100808354040283529160200191611232565b820191906000526020600020905b81548152906001019060200180831161121557829003601f168201915b5050505050905090565b60006112488383611acb565b3373ffffffffffffffffffffffffffffffffffffffff167fe3833cad7d2b62a57b31546765698888596a7671d178a6177e7235131b84fed0836040518082815260200191505060405180910390a292915050565b60006112a9338484611879565b6001905092915050565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113495780601f1061131e57610100808354040283529160200191611349565b820191906000526020600020905b81548152906001019060200180831161132c57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ac57600080fd5b6001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461146557600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808490506114b98585610cda565b156115dc578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561156b578082015181840152602081019050611550565b50505050905090810190601f1680156115985780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b5050505060019150506115de565b505b9392505050565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561167b5780601f106116505761010080835404028352916020019161167b565b820191906000526020600020905b81548152906001019060200180831161165e57829003601f168201915b505050505081565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461178257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117bc57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118e257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118eb57600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561193757600080fd5b61198981600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8e90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a1e81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da590919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b3360011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611b92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f487964726f3a204275726e206572726f7200000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611dc26021913960400191505060405180910390fd5b600754821015611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611de36022913960400191505060405180910390fd5b611cc582600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8e90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d1d82600454611d8e90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082821115611d9a57fe5b818303905092915050565b600080828401905083811015611db757fe5b809150509291505056fe45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a2045786365656473206d6178696d756d206275726e20616d6f756e74a2646970667358221220bb802c5ee77c3dd06dc83cd1372099d23b5e26b0becb7e70c84112f3ba19349664736f6c634300060c0033

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

0000000000000000000000000000000000000000000000000000000000000064

-----Decoded View---------------
Arg [0] : _ratio (uint256): 100

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


Deployed Bytecode Sourcemap

5319:6680:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5567:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11249:265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7277:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8792:607;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10717:97;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7469:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5695:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9880:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5453:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5536:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10512:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5820:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8588:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7883:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5624:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;177:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7132:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11063:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6914:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5425:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10278:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10866:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9470:346;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5399:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10042:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5891:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;837:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5567:30;;;;;;;;;;;;;:::o;11249:265::-;11337:17;11366:15;;;;;;;;;;;11337:45;;11393:8;:21;;;11415:10;11427:6;11435:10;11447;11393:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11469:37;11480:10;11492:5;;;;;;;;;;11499:6;11469:10;:37::i;:::-;11249:265;;;;:::o;7277:86::-;7323:13;7352:5;7345:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7277:86;:::o;8792:607::-;8869:12;9221:1;9210:7;:12;9209:54;;;;9261:1;9228:7;:19;9236:10;9228:19;;;;;;;;;;;;;;;:29;9248:8;9228:29;;;;;;;;;;;;;;;;:34;9209:54;9201:63;;;;;;9307:7;9275;:19;9283:10;9275:19;;;;;;;;;;;;;;;:29;9295:8;9275:29;;;;;;;;;;;;;;;:39;;;;9351:8;9330:39;;9339:10;9330:39;;;9361:7;9330:39;;;;;;;;;;;;;;;;;;9387:4;9380:11;;8792:607;;;;:::o;10717:97::-;10770:4;10794:12;;10787:19;;10717:97;:::o;7469:348::-;7567:12;7689:7;7659;:14;7667:5;7659:14;;;;;;;;;;;;;;;:26;7674:10;7659:26;;;;;;;;;;;;;;;;:37;;7651:46;;;;;;7738:7;7708;:14;7716:5;7708:14;;;;;;;;;;;;;;;:26;7723:10;7708:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;7756:31;7767:5;7774:3;7779:7;7756:10;:31::i;:::-;7805:4;7798:11;;7469:348;;;;;:::o;5695:44::-;;;;;;;;;;;;;;;;;:::o;9880:88::-;9932:5;9953:9;;;;;;;;;;;9946:16;;9880:88;:::o;5453:22::-;;;;;;;;;;;;;:::o;5536:24::-;;;;:::o;10512:156::-;10583:4;634:5;;;;;;;;;;;620:19;;:10;:19;;;612:28;;;;;;10631:5:::1;10600:16;:30;10617:12;10600:30;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;10655:5;10648:12;;10512:156:::0;;;:::o;5820:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8588:124::-;8653:15;8688:8;:16;8697:6;8688:16;;;;;;;;;;;;;;;;8681:23;;8588:124;;;:::o;7883:140::-;7949:7;634:5;;;;;;;;;;;620:19;;:10;:19;;;612:28;;;;;;7979:8:::1;7970;:17;;;;8006:8;7998:17;;7883:140:::0;;;:::o;5624:43::-;;;;:::o;177:20::-;;;;;;;;;;;;:::o;7132:90::-;7180:13;7209:7;7202:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7132:90;:::o;11063:178::-;11124:15;11148:19;11154:5;11160:6;11148:5;:19::i;:::-;11190:10;11179:29;;;11201:6;11179:29;;;;;;;;;;;;;;;;;;11063:178;;;;:::o;6914:161::-;6988:12;7013:36;7024:10;7036:3;7041:7;7013:10;:36::i;:::-;7067:4;7060:11;;6914:161;;;;:::o;5425:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10278:152::-;10349:4;634:5;;;;;;;;;;;620:19;;:10;:19;;;612:28;;;;;;10396:4:::1;10365:16;:30;10382:12;10365:30;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10418:4;10411:11;;10278:152:::0;;;:::o;10866:110::-;634:5;;;;;;;;;;620:19;;:10;:19;;;612:28;;;;;;10959:9:::1;10941:15;;:27;;;;;;;;;;;;;;;;;;10866:110:::0;:::o;9470:346::-;9570:12;9595:22;9635:8;9595:49;;9659:25;9667:8;9677:6;9659:7;:25::i;:::-;9655:154;;;9701:7;:23;;;9725:10;9737:6;9753:4;9760:10;9701:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9793:4;9786:11;;;;;9655:154;9470:346;;;;;;;:::o;5399:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10042:159::-;10131:17;10168:7;:15;10176:6;10168:15;;;;;;;;;;;;;;;:25;10184:8;10168:25;;;;;;;;;;;;;;;;10161:32;;10042:159;;;;:::o;5891:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;837:192::-;634:5;;;;;;;;;;620:19;;:10;:19;;;612:28;;;;;;938:1:::1;918:22;;:8;:22;;;;910:31;;;::::0;::::1;;985:8;957:37;;978:5;::::0;::::1;;;;;;;;957:37;;;;;;;;;;;;1013:8;1005:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;837:192:::0;:::o;8122:421::-;8304:1;8289:17;;:3;:17;;;;8288:45;;;;;8327:4;8312:20;;:3;:20;;;;8288:45;8280:54;;;;;;8364:8;:15;8373:5;8364:15;;;;;;;;;;;;;;;;8353:7;:26;;8345:35;;;;;;8409:28;8429:7;8409:8;:15;8418:5;8409:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;8391:8;:15;8400:5;8391:15;;;;;;;;;;;;;;;:46;;;;8464:26;8482:7;8464:8;:13;8473:3;8464:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;8448:8;:13;8457:3;8448:13;;;;;;;;;;;;;;;:42;;;;8522:3;8506:29;;8515:5;8506:29;;;8527:7;8506:29;;;;;;;;;;;;;;;;;;8122:421;;;:::o;11610:386::-;11681:10;6119:4;6089:34;;:16;:28;6106:10;6089:28;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;6081:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11727:1:::1;11708:21;;:7;:21;;;;11700:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11792:8;;11782:6;:18;;11774:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11865:29;11887:6;11865:8;:17;11874:7;11865:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11845:8;:17;11854:7;11845:17;;;;;;;;;;;;;;;:49;;;;11917:24;11934:6;11917:12;;:16;;:24;;;;:::i;:::-;11902:12;:39;;;;11979:1;11953:37;;11962:7;11953:37;;;11983:6;11953:37;;;;;;;;;;;;;;;;;;11610:386:::0;;;:::o;1877:113::-;1935:7;1963:1;1958;:6;;1951:14;;;;1983:1;1979;:5;1972:12;;1877:113;;;;:::o;2057:133::-;2115:7;2131:9;2147:1;2143;:5;2131:17;;2167:1;2162;:6;;2155:14;;;;2183:1;2176:8;;;2057:133;;;;:::o

Swarm Source

ipfs://bb802c5ee77c3dd06dc83cd1372099d23b5e26b0becb7e70c84112f3ba193496
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.