ETH Price: $3,493.07 (+2.48%)

Token

GourmetGalaxy (GUM)
 

Overview

Max Total Supply

20,000,000 GUM

Holders

1,558 (0.00%)

Market

Price

$0.01 @ 0.000002 ETH (+24.14%)

Onchain Market Cap

$156,830.80

Circulating Supply Market Cap

$26,043.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 GUM

Value
$0.00
0x956533e27afb5bce936fb3226babae3ff3efde44
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Gourmet Galaxy is a Yield Farming platform, a combination of DeFi and NFTs in a gaming experience.

Market

Volume (24H):$183.10
Market Capitalization:$26,043.00
Circulating Supply:3,322,141.00 GUM
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
Matcha (Ethereum)
0X4F5FA8F2D12E5EB780F6082DD656C565C48E0F24-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48$0.0094
0.0000028 Eth
$1,298.86
152,618.238 0X4F5FA8F2D12E5EB780F6082DD656C565C48E0F24
81.4359%
2
Gate.io
GUM-USDT$0.0078
0.0000023 Eth
$183.12
22,631.000 GUM
12.0757%
3
PancakeSwap (v2)
0XC53708664B99DF348DD27C3AC0759D2DA9C40462-0XBB4CDB9CBD36B01BD1CBAEBF2DE08D9173BC095C$0.0106
0.0000030 Eth
$140.53
13,307.147 0XC53708664B99DF348DD27C3AC0759D2DA9C40462
7.1006%
4
Uniswap V2 (Ethereum)
0X4F5FA8F2D12E5EB780F6082DD656C565C48E0F24-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.0077
0.0000023 Eth
$93.06
12,159.736 0X4F5FA8F2D12E5EB780F6082DD656C565C48E0F24
6.4883%
5
LATOKEN
GUM-USDT$0.0041
0.0000012 Eth
$2.70
660.300 GUM
0.3523%
6
PancakeSwap V1 (BSC)
0XC53708664B99DF348DD27C3AC0759D2DA9C40462-0XBB4CDB9CBD36B01BD1CBAEBF2DE08D9173BC095C$0.0105
0.0000030 Eth
$1.62
153.968 0XC53708664B99DF348DD27C3AC0759D2DA9C40462
0.0822%

Contract Source Code Verified (Exact Match)

Contract Name:
GourmetGalaxy

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-01-31
*/

pragma solidity 0.5.8;

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

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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

  /**
   * @dev Initializes the contract setting the deployer as the initial owner.
   */
  constructor() internal {
    address msgSender = _msgSender();
    _owner = msgSender;
    emit OwnershipTransferred(address(0), msgSender);
  }

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

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(_owner == _msgSender(), 'Ownable: caller is not the owner');
    _;
  }

  modifier onlyFarmContract() {
    require(isOwner() || isFarmContract(), 'Ownable: caller is not the farm or owner');
    _;
  }

  function isOwner() private view returns (bool) {
    return _owner == _msgSender();
  }

  function isFarmContract() public view returns (bool) {
    return farmAddresses[_msgSender()];
  }

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

  function setFarmAddress(address _farmAddress, bool _status) public onlyOwner {
    require(
      _farmAddress != address(0),
      'Ownable: farm address is the zero address'
    );
    farmAddresses[_farmAddress] = _status;
  }
}

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

    return c;
  }

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

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

    return c;
  }

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

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

    return c;
  }

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

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

    return c;
  }

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

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

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;


            bytes32 accountHash
         = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            'Address: insufficient balance'
        );

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call.value(amount)('');
        require(
            success,
            'Address: unable to send value, recipient may have reverted'
        );
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return functionCall(target, data, 'Address: low-level call failed');
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                'Address: low-level call with value failed'
            );
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            'Address: insufficient balance for call'
        );
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), 'Address: call to non-contract');

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call.value(weiValue)(
            data
        );
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context {
    using SafeMath for uint256;
    using Address for address;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name, string memory symbol, uint totalSupply, address tokenContractAddress) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
        _totalSupply = totalSupply;

        _balances[tokenContractAddress] = _totalSupply;

        emit Transfer(address(0), tokenContractAddress, _totalSupply);
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20};
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                'ERC20: transfer amount exceeds allowance'
            )
        );
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                'ERC20: decreased allowance below zero'
            )
        );
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        require(sender != address(0), 'ERC20: transfer from the zero address');
        require(recipient != address(0), 'ERC20: transfer to the zero address');

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(
            amount,
            'ERC20: transfer amount exceeds balance'
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), 'ERC20: burn from the zero address');

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(
            amount,
            'ERC20: burn amount exceeds balance'
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal {
        require(owner != address(0), 'ERC20: approve from the zero address');
        require(spender != address(0), 'ERC20: approve to the zero address');

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal {}

    /**
     * @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 GourmetGalaxy is ERC20('GourmetGalaxy', 'GUM', 20e6 * 1e18, address(this)), Ownable {

  uint private constant adviserAllocation = 1e6 * 1e18;
  uint private constant communityAllocation = 5e4 * 1e18;
  uint private constant farmingAllocation = 9950000 * 1e18;
  uint private constant marketingAllocation = 5e5 * 1e18;
  uint private constant publicSaleAllocation = 5e5 * 1e18;
  uint private constant privateSaleAllocation = 5e6 * 1e18;
  uint private constant teamAllocation = 3e6 * 1e18;

  uint private communityReleased = 0;
  uint private adviserReleased = 0;
  uint private farmingReleased = 0;
  uint private marketingReleased = 125000 * 1e18; // TGE
  uint private privateSaleReleased = 2e6 * 1e18;
  uint private teamReleased = 0;

  uint private lastCommunityReleased = now + 30 days;
  uint private lastAdviserReleased = now + 30 days;
  uint private lastMarketingReleased = now + 30 days;
  uint private lastPrivateSaleReleased = now + 30 days;
  uint private lastTeamReleased = now + 30 days;

  uint private constant amountEachAdviserRelease = 50000 * 1e18;
  uint private constant amountEachCommunityRelease = 2500 * 1e18;
  uint private constant amountEachMarketingRelease = 125000 * 1e18;
  uint private constant amountEachPrivateSaleRelease = 1e6 * 1e18;
  uint private constant amountEachTeamRelease = 150000 * 1e18;

  constructor(
    address _marketingTGEAddress,
    address _privateSaleTGEAddress,
    address _publicSaleTGEAddress
  ) public {
    _transfer(address(this), _marketingTGEAddress, marketingReleased);
    _transfer(address(this), _privateSaleTGEAddress, privateSaleReleased);
    _transfer(address(this), _publicSaleTGEAddress, publicSaleAllocation);
  }

  function releaseAdviserAllocation(address _receiver) public onlyOwner {
    require(adviserReleased.add(amountEachAdviserRelease) <= adviserAllocation, 'Max adviser allocation released!!!');
    require(now - lastAdviserReleased >= 30 days, 'Please wait to next checkpoint!');
    _transfer(address(this), _receiver, amountEachAdviserRelease);
    adviserReleased = adviserReleased.add(amountEachAdviserRelease);
    lastAdviserReleased = lastAdviserReleased + 30 days;
  }

  function releaseCommunityAllocation(address _receiver) public onlyOwner {
    require(communityReleased.add(amountEachCommunityRelease) <= communityAllocation, 'Max community allocation released!!!');
    require(now - lastCommunityReleased >= 90 days, 'Please wait to next checkpoint!');
    _transfer(address(this), _receiver, amountEachCommunityRelease);
    communityReleased = communityReleased.add(amountEachCommunityRelease);
    lastCommunityReleased = lastCommunityReleased + 90 days;
  }

  function releaseFarmAllocation(address _farmAddress, uint256 _amount) public onlyFarmContract {
    require(farmingReleased.add(_amount) <= farmingAllocation, 'Max farming allocation released!!!');
    _transfer(address(this), _farmAddress, _amount);
    farmingReleased = farmingReleased.add(_amount);
  }

  function releaseMarketingAllocation(address _receiver) public onlyOwner {
    require(marketingReleased.add(amountEachMarketingRelease) <= marketingAllocation, 'Max marketing allocation released!!!');
    require(now - lastMarketingReleased >= 90 days, 'Please wait to next checkpoint!');
    _transfer(address(this), _receiver, amountEachMarketingRelease);
    marketingReleased = marketingReleased.add(amountEachMarketingRelease);
    lastMarketingReleased = lastMarketingReleased + 90 days;
  }

  function releasePrivateSaleAllocation(address _receiver) public onlyOwner {
    require(privateSaleReleased.add(amountEachPrivateSaleRelease) <= privateSaleAllocation, 'Max privateSale allocation released!!!');
    require(now - lastPrivateSaleReleased >= 90 days, 'Please wait to next checkpoint!');
    _transfer(address(this), _receiver, amountEachPrivateSaleRelease);
    privateSaleReleased = privateSaleReleased.add(amountEachPrivateSaleRelease);
    lastPrivateSaleReleased = lastPrivateSaleReleased + 90 days;
  }

  function releaseTeamAllocation(address _receiver) public onlyOwner {
    require(teamReleased.add(amountEachTeamRelease) <= teamAllocation, 'Max team allocation released!!!');
    require(now - lastTeamReleased >= 30 days, 'Please wait to next checkpoint!');
    _transfer(address(this), _receiver, amountEachTeamRelease);
    teamReleased = teamReleased.add(amountEachTeamRelease);
    lastTeamReleased = lastTeamReleased + 30 days;
  }
}

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":"amount","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":true,"inputs":[{"name":"","type":"address"}],"name":"farmAddresses","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"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":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"releaseTeamAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isFarmContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_farmAddress","type":"address"},{"name":"_amount","type":"uint256"}],"name":"releaseFarmAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_farmAddress","type":"address"},{"name":"_status","type":"bool"}],"name":"setFarmAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"releasePrivateSaleAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"releaseAdviserAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"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":"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":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"releaseCommunityAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"releaseMarketingAllocation","outputs":[],"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"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_marketingTGEAddress","type":"address"},{"name":"_privateSaleTGEAddress","type":"address"},{"name":"_publicSaleTGEAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"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"}]

60806040526000600781905560088190556009819055691a784379d99db4200000600a556a01a784379d99db42000000600b55600c5562278d004201600d819055600e819055600f81905560108190556011553480156200005f57600080fd5b5060405160608062001e17833981018060405260608110156200008157600080fd5b50805160208083015160409384015184518086018652600d81527f476f75726d657447616c61787900000000000000000000000000000000000000818501908152865180880190975260038088527f47554d00000000000000000000000000000000000000000000000000000000009588019590955281519596939592949193926a108b2a2c280290940000009230926200011c9262000520565b5082516200013290600490602086019062000520565b506005805460ff1916601217905560028290556001600160a01b0381166000818152602081815260408083208690558051868152905160008051602062001dd2833981519152929181900390910190a3505050506000620001986200023e60201b60201c565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620002033084600a546200024360201b60201c565b620002183083600b546200024360201b60201c565b6200023530826969e10de76676d08000006200024360201b60201c565b505050620005c2565b335b90565b6001600160a01b038316620002a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018062001df26025913960400191505060405180910390fd5b6001600160a01b03821662000305576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018062001d896023913960400191505060405180910390fd5b62000318838383620003ea60201b60201c565b620003638160405180606001604052806026815260200162001dac602691396001600160a01b03861660009081526020818152604090912054929190620013f9620003ef821b17901c565b6001600160a01b038085166000908152602081815260408083209490945591851681529190912054620003a191839062001493620004a4821b17901c565b6001600160a01b0380841660008181526020818152604091829020949094558051858152905191939287169260008051602062001dd283398151915292918290030190a3505050565b505050565b600081848411156200049c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200046057818101518382015260200162000446565b50505050905090810190601f1680156200048e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156200051957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200056357805160ff191683800117855562000593565b8280016001018555821562000593579182015b828111156200059357825182559160200191906001019062000576565b50620005a1929150620005a5565b5090565b6200024091905b80821115620005a15760008155600101620005ac565b6117b780620005d26000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806366ca7abb116100b8578063a457c2d71161007c578063a457c2d7146103ec578063a9059cbb14610418578063be3fb82014610444578063c12e580a1461046a578063dd62ed3e14610490578063f2fde38b146104be57610142565b806366ca7abb1461034e57806367deb5251461037457806370a082311461039a5780638da5cb5b146103c057806395d89b41146103e457610142565b8063313ce5671161010a578063313ce5671461027a57806339509351146102985780633d66d7d8146102c45780634fa24985146102ec578063568749ea146102f4578063660b1e7f1461032057610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd146102045780632137037a1461021e57806323b872dd14610244575b600080fd5b61014f6104e4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b03813516906020013561057a565b604080519115158252519081900360200190f35b61020c610597565b60408051918252519081900360200190f35b6101f06004803603602081101561023457600080fd5b50356001600160a01b031661059d565b6101f06004803603606081101561025a57600080fd5b506001600160a01b038135811691602081013590911690604001356105b2565b61028261063f565b6040805160ff9092168252519081900360200190f35b6101f0600480360360408110156102ae57600080fd5b506001600160a01b038135169060200135610648565b6102ea600480360360208110156102da57600080fd5b50356001600160a01b031661069c565b005b6101f061080c565b6102ea6004803603604081101561030a57600080fd5b506001600160a01b03813516906020013561083c565b6102ea6004803603604081101561033657600080fd5b506001600160a01b0381351690602001351515610915565b6102ea6004803603602081101561036457600080fd5b50356001600160a01b03166109e8565b6102ea6004803603602081101561038a57600080fd5b50356001600160a01b0316610b42565b61020c600480360360208110156103b057600080fd5b50356001600160a01b0316610c9b565b6103c8610cb6565b604080516001600160a01b039092168252519081900360200190f35b61014f610cca565b6101f06004803603604081101561040257600080fd5b506001600160a01b038135169060200135610d2b565b6101f06004803603604081101561042e57600080fd5b506001600160a01b038135169060200135610d99565b6102ea6004803603602081101561045a57600080fd5b50356001600160a01b0316610dad565b6102ea6004803603602081101561048057600080fd5b50356001600160a01b0316610f03565b61020c600480360360408110156104a657600080fd5b506001600160a01b038135811691602001351661105c565b6102ea600480360360208110156104d457600080fd5b50356001600160a01b0316611087565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b600061058e610587611196565b848461119a565b50600192915050565b60025490565b60066020526000908152604090205460ff1681565b60006105bf84848461128c565b610635846105cb611196565b610630856040518060600160405280602881526020016115dc602891396001600160a01b038a16600090815260016020526040812090610609611196565b6001600160a01b03168152602081019190915260400160002054919063ffffffff6113f916565b61119a565b5060019392505050565b60055460ff1690565b600061058e610655611196565b846106308560016000610666611196565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61149316565b6106a4611196565b60055461010090046001600160a01b039081169116146106fc5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b600c546a027b46536c66c8e30000009061072690691fc3842bd1f071c0000063ffffffff61149316565b111561077c5760408051600160e51b62461bcd02815260206004820152601f60248201527f4d6178207465616d20616c6c6f636174696f6e2072656c656173656421212100604482015290519081900360640190fd5b62278d00601154420310156107c95760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b6107de3082691fc3842bd1f071c0000061128c565b600c546107fb90691fc3842bd1f071c0000063ffffffff61149316565b600c55506011805462278d00019055565b60006006600061081a611196565b6001600160a01b0316815260208101919091526040016000205460ff16905090565b6108446114f7565b80610852575061085261080c565b61089057604051600160e51b62461bcd0281526004018080602001828103825260288152602001806117646028913960400191505060405180910390fd5b6009546a083afe94b010a2cec00000906108b0908363ffffffff61149316565b11156108f057604051600160e51b62461bcd0281526004018080602001828103825260228152602001806116f96022913960400191505060405180910390fd5b6108fb30838361128c565b60095461090e908263ffffffff61149316565b6009555050565b61091d611196565b60055461010090046001600160a01b039081169116146109755760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b6001600160a01b0382166109bd57604051600160e51b62461bcd02815260040180806020018281038252602981526020018061158d6029913960400191505060405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6109f0611196565b60055461010090046001600160a01b03908116911614610a485760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b600b546a0422ca8b0a00a42500000090610a729069d3c21bcecceda100000063ffffffff61149316565b1115610ab257604051600160e51b62461bcd02815260040180806020018281038252602681526020018061168f6026913960400191505060405180910390fd5b6276a70060105442031015610aff5760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b610b14308269d3c21bcecceda100000061128c565b600b54610b319069d3c21bcecceda100000063ffffffff61149316565b600b5550601080546276a700019055565b610b4a611196565b60055461010090046001600160a01b03908116911614610ba25760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b60085469d3c21bcecceda100000090610bcb90690a968163f0a57b40000063ffffffff61149316565b1115610c0b57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806116486022913960400191505060405180910390fd5b62278d00600e5442031015610c585760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b610c6d3082690a968163f0a57b40000061128c565b600854610c8a90690a968163f0a57b40000063ffffffff61149316565b60085550600e805462278d00019055565b6001600160a01b031660009081526020819052604090205490565b60055461010090046001600160a01b031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105705780601f1061054557610100808354040283529160200191610570565b600061058e610d38611196565b846106308560405180606001604052806025815260200161173f6025913960016000610d62611196565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6113f916565b600061058e610da6611196565b848461128c565b610db5611196565b60055461010090046001600160a01b03908116911614610e0d5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b600754690a968163f0a57b40000090610e359068878678326eac90000063ffffffff61149316565b1115610e7557604051600160e51b62461bcd0281526004018080602001828103825260248152602001806116246024913960400191505060405180910390fd5b6276a700600d5442031015610ec25760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b610ed6308268878678326eac90000061128c565b600754610ef29068878678326eac90000063ffffffff61149316565b60075550600d80546276a700019055565b610f0b611196565b60055461010090046001600160a01b03908116911614610f635760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b600a546969e10de76676d080000090610f8c90691a784379d99db420000063ffffffff61149316565b1115610fcc57604051600160e51b62461bcd02815260040180806020018281038252602481526020018061171b6024913960400191505060405180910390fd5b6276a700600f54420310156110195760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b61102e3082691a784379d99db420000061128c565b600a5461104b90691a784379d99db420000063ffffffff61149316565b600a5550600f80546276a700019055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61108f611196565b60055461010090046001600160a01b039081169116146110e75760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b6001600160a01b03811661112f57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806115456026913960400191505060405180910390fd5b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b3390565b6001600160a01b0383166111e257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806116b56024913960400191505060405180910390fd5b6001600160a01b03821661122a57604051600160e51b62461bcd02815260040180806020018281038252602281526020018061156b6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166112d457604051600160e51b62461bcd02815260040180806020018281038252602581526020018061166a6025913960400191505060405180910390fd5b6001600160a01b03821661131c57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806115226023913960400191505060405180910390fd5b61132783838361151c565b61136a816040518060600160405280602681526020016115b6602691396001600160a01b038616600090815260208190526040902054919063ffffffff6113f916565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461139f908263ffffffff61149316565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561148b57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611450578181015183820152602001611438565b50505050905090810190601f16801561147d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156114f05760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000611501611196565b60055461010090046001600160a01b03908116911614905090565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734f776e61626c653a206661726d206164647265737320697320746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724d617820636f6d6d756e69747920616c6c6f636174696f6e2072656c65617365642121214d6178206164766973657220616c6c6f636174696f6e2072656c656173656421212145524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734d6178207072697661746553616c6520616c6c6f636174696f6e2072656c656173656421212145524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373506c65617365207761697420746f206e65787420636865636b706f696e7421004d6178206661726d696e6720616c6c6f636174696f6e2072656c65617365642121214d6178206d61726b6574696e6720616c6c6f636174696f6e2072656c656173656421212145524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4f776e61626c653a2063616c6c6572206973206e6f7420746865206661726d206f72206f776e6572a165627a7a72305820898d93a21428b3c3b69b705d72e6eed6fbe476aa6d780d963d4fe4ac82767fe5002945524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737300000000000000000000000060cefd4b974ed56aa2391827832263391acaa46f0000000000000000000000003e1102914fb7c266d3f1dde736c2f97962b0573100000000000000000000000050bc4deda5673c04c6fd4a69753052b5245cc8a0

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c806366ca7abb116100b8578063a457c2d71161007c578063a457c2d7146103ec578063a9059cbb14610418578063be3fb82014610444578063c12e580a1461046a578063dd62ed3e14610490578063f2fde38b146104be57610142565b806366ca7abb1461034e57806367deb5251461037457806370a082311461039a5780638da5cb5b146103c057806395d89b41146103e457610142565b8063313ce5671161010a578063313ce5671461027a57806339509351146102985780633d66d7d8146102c45780634fa24985146102ec578063568749ea146102f4578063660b1e7f1461032057610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd146102045780632137037a1461021e57806323b872dd14610244575b600080fd5b61014f6104e4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b03813516906020013561057a565b604080519115158252519081900360200190f35b61020c610597565b60408051918252519081900360200190f35b6101f06004803603602081101561023457600080fd5b50356001600160a01b031661059d565b6101f06004803603606081101561025a57600080fd5b506001600160a01b038135811691602081013590911690604001356105b2565b61028261063f565b6040805160ff9092168252519081900360200190f35b6101f0600480360360408110156102ae57600080fd5b506001600160a01b038135169060200135610648565b6102ea600480360360208110156102da57600080fd5b50356001600160a01b031661069c565b005b6101f061080c565b6102ea6004803603604081101561030a57600080fd5b506001600160a01b03813516906020013561083c565b6102ea6004803603604081101561033657600080fd5b506001600160a01b0381351690602001351515610915565b6102ea6004803603602081101561036457600080fd5b50356001600160a01b03166109e8565b6102ea6004803603602081101561038a57600080fd5b50356001600160a01b0316610b42565b61020c600480360360208110156103b057600080fd5b50356001600160a01b0316610c9b565b6103c8610cb6565b604080516001600160a01b039092168252519081900360200190f35b61014f610cca565b6101f06004803603604081101561040257600080fd5b506001600160a01b038135169060200135610d2b565b6101f06004803603604081101561042e57600080fd5b506001600160a01b038135169060200135610d99565b6102ea6004803603602081101561045a57600080fd5b50356001600160a01b0316610dad565b6102ea6004803603602081101561048057600080fd5b50356001600160a01b0316610f03565b61020c600480360360408110156104a657600080fd5b506001600160a01b038135811691602001351661105c565b6102ea600480360360208110156104d457600080fd5b50356001600160a01b0316611087565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b600061058e610587611196565b848461119a565b50600192915050565b60025490565b60066020526000908152604090205460ff1681565b60006105bf84848461128c565b610635846105cb611196565b610630856040518060600160405280602881526020016115dc602891396001600160a01b038a16600090815260016020526040812090610609611196565b6001600160a01b03168152602081019190915260400160002054919063ffffffff6113f916565b61119a565b5060019392505050565b60055460ff1690565b600061058e610655611196565b846106308560016000610666611196565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61149316565b6106a4611196565b60055461010090046001600160a01b039081169116146106fc5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b600c546a027b46536c66c8e30000009061072690691fc3842bd1f071c0000063ffffffff61149316565b111561077c5760408051600160e51b62461bcd02815260206004820152601f60248201527f4d6178207465616d20616c6c6f636174696f6e2072656c656173656421212100604482015290519081900360640190fd5b62278d00601154420310156107c95760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b6107de3082691fc3842bd1f071c0000061128c565b600c546107fb90691fc3842bd1f071c0000063ffffffff61149316565b600c55506011805462278d00019055565b60006006600061081a611196565b6001600160a01b0316815260208101919091526040016000205460ff16905090565b6108446114f7565b80610852575061085261080c565b61089057604051600160e51b62461bcd0281526004018080602001828103825260288152602001806117646028913960400191505060405180910390fd5b6009546a083afe94b010a2cec00000906108b0908363ffffffff61149316565b11156108f057604051600160e51b62461bcd0281526004018080602001828103825260228152602001806116f96022913960400191505060405180910390fd5b6108fb30838361128c565b60095461090e908263ffffffff61149316565b6009555050565b61091d611196565b60055461010090046001600160a01b039081169116146109755760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b6001600160a01b0382166109bd57604051600160e51b62461bcd02815260040180806020018281038252602981526020018061158d6029913960400191505060405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6109f0611196565b60055461010090046001600160a01b03908116911614610a485760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b600b546a0422ca8b0a00a42500000090610a729069d3c21bcecceda100000063ffffffff61149316565b1115610ab257604051600160e51b62461bcd02815260040180806020018281038252602681526020018061168f6026913960400191505060405180910390fd5b6276a70060105442031015610aff5760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b610b14308269d3c21bcecceda100000061128c565b600b54610b319069d3c21bcecceda100000063ffffffff61149316565b600b5550601080546276a700019055565b610b4a611196565b60055461010090046001600160a01b03908116911614610ba25760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b60085469d3c21bcecceda100000090610bcb90690a968163f0a57b40000063ffffffff61149316565b1115610c0b57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806116486022913960400191505060405180910390fd5b62278d00600e5442031015610c585760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b610c6d3082690a968163f0a57b40000061128c565b600854610c8a90690a968163f0a57b40000063ffffffff61149316565b60085550600e805462278d00019055565b6001600160a01b031660009081526020819052604090205490565b60055461010090046001600160a01b031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105705780601f1061054557610100808354040283529160200191610570565b600061058e610d38611196565b846106308560405180606001604052806025815260200161173f6025913960016000610d62611196565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6113f916565b600061058e610da6611196565b848461128c565b610db5611196565b60055461010090046001600160a01b03908116911614610e0d5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b600754690a968163f0a57b40000090610e359068878678326eac90000063ffffffff61149316565b1115610e7557604051600160e51b62461bcd0281526004018080602001828103825260248152602001806116246024913960400191505060405180910390fd5b6276a700600d5442031015610ec25760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b610ed6308268878678326eac90000061128c565b600754610ef29068878678326eac90000063ffffffff61149316565b60075550600d80546276a700019055565b610f0b611196565b60055461010090046001600160a01b03908116911614610f635760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b600a546969e10de76676d080000090610f8c90691a784379d99db420000063ffffffff61149316565b1115610fcc57604051600160e51b62461bcd02815260040180806020018281038252602481526020018061171b6024913960400191505060405180910390fd5b6276a700600f54420310156110195760408051600160e51b62461bcd02815260206004820152601f60248201526000805160206116d9833981519152604482015290519081900360640190fd5b61102e3082691a784379d99db420000061128c565b600a5461104b90691a784379d99db420000063ffffffff61149316565b600a5550600f80546276a700019055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61108f611196565b60055461010090046001600160a01b039081169116146110e75760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611604833981519152604482015290519081900360640190fd5b6001600160a01b03811661112f57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806115456026913960400191505060405180910390fd5b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b3390565b6001600160a01b0383166111e257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806116b56024913960400191505060405180910390fd5b6001600160a01b03821661122a57604051600160e51b62461bcd02815260040180806020018281038252602281526020018061156b6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166112d457604051600160e51b62461bcd02815260040180806020018281038252602581526020018061166a6025913960400191505060405180910390fd5b6001600160a01b03821661131c57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806115226023913960400191505060405180910390fd5b61132783838361151c565b61136a816040518060600160405280602681526020016115b6602691396001600160a01b038616600090815260208190526040902054919063ffffffff6113f916565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461139f908263ffffffff61149316565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561148b57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611450578181015183820152602001611438565b50505050905090810190601f16801561147d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156114f05760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000611501611196565b60055461010090046001600160a01b03908116911614905090565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734f776e61626c653a206661726d206164647265737320697320746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724d617820636f6d6d756e69747920616c6c6f636174696f6e2072656c65617365642121214d6178206164766973657220616c6c6f636174696f6e2072656c656173656421212145524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734d6178207072697661746553616c6520616c6c6f636174696f6e2072656c656173656421212145524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373506c65617365207761697420746f206e65787420636865636b706f696e7421004d6178206661726d696e6720616c6c6f636174696f6e2072656c65617365642121214d6178206d61726b6574696e6720616c6c6f636174696f6e2072656c656173656421212145524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4f776e61626c653a2063616c6c6572206973206e6f7420746865206661726d206f72206f776e6572a165627a7a72305820898d93a21428b3c3b69b705d72e6eed6fbe476aa6d780d963d4fe4ac82767fe50029

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

00000000000000000000000060cefd4b974ed56aa2391827832263391acaa46f0000000000000000000000003e1102914fb7c266d3f1dde736c2f97962b0573100000000000000000000000050bc4deda5673c04c6fd4a69753052b5245cc8a0

-----Decoded View---------------
Arg [0] : _marketingTGEAddress (address): 0x60cefd4B974ED56Aa2391827832263391ACAa46f
Arg [1] : _privateSaleTGEAddress (address): 0x3e1102914fb7C266D3F1DdE736C2f97962B05731
Arg [2] : _publicSaleTGEAddress (address): 0x50bc4dEDa5673c04c6fd4a69753052b5245Cc8a0

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000060cefd4b974ed56aa2391827832263391acaa46f
Arg [1] : 0000000000000000000000003e1102914fb7c266d3f1dde736c2f97962b05731
Arg [2] : 00000000000000000000000050bc4deda5673c04c6fd4a69753052b5245cc8a0


Deployed Bytecode Sourcemap

25722:4544:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25722:4544:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17134:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;17134:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19145:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19145:152:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;18134:91;;;:::i;:::-;;;;;;;;;;;;;;;;1465:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1465:46:0;-1:-1:-1;;;;;1465:46:0;;:::i;19771:437::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19771:437:0;;;;;;;;;;;;;;;;;:::i;17986:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20617:283;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20617:283:0;;;;;;;;:::i;29820:443::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29820:443:0;-1:-1:-1;;;;;29820:443:0;;:::i;:::-;;2442:100;;;:::i;28462:310::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;28462:310:0;;;;;;;;:::i;2936:235::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2936:235:0;;;;;;;;;;:::i;29287:527::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29287:527:0;-1:-1:-1;;;;;29287:527:0;;:::i;27468:479::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27468:479:0;-1:-1:-1;;;;;27468:479:0;;:::i;18288:110::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18288:110:0;-1:-1:-1;;;;;18288:110:0;;:::i;1937:73::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1937:73:0;;;;;;;;;;;;;;17336:87;;;:::i;21403:383::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;21403:383:0;;;;;;;;:::i;18611:158::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18611:158:0;;;;;;;;:::i;27953:503::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27953:503:0;-1:-1:-1;;;;;27953:503:0;;:::i;28778:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28778:503:0;-1:-1:-1;;;;;28778:503:0;;:::i;18832:166::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18832:166:0;;;;;;;;;;:::i;2687:243::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2687:243:0;-1:-1:-1;;;;;2687:243:0;;:::i;17134:83::-;17204:5;17197:12;;;;;;;;-1:-1:-1;;17197:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17171:13;;17197:12;;17204:5;;17197:12;;17204:5;17197:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17134:83;:::o;19145:152::-;19211:4;19228:39;19237:12;:10;:12::i;:::-;19251:7;19260:6;19228:8;:39::i;:::-;-1:-1:-1;19285:4:0;19145:152;;;;:::o;18134:91::-;18205:12;;18134:91;:::o;1465:46::-;;;;;;;;;;;;;;;:::o;19771:437::-;19894:4;19911:36;19921:6;19929:9;19940:6;19911:9;:36::i;:::-;19958:220;19981:6;20002:12;:10;:12::i;:::-;20029:138;20085:6;20029:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20029:19:0;;;;;;:11;:19;;;;;;20049:12;:10;:12::i;:::-;-1:-1:-1;;;;;20029:33:0;;;;;;;;;;;;-1:-1:-1;20029:33:0;;;:138;;:37;:138;:::i;:::-;19958:8;:220::i;:::-;-1:-1:-1;20196:4:0;19771:437;;;;;:::o;17986:83::-;18052:9;;;;17986:83;:::o;20617:283::-;20715:4;20737:133;20760:12;:10;:12::i;:::-;20787:7;20809:50;20848:10;20809:11;:25;20821:12;:10;:12::i;:::-;-1:-1:-1;;;;;20809:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;20809:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;29820:443::-;2141:12;:10;:12::i;:::-;2131:6;;;;;-1:-1:-1;;;;;2131:6:0;;;:22;;;2123:67;;;;;-1:-1:-1;;;;;2123:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2123:67:0;;;;;;;;;;;;;;;29902:12;;26218:10;;29902:39;;27080:13;29902:39;:16;:39;:::i;:::-;:57;;29894:101;;;;;-1:-1:-1;;;;;29894:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;30036:7;30016:16;;30010:3;:22;:33;;30002:77;;;;;-1:-1:-1;;;;;30002:77:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;30002:77:0;;;;;;;;;;;;;;;30086:58;30104:4;30111:9;27080:13;30086:9;:58::i;:::-;30166:12;;:39;;27080:13;30166:39;:16;:39;:::i;:::-;30151:12;:54;-1:-1:-1;30231:16:0;;;30250:7;30231:26;30212:45;;29820:443::o;2442:100::-;2489:4;2509:13;:27;2523:12;:10;:12::i;:::-;-1:-1:-1;;;;;2509:27:0;;;;;;;;;;;;-1:-1:-1;2509:27:0;;;;;-1:-1:-1;2442:100:0;:::o;28462:310::-;2253:9;:7;:9::i;:::-;:29;;;;2266:16;:14;:16::i;:::-;2245:82;;;;-1:-1:-1;;;;;2245:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28571:15;;25980:14;;28571:28;;28591:7;28571:28;:19;:28;:::i;:::-;:49;;28563:96;;;;-1:-1:-1;;;;;28563:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28666:47;28684:4;28691:12;28705:7;28666:9;:47::i;:::-;28738:15;;:28;;28758:7;28738:28;:19;:28;:::i;:::-;28720:15;:46;-1:-1:-1;;28462:310:0:o;2936:235::-;2141:12;:10;:12::i;:::-;2131:6;;;;;-1:-1:-1;;;;;2131:6:0;;;:22;;;2123:67;;;;;-1:-1:-1;;;;;2123:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2123:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3036:26:0;;3020:101;;;;-1:-1:-1;;;;;3020:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3128:27:0;;;;;;;;:13;:27;;;;;:37;;-1:-1:-1;;3128:37:0;;;;;;;;;;2936:235::o;29287:527::-;2141:12;:10;:12::i;:::-;2131:6;;;;;-1:-1:-1;;;;;2131:6:0;;;:22;;;2123:67;;;;;-1:-1:-1;;;;;2123:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2123:67:0;;;;;;;;;;;;;;;29376:19;;26164:10;;29376:53;;27019:10;29376:53;:23;:53;:::i;:::-;:78;;29368:129;;;;-1:-1:-1;;;;;29368:129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29545:7;29518:23;;29512:3;:29;:40;;29504:84;;;;;-1:-1:-1;;;;;29504:84:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;29504:84:0;;;;;;;;;;;;;;;29595:65;29613:4;29620:9;27019:10;29595:9;:65::i;:::-;29689:19;;:53;;27019:10;29689:53;:23;:53;:::i;:::-;29667:19;:75;-1:-1:-1;29775:23:0;;;29801:7;29775:33;29749:59;;29287:527::o;27468:479::-;2141:12;:10;:12::i;:::-;2131:6;;;;;-1:-1:-1;;;;;2131:6:0;;;:22;;;2123:67;;;;;-1:-1:-1;;;;;2123:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2123:67:0;;;;;;;;;;;;;;;27553:15;;25864:10;;27553:45;;26813:12;27553:45;:19;:45;:::i;:::-;:66;;27545:113;;;;-1:-1:-1;;;;;27545:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27702:7;27679:19;;27673:3;:25;:36;;27665:80;;;;;-1:-1:-1;;;;;27665:80:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;27665:80:0;;;;;;;;;;;;;;;27752:61;27770:4;27777:9;26813:12;27752:9;:61::i;:::-;27838:15;;:45;;26813:12;27838:45;:19;:45;:::i;:::-;27820:15;:63;-1:-1:-1;27912:19:0;;;27934:7;27912:29;27890:51;;27468:479::o;18288:110::-;-1:-1:-1;;;;;18372:18:0;18345:7;18372:18;;;;;;;;;;;;18288:110::o;1937:73::-;1998:6;;;;;-1:-1:-1;;;;;1998:6:0;;1937:73::o;17336:87::-;17408:7;17401:14;;;;;;;;-1:-1:-1;;17401:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17375:13;;17401:14;;17408:7;;17401:14;;17408:7;17401:14;;;;;;;;;;;;;;;;;;;;;;;;21403:383;21506:4;21528:228;21551:12;:10;:12::i;:::-;21578:7;21600:145;21657:15;21600:145;;;;;;;;;;;;;;;;;:11;:25;21612:12;:10;:12::i;:::-;-1:-1:-1;;;;;21600:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;21600:25:0;;;:34;;;;;;;;;;;:145;;:38;:145;:::i;18611:158::-;18680:4;18697:42;18707:12;:10;:12::i;:::-;18721:9;18732:6;18697:9;:42::i;27953:503::-;2141:12;:10;:12::i;:::-;2131:6;;;;;-1:-1:-1;;;;;2131:6:0;;;:22;;;2123:67;;;;;-1:-1:-1;;;;;2123:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2123:67:0;;;;;;;;;;;;;;;28040:17;;25923:10;;28040:49;;26881:11;28040:49;:21;:49;:::i;:::-;:72;;28032:121;;;;-1:-1:-1;;;;;28032:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28199:7;28174:21;;28168:3;:27;:38;;28160:82;;;;;-1:-1:-1;;;;;28160:82:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28160:82:0;;;;;;;;;;;;;;;28249:63;28267:4;28274:9;26881:11;28249:9;:63::i;:::-;28339:17;;:49;;26881:11;28339:49;:21;:49;:::i;:::-;28319:17;:69;-1:-1:-1;28419:21:0;;;28443:7;28419:31;28395:55;;27953:503::o;28778:::-;2141:12;:10;:12::i;:::-;2131:6;;;;;-1:-1:-1;;;;;2131:6:0;;;:22;;;2123:67;;;;;-1:-1:-1;;;;;2123:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2123:67:0;;;;;;;;;;;;;;;28865:17;;26043:10;;28865:49;;26948:13;28865:49;:21;:49;:::i;:::-;:72;;28857:121;;;;-1:-1:-1;;;;;28857:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29024:7;28999:21;;28993:3;:27;:38;;28985:82;;;;;-1:-1:-1;;;;;28985:82:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;28985:82:0;;;;;;;;;;;;;;;29074:63;29092:4;29099:9;26948:13;29074:9;:63::i;:::-;29164:17;;:49;;26948:13;29164:49;:21;:49;:::i;:::-;29144:17;:69;-1:-1:-1;29244:21:0;;;29268:7;29244:31;29220:55;;28778:503::o;18832:166::-;-1:-1:-1;;;;;18963:18:0;;;18931:7;18963:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18832:166::o;2687:243::-;2141:12;:10;:12::i;:::-;2131:6;;;;;-1:-1:-1;;;;;2131:6:0;;;:22;;;2123:67;;;;;-1:-1:-1;;;;;2123:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2123:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2772:22:0;;2756:94;;;;-1:-1:-1;;;;;2756:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2883:6;;2862:38;;-1:-1:-1;;;;;2862:38:0;;;;2883:6;;;;;2862:38;;;;;2907:6;:17;;-1:-1:-1;;;;;2907:17:0;;;;;-1:-1:-1;;;;;;2907:17:0;;;;;;;;;2687:243::o;560:98::-;640:10;560:98;:::o;24097:372::-;-1:-1:-1;;;;;24225:19:0;;24217:68;;;;-1:-1:-1;;;;;24217:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24304:21:0;;24296:68;;;;-1:-1:-1;;;;;24296:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24377:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24429:32;;;;;;;;;;;;;;;;;24097:372;;;:::o;22276:602::-;-1:-1:-1;;;;;22408:20:0;;22400:70;;;;-1:-1:-1;;;;;22400:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22489:23:0;;22481:71;;;;-1:-1:-1;;;;;22481:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22565:47;22586:6;22594:9;22605:6;22565:20;:47::i;:::-;22645:108;22681:6;22645:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22645:17:0;;:9;:17;;;;;;;;;;;;:108;;:21;:108;:::i;:::-;-1:-1:-1;;;;;22625:17:0;;;:9;:17;;;;;;;;;;;:128;;;;22787:20;;;;;;;:32;;22812:6;22787:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;22764:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;22835:35;;;;;;;22764:20;;22835:35;;;;;;;;;;;;;22276:602;;;:::o;4835:198::-;4941:7;4973:12;4965:6;;;;4957:29;;;;-1:-1:-1;;;;;4957:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4957:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5005:5:0;;;4835:198::o;3996:167::-;4054:7;4082:5;;;4102:6;;;;4094:46;;;;;-1:-1:-1;;;;;4094:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4156:1;3996:167;-1:-1:-1;;;3996:167:0:o;2347:89::-;2388:4;2418:12;:10;:12::i;:::-;2408:6;;;;;-1:-1:-1;;;;;2408:6:0;;;:22;;;;-1:-1:-1;2347:89:0;:::o;25072:117::-;;;;:::o

Swarm Source

bzzr://898d93a21428b3c3b69b705d72e6eed6fbe476aa6d780d963d4fe4ac82767fe5
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.