ERC-20
Deflationary Token
Overview
Max Total Supply
787,903.56411885536729695 VNLA
Holders
1,780 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$355.54
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
19.95 VNLAValue
$0.01 ( ~3.96191787365801E-06 Eth) [0.0025%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Vanilla
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-09 */ pragma solidity ^0.6.0; // SPDX-License-Identifier: UNLICENSED /** * @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; } function ceil(uint256 a, uint256 m) internal pure returns (uint256 r) { require(m != 0, "SafeMath: to ceil number shall not be zero"); return (a + m - 1) / m * m; } } // ---------------------------------------------------------------------------- // ERC Token Standard #20 Interface // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md // ---------------------------------------------------------------------------- /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // ---------------------------------------------------------------------------- // Owned contract // ---------------------------------------------------------------------------- contract Owned { address payable public owner; event OwnershipTransferred(address indexed _from, address indexed _to); constructor() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address payable _newOwner) public onlyOwner { owner = _newOwner; emit OwnershipTransferred(msg.sender, _newOwner); } } // ---------------------------------------------------------------------------- // 'VANILLA' token AND staking contract // Symbol : VNLA // Name : Vanilla Network // Total supply: 1,000,000 (1 million) // Min supply : 100k // Decimals : 18 // ---------------------------------------------------------------------------- // ERC20 Token, with the addition of symbol, name and decimals and assisted // token transfers // ---------------------------------------------------------------------------- contract Vanilla is IERC20, Owned { using SafeMath for uint256; string public symbol = "VNLA"; string public name = "Vanilla Network"; uint256 public decimals = 18; address airdropContract; uint256 _totalSupply = 98447685 * 10 ** (16); // 984,476.85 mapping(address => uint256) balances; mapping(address => mapping(address => uint256)) allowed; // ------------------------------------------------------------------------ // Constructor // ------------------------------------------------------------------------ constructor(address icoContract, address _airdropContract) public { airdropContract = _airdropContract; owner = 0xFa50b82cbf2942008A097B6289F39b1bb797C5Cd; balances[icoContract] = 150000 * 10 ** (18); // 150,000 emit Transfer(address(0), icoContract, 150000 * 10 ** (18)); balances[address(owner)] = 54195664 * 10 ** (16); // 541,956.64 emit Transfer(address(0), address(owner), 54195664 * 10 ** (16)); balances[address(airdropContract)] = 2925202086 * 10 ** (14); // 292520.2086 emit Transfer(address(0), address(airdropContract), 2925202086 * 10 ** (14)); } /** ERC20Interface function's implementation **/ function totalSupply() external override view returns (uint256){ return _totalSupply; } // ------------------------------------------------------------------------ // Get the token balance for account `tokenOwner` // ------------------------------------------------------------------------ function balanceOf(address tokenOwner) external override view returns (uint256 balance) { return balances[tokenOwner]; } // ------------------------------------------------------------------------ // Token owner can approve for `spender` to transferFrom(...) `tokens` // from the token owner's account // ------------------------------------------------------------------------ function approve(address spender, uint256 tokens) external override returns (bool success){ allowed[msg.sender][spender] = tokens; emit Approval(msg.sender,spender,tokens); return true; } // ------------------------------------------------------------------------ // Returns the amount of tokens approved by the owner that can be // transferred to the spender's account // ------------------------------------------------------------------------ function allowance(address tokenOwner, address spender) external override view returns (uint256 remaining) { return allowed[tokenOwner][spender]; } // ------------------------------------------------------------------------ // Transfer the balance from token owner's account to `to` account // - Owner's account must have sufficient balance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function transfer(address to, uint256 tokens) public override returns (bool success) { // prevent transfer to 0x0, use burn instead require(address(to) != address(0)); require(balances[msg.sender] >= tokens ); require(balances[to] + tokens >= balances[to]); balances[msg.sender] = balances[msg.sender].sub(tokens); uint256 deduction = deductionsToApply(tokens); applyDeductions(deduction); balances[to] = balances[to].add(tokens.sub(deduction)); emit Transfer(msg.sender, to, tokens.sub(deduction)); return true; } // ------------------------------------------------------------------------ // Transfer `tokens` from the `from` account to the `to` account // // The calling account must already have sufficient tokens approve(...)-d // for spending from the `from` account and // - From account must have sufficient balance to transfer // - Spender must have sufficient allowance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function transferFrom(address from, address to, uint256 tokens) external override returns (bool success){ require(tokens <= allowed[from][msg.sender]); //check allowance require(balances[from] >= tokens); balances[from] = balances[from].sub(tokens); allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens); uint256 deduction = deductionsToApply(tokens); applyDeductions(deduction); balances[to] = balances[to].add(tokens.sub(deduction)); emit Transfer(from, to, tokens.sub(tokens)); return true; } function _transfer(address to, uint256 tokens, bool rewards) internal returns(bool){ // prevent transfer to 0x0, use burn instead require(address(to) != address(0)); require(balances[address(this)] >= tokens ); require(balances[to] + tokens >= balances[to]); balances[address(this)] = balances[address(this)].sub(tokens); uint256 deduction = 0; if(!rewards){ deduction = deductionsToApply(tokens); applyDeductions(deduction); } balances[to] = balances[to].add(tokens.sub(deduction)); emit Transfer(address(this),to,tokens.sub(deduction)); return true; } function deductionsToApply(uint256 tokens) private view returns(uint256){ uint256 deduction = 0; uint256 minSupply = 100000 * 10 ** (18); if(_totalSupply > minSupply && msg.sender != airdropContract){ deduction = onePercent(tokens).mul(5); // 5% transaction cost if(_totalSupply.sub(deduction) < minSupply) deduction = _totalSupply.sub(minSupply); } return deduction; } function applyDeductions(uint256 deduction) private{ if(stakedCoins == 0){ burnTokens(deduction); } else{ burnTokens(deduction.div(2)); disburse(deduction.div(2)); } } // ------------------------------------------------------------------------ // Burn the ``value` amount of tokens from the `account` // ------------------------------------------------------------------------ function burnTokens(uint256 value) internal{ require(_totalSupply >= value); // burn only unsold tokens _totalSupply = _totalSupply.sub(value); emit Transfer(msg.sender, address(0), value); } // ------------------------------------------------------------------------ // Calculates onePercent of the uint256 amount sent // ------------------------------------------------------------------------ function onePercent(uint256 _tokens) internal pure returns (uint256){ uint256 roundValue = _tokens.ceil(100); uint onePercentofTokens = roundValue.mul(100).div(100 * 10**uint(2)); return onePercentofTokens; } /********************************STAKING CONTRACT**********************************/ uint256 deployTime; uint256 private totalDividentPoints; uint256 private unclaimedDividendPoints; uint256 pointMultiplier = 1000000000000000000; uint256 public stakedCoins; uint256 public totalRewardsClaimed; bool public stakingOpen; struct Account { uint256 balance; uint256 lastDividentPoints; uint256 timeInvest; uint256 lastClaimed; uint256 rewardsClaimed; uint256 pending; } mapping(address => Account) accounts; function openStaking() external onlyOwner{ require(!stakingOpen, "staking already open"); stakingOpen = true; } function STAKE(uint256 _tokens) external returns(bool){ require(stakingOpen, "staking is close"); // gets VANILLA tokens from user to contract address require(transfer(address(this), _tokens), "In sufficient tokens in user wallet"); // require(_tokens >= 100 * 10 ** (18), "Minimum stake allowed is 100 EZG"); uint256 owing = dividendsOwing(msg.sender); if(owing > 0) // early stakes accounts[msg.sender].pending = owing; addToStake(_tokens); return true; } function addToStake(uint256 _tokens) private{ uint256 deduction = deductionsToApply(_tokens); if(accounts[msg.sender].balance == 0 ) // first time staking accounts[msg.sender].timeInvest = now; stakedCoins = stakedCoins.add(_tokens.sub(deduction)); accounts[msg.sender].balance = accounts[msg.sender].balance.add(_tokens.sub(deduction)); accounts[msg.sender].lastDividentPoints = totalDividentPoints; accounts[msg.sender].lastClaimed = now; } function stakingStartedAt(address user) external view returns(uint256){ return accounts[user].timeInvest; } function pendingReward(address _user) external view returns(uint256){ uint256 owing = dividendsOwing(_user); return owing; } function dividendsOwing(address investor) internal view returns (uint256){ uint256 newDividendPoints = totalDividentPoints.sub(accounts[investor].lastDividentPoints); return (((accounts[investor].balance).mul(newDividendPoints)).div(pointMultiplier)).add(accounts[investor].pending); } function updateDividend(address investor) internal returns(uint256){ uint256 owing = dividendsOwing(investor); if (owing > 0){ unclaimedDividendPoints = unclaimedDividendPoints.sub(owing); accounts[investor].lastDividentPoints = totalDividentPoints; accounts[investor].pending = 0; } return owing; } function activeStake(address _user) external view returns (uint256){ return accounts[_user].balance; } function UNSTAKE(uint256 tokens) external returns (bool){ require(accounts[msg.sender].balance > 0); uint256 owing = updateDividend(msg.sender); if(owing > 0) // unclaimed reward accounts[msg.sender].pending = owing; stakedCoins = stakedCoins.sub(tokens); require(_transfer(msg.sender, tokens, false)); accounts[msg.sender].balance = accounts[msg.sender].balance.sub(tokens); return true; } function disburse(uint256 amount) internal{ balances[address(this)] = balances[address(this)].add(amount); uint256 unnormalized = amount.mul(pointMultiplier); totalDividentPoints = totalDividentPoints.add(unnormalized.div(stakedCoins)); unclaimedDividendPoints = unclaimedDividendPoints.add(amount); } function claimReward() external returns(bool){ uint256 owing = updateDividend(msg.sender); require(owing > 0); require(_transfer(msg.sender, owing, true)); accounts[msg.sender].rewardsClaimed = accounts[msg.sender].rewardsClaimed.add(owing); totalRewardsClaimed = totalRewardsClaimed.add(owing); return true; } function rewardsClaimed(address _user) external view returns(uint256 rewardClaimed){ return accounts[_user].rewardsClaimed; } function reinvest() external { uint256 owing = updateDividend(msg.sender); require(owing > 0); // if there is any pending reward, people can add it to existing stake addToStake(owing); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"icoContract","type":"address"},{"internalType":"address","name":"_airdropContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"STAKE","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"UNSTAKE","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reinvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"rewardsClaimed","outputs":[{"internalType":"uint256","name":"rewardClaimed","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakedCoins","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"stakingStartedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardsClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c06040526004608081905263564e4c4160e01b60a0908152620000279160019190620001f2565b5060408051808201909152600f8082526e56616e696c6c61204e6574776f726b60881b60209092019182526200006091600291620001f2565b50601260035569d07898d3751a10050000600555670de0b6b3a7640000600b553480156200008d57600080fd5b506040516200168d3803806200168d83398181016040526040811015620000b357600080fd5b50805160209182015160008054600480546001600160a01b038086166001600160a01b031992831617909255918216331790911673fa50b82cbf2942008a097b6289f39b1bb797c5cd1782558316808252600685526040808320691fc3842bd1f071c0000090819055815190815290519495939491936000805160206200166d83398151915292918290030190a3600080546001600160a01b0390811682526006602090815260408084206972c387403ea881d00000908190558454825191825291519190931693926000805160206200166d83398151915292908290030190a3600480546001600160a01b039081166000908152600660209081526040808320693df18d626b3635c580009081905594548151958652905193169391926000805160206200166d8339815191529281900390910190a3505062000297565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023557805160ff191683800117855562000265565b8280016001018555821562000265579182015b828111156200026557825182559160200191906001019062000248565b506200027392915062000277565b5090565b6200029491905b808211156200027357600081556001016200027e565b90565b6113c680620002a76000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806395d89b41116100c3578063d3f730fd1161007c578063d3f730fd1461036f578063dd62ed3e14610395578063f2fde38b146103c3578063f3fb67a0146103e9578063f40f0f521461040f578063fdb5a03e146104355761014d565b806395d89b4114610306578063a34b0f761461030e578063a9059cbb14610316578063b88a802f14610342578063ca84d5911461034a578063d0668b3c146103675761014d565b806338760298116101155780633876029814610267578063527b90c81461026f578063625817331461028c57806370a08231146102965780638d7ce096146102bc5780638da5cb5b146102e25761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd14610229578063313ce5671461025f575b600080fd5b61015a61043d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b0381351690602001356104c8565b604080519115158252519081900360200190f35b61021761052f565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610535565b6102176106bd565b6101fb6106c3565b6101fb6004803603602081101561028557600080fd5b50356106cc565b610294610772565b005b610217600480360360208110156102ac57600080fd5b50356001600160a01b03166107e7565b610217600480360360208110156102d257600080fd5b50356001600160a01b0316610802565b6102ea61081d565b604080516001600160a01b039092168252519081900360200190f35b61015a61082c565b610217610886565b6101fb6004803603604081101561032c57600080fd5b506001600160a01b03813516906020013561088c565b6101fb610995565b6101fb6004803603602081101561036057600080fd5b5035610a19565b610217610ae6565b6102176004803603602081101561038557600080fd5b50356001600160a01b0316610aec565b610217600480360360408110156103ab57600080fd5b506001600160a01b0381358116916020013516610b0a565b610294600480360360208110156103d957600080fd5b50356001600160a01b0316610b35565b610217600480360360208110156103ff57600080fd5b50356001600160a01b0316610b97565b6102176004803603602081101561042557600080fd5b50356001600160a01b0316610bb5565b610294610bc8565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104c05780601f10610495576101008083540402835291602001916104c0565b820191906000526020600020905b8154815290600101906020018083116104a357829003601f168201915b505050505081565b3360008181526007602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60055490565b6001600160a01b038316600090815260076020908152604080832033845290915281205482111561056557600080fd5b6001600160a01b03841660009081526006602052604090205482111561058a57600080fd5b6001600160a01b0384166000908152600660205260409020546105b3908363ffffffff610bee16565b6001600160a01b03851660009081526006602090815260408083209390935560078152828220338352905220546105f0908363ffffffff610bee16565b6001600160a01b038516600090815260076020908152604080832033845290915281209190915561062083610c30565b905061062b81610cb7565b61066361063e848363ffffffff610bee16565b6001600160a01b0386166000908152600660205260409020549063ffffffff610cfe16565b6001600160a01b0380861660008181526006602052604090209290925586166000805160206113718339815191526106a1868063ffffffff610bee16565b60408051918252519081900360200190a3506001949350505050565b60035481565b600e5460ff1681565b336000908152600f60205260408120546106e557600080fd5b60006106f033610d58565b9050801561070e57336000908152600f602052604090206005018190555b600c54610721908463ffffffff610bee16565b600c5561073033846000610db1565b61073957600080fd5b336000908152600f6020526040902054610759908463ffffffff610bee16565b336000908152600f602052604090205550600192915050565b6000546001600160a01b0316331461078957600080fd5b600e5460ff16156107d8576040805162461bcd60e51b815260206004820152601460248201527339ba30b5b4b7339030b63932b0b23c9037b832b760611b604482015290519081900360640190fd5b600e805460ff19166001179055565b6001600160a01b031660009081526006602052604090205490565b6001600160a01b03166000908152600f602052604090205490565b6000546001600160a01b031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104c05780601f10610495576101008083540402835291602001916104c0565b600d5481565b60006001600160a01b0383166108a157600080fd5b336000908152600660205260409020548211156108bd57600080fd5b6001600160a01b03831660009081526006602052604090205482810110156108e457600080fd5b33600090815260066020526040902054610904908363ffffffff610bee16565b3360009081526006602052604081209190915561092083610c30565b905061092b81610cb7565b61093e61063e848363ffffffff610bee16565b6001600160a01b0385166000818152600660205260409020919091553360008051602061137183398151915261097a868563ffffffff610bee16565b60408051918252519081900360200190a35060019392505050565b6000806109a133610d58565b9050600081116109b057600080fd5b6109bc33826001610db1565b6109c557600080fd5b336000908152600f60205260409020600401546109e8908263ffffffff610cfe16565b336000908152600f6020526040902060040155600d54610a0e908263ffffffff610cfe16565b600d55506001905090565b600e5460009060ff16610a66576040805162461bcd60e51b815260206004820152601060248201526f7374616b696e6720697320636c6f736560801b604482015290519081900360640190fd5b610a70308361088c565b610aab5760405162461bcd60e51b815260040180806020018281038252602381526020018061134e6023913960400191505060405180910390fd5b6000610ab633610ec9565b90508015610ad457336000908152600f602052604090206005018190555b610add83610f51565b50600192915050565b600c5481565b6001600160a01b03166000908152600f602052604090206004015490565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610b4c57600080fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03166000908152600f602052604090206002015490565b600080610bc183610ec9565b9392505050565b6000610bd333610d58565b905060008111610be257600080fd5b610beb81610f51565b50565b6000610bc183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611003565b600554600090819069152d02c7e14af68000009081108015610c5d57506004546001600160a01b03163314155b15610cb057610c7c6005610c708661109a565b9063ffffffff6110d116565b915080610c9483600554610bee90919063ffffffff16565b1015610cb057600554610cad908263ffffffff610bee16565b91505b5092915050565b600c54610ccc57610cc78161112a565b610beb565b610ce5610ce082600263ffffffff61117816565b61112a565b610beb610cf982600263ffffffff61117816565b6111ba565b600082820183811015610bc1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080610d6483610ec9565b9050801561052957600a54610d7f908263ffffffff610bee16565b600a556009546001600160a01b0384166000908152600f60205260408120600181019290925560059091015592915050565b60006001600160a01b038416610dc657600080fd5b30600090815260066020526040902054831115610de257600080fd5b6001600160a01b0384166000908152600660205260409020548381011015610e0957600080fd5b30600090815260066020526040902054610e29908463ffffffff610bee16565b3060009081526006602052604081209190915582610e5557610e4a84610c30565b9050610e5581610cb7565b610e8d610e68858363ffffffff610bee16565b6001600160a01b0387166000908152600660205260409020549063ffffffff610cfe16565b6001600160a01b038616600081815260066020526040902091909155306000805160206113718339815191526106a1878563ffffffff610bee16565b6001600160a01b0381166000908152600f60205260408120600101546009548291610efa919063ffffffff610bee16565b6001600160a01b0384166000908152600f602052604090206005810154600b549154929350610bc1929091610f4591610f39908663ffffffff6110d116565b9063ffffffff61117816565b9063ffffffff610cfe16565b6000610f5c82610c30565b336000908152600f6020526040902054909150610f8a57336000908152600f60205260409020426002909101555b610fac610f9d838363ffffffff610bee16565b600c549063ffffffff610cfe16565b600c55610fde610fc2838363ffffffff610bee16565b336000908152600f60205260409020549063ffffffff610cfe16565b336000908152600f602052604090209081556009546001820155426003909101555050565b600081848411156110925760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561105757818101518382015260200161103f565b50505050905090810190601f1680156110845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806110ae83606463ffffffff61124716565b905060006110c9612710610f3984606463ffffffff6110d116565b949350505050565b6000826110e057506000610529565b828202828482816110ed57fe5b0414610bc15760405162461bcd60e51b81526004018080602001828103825260218152602001806113036021913960400191505060405180910390fd5b80600554101561113957600080fd5b60055461114c908263ffffffff610bee16565b60055560408051828152905160009133916000805160206113718339815191529181900360200190a350565b6000610bc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061129d565b306000908152600660205260409020546111da908263ffffffff610cfe16565b30600090815260066020526040812091909155600b5461120190839063ffffffff6110d116565b905061122a61121b600c548361117890919063ffffffff16565b6009549063ffffffff610cfe16565b600955600a54611240908363ffffffff610cfe16565b600a555050565b6000816112855760405162461bcd60e51b815260040180806020018281038252602a815260200180611324602a913960400191505060405180910390fd5b81826001848601038161129457fe5b04029392505050565b600081836112ec5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561105757818101518382015260200161103f565b5060008385816112f857fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77536166654d6174683a20746f206365696c206e756d626572207368616c6c206e6f74206265207a65726f496e2073756666696369656e7420746f6b656e7320696e20757365722077616c6c6574ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122098bec3d04951cf63d65230bd5ec7ecbfe3195b752156948e917bcc108ffa39f064736f6c63430006060033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000f1921070fc63ddc2ded8de6abe4118e12980cffd0000000000000000000000008a4926d20b5a2c08db9ac2ec2aadedd9c8d863f1
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806395d89b41116100c3578063d3f730fd1161007c578063d3f730fd1461036f578063dd62ed3e14610395578063f2fde38b146103c3578063f3fb67a0146103e9578063f40f0f521461040f578063fdb5a03e146104355761014d565b806395d89b4114610306578063a34b0f761461030e578063a9059cbb14610316578063b88a802f14610342578063ca84d5911461034a578063d0668b3c146103675761014d565b806338760298116101155780633876029814610267578063527b90c81461026f578063625817331461028c57806370a08231146102965780638d7ce096146102bc5780638da5cb5b146102e25761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd14610229578063313ce5671461025f575b600080fd5b61015a61043d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b0381351690602001356104c8565b604080519115158252519081900360200190f35b61021761052f565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610535565b6102176106bd565b6101fb6106c3565b6101fb6004803603602081101561028557600080fd5b50356106cc565b610294610772565b005b610217600480360360208110156102ac57600080fd5b50356001600160a01b03166107e7565b610217600480360360208110156102d257600080fd5b50356001600160a01b0316610802565b6102ea61081d565b604080516001600160a01b039092168252519081900360200190f35b61015a61082c565b610217610886565b6101fb6004803603604081101561032c57600080fd5b506001600160a01b03813516906020013561088c565b6101fb610995565b6101fb6004803603602081101561036057600080fd5b5035610a19565b610217610ae6565b6102176004803603602081101561038557600080fd5b50356001600160a01b0316610aec565b610217600480360360408110156103ab57600080fd5b506001600160a01b0381358116916020013516610b0a565b610294600480360360208110156103d957600080fd5b50356001600160a01b0316610b35565b610217600480360360208110156103ff57600080fd5b50356001600160a01b0316610b97565b6102176004803603602081101561042557600080fd5b50356001600160a01b0316610bb5565b610294610bc8565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104c05780601f10610495576101008083540402835291602001916104c0565b820191906000526020600020905b8154815290600101906020018083116104a357829003601f168201915b505050505081565b3360008181526007602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60055490565b6001600160a01b038316600090815260076020908152604080832033845290915281205482111561056557600080fd5b6001600160a01b03841660009081526006602052604090205482111561058a57600080fd5b6001600160a01b0384166000908152600660205260409020546105b3908363ffffffff610bee16565b6001600160a01b03851660009081526006602090815260408083209390935560078152828220338352905220546105f0908363ffffffff610bee16565b6001600160a01b038516600090815260076020908152604080832033845290915281209190915561062083610c30565b905061062b81610cb7565b61066361063e848363ffffffff610bee16565b6001600160a01b0386166000908152600660205260409020549063ffffffff610cfe16565b6001600160a01b0380861660008181526006602052604090209290925586166000805160206113718339815191526106a1868063ffffffff610bee16565b60408051918252519081900360200190a3506001949350505050565b60035481565b600e5460ff1681565b336000908152600f60205260408120546106e557600080fd5b60006106f033610d58565b9050801561070e57336000908152600f602052604090206005018190555b600c54610721908463ffffffff610bee16565b600c5561073033846000610db1565b61073957600080fd5b336000908152600f6020526040902054610759908463ffffffff610bee16565b336000908152600f602052604090205550600192915050565b6000546001600160a01b0316331461078957600080fd5b600e5460ff16156107d8576040805162461bcd60e51b815260206004820152601460248201527339ba30b5b4b7339030b63932b0b23c9037b832b760611b604482015290519081900360640190fd5b600e805460ff19166001179055565b6001600160a01b031660009081526006602052604090205490565b6001600160a01b03166000908152600f602052604090205490565b6000546001600160a01b031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104c05780601f10610495576101008083540402835291602001916104c0565b600d5481565b60006001600160a01b0383166108a157600080fd5b336000908152600660205260409020548211156108bd57600080fd5b6001600160a01b03831660009081526006602052604090205482810110156108e457600080fd5b33600090815260066020526040902054610904908363ffffffff610bee16565b3360009081526006602052604081209190915561092083610c30565b905061092b81610cb7565b61093e61063e848363ffffffff610bee16565b6001600160a01b0385166000818152600660205260409020919091553360008051602061137183398151915261097a868563ffffffff610bee16565b60408051918252519081900360200190a35060019392505050565b6000806109a133610d58565b9050600081116109b057600080fd5b6109bc33826001610db1565b6109c557600080fd5b336000908152600f60205260409020600401546109e8908263ffffffff610cfe16565b336000908152600f6020526040902060040155600d54610a0e908263ffffffff610cfe16565b600d55506001905090565b600e5460009060ff16610a66576040805162461bcd60e51b815260206004820152601060248201526f7374616b696e6720697320636c6f736560801b604482015290519081900360640190fd5b610a70308361088c565b610aab5760405162461bcd60e51b815260040180806020018281038252602381526020018061134e6023913960400191505060405180910390fd5b6000610ab633610ec9565b90508015610ad457336000908152600f602052604090206005018190555b610add83610f51565b50600192915050565b600c5481565b6001600160a01b03166000908152600f602052604090206004015490565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610b4c57600080fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03166000908152600f602052604090206002015490565b600080610bc183610ec9565b9392505050565b6000610bd333610d58565b905060008111610be257600080fd5b610beb81610f51565b50565b6000610bc183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611003565b600554600090819069152d02c7e14af68000009081108015610c5d57506004546001600160a01b03163314155b15610cb057610c7c6005610c708661109a565b9063ffffffff6110d116565b915080610c9483600554610bee90919063ffffffff16565b1015610cb057600554610cad908263ffffffff610bee16565b91505b5092915050565b600c54610ccc57610cc78161112a565b610beb565b610ce5610ce082600263ffffffff61117816565b61112a565b610beb610cf982600263ffffffff61117816565b6111ba565b600082820183811015610bc1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080610d6483610ec9565b9050801561052957600a54610d7f908263ffffffff610bee16565b600a556009546001600160a01b0384166000908152600f60205260408120600181019290925560059091015592915050565b60006001600160a01b038416610dc657600080fd5b30600090815260066020526040902054831115610de257600080fd5b6001600160a01b0384166000908152600660205260409020548381011015610e0957600080fd5b30600090815260066020526040902054610e29908463ffffffff610bee16565b3060009081526006602052604081209190915582610e5557610e4a84610c30565b9050610e5581610cb7565b610e8d610e68858363ffffffff610bee16565b6001600160a01b0387166000908152600660205260409020549063ffffffff610cfe16565b6001600160a01b038616600081815260066020526040902091909155306000805160206113718339815191526106a1878563ffffffff610bee16565b6001600160a01b0381166000908152600f60205260408120600101546009548291610efa919063ffffffff610bee16565b6001600160a01b0384166000908152600f602052604090206005810154600b549154929350610bc1929091610f4591610f39908663ffffffff6110d116565b9063ffffffff61117816565b9063ffffffff610cfe16565b6000610f5c82610c30565b336000908152600f6020526040902054909150610f8a57336000908152600f60205260409020426002909101555b610fac610f9d838363ffffffff610bee16565b600c549063ffffffff610cfe16565b600c55610fde610fc2838363ffffffff610bee16565b336000908152600f60205260409020549063ffffffff610cfe16565b336000908152600f602052604090209081556009546001820155426003909101555050565b600081848411156110925760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561105757818101518382015260200161103f565b50505050905090810190601f1680156110845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806110ae83606463ffffffff61124716565b905060006110c9612710610f3984606463ffffffff6110d116565b949350505050565b6000826110e057506000610529565b828202828482816110ed57fe5b0414610bc15760405162461bcd60e51b81526004018080602001828103825260218152602001806113036021913960400191505060405180910390fd5b80600554101561113957600080fd5b60055461114c908263ffffffff610bee16565b60055560408051828152905160009133916000805160206113718339815191529181900360200190a350565b6000610bc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061129d565b306000908152600660205260409020546111da908263ffffffff610cfe16565b30600090815260066020526040812091909155600b5461120190839063ffffffff6110d116565b905061122a61121b600c548361117890919063ffffffff16565b6009549063ffffffff610cfe16565b600955600a54611240908363ffffffff610cfe16565b600a555050565b6000816112855760405162461bcd60e51b815260040180806020018281038252602a815260200180611324602a913960400191505060405180910390fd5b81826001848601038161129457fe5b04029392505050565b600081836112ec5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561105757818101518382015260200161103f565b5060008385816112f857fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77536166654d6174683a20746f206365696c206e756d626572207368616c6c206e6f74206265207a65726f496e2073756666696369656e7420746f6b656e7320696e20757365722077616c6c6574ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122098bec3d04951cf63d65230bd5ec7ecbfe3195b752156948e917bcc108ffa39f064736f6c63430006060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f1921070fc63ddc2ded8de6abe4118e12980cffd0000000000000000000000008a4926d20b5a2c08db9ac2ec2aadedd9c8d863f1
-----Decoded View---------------
Arg [0] : icoContract (address): 0xF1921070fC63DDC2Ded8De6Abe4118E12980CfFd
Arg [1] : _airdropContract (address): 0x8a4926D20B5a2c08db9ac2EC2AaDedD9c8d863F1
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f1921070fc63ddc2ded8de6abe4118e12980cffd
Arg [1] : 0000000000000000000000008a4926d20b5a2c08db9ac2ec2aadedd9c8d863f1
Deployed Bytecode Sourcemap
9732:12193:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9732:12193:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;9847:39:0;;;:::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;9847:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11818:219;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;11818:219:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11067:100;;;:::i;:::-;;;;;;;;;;;;;;;;14021:610;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;14021:610:0;;;;;;;;;;;;;;;;;:::i;9893:28::-;;;:::i;17454:23::-;;;:::i;20206:522::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20206:522:0;;:::i;17752:134::-;;;:::i;:::-;;11395;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11395:134:0;-1:-1:-1;;;;;11395:134:0;;:::i;20078:116::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20078:116:0;-1:-1:-1;;;;;20078:116:0;;:::i;8762:28::-;;;:::i;:::-;;;;-1:-1:-1;;;;;8762:28:0;;;;;;;;;;;;;;9811:29;;;:::i;17407:34::-;;;:::i;12837:639::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;12837:639:0;;;;;;;;:::i;21102:400::-;;;:::i;17898:597::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17898:597:0;;:::i;17368:26::-;;;:::i;21514:139::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;21514:139:0;-1:-1:-1;;;;;21514:139:0;;:::i;12327:161::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;12327:161:0;;;;;;;;;;:::i;9030:166::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9030:166:0;-1:-1:-1;;;;;9030:166:0;;:::i;19077:121::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19077:121:0;-1:-1:-1;;;;;19077:121:0;;:::i;19210:147::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19210:147:0;-1:-1:-1;;;;;19210:147:0;;:::i;21665:257::-;;;:::i;9847:39::-;;;;;;;;;;;;;;-1:-1:-1;;9847:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11818:219::-;11927:10;11895:12;11919:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11919:28:0;;;;;;;;;;;:37;;;11972:35;;;;;;;11895:12;;11919:28;;11927:10;;11972:35;;;;;;;;-1:-1:-1;12025:4:0;11818:219;;;;;:::o;11067:100::-;11147:12;;11067:100;:::o;14021:610::-;-1:-1:-1;;;;;14154:13:0;;14112:12;14154:13;;;:7;:13;;;;;;;;14168:10;14154:25;;;;;;;;14144:35;;;14136:44;;12:1:-1;9;2:12;14136:44:0;-1:-1:-1;;;;;14217:14:0;;;;;;:8;:14;;;;;;:24;-1:-1:-1;14217:24:0;14209:33;;12:1:-1;9;2:12;14209:33:0;-1:-1:-1;;;;;14270:14:0;;;;;;:8;:14;;;;;;:26;;14289:6;14270:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;14253:14:0;;;;;;:8;:14;;;;;;;;:43;;;;14335:7;:13;;;;;14349:10;14335:25;;;;;;:37;;14365:6;14335:37;:29;:37;:::i;:::-;-1:-1:-1;;;;;14307:13:0;;;;;;:7;:13;;;;;;;;14321:10;14307:25;;;;;;;:65;;;;14411:25;14429:6;14411:17;:25::i;:::-;14391:45;;14447:26;14463:9;14447:15;:26::i;:::-;14508:39;14525:21;:6;14536:9;14525:21;:10;:21;:::i;:::-;-1:-1:-1;;;;;14508:12:0;;;;;;:8;:12;;;;;;;:39;:16;:39;:::i;:::-;-1:-1:-1;;;;;14493:12:0;;;;;;;:8;:12;;;;;:54;;;;14563:38;;-1:-1:-1;;;;;;;;;;;14582:18:0;14593:6;;14582:18;:10;:18;:::i;:::-;14563:38;;;;;;;;;;;;;;;-1:-1:-1;14619:4:0;;14021:610;-1:-1:-1;;;;14021:610:0:o;9893:28::-;;;;:::o;17454:23::-;;;;;;:::o;20206:522::-;20290:10;20257:4;20281:20;;;:8;:20;;;;;:28;20273:41;;12:1:-1;9;2:12;20273:41:0;20335:13;20351:26;20366:10;20351:14;:26::i;:::-;20335:42;-1:-1:-1;20401:9:0;;20398:83;;20454:10;20445:20;;;;:8;:20;;;;;:28;;:36;;;20398:83;20516:11;;:23;;20532:6;20516:23;:15;:23;:::i;:::-;20502:11;:37;20560:36;20570:10;20582:6;20590:5;20560:9;:36::i;:::-;20552:45;;12:1:-1;9;2:12;20552:45:0;20657:10;20648:20;;;;:8;:20;;;;;:28;:40;;20681:6;20648:40;:32;:40;:::i;:::-;20626:10;20617:20;;;;:8;:20;;;;;:71;-1:-1:-1;20716:4:0;;20206:522;-1:-1:-1;;20206:522:0:o;17752:134::-;8996:5;;-1:-1:-1;;;;;8996:5:0;8982:10;:19;8974:28;;12:1:-1;9;2:12;8974:28:0;17813:11:::1;::::0;::::1;;17812:12;17804:45;;;::::0;;-1:-1:-1;;;17804:45:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;17804:45:0;;;;;;;;;;;;;::::1;;17860:11;:18:::0;;-1:-1:-1;;17860:18:0::1;17874:4;17860:18;::::0;;17752:134::o;11395:::-;-1:-1:-1;;;;;11501:20:0;11466:15;11501:20;;;:8;:20;;;;;;;11395:134::o;20078:116::-;-1:-1:-1;;;;;20163:15:0;20137:7;20163:15;;;:8;:15;;;;;:23;;20078:116::o;8762:28::-;;;-1:-1:-1;;;;;8762:28:0;;:::o;9811:29::-;;;;;;;;;;;;;;;-1:-1:-1;;9811:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17407:34;;;;:::o;12837:639::-;12908:12;-1:-1:-1;;;;;12995:25:0;;12987:34;;12:1:-1;9;2:12;12987:34:0;13049:10;13040:20;;;;:8;:20;;;;;;:30;-1:-1:-1;13040:30:0;13032:40;;12:1:-1;9;2:12;13032:40:0;-1:-1:-1;;;;;13116:12:0;;;;;;:8;:12;;;;;;13091:21;;;:37;;13083:46;;12:1:-1;9;2:12;13083:46:0;13182:10;13173:20;;;;:8;:20;;;;;;:32;;13198:6;13173:32;:24;:32;:::i;:::-;13159:10;13150:20;;;;:8;:20;;;;;:55;;;;13246:25;13264:6;13246:17;:25::i;:::-;13226:45;;13282:26;13298:9;13282:15;:26::i;:::-;13344:39;13361:21;:6;13372:9;13361:21;:10;:21;:::i;13344:39::-;-1:-1:-1;;;;;13329:12:0;;;;;;:8;:12;;;;;:54;;;;13408:10;-1:-1:-1;;;;;;;;;;;13424:21:0;:6;13435:9;13424:21;:10;:21;:::i;:::-;13399:47;;;;;;;;;;;;;;;-1:-1:-1;13464:4:0;;12837:639;-1:-1:-1;;;12837:639:0:o;21102:400::-;21142:4;21158:13;21174:26;21189:10;21174:14;:26::i;:::-;21158:42;;21237:1;21229:5;:9;21221:18;;12:1:-1;9;2:12;21221:18:0;21260:34;21270:10;21282:5;21289:4;21260:9;:34::i;:::-;21252:43;;12:1:-1;9;2:12;21252:43:0;21363:10;21354:20;;;;:8;:20;;;;;:35;;;:46;;21394:5;21354:46;:39;:46;:::i;:::-;21325:10;21316:20;;;;:8;:20;;;;;:35;;:84;21442:19;;:30;;21466:5;21442:30;:23;:30;:::i;:::-;21420:19;:52;-1:-1:-1;21490:4:0;;-1:-1:-1;21102:400:0;:::o;17898:597::-;17971:11;;17947:4;;17971:11;;17963:40;;;;;-1:-1:-1;;;17963:40:0;;;;;;;;;;;;-1:-1:-1;;;17963:40:0;;;;;;;;;;;;;;;18084:32;18101:4;18108:7;18084:8;:32::i;:::-;18076:80;;;;-1:-1:-1;;;18076:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18273:13;18289:26;18304:10;18289:14;:26::i;:::-;18273:42;-1:-1:-1;18339:9:0;;18336:79;;18388:10;18379:20;;;;:8;:20;;;;;:28;;:36;;;18336:79;18436:19;18447:7;18436:10;:19::i;:::-;-1:-1:-1;18483:4:0;;17898:597;-1:-1:-1;;17898:597:0:o;17368:26::-;;;;:::o;21514:139::-;-1:-1:-1;;;;;21615:15:0;21575:21;21615:15;;;:8;:15;;;;;:30;;;;21514:139::o;12327:161::-;-1:-1:-1;;;;;12452:19:0;;;12415:17;12452:19;;;:7;:19;;;;;;;;:28;;;;;;;;;;;;;12327:161::o;9030:166::-;8996:5;;-1:-1:-1;;;;;8996:5:0;8982:10;:19;8974:28;;12:1:-1;9;2:12;8974:28:0;9112:5:::1;:17:::0;;-1:-1:-1;;;;;;9112:17:0::1;-1:-1:-1::0;;;;;9112:17:0;::::1;::::0;;::::1;::::0;;9145:43:::1;::::0;9112:17;;9166:10:::1;::::0;9145:43:::1;::::0;9112:5;9145:43:::1;9030:166:::0;:::o;19077:121::-;-1:-1:-1;;;;;19165:14:0;19139:7;19165:14;;;:8;:14;;;;;:25;;;;19077:121::o;19210:147::-;19270:7;19289:13;19305:21;19320:5;19305:14;:21::i;:::-;19289:37;19210:147;-1:-1:-1;;;19210:147:0:o;21665:257::-;21705:13;21721:26;21736:10;21721:14;:26::i;:::-;21705:42;;21784:1;21776:5;:9;21768:18;;12:1:-1;9;2:12;21768:18:0;21897:17;21908:5;21897:10;:17::i;:::-;21665:257;:::o;1371:136::-;1429:7;1456:43;1460:1;1463;1456:43;;;;;;;;;;;;;;;;;:3;:43::i;15398:502::-;15576:12;;15462:7;;;;15533:19;;15576:24;-1:-1:-1;15576:57:0;;;;-1:-1:-1;15618:15:0;;-1:-1:-1;;;;;15618:15:0;15604:10;:29;;15576:57;15573:283;;;15671:25;15694:1;15671:18;15682:6;15671:10;:18::i;:::-;:22;:25;:22;:25;:::i;:::-;15659:37;;15777:9;15747:27;15764:9;15747:12;;:16;;:27;;;;:::i;:::-;:39;15744:100;;;15817:12;;:27;;15834:9;15817:27;:16;:27;:::i;:::-;15805:39;;15744:100;-1:-1:-1;15883:9:0;15398:502;-1:-1:-1;;15398:502:0:o;15912:247::-;15977:11;;15974:178;;16009:21;16020:9;16009:10;:21::i;:::-;15974:178;;;16071:28;16082:16;:9;16096:1;16082:16;:13;:16;:::i;:::-;16071:10;:28::i;:::-;16114:26;16123:16;:9;16137:1;16123:16;:13;:16;:::i;:::-;16114:8;:26::i;907:181::-;965:7;997:5;;;1021:6;;;;1013:46;;;;;-1:-1:-1;;;1013:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;19688:379;19747:7;19766:13;19782:24;19797:8;19782:14;:24::i;:::-;19766:40;-1:-1:-1;19821:9:0;;19817:220;;19872:23;;:34;;19900:5;19872:34;:27;:34;:::i;:::-;19846:23;:60;19961:19;;-1:-1:-1;;;;;19921:18:0;;;;;;:8;:18;;;;;:37;;;:59;;;;19995:26;;;;:30;20054:5;19688:379;-1:-1:-1;;19688:379:0:o;14643:747::-;14721:4;-1:-1:-1;;;;;14799:25:0;;14791:34;;12:1:-1;9;2:12;14791:34:0;14861:4;14844:23;;;;:8;:23;;;;;;:33;-1:-1:-1;14844:33:0;14836:43;;12:1:-1;9;2:12;14836:43:0;-1:-1:-1;;;;;14923:12:0;;;;;;:8;:12;;;;;;14898:21;;;:37;;14890:46;;12:1:-1;9;2:12;14890:46:0;15000:4;14983:23;;;;:8;:23;;;;;;:35;;15011:6;14983:35;:27;:35;:::i;:::-;14974:4;14957:23;;;;:8;:23;;;;;:61;;;;15085:7;15081:117;;15120:25;15138:6;15120:17;:25::i;:::-;15108:37;;15160:26;15176:9;15160:15;:26::i;:::-;15233:39;15250:21;:6;15261:9;15250:21;:10;:21;:::i;:::-;-1:-1:-1;;;;;15233:12:0;;;;;;:8;:12;;;;;;;:39;:16;:39;:::i;:::-;-1:-1:-1;;;;;15218:12:0;;;;;;:8;:12;;;;;:54;;;;15319:4;-1:-1:-1;;;;;;;;;;;15328:21:0;:6;15339:9;15328:21;:10;:21;:::i;19369:308::-;-1:-1:-1;;;;;19505:18:0;;19434:7;19505:18;;;:8;:18;;;;;:37;;;19481:19;;19434:7;;19481:62;;:19;:62;:23;:62;:::i;:::-;-1:-1:-1;;;;;19642:18:0;;;;;;:8;:18;;;;;:26;;;;19620:15;;19564:26;;19453:90;;-1:-1:-1;19561:108:0;;19642:26;;19562:74;;19563:51;;19453:90;19563:51;:32;:51;:::i;:::-;19562:57;:74;:57;:74;:::i;:::-;19561:80;:108;:80;:108;:::i;18507:558::-;18562:17;18582:26;18600:7;18582:17;:26::i;:::-;18641:10;18632:20;;;;:8;:20;;;;;:28;18562:46;;-1:-1:-1;18629:111:0;;18712:10;18703:20;;;;:8;:20;;;;;18737:3;18703:31;;;;:37;18629:111;18779:39;18795:22;:7;18807:9;18795:22;:11;:22;:::i;:::-;18779:11;;;:39;:15;:39;:::i;:::-;18765:11;:53;18860:56;18893:22;:7;18905:9;18893:22;:11;:22;:::i;:::-;18869:10;18860:20;;;;:8;:20;;;;;:28;;:56;:32;:56;:::i;:::-;18838:10;18829:20;;;;:8;:20;;;;;:87;;;18969:19;;18927:39;;;:61;19044:3;19009:32;;;;:38;-1:-1:-1;;18507:558:0:o;1810:192::-;1896:7;1932:12;1924:6;;;;1916:29;;;;-1:-1:-1;;;1916: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;1916:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1968:5:0;;;1810:192::o;16849:240::-;16909:7;;16949:17;:7;16962:3;16949:17;:12;:17;:::i;:::-;16928:38;-1:-1:-1;16977:23:0;17003:42;17027:17;17003:19;16928:38;17033:11;17003:19;:14;:19;:::i;:42::-;16977:68;16849:240;-1:-1:-1;;;;16849:240:0:o;2261:471::-;2319:7;2564:6;2560:47;;-1:-1:-1;2594:1:0;2587:8;;2560:47;2631:5;;;2635:1;2631;:5;:1;2655:5;;;;;:10;2647:56;;;;-1:-1:-1;;;2647:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16395:223;16473:5;16457:12;;:21;;16449:30;;12:1:-1;9;2:12;16449:30:0;16532:12;;:23;;16549:5;16532:23;:16;:23;:::i;:::-;16517:12;:38;16571:39;;;;;;;;16600:1;;16580:10;;-1:-1:-1;;;;;;;;;;;16571:39:0;;;;;;;;16395:223;:::o;3208:132::-;3266:7;3293:39;3297:1;3300;3293:39;;;;;;;;;;;;;;;;;:3;:39::i;20739:352::-;20835:4;20818:23;;;;:8;:23;;;;;;:35;;20846:6;20818:35;:27;:35;:::i;:::-;20809:4;20792:23;;;;:8;:23;;;;;:61;;;;20908:15;;20897:27;;:6;;:27;:10;:27;:::i;:::-;20874:50;;20957:54;20981:29;20998:11;;20981:12;:16;;:29;;;;:::i;:::-;20957:19;;;:54;:23;:54;:::i;:::-;20935:19;:76;21048:23;;:35;;21076:6;21048:35;:27;:35;:::i;:::-;21022:23;:61;-1:-1:-1;;20739:352:0:o;5372:187::-;5431:9;5461:6;5453:61;;;;-1:-1:-1;;;5453:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:1;5546;5541;5537;5533;:5;:9;5532:15;;;;;;:19;;5372:187;-1:-1:-1;;;5372:187:0:o;3836:278::-;3922:7;3957:12;3950:5;3942:28;;;;-1:-1:-1;;;3942:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3942:28:0;;3981:9;3997:1;3993;:5;;;;;;;3836:278;-1:-1:-1;;;;;3836:278:0:o
Swarm Source
ipfs://98bec3d04951cf63d65230bd5ec7ecbfe3195b752156948e917bcc108ffa39f0
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.