ETH Price: $3,311.86 (-1.07%)
 

Overview

Max Total Supply

20,000,000 FLOW

Holders

2

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
19,999,800 FLOW

Value
$0.00
0xbb0dd68836349943cde2ef366abe552a1c0976b5
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GeneralToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-08-03
*/

pragma solidity ^0.4.24;

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

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {
    /**
    * @dev Multiplies two numbers, reverts on 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-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0); // Solidity only automatically asserts 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, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

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

        return c;
    }

    /**
    * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

/**
 * @title SafeMathInt
 * @dev Math operations for int256 with overflow safety checks.
 */
library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b)
        internal
        pure
        returns (int256)
    {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b)
        internal
        pure
        returns (int256)
    {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b)
        internal
        pure
        returns (int256)
    {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b)
        internal
        pure
        returns (int256)
    {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a)
        internal
        pure
        returns (int256)
    {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
}

contract GeneralToken {
    using SafeMath for uint256;
    using SafeMathInt for int256;

    address private _owner;

    string private _name;
    string private _symbol;
    uint8 private _decimals = 8;

    // Precautionary emergency controls.
    bool public rebasePaused;
    bool public tokenPaused;

    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint256 private _initalSupply;

    // TOTAL_GONS is a multiple of INITIAL_FRAGMENTS_SUPPLY so that _gonsPerFragment is an integer.
    // Use the highest value that fits in a uint256 for max granularity.
    uint256 private _totalGons;

    // MAX_SUPPLY = maximum integer < (sqrt(4*TOTAL_GONS + 1) - 1) / 2
    uint256 private constant MAX_SUPPLY = ~uint128(0);  // (2^128) - 1

    uint256 private _totalSupply;
    uint256 private _gonsPerFragment;
    mapping(address => uint256) private _gonBalances;

    // This is denominated in Fragments, because the gons-fragments conversion might change before
    // it's fully paid.
    mapping (address => mapping (address => uint256)) private _allowedFragments;

    // This generates a public event on the blockchain that will notify clients
    event Transfer(address indexed from, address indexed to, uint256 value);

    // This notifies clients about the amount burnt
    // event Burn(address indexed from, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    event LogRebase(uint256 totalSupply);
    event LogRebasePaused(bool paused);
    event LogTokenPaused(bool paused);

    // rebase whether paused,default false
    modifier whenRebaseNotPaused() {
        require(!rebasePaused);
        _;
    }

    // token whether paused,default false
    modifier whenTokenNotPaused() {
        require(!tokenPaused);
        _;
    }

    // validate to address
    modifier validRecipient(address to) {
        require(to != address(0x0));
        require(to != address(this));
        _;
    }

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

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

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns(bool) {
        return msg.sender == _owner;
    }

    /**
     * Constructor function
     *
     * Initializes contract with initial supply tokens to the creator of the contract
     */
    constructor (
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol
    ) public {
        // Set owner
        _owner = msg.sender;

        // set name,symbol,decimals
        _name = tokenName;
        _symbol = tokenSymbol;

        _initalSupply = initialSupply * 10 ** uint256(_decimals);
        _totalGons = MAX_UINT256 - (MAX_UINT256 % _initalSupply);

        rebasePaused = false;
        tokenPaused = false;

        _totalSupply = _initalSupply;
        _gonBalances[_owner] = _totalGons;
        _gonsPerFragment = _totalGons.div(_totalSupply);

        emit Transfer(address(0x0), _owner, _totalSupply);
    }

    /**
     * @dev Notifies Fragments contract about a new rebase cycle.
     * @param supplyDelta The number of new fragment tokens to add into circulation via expansion.
     * @return The total number of fragments after the supply adjustment.
     */
    function rebase(uint256 supplyDelta)
        external
        onlyOwner
        whenRebaseNotPaused
        returns (uint256)
    {
        if (supplyDelta == 0) {
            emit LogRebase(_totalSupply);
            return _totalSupply;
        }

        _totalSupply = supplyDelta * 10 ** uint256(_decimals);

        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        _gonsPerFragment = _totalGons.div(_totalSupply);

        emit LogRebase(_totalSupply);
        return _totalSupply;
    }

    /**
     * @dev Pauses or unpauses the execution of rebase operations.
     * @param paused Pauses rebase operations if this is true.
     */
    function setRebasePaused(bool paused)
        external
        onlyOwner
    {
        rebasePaused = paused;
        emit LogRebasePaused(paused);
    }

    /**
     * @dev Pauses or unpauses execution of ERC-20 transactions.
     * @param paused Pauses ERC-20 transactions if this is true.
     */
    function setTokenPaused(bool paused)
        external
        onlyOwner
    {
        tokenPaused = paused;
        emit LogTokenPaused(paused);
    }

    /**
     * @return The total number of fragments.
     */
    function totalSupply()
        public
        view
        returns (uint256)
    {
        return _totalSupply;
    }

    /**
     * @param who The address to query.
     * @return The balance of the specified address.
     */
    function balanceOf(address who)
        public
        view
        returns (uint256)
    {
        return _gonBalances[who].div(_gonsPerFragment);
    }

    /**
     * @return the name of the token.
     */
    function name() public view returns(string) {
        return _name;
    }

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns(string) {
        return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns(uint8) {
        return _decimals;
    }

    /**
     * Internal transfer, only can be called by this contract
     */
    function _transfer(address _from, address _to, uint256 _value) internal {
        // Prevent transfer to 0x0 address. Use burn() instead
        // require(_to != address(0));

        uint256 gonValue = _value.mul(_gonsPerFragment);
        // Check if the sender has enough
        require(_gonBalances[_from] >= gonValue);
        // Check for overflows
        require(_gonBalances[_to].add(gonValue) >= _gonBalances[_to]);

        // Save this for an assertion in the future
        uint256 previousBalances = _gonBalances[_from].add(_gonBalances[_to]);
        // Subtract from the sender
        _gonBalances[_from] = _gonBalances[_from].sub(gonValue);
        _gonBalances[_to] = _gonBalances[_to].add(gonValue);

        // Add transfer event
        emit Transfer(_from, _to, _value);
        // Asserts are used to use static analysis to find bugs in your code. They should never fail
        assert(_gonBalances[_from].add(_gonBalances[_to]) == previousBalances);
    }

    /**
     * Transfer tokens
     *
     * Send `_value` tokens to `_to` from your account
     *
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transfer(address _to, uint256 _value) public validRecipient(_to) whenTokenNotPaused returns (bool) {
        _transfer(msg.sender, _to, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner has allowed to a spender.
     * @param owner_ The address which owns the funds.
     * @param spender The address which will spend the funds.
     * @return The number of tokens still available for the spender.
     */
    function allowance(address owner_, address spender)
        public
        view
        returns (uint256)
    {
        return _allowedFragments[owner_][spender];
    }

    /**
     * Transfer tokens from other address
     *
     * Send `_value` tokens to `_to` on behalf of `_from`
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transferFrom(address _from, address _to, uint256 _value) public validRecipient(_to) whenTokenNotPaused returns (bool) {
        require(_value <= _allowedFragments[_from][msg.sender]);     // Check allowance

        _allowedFragments[_from][msg.sender] = _allowedFragments[_from][msg.sender].sub(_value);
        _transfer(_from, _to, _value);
        return true;
    }

    /**
     * Set allowance for other address
     *
     * Allows `_spender` to spend no more than `_value` tokens on your behalf
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function approve(address _spender, uint256 _value) public whenTokenNotPaused returns (bool) {
        require(_spender != address(0));

        _allowedFragments[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);

        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner has allowed to a spender.
     * This method should be used instead of approve() to avoid the double approval vulnerability
     * described above.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        whenTokenNotPaused
        returns (bool)
    {
        _allowedFragments[msg.sender][spender] =
            _allowedFragments[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner has allowed to a spender.
     *
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        whenTokenNotPaused
        returns (bool)
    {
        uint256 oldValue = _allowedFragments[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            _allowedFragments[msg.sender][spender] = 0;
        } else {
            _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue);
        }
        emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
        return true;
    }

    /**
     * Set allowance for other address and notify
     *
     * Allows `_spender` to spend no more than `_value` tokens on your behalf, and then ping the contract about it
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     * @param _extraData some extra information to send to the approved contract
     */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData)
        public
        whenTokenNotPaused
        returns (bool) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, address(this), _extraData);
            return true;
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"paused","type":"bool"}],"name":"setRebasePaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"paused","type":"bool"}],"name":"setTokenPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rebasePaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"supplyDelta","type":"uint256"}],"name":"rebase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner_","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"paused","type":"bool"}],"name":"LogRebasePaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"paused","type":"bool"}],"name":"LogTokenPaused","type":"event"}]

60806040526008600360006101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b5060405162001f3c38038062001f3c833981018060405281019080805190602001909291908051820192919060200180518201929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160019080519060200190620000be929190620002a2565b508060029080519060200190620000d7929190620002a2565b50600360009054906101000a900460ff1660ff16600a0a83026004819055506004546000198115156200010657fe5b06600019036005819055506000600360016101000a81548160ff0219169083151502179055506000600360026101000a81548160ff021916908315150217905550600454600681905550600554600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001de600654600554620002766401000000000262001b47179091906401000000009004565b6007819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a350505062000351565b6000806000831115156200028957600080fd5b82848115156200029557fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002e557805160ff191683800117855562000316565b8280016001018555821562000316579182015b8281111562000315578251825591602001919060010190620002f8565b5b50905062000325919062000329565b5090565b6200034e91905b808211156200034a57600081600090555060010162000330565b5090565b90565b611bdb80620003616000396000f300608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461010c578063095ea7b31461019c57806318160ddd1461020157806322872e0b1461022c57806323b872dd1461025b57806329519457146102e0578063313ce5671461030f578063395093511461034057806353ca9f24146103a557806370a08231146103d457806386c75e741461042b5780638da5cb5b1461045a5780638f32d59b146104b157806395d89b41146104e0578063a457c2d714610570578063a9059cbb146105d5578063bc4f2d6d1461063a578063cae9ca511461067b578063dd62ed3e14610726575b600080fd5b34801561011857600080fd5b5061012161079d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610161578082015181840152602081019050610146565b50505050905090810190601f16801561018e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a857600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083f565b604051808215151515815260200191505060405180910390f35b34801561020d57600080fd5b50610216610989565b6040518082815260200191505060405180910390f35b34801561023857600080fd5b50610259600480360381019080803515159060200190929190505050610993565b005b34801561026757600080fd5b506102c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109fe565b604051808215151515815260200191505060405180910390f35b3480156102ec57600080fd5b5061030d600480360381019080803515159060200190929190505050610c45565b005b34801561031b57600080fd5b50610324610cb0565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034c57600080fd5b5061038b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc7565b604051808215151515815260200191505060405180910390f35b3480156103b157600080fd5b506103ba610edf565b604051808215151515815260200191505060405180910390f35b3480156103e057600080fd5b50610415600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef2565b6040518082815260200191505060405180910390f35b34801561043757600080fd5b50610440610f4f565b604051808215151515815260200191505060405180910390f35b34801561046657600080fd5b5061046f610f62565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104bd57600080fd5b506104c6610f8b565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f5610fe2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611084565b604051808215151515815260200191505060405180910390f35b3480156105e157600080fd5b50610620600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611332565b604051808215151515815260200191505060405180910390f35b34801561064657600080fd5b50610665600480360381019080803590602001909291905050506113de565b6040518082815260200191505060405180910390f35b34801561068757600080fd5b5061070c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611514565b604051808215151515815260200191505060405180910390f35b34801561073257600080fd5b50610787600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b3565b6040518082815260200191505060405180910390f35b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108355780601f1061080a57610100808354040283529160200191610835565b820191906000526020600020905b81548152906001019060200180831161081857829003601f168201915b5050505050905090565b6000600360029054906101000a900460ff1615151561085d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561089957600080fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b61099b610f8b565b15156109a657600080fd5b80600360016101000a81548160ff0219169083151502179055507fb36927c68760751ec71d827eb30be804be612d87c7c6b6a1f255258c6a1bea6681604051808215151515815260200191505060405180910390a150565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a3d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7857600080fd5b600360029054906101000a900460ff16151515610a9457600080fd5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610b1f57600080fd5b610bae83600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461173a90919063ffffffff16565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c3985858561175b565b60019150509392505050565b610c4d610f8b565b1515610c5857600080fd5b80600360026101000a81548160ff0219169083151502179055507f398c4e18c8ef7f11eb3921fe2d01d3b469329a5f01febf5ba17f2462f27f439c81604051808215151515815260200191505060405180910390a150565b6000600360009054906101000a900460ff16905090565b6000600360029054906101000a900460ff16151515610ce557600080fd5b610d7482600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600360019054906101000a900460ff1681565b6000610f48600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b4790919063ffffffff16565b9050919050565b600360029054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561107a5780601f1061104f5761010080835404028352916020019161107a565b820191906000526020600020905b81548152906001019060200180831161105d57829003601f168201915b5050505050905090565b600080600360029054906101000a900460ff161515156110a357600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831015156111b2576000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611246565b6111c5838261173a90919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561137157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156113ac57600080fd5b600360029054906101000a900460ff161515156113c857600080fd5b6113d333858561175b565b600191505092915050565b60006113e8610f8b565b15156113f357600080fd5b600360019054906101000a900460ff1615151561140f57600080fd5b600082141561145b577f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6006546040518082815260200191505060405180910390a1600654905061150f565b600360009054906101000a900460ff1660ff16600a0a82026006819055506000196fffffffffffffffffffffffffffffffff1660065411156114b3576000196fffffffffffffffffffffffffffffffff166006819055505b6114ca600654600554611b4790919063ffffffff16565b6007819055507f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6006546040518082815260200191505060405180910390a160065490505b919050565b600080600360029054906101000a900460ff1615151561153357600080fd5b849050611540858561083f565b156116aa578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561163a57808201518184015260208101905061161f565b50505050905090810190601f1680156116675780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561168957600080fd5b505af115801561169d573d6000803e3d6000fd5b50505050600191506116ab565b5b509392505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083831115151561174c57600080fd5b82840390508091505092915050565b60008061177360075484611b7190919063ffffffff16565b915081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156117c357600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461185583600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b1015151561186257600080fd5b6118f3600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b905061194782600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461173a90919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119dc82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a380611b16600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b141515611b1f57fe5b5050505050565b6000808284019050838110151515611b3d57600080fd5b8091505092915050565b600080600083111515611b5957600080fd5b8284811515611b6457fe5b0490508091505092915050565b6000806000841415611b865760009150611ba8565b8284029050828482811515611b9757fe5b04141515611ba457600080fd5b8091505b50929150505600a165627a7a723058205de10f5ae88e7b04878d1c8cc7ced94eb15f1601b280dbb43c7ace150206573100290000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000a466c6f7720436861696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004464c4f5700000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461010c578063095ea7b31461019c57806318160ddd1461020157806322872e0b1461022c57806323b872dd1461025b57806329519457146102e0578063313ce5671461030f578063395093511461034057806353ca9f24146103a557806370a08231146103d457806386c75e741461042b5780638da5cb5b1461045a5780638f32d59b146104b157806395d89b41146104e0578063a457c2d714610570578063a9059cbb146105d5578063bc4f2d6d1461063a578063cae9ca511461067b578063dd62ed3e14610726575b600080fd5b34801561011857600080fd5b5061012161079d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610161578082015181840152602081019050610146565b50505050905090810190601f16801561018e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a857600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083f565b604051808215151515815260200191505060405180910390f35b34801561020d57600080fd5b50610216610989565b6040518082815260200191505060405180910390f35b34801561023857600080fd5b50610259600480360381019080803515159060200190929190505050610993565b005b34801561026757600080fd5b506102c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109fe565b604051808215151515815260200191505060405180910390f35b3480156102ec57600080fd5b5061030d600480360381019080803515159060200190929190505050610c45565b005b34801561031b57600080fd5b50610324610cb0565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034c57600080fd5b5061038b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc7565b604051808215151515815260200191505060405180910390f35b3480156103b157600080fd5b506103ba610edf565b604051808215151515815260200191505060405180910390f35b3480156103e057600080fd5b50610415600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef2565b6040518082815260200191505060405180910390f35b34801561043757600080fd5b50610440610f4f565b604051808215151515815260200191505060405180910390f35b34801561046657600080fd5b5061046f610f62565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104bd57600080fd5b506104c6610f8b565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f5610fe2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611084565b604051808215151515815260200191505060405180910390f35b3480156105e157600080fd5b50610620600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611332565b604051808215151515815260200191505060405180910390f35b34801561064657600080fd5b50610665600480360381019080803590602001909291905050506113de565b6040518082815260200191505060405180910390f35b34801561068757600080fd5b5061070c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611514565b604051808215151515815260200191505060405180910390f35b34801561073257600080fd5b50610787600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b3565b6040518082815260200191505060405180910390f35b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108355780601f1061080a57610100808354040283529160200191610835565b820191906000526020600020905b81548152906001019060200180831161081857829003601f168201915b5050505050905090565b6000600360029054906101000a900460ff1615151561085d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561089957600080fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b61099b610f8b565b15156109a657600080fd5b80600360016101000a81548160ff0219169083151502179055507fb36927c68760751ec71d827eb30be804be612d87c7c6b6a1f255258c6a1bea6681604051808215151515815260200191505060405180910390a150565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a3d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7857600080fd5b600360029054906101000a900460ff16151515610a9457600080fd5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610b1f57600080fd5b610bae83600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461173a90919063ffffffff16565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c3985858561175b565b60019150509392505050565b610c4d610f8b565b1515610c5857600080fd5b80600360026101000a81548160ff0219169083151502179055507f398c4e18c8ef7f11eb3921fe2d01d3b469329a5f01febf5ba17f2462f27f439c81604051808215151515815260200191505060405180910390a150565b6000600360009054906101000a900460ff16905090565b6000600360029054906101000a900460ff16151515610ce557600080fd5b610d7482600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600360019054906101000a900460ff1681565b6000610f48600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b4790919063ffffffff16565b9050919050565b600360029054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561107a5780601f1061104f5761010080835404028352916020019161107a565b820191906000526020600020905b81548152906001019060200180831161105d57829003601f168201915b5050505050905090565b600080600360029054906101000a900460ff161515156110a357600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831015156111b2576000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611246565b6111c5838261173a90919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561137157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156113ac57600080fd5b600360029054906101000a900460ff161515156113c857600080fd5b6113d333858561175b565b600191505092915050565b60006113e8610f8b565b15156113f357600080fd5b600360019054906101000a900460ff1615151561140f57600080fd5b600082141561145b577f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6006546040518082815260200191505060405180910390a1600654905061150f565b600360009054906101000a900460ff1660ff16600a0a82026006819055506000196fffffffffffffffffffffffffffffffff1660065411156114b3576000196fffffffffffffffffffffffffffffffff166006819055505b6114ca600654600554611b4790919063ffffffff16565b6007819055507f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6006546040518082815260200191505060405180910390a160065490505b919050565b600080600360029054906101000a900460ff1615151561153357600080fd5b849050611540858561083f565b156116aa578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561163a57808201518184015260208101905061161f565b50505050905090810190601f1680156116675780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561168957600080fd5b505af115801561169d573d6000803e3d6000fd5b50505050600191506116ab565b5b509392505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083831115151561174c57600080fd5b82840390508091505092915050565b60008061177360075484611b7190919063ffffffff16565b915081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156117c357600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461185583600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b1015151561186257600080fd5b6118f3600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b905061194782600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461173a90919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119dc82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a380611b16600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b141515611b1f57fe5b5050505050565b6000808284019050838110151515611b3d57600080fd5b8091505092915050565b600080600083111515611b5957600080fd5b8284811515611b6457fe5b0490508091505092915050565b6000806000841415611b865760009150611ba8565b8284029050828482811515611b9757fe5b04141515611ba457600080fd5b8091505b50929150505600a165627a7a723058205de10f5ae88e7b04878d1c8cc7ced94eb15f1601b280dbb43c7ace15020657310029

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

0000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000a466c6f7720436861696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004464c4f5700000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : initialSupply (uint256): 100000000
Arg [1] : tokenName (string): Flow Chain
Arg [2] : tokenSymbol (string): FLOW

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [4] : 466c6f7720436861696e00000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 464c4f5700000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

3896:11236:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9244:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9244:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9244:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12527:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12527:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8776:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8776:123:0;;;;;;;;;;;;;;;;;;;;;;;8230:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8230:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11872:386;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11872:386:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8547:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8547:156:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9544:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9544:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13181:371;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13181:371:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4160:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4160:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9020:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9020:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4191:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4191:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5995:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5995:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6329:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6329:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9386:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9386:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9386:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13814:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13814:540:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10928:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10928:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7516:556;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7516:556:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14753:376;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14753:376:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11418:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11418:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9244:75;9280:6;9306:5;9299:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9244:75;:::o;12527:281::-;12613:4;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;12658:1;12638:22;;:8;:22;;;;12630:31;;;;;;;;12716:6;12674:17;:29;12692:10;12674:29;;;;;;;;;;;;;;;:39;12704:8;12674:39;;;;;;;;;;;;;;;:48;;;;12759:8;12738:38;;12747:10;12738:38;;;12769:6;12738:38;;;;;;;;;;;;;;;;;;12796:4;12789:11;;12527:281;;;;:::o;8776:123::-;8847:7;8879:12;;8872:19;;8776:123;:::o;8230:159::-;6206:9;:7;:9::i;:::-;6198:18;;;;;;;;8336:6;8321:12;;:21;;;;;;;;;;;;;;;;;;8358:23;8374:6;8358:23;;;;;;;;;;;;;;;;;;;;;;8230:159;:::o;11872:386::-;11993:4;11960:3;5863;5849:18;;:2;:18;;;;5841:27;;;;;;;;5901:4;5887:19;;:2;:19;;;;5879:28;;;;;;;;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;12028:17;:24;12046:5;12028:24;;;;;;;;;;;;;;;:36;12053:10;12028:36;;;;;;;;;;;;;;;;12018:6;:46;;12010:55;;;;;;;;12140:48;12181:6;12140:17;:24;12158:5;12140:24;;;;;;;;;;;;;;;:36;12165:10;12140:36;;;;;;;;;;;;;;;;:40;;:48;;;;:::i;:::-;12101:17;:24;12119:5;12101:24;;;;;;;;;;;;;;;:36;12126:10;12101:36;;;;;;;;;;;;;;;:87;;;;12199:29;12209:5;12216:3;12221:6;12199:9;:29::i;:::-;12246:4;12239:11;;11872:386;;;;;;:::o;8547:156::-;6206:9;:7;:9::i;:::-;6198:18;;;;;;;;8651:6;8637:11;;:20;;;;;;;;;;;;;;;;;;8673:22;8688:6;8673:22;;;;;;;;;;;;;;;;;;;;;;8547:156;:::o;9544:82::-;9584:5;9609:9;;;;;;;;;;;9602:16;;9544:82;:::o;13181:371::-;13307:4;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;13383:54;13426:10;13383:17;:29;13401:10;13383:29;;;;;;;;;;;;;;;:38;13413:7;13383:38;;;;;;;;;;;;;;;;:42;;:54;;;;:::i;:::-;13329:17;:29;13347:10;13329:29;;;;;;;;;;;;;;;:38;13359:7;13329:38;;;;;;;;;;;;;;;:108;;;;13474:7;13453:69;;13462:10;13453:69;;;13483:17;:29;13501:10;13483:29;;;;;;;;;;;;;;;:38;13513:7;13483:38;;;;;;;;;;;;;;;;13453:69;;;;;;;;;;;;;;;;;;13540:4;13533:11;;13181:371;;;;:::o;4160:24::-;;;;;;;;;;;;;:::o;9020:159::-;9100:7;9132:39;9154:16;;9132:12;:17;9145:3;9132:17;;;;;;;;;;;;;;;;:21;;:39;;;;:::i;:::-;9125:46;;9020:159;;;:::o;4191:23::-;;;;;;;;;;;;;:::o;5995:78::-;6032:7;6059:6;;;;;;;;;;;6052:13;;5995:78;:::o;6329:91::-;6368:4;6406:6;;;;;;;;;;;6392:20;;:10;:20;;;6385:27;;6329:91;:::o;9386:79::-;9424:6;9450:7;9443:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9386:79;:::o;13814:540::-;13945:4;13967:16;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;13986:17;:29;14004:10;13986:29;;;;;;;;;;;;;;;:38;14016:7;13986:38;;;;;;;;;;;;;;;;13967:57;;14058:8;14039:15;:27;;14035:205;;;14124:1;14083:17;:29;14101:10;14083:29;;;;;;;;;;;;;;;:38;14113:7;14083:38;;;;;;;;;;;;;;;:42;;;;14035:205;;;14199:29;14212:15;14199:8;:12;;:29;;;;:::i;:::-;14158:17;:29;14176:10;14158:29;;;;;;;;;;;;;;;:38;14188:7;14158:38;;;;;;;;;;;;;;;:70;;;;14035:205;14276:7;14255:69;;14264:10;14255:69;;;14285:17;:29;14303:10;14285:29;;;;;;;;;;;;;;;:38;14315:7;14285:38;;;;;;;;;;;;;;;;14255:69;;;;;;;;;;;;;;;;;;14342:4;14335:11;;13814:540;;;;;:::o;10928:183::-;11030:4;10997:3;5863;5849:18;;:2;:18;;;;5841:27;;;;;;;;5901:4;5887:19;;:2;:19;;;;5879:28;;;;;;;;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;11047:34;11057:10;11069:3;11074:6;11047:9;:34::i;:::-;11099:4;11092:11;;10928:183;;;;;:::o;7516:556::-;7637:7;6206:9;:7;:9::i;:::-;6198:18;;;;;;;;5592:12;;;;;;;;;;;5591:13;5583:22;;;;;;;;7681:1;7666:11;:16;7662:111;;;7704:23;7714:12;;7704:23;;;;;;;;;;;;;;;;;;7749:12;;7742:19;;;;7662:111;7828:9;;;;;;;;;;;7820:18;;7814:2;:24;7800:11;:38;7785:12;:53;;;;4647:1;4638:11;7870:10;;7855:12;;:25;7851:83;;;4647:1;4638:11;7912:10;;7897:12;:25;;;;7851:83;7965:28;7980:12;;7965:10;;:14;;:28;;;;:::i;:::-;7946:16;:47;;;;8011:23;8021:12;;8011:23;;;;;;;;;;;;;;;;;;8052:12;;8045:19;;5616:1;7516:556;;;:::o;14753:376::-;14891:4;14908:22;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;14948:8;14908:49;;14972:25;14980:8;14990:6;14972:7;:25::i;:::-;14968:154;;;15014:7;:23;;;15038:10;15050:6;15066:4;15073:10;15014:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15014:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15014:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15014:70:0;;;;15106:4;15099:11;;;;14968:154;5749:1;14753:376;;;;;;:::o;11418:174::-;11518:7;11550:17;:25;11568:6;11550:25;;;;;;;;;;;;;;;:34;11576:7;11550:34;;;;;;;;;;;;;;;;11543:41;;11418:174;;;;:::o;1329:150::-;1387:7;1433:9;1420:1;1415;:6;;1407:15;;;;;;;;1449:1;1445;:5;1433:17;;1470:1;1463:8;;1329:150;;;;;:::o;9715:1002::-;9904:16;10215:24;9923:28;9934:16;;9923:6;:10;;:28;;;;:::i;:::-;9904:47;;10036:8;10013:12;:19;10026:5;10013:19;;;;;;;;;;;;;;;;:31;;10005:40;;;;;;;;10131:12;:17;10144:3;10131:17;;;;;;;;;;;;;;;;10096:31;10118:8;10096:12;:17;10109:3;10096:17;;;;;;;;;;;;;;;;:21;;:31;;;;:::i;:::-;:52;;10088:61;;;;;;;;10242:42;10266:12;:17;10279:3;10266:17;;;;;;;;;;;;;;;;10242:12;:19;10255:5;10242:19;;;;;;;;;;;;;;;;:23;;:42;;;;:::i;:::-;10215:69;;10354:33;10378:8;10354:12;:19;10367:5;10354:19;;;;;;;;;;;;;;;;:23;;:33;;;;:::i;:::-;10332:12;:19;10345:5;10332:19;;;;;;;;;;;;;;;:55;;;;10418:31;10440:8;10418:12;:17;10431:3;10418:17;;;;;;;;;;;;;;;;:21;;:31;;;;:::i;:::-;10398:12;:17;10411:3;10398:17;;;;;;;;;;;;;;;:51;;;;10514:3;10498:28;;10507:5;10498:28;;;10519:6;10498:28;;;;;;;;;;;;;;;;;;10692:16;10646:42;10670:12;:17;10683:3;10670:17;;;;;;;;;;;;;;;;10646:12;:19;10659:5;10646:19;;;;;;;;;;;;;;;;:23;;:42;;;;:::i;:::-;:62;10639:70;;;;;;9715:1002;;;;;:::o;1555:150::-;1613:7;1633:9;1649:1;1645;:5;1633:17;;1674:1;1669;:6;;1661:15;;;;;;;;1696:1;1689:8;;1555:150;;;;;:::o;909:294::-;967:7;1070:9;999:1;995;:5;987:14;;;;;;;;1086:1;1082;:5;;;;;;;;1070:17;;1194:1;1187:8;;909:294;;;;;:::o;353:433::-;411:7;710:9;660:1;655;:6;651:47;;;685:1;678:8;;;;651:47;726:1;722;:5;710:17;;755:1;750;746;:5;;;;;;;;:10;738:19;;;;;;;;777:1;770:8;;353:433;;;;;;:::o

Swarm Source

bzzr://5de10f5ae88e7b04878d1c8cc7ced94eb15f1601b280dbb43c7ace1502065731
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.