ERC-20
Overview
Max Total Supply
1,000,200 GGC
Holders
20
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GGCToken
Compiler Version
v0.5.8+commit.23d335f2
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-06-12 */ pragma solidity 0.5.8; /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error. */ library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on underflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } } /** * @title ERC20 interface * @dev see https://eips.ethereum.org/EIPS/eip-20 */ interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender account. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } /** * @return the address of the owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "The caller must be owner"); _; } /** * @return true if `msg.sender` is the owner of the contract. */ function isOwner() public view returns (bool) { return msg.sender == _owner; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Cannot transfer control of the contract to the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @title Standard ERC20 token * @dev Implementation of the basic standard token. */ contract StandardToken is IERC20 { using SafeMath for uint256; mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowed; uint256 internal _totalSupply; /** * @dev Total number of tokens in existence. */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @dev Gets the balance of the specified address. * @param owner The address to query the balance of. * @return A uint256 representing the amount owned by the passed address. */ function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param owner address The address which owns the funds. * @param spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address owner, address spender) public view returns (uint256) { return _allowed[owner][spender]; } /** * @dev Transfer token to a specified address. * @param to The address to transfer to. * @param value The amount to be transferred. */ function transfer(address to, uint256 value) public returns (bool) { _transfer(msg.sender, to, value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * 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 * @param spender The address which will spend the funds. * @param value The amount of tokens to be spent. */ function approve(address spender, uint256 value) public returns (bool) { _approve(msg.sender, spender, value); return true; } /** * @dev Transfer tokens from one address to another. * Note that while this function emits an Approval event, this is not required as per the specification, * and other compliant implementations may not emit the event. * @param from address The address which you want to send tokens from * @param to address The address which you want to transfer to * @param value uint256 the amount of tokens to be transferred */ function transferFrom(address from, address to, uint256 value) public returns (bool) { _transfer(from, to, value); _approve(from, msg.sender, _allowed[from][msg.sender].sub(value)); return true; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when _allowed[msg.sender][spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue)); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when _allowed[msg.sender][spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue)); return true; } /** * @dev Transfer token for a specified address. * @param from The address to transfer from. * @param to The address to transfer to. * @param value The amount to be transferred. */ function _transfer(address from, address to, uint256 value) internal { require(to != address(0), "Cannot transfer to the zero address"); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); } /** * @dev Approve an address to spend another addresses' tokens. * @param owner The address that owns the tokens. * @param spender The address that will spend the tokens. * @param value The number of tokens that can be spent. */ function _approve(address owner, address spender, uint256 value) internal { require(spender != address(0), "Cannot approve to the zero address"); require(owner != address(0), "Setter cannot be the zero address"); _allowed[owner][spender] = value; emit Approval(owner, spender, value); } } /** * @title FreezableToken */ contract FreezableToken is StandardToken, Ownable { mapping(address=>bool) internal _frozenAccount; event FrozenAccount(address indexed target, bool frozen); /** * @dev Returns whether the specified address is frozen. * @param account A specified address. */ function frozenAccount(address account) public view returns(bool){ return _frozenAccount[account]; } /** * @dev Check if the specified address is frozen. Requires the specified address not to be frozen. * @param account A specified address. */ function frozenCheck(address account) internal view { require(!frozenAccount(account), "Address has been frozen"); } /** * @dev Modify the frozen status of the specified address. * @param account A specified address. * @param frozen Frozen status, true: freeze, false: unfreeze. */ function freeze(address account, bool frozen) public onlyOwner { _frozenAccount[account] = frozen; emit FrozenAccount(account, frozen); } /** * @dev Rewrite the transfer function to check if the address participating is frozen. */ function transfer(address _to, uint256 _value) public returns (bool) { frozenCheck(msg.sender); frozenCheck(_to); return super.transfer(_to, _value); } /** * @dev Rewrite the transferFrom function to check if the address participating is frozen. */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { frozenCheck(msg.sender); frozenCheck(_from); frozenCheck(_to); return super.transferFrom(_from, _to, _value); } /** * @dev Rewrite the _approve function to check if the address participating is frozen. */ function _approve(address owner, address spender, uint256 value) internal { frozenCheck(owner); frozenCheck(spender); super._approve(owner, spender, value); } } /** * @title MintableToken * @dev Implement the function of ERC20 token minting. */ contract MintableToken is FreezableToken { /** * @dev Internal function that mints an amount of the token and assigns it to * an account. This encapsulates the modification of balances such that the * proper events are emitted. * @param account The account that will receive the created tokens. * @param value The amount that will be created. */ function _mint(address account, uint256 value) internal { require(account != address(0), "Cannot mint to the zero address"); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } /** * @dev Function to mint tokens * @param to The address that will receive the minted tokens. * @param value The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address to, uint256 value) public onlyOwner returns (bool) { frozenCheck(to); _mint(to, value); return true; } } /** * @title BurnableToken * @dev Implement the function of ERC20 token burning. */ contract BurnableToken is FreezableToken { /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public onlyOwner { _burn(msg.sender, _value); } /** * @dev Burns a specific amount of tokens from the target address and decrements allowance * @param _from address The address which you want to send tokens from * @param _value uint256 The amount of token to be burned */ function burnFrom(address _from, uint256 _value) public onlyOwner { require(_value <= _allowed[_from][msg.sender], "Not enough allowance"); _allowed[_from][msg.sender] = _allowed[_from][msg.sender].sub(_value); _burn(_from, _value); } function _burn(address _who, uint256 _value) internal { require(_value <= _balances[_who], "Not enough token balance"); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure _balances[_who] = _balances[_who].sub(_value); _totalSupply = _totalSupply.sub(_value); emit Transfer(_who, address(0), _value); } } contract GGCToken is MintableToken, BurnableToken { string public constant name = "Global Gold Coins"; // name of Token string public constant symbol = "GGC"; // symbol of Token uint8 public constant decimals = 18; /** * @dev Transfer tokens to multiple addresses. */ function airdrop(address[] memory addressList, uint256[] memory amountList) public onlyOwner returns (bool) { uint256 length = addressList.length; require(addressList.length == amountList.length, "Inconsistent array length"); require(length > 0 && length <= 150, "Invalid number of transfer objects"); uint256 amount; for (uint256 i = 0; i < length; i++) { frozenCheck(addressList[i]); require(amountList[i] > 0, "The transfer amount cannot be 0"); require(addressList[i] != address(0), "Cannot transfer to the zero address"); amount = amount.add(amountList[i]); _balances[addressList[i]] = _balances[addressList[i]].add(amountList[i]); emit Transfer(msg.sender, addressList[i], amountList[i]); } require(_balances[msg.sender] >= amount, "Not enough tokens to transfer"); _balances[msg.sender] = _balances[msg.sender].sub(amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","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":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addressList","type":"address[]"},{"name":"amountList","type":"uint256[]"}],"name":"airdrop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"frozen","type":"bool"}],"name":"freeze","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenAccount","type":"event"},{"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"}]
Contract Creation Code
60806040819052600380546001600160a01b0319163317908190556001600160a01b0316906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a361147f8061005b6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806379cc6790116100ad578063a9059cbb11610071578063a9059cbb146104ac578063b414d4b6146104d8578063bf120ae5146104fe578063dd62ed3e1461052c578063f2fde38b1461055a5761012c565b806379cc6790146104205780638da5cb5b1461044c5780638f32d59b1461047057806395d89b4114610478578063a457c2d7146104805761012c565b806339509351116100f4578063395093511461025c57806340c10f191461028857806342966c68146102b457806367243482146102d357806370a08231146103fa5761012c565b806306fdde0314610131578063095ea7b3146101ae57806318160ddd146101ee57806323b872dd14610208578063313ce5671461023e575b600080fd5b610139610580565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b0381351690602001356105b9565b604080519115158252519081900360200190f35b6101f66105cf565b60408051918252519081900360200190f35b6101da6004803603606081101561021e57600080fd5b506001600160a01b038135811691602081013590911690604001356105d5565b610246610605565b6040805160ff9092168252519081900360200190f35b6101da6004803603604081101561027257600080fd5b506001600160a01b03813516906020013561060a565b6101da6004803603604081101561029e57600080fd5b506001600160a01b03813516906020013561064b565b6102d1600480360360208110156102ca57600080fd5b50356106aa565b005b6101da600480360360408110156102e957600080fd5b81019060208101813564010000000081111561030457600080fd5b82018360208201111561031657600080fd5b8035906020019184602083028401116401000000008311171561033857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561038857600080fd5b82018360208201111561039a57600080fd5b803590602001918460208302840111640100000000831117156103bc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610701945050505050565b6101f66004803603602081101561041057600080fd5b50356001600160a01b0316610abb565b6102d16004803603604081101561043657600080fd5b506001600160a01b038135169060200135610ad6565b610454610c01565b604080516001600160a01b039092168252519081900360200190f35b6101da610c10565b610139610c21565b6101da6004803603604081101561049657600080fd5b506001600160a01b038135169060200135610c43565b6101da600480360360408110156104c257600080fd5b506001600160a01b038135169060200135610c7f565b6101da600480360360208110156104ee57600080fd5b50356001600160a01b0316610ca4565b6102d16004803603604081101561051457600080fd5b506001600160a01b0381351690602001351515610cc2565b6101f66004803603604081101561054257600080fd5b506001600160a01b0381358116916020013516610d6c565b6102d16004803603602081101561057057600080fd5b50356001600160a01b0316610d97565b6040518060400160405280601181526020017f476c6f62616c20476f6c6420436f696e7300000000000000000000000000000081525081565b60006105c6338484610dea565b50600192915050565b60025490565b60006105e033610e0c565b6105e984610e0c565b6105f283610e0c565b6105fd848484610e6a565b949350505050565b601281565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916105c6918590610646908663ffffffff610ebc16565b610dea565b6000610655610c10565b6106975760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6106a083610e0c565b6105c68383610ece565b6106b2610c10565b6106f45760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6106fe3382610faf565b50565b600061070b610c10565b61074d5760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b8251825181146107a75760408051600160e51b62461bcd02815260206004820152601960248201527f496e636f6e73697374656e74206172726179206c656e67746800000000000000604482015290519081900360640190fd5b6000811180156107b8575060968111155b6107f657604051600160e51b62461bcd0281526004018080602001828103825260228152602001806113cf6022913960400191505060405180910390fd5b6000805b82811015610a185761081e86828151811061081157fe5b6020026020010151610e0c565b600085828151811061082c57fe5b6020026020010151116108895760408051600160e51b62461bcd02815260206004820152601f60248201527f546865207472616e7366657220616d6f756e742063616e6e6f74206265203000604482015290519081900360640190fd5b60006001600160a01b03168682815181106108a057fe5b60200260200101516001600160a01b031614156108f157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806114116023913960400191505060405180910390fd5b61091785828151811061090057fe5b602002602001015183610ebc90919063ffffffff16565b915061097685828151811061092857fe5b602002602001015160008089858151811061093f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054610ebc90919063ffffffff16565b60008088848151811061098557fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106109bd57fe5b60200260200101516001600160a01b0316336001600160a01b03166000805160206113f18339815191528784815181106109f357fe5b60200260200101516040518082815260200191505060405180910390a36001016107fa565b5033600090815260208190526040902054811115610a805760408051600160e51b62461bcd02815260206004820152601d60248201527f4e6f7420656e6f75676820746f6b656e7320746f207472616e73666572000000604482015290519081900360640190fd5b33600090815260208190526040902054610aa0908263ffffffff6110aa16565b33600090815260208190526040902055506001949350505050565b6001600160a01b031660009081526020819052604090205490565b610ade610c10565b610b205760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152600160209081526040808320338452909152902054811115610b9b5760408051600160e51b62461bcd02815260206004820152601460248201527f4e6f7420656e6f75676820616c6c6f77616e6365000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600160209081526040808320338452909152902054610bcf908263ffffffff6110aa16565b6001600160a01b0383166000908152600160209081526040808320338452909152902055610bfd8282610faf565b5050565b6003546001600160a01b031690565b6003546001600160a01b0316331490565b604051806040016040528060038152602001600160e81b624747430281525081565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916105c6918590610646908663ffffffff6110aa16565b6000610c8a33610e0c565b610c9383610e0c565b610c9d83836110bf565b9392505050565b6001600160a01b031660009081526004602052604090205460ff1690565b610cca610c10565b610d0c5760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6001600160a01b038216600081815260046020908152604091829020805460ff1916851515908117909155825190815291517f67a17b8db8ff8fa7cff69c2328bf8a35f9be2c88abeea30be900fc28eece28ed9281900390910190a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610d9f610c10565b610de15760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6106fe816110cc565b610df383610e0c565b610dfc82610e0c565b610e07838383611170565b505050565b610e1581610ca4565b156106fe5760408051600160e51b62461bcd02815260206004820152601760248201527f4164647265737320686173206265656e2066726f7a656e000000000000000000604482015290519081900360640190fd5b6000610e77848484611262565b6001600160a01b038416600090815260016020908152604080832033808552925290912054610eb2918691610646908663ffffffff6110aa16565b5060019392505050565b600082820183811015610c9d57600080fd5b6001600160a01b038216610f2c5760408051600160e51b62461bcd02815260206004820152601f60248201527f43616e6e6f74206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610f3f908263ffffffff610ebc16565b6002556001600160a01b038216600090815260208190526040902054610f6b908263ffffffff610ebc16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391926000805160206113f18339815191529281900390910190a35050565b6001600160a01b03821660009081526020819052604090205481111561101f5760408051600160e51b62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820746f6b656e2062616c616e63650000000000000000604482015290519081900360640190fd5b6001600160a01b038216600090815260208190526040902054611048908263ffffffff6110aa16565b6001600160a01b038316600090815260208190526040902055600254611074908263ffffffff6110aa16565b6002556040805182815290516000916001600160a01b038516916000805160206113f18339815191529181900360200190a35050565b6000828211156110b957600080fd5b50900390565b60006105c6338484611262565b6001600160a01b03811661111457604051600160e51b62461bcd02815260040180806020018281038252603b815260200180611373603b913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166111b857604051600160e51b62461bcd0281526004018080602001828103825260228152602001806113516022913960400191505060405180910390fd5b6001600160a01b03831661120057604051600160e51b62461bcd0281526004018080602001828103825260218152602001806113ae6021913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0382166112aa57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806114116023913960400191505060405180910390fd5b6001600160a01b0383166000908152602081905260409020546112d3908263ffffffff6110aa16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611308908263ffffffff610ebc16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716926000805160206113f183398151915292918290030190a350505056fe43616e6e6f7420617070726f766520746f20746865207a65726f206164647265737343616e6e6f74207472616e7366657220636f6e74726f6c206f662074686520636f6e747261637420746f20746865207a65726f20616464726573735365747465722063616e6e6f7420626520746865207a65726f2061646472657373496e76616c6964206e756d626572206f66207472616e73666572206f626a65637473ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef43616e6e6f74207472616e7366657220746f20746865207a65726f20616464726573735468652063616c6c6572206d757374206265206f776e65720000000000000000a165627a7a72305820f41014b8b912a31a4c14ec0e4444565a7c973b215a8944550505198304c389500029
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806379cc6790116100ad578063a9059cbb11610071578063a9059cbb146104ac578063b414d4b6146104d8578063bf120ae5146104fe578063dd62ed3e1461052c578063f2fde38b1461055a5761012c565b806379cc6790146104205780638da5cb5b1461044c5780638f32d59b1461047057806395d89b4114610478578063a457c2d7146104805761012c565b806339509351116100f4578063395093511461025c57806340c10f191461028857806342966c68146102b457806367243482146102d357806370a08231146103fa5761012c565b806306fdde0314610131578063095ea7b3146101ae57806318160ddd146101ee57806323b872dd14610208578063313ce5671461023e575b600080fd5b610139610580565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b0381351690602001356105b9565b604080519115158252519081900360200190f35b6101f66105cf565b60408051918252519081900360200190f35b6101da6004803603606081101561021e57600080fd5b506001600160a01b038135811691602081013590911690604001356105d5565b610246610605565b6040805160ff9092168252519081900360200190f35b6101da6004803603604081101561027257600080fd5b506001600160a01b03813516906020013561060a565b6101da6004803603604081101561029e57600080fd5b506001600160a01b03813516906020013561064b565b6102d1600480360360208110156102ca57600080fd5b50356106aa565b005b6101da600480360360408110156102e957600080fd5b81019060208101813564010000000081111561030457600080fd5b82018360208201111561031657600080fd5b8035906020019184602083028401116401000000008311171561033857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561038857600080fd5b82018360208201111561039a57600080fd5b803590602001918460208302840111640100000000831117156103bc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610701945050505050565b6101f66004803603602081101561041057600080fd5b50356001600160a01b0316610abb565b6102d16004803603604081101561043657600080fd5b506001600160a01b038135169060200135610ad6565b610454610c01565b604080516001600160a01b039092168252519081900360200190f35b6101da610c10565b610139610c21565b6101da6004803603604081101561049657600080fd5b506001600160a01b038135169060200135610c43565b6101da600480360360408110156104c257600080fd5b506001600160a01b038135169060200135610c7f565b6101da600480360360208110156104ee57600080fd5b50356001600160a01b0316610ca4565b6102d16004803603604081101561051457600080fd5b506001600160a01b0381351690602001351515610cc2565b6101f66004803603604081101561054257600080fd5b506001600160a01b0381358116916020013516610d6c565b6102d16004803603602081101561057057600080fd5b50356001600160a01b0316610d97565b6040518060400160405280601181526020017f476c6f62616c20476f6c6420436f696e7300000000000000000000000000000081525081565b60006105c6338484610dea565b50600192915050565b60025490565b60006105e033610e0c565b6105e984610e0c565b6105f283610e0c565b6105fd848484610e6a565b949350505050565b601281565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916105c6918590610646908663ffffffff610ebc16565b610dea565b6000610655610c10565b6106975760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6106a083610e0c565b6105c68383610ece565b6106b2610c10565b6106f45760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6106fe3382610faf565b50565b600061070b610c10565b61074d5760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b8251825181146107a75760408051600160e51b62461bcd02815260206004820152601960248201527f496e636f6e73697374656e74206172726179206c656e67746800000000000000604482015290519081900360640190fd5b6000811180156107b8575060968111155b6107f657604051600160e51b62461bcd0281526004018080602001828103825260228152602001806113cf6022913960400191505060405180910390fd5b6000805b82811015610a185761081e86828151811061081157fe5b6020026020010151610e0c565b600085828151811061082c57fe5b6020026020010151116108895760408051600160e51b62461bcd02815260206004820152601f60248201527f546865207472616e7366657220616d6f756e742063616e6e6f74206265203000604482015290519081900360640190fd5b60006001600160a01b03168682815181106108a057fe5b60200260200101516001600160a01b031614156108f157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806114116023913960400191505060405180910390fd5b61091785828151811061090057fe5b602002602001015183610ebc90919063ffffffff16565b915061097685828151811061092857fe5b602002602001015160008089858151811061093f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054610ebc90919063ffffffff16565b60008088848151811061098557fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106109bd57fe5b60200260200101516001600160a01b0316336001600160a01b03166000805160206113f18339815191528784815181106109f357fe5b60200260200101516040518082815260200191505060405180910390a36001016107fa565b5033600090815260208190526040902054811115610a805760408051600160e51b62461bcd02815260206004820152601d60248201527f4e6f7420656e6f75676820746f6b656e7320746f207472616e73666572000000604482015290519081900360640190fd5b33600090815260208190526040902054610aa0908263ffffffff6110aa16565b33600090815260208190526040902055506001949350505050565b6001600160a01b031660009081526020819052604090205490565b610ade610c10565b610b205760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152600160209081526040808320338452909152902054811115610b9b5760408051600160e51b62461bcd02815260206004820152601460248201527f4e6f7420656e6f75676820616c6c6f77616e6365000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600160209081526040808320338452909152902054610bcf908263ffffffff6110aa16565b6001600160a01b0383166000908152600160209081526040808320338452909152902055610bfd8282610faf565b5050565b6003546001600160a01b031690565b6003546001600160a01b0316331490565b604051806040016040528060038152602001600160e81b624747430281525081565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916105c6918590610646908663ffffffff6110aa16565b6000610c8a33610e0c565b610c9383610e0c565b610c9d83836110bf565b9392505050565b6001600160a01b031660009081526004602052604090205460ff1690565b610cca610c10565b610d0c5760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6001600160a01b038216600081815260046020908152604091829020805460ff1916851515908117909155825190815291517f67a17b8db8ff8fa7cff69c2328bf8a35f9be2c88abeea30be900fc28eece28ed9281900390910190a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610d9f610c10565b610de15760408051600160e51b62461bcd0281526020600482015260186024820152600080516020611434833981519152604482015290519081900360640190fd5b6106fe816110cc565b610df383610e0c565b610dfc82610e0c565b610e07838383611170565b505050565b610e1581610ca4565b156106fe5760408051600160e51b62461bcd02815260206004820152601760248201527f4164647265737320686173206265656e2066726f7a656e000000000000000000604482015290519081900360640190fd5b6000610e77848484611262565b6001600160a01b038416600090815260016020908152604080832033808552925290912054610eb2918691610646908663ffffffff6110aa16565b5060019392505050565b600082820183811015610c9d57600080fd5b6001600160a01b038216610f2c5760408051600160e51b62461bcd02815260206004820152601f60248201527f43616e6e6f74206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610f3f908263ffffffff610ebc16565b6002556001600160a01b038216600090815260208190526040902054610f6b908263ffffffff610ebc16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391926000805160206113f18339815191529281900390910190a35050565b6001600160a01b03821660009081526020819052604090205481111561101f5760408051600160e51b62461bcd02815260206004820152601860248201527f4e6f7420656e6f75676820746f6b656e2062616c616e63650000000000000000604482015290519081900360640190fd5b6001600160a01b038216600090815260208190526040902054611048908263ffffffff6110aa16565b6001600160a01b038316600090815260208190526040902055600254611074908263ffffffff6110aa16565b6002556040805182815290516000916001600160a01b038516916000805160206113f18339815191529181900360200190a35050565b6000828211156110b957600080fd5b50900390565b60006105c6338484611262565b6001600160a01b03811661111457604051600160e51b62461bcd02815260040180806020018281038252603b815260200180611373603b913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166111b857604051600160e51b62461bcd0281526004018080602001828103825260228152602001806113516022913960400191505060405180910390fd5b6001600160a01b03831661120057604051600160e51b62461bcd0281526004018080602001828103825260218152602001806113ae6021913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0382166112aa57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806114116023913960400191505060405180910390fd5b6001600160a01b0383166000908152602081905260409020546112d3908263ffffffff6110aa16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611308908263ffffffff610ebc16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716926000805160206113f183398151915292918290030190a350505056fe43616e6e6f7420617070726f766520746f20746865207a65726f206164647265737343616e6e6f74207472616e7366657220636f6e74726f6c206f662074686520636f6e747261637420746f20746865207a65726f20616464726573735365747465722063616e6e6f7420626520746865207a65726f2061646472657373496e76616c6964206e756d626572206f66207472616e73666572206f626a65637473ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef43616e6e6f74207472616e7366657220746f20746865207a65726f20616464726573735468652063616c6c6572206d757374206265206f776e65720000000000000000a165627a7a72305820f41014b8b912a31a4c14ec0e4444565a7c973b215a8944550505198304c389500029
Deployed Bytecode Sourcemap
14587:1329:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14587:1329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14644:49;;;:::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;14644:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6459:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6459:148:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4611:91;;;:::i;:::-;;;;;;;;;;;;;;;;11458:242;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11458:242:0;;;;;;;;;;;;;;;;;:::i;14782:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7834:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7834:203:0;;;;;;;;:::i;13063:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13063:156:0;;;;;;;;:::i;13486:91::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13486:91:0;;:::i;:::-;;14896:1009;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14896:1009:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;14896:1009:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14896:1009:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14896:1009:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;14896:1009:0;;;;;;;;-1:-1:-1;14896:1009:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;14896:1009:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14896:1009:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14896:1009:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;14896:1009:0;;-1:-1:-1;14896:1009:0;;-1:-1:-1;;;;;14896:1009:0:i;4921:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4921:106:0;-1:-1:-1;;;;;4921:106:0;;:::i;13834:266::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13834:266:0;;;;;;;;:::i;3051:79::-;;;:::i;:::-;;;;-1:-1:-1;;;;;3051:79:0;;;;;;;;;;;;;;3414:92;;;:::i;14718:37::-;;;:::i;8568:213::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8568:213:0;;;;;;;;:::i;11153:183::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11153:183:0;;;;;;;;:::i;10257:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10257:114:0;-1:-1:-1;;;;;10257:114:0;;:::i;10877:158::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10877:158:0;;;;;;;;;;:::i;5366:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5366:131:0;;;;;;;;;;:::i;3683:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3683:109:0;-1:-1:-1;;;;;3683:109:0;;:::i;14644:49::-;;;;;;;;;;;;;;;;;;;:::o;6459:148::-;6524:4;6541:36;6550:10;6562:7;6571:5;6541:8;:36::i;:::-;-1:-1:-1;6595:4:0;6459:148;;;;:::o;4611:91::-;4682:12;;4611:91;:::o;11458:242::-;11540:4;11557:23;11569:10;11557:11;:23::i;:::-;11591:18;11603:5;11591:11;:18::i;:::-;11620:16;11632:3;11620:11;:16::i;:::-;11654:38;11673:5;11680:3;11685:6;11654:18;:38::i;:::-;11647:45;11458:242;-1:-1:-1;;;;11458:242:0:o;14782:35::-;14815:2;14782:35;:::o;7834:203::-;7940:10;7914:4;7961:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;7961:29:0;;;;;;;;;;7914:4;;7931:76;;7952:7;;7961:45;;7995:10;7961:45;:33;:45;:::i;:::-;7931:8;:76::i;13063:156::-;13130:4;3263:9;:7;:9::i;:::-;3255:46;;;;;-1:-1:-1;;;;;3255:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3255:46:0;;;;;;;;;;;;;;;13147:15;13159:2;13147:11;:15::i;:::-;13173:16;13179:2;13183:5;13173;:16::i;13486:91::-;3263:9;:7;:9::i;:::-;3255:46;;;;;-1:-1:-1;;;;;3255:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3255:46:0;;;;;;;;;;;;;;;13544:25;13550:10;13562:6;13544:5;:25::i;:::-;13486:91;:::o;14896:1009::-;14998:4;3263:9;:7;:9::i;:::-;3255:46;;;;;-1:-1:-1;;;;;3255:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3255:46:0;;;;;;;;;;;;;;;15032:18;;15091:17;;15069:39;;15061:77;;;;;-1:-1:-1;;;;;15061:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15166:1;15157:6;:10;:27;;;;;15181:3;15171:6;:13;;15157:27;15149:74;;;;-1:-1:-1;;;;;15149:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15234:14;;15259:465;15283:6;15279:1;:10;15259:465;;;15311:27;15323:11;15335:1;15323:14;;;;;;;;;;;;;;15311:11;:27::i;:::-;15377:1;15361:10;15372:1;15361:13;;;;;;;;;;;;;;:17;15353:61;;;;;-1:-1:-1;;;;;15353:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15463:1;-1:-1:-1;;;;;15437:28:0;:11;15449:1;15437:14;;;;;;;;;;;;;;-1:-1:-1;;;;;15437:28:0;;;15429:76;;;;-1:-1:-1;;;;;15429:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15529:25;15540:10;15551:1;15540:13;;;;;;;;;;;;;;15529:6;:10;;:25;;;;:::i;:::-;15520:34;;15597:44;15627:10;15638:1;15627:13;;;;;;;;;;;;;;15597:9;:25;15607:11;15619:1;15607:14;;;;;;;;;;;;;;-1:-1:-1;;;;;15597:25:0;-1:-1:-1;;;;;15597:25:0;;;;;;;;;;;;;:29;;:44;;;;:::i;:::-;15569:9;:25;15579:11;15591:1;15579:14;;;;;;;;;;;;;;-1:-1:-1;;;;;15569:25:0;-1:-1:-1;;;;;15569:25:0;;;;;;;;;;;;:72;;;;15682:11;15694:1;15682:14;;;;;;;;;;;;;;-1:-1:-1;;;;;15661:51:0;15670:10;-1:-1:-1;;;;;15661:51:0;-1:-1:-1;;;;;;;;;;;15698:10:0;15709:1;15698:13;;;;;;;;;;;;;;15661:51;;;;;;;;;;;;;;;;;;15291:3;;15259:465;;;-1:-1:-1;15752:10:0;15742:9;:21;;;;;;;;;;;:31;-1:-1:-1;15742:31:0;15734:73;;;;;-1:-1:-1;;;;;15734:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15852:10;15842:9;:21;;;;;;;;;;;:33;;15868:6;15842:33;:25;:33;:::i;:::-;15828:10;15818:9;:21;;;;;;;;;;:57;-1:-1:-1;15893:4:0;;14896:1009;-1:-1:-1;;;;14896:1009:0:o;4921:106::-;-1:-1:-1;;;;;5003:16:0;4976:7;5003:16;;;;;;;;;;;;4921:106::o;13834:266::-;3263:9;:7;:9::i;:::-;3255:46;;;;;-1:-1:-1;;;;;3255:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3255:46:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13929:15:0;;;;;;:8;:15;;;;;;;;13945:10;13929:27;;;;;;;;13919:37;;;13911:70;;;;;-1:-1:-1;;;;;13911:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14022:15:0;;;;;;:8;:15;;;;;;;;14038:10;14022:27;;;;;;;;:39;;14054:6;14022:39;:31;:39;:::i;:::-;-1:-1:-1;;;;;13992:15:0;;;;;;:8;:15;;;;;;;;14008:10;13992:27;;;;;;;:69;14072:20;14001:5;14085:6;14072:5;:20::i;:::-;13834:266;;:::o;3051:79::-;3116:6;;-1:-1:-1;;;;;3116:6:0;3051:79;:::o;3414:92::-;3492:6;;-1:-1:-1;;;;;3492:6:0;3478:10;:20;;3414:92::o;14718:37::-;;;;;;;;;;;;;;-1:-1:-1;;;;;14718:37:0;;;;:::o;8568:213::-;8679:10;8653:4;8700:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;8700:29:0;;;;;;;;;;8653:4;;8670:81;;8691:7;;8700:50;;8734:15;8700:50;:33;:50;:::i;11153:183::-;11216:4;11233:23;11245:10;11233:11;:23::i;:::-;11267:16;11279:3;11267:11;:16::i;:::-;11301:27;11316:3;11321:6;11301:14;:27::i;:::-;11294:34;11153:183;-1:-1:-1;;;11153:183:0:o;10257:114::-;-1:-1:-1;;;;;10340:23:0;10317:4;10340:23;;;:14;:23;;;;;;;;;10257:114::o;10877:158::-;3263:9;:7;:9::i;:::-;3255:46;;;;;-1:-1:-1;;;;;3255:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3255:46:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10950:23:0;;;;;;:14;:23;;;;;;;;;:32;;-1:-1:-1;;10950:32:0;;;;;;;;;;10997:30;;;;;;;;;;;;;;;;;10877:158;;:::o;5366:131::-;-1:-1:-1;;;;;5465:15:0;;;5438:7;5465:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;5366:131::o;3683:109::-;3263:9;:7;:9::i;:::-;3255:46;;;;;-1:-1:-1;;;;;3255:46:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3255:46:0;;;;;;;;;;;;;;;3756:28;3775:8;3756:18;:28::i;11822:190::-;11907:18;11919:5;11907:11;:18::i;:::-;11936:20;11948:7;11936:11;:20::i;:::-;11967:37;11982:5;11989:7;11998:5;11967:14;:37::i;:::-;11822:190;;;:::o;10545:130::-;10617:22;10631:7;10617:13;:22::i;:::-;10616:23;10608:59;;;;;-1:-1:-1;;;;;10608:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7080:228;7159:4;7176:26;7186:4;7192:2;7196:5;7176:9;:26::i;:::-;-1:-1:-1;;;;;7240:14:0;;;;;;:8;:14;;;;;;;;7228:10;7240:26;;;;;;;;;7213:65;;7222:4;;7240:37;;7271:5;7240:37;:30;:37;:::i;7213:65::-;-1:-1:-1;7296:4:0;7080:228;;;;;:::o;1490:150::-;1548:7;1580:5;;;1604:6;;;;1596:15;;;;;12504:304;-1:-1:-1;;;;;12579:21:0;;12571:65;;;;;-1:-1:-1;;;;;12571:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12664:12;;:23;;12681:5;12664:23;:16;:23;:::i;:::-;12649:12;:38;-1:-1:-1;;;;;12719:18:0;;:9;:18;;;;;;;;;;;:29;;12742:5;12719:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;12698:18:0;;:9;:18;;;;;;;;;;;:50;;;;12764:36;;;;;;;12698:18;;:9;;-1:-1:-1;;;;;;;;;;;12764:36:0;;;;;;;;;12504:304;;:::o;14108:472::-;-1:-1:-1;;;;;14191:15:0;;:9;:15;;;;;;;;;;;14181:25;;;14173:62;;;;;-1:-1:-1;;;;;14173:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14445:15:0;;:9;:15;;;;;;;;;;;:27;;14465:6;14445:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;14427:15:0;;:9;:15;;;;;;;;;;:45;14498:12;;:24;;14515:6;14498:24;:16;:24;:::i;:::-;14483:12;:39;14538:34;;;;;;;;14561:1;;-1:-1:-1;;;;;14538:34:0;;;-1:-1:-1;;;;;;;;;;;14538:34:0;;;;;;;;14108:472;;:::o;1252:150::-;1310:7;1343:1;1338;:6;;1330:15;;;;;;-1:-1:-1;1368:5:0;;;1252:150::o;5672:140::-;5733:4;5750:32;5760:10;5772:2;5776:5;5750:9;:32::i;3942:250::-;-1:-1:-1;;;;;4016:22:0;;4008:94;;;;-1:-1:-1;;;;;4008:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4139:6;;4118:38;;-1:-1:-1;;;;;4118:38:0;;;;4139:6;;4118:38;;4139:6;;4118:38;4167:6;:17;;-1:-1:-1;;;;;;4167:17:0;-1:-1:-1;;;;;4167:17:0;;;;;;;;;;3942:250::o;9581:329::-;-1:-1:-1;;;;;9674:21:0;;9666:68;;;;-1:-1:-1;;;;;9666:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9753:19:0;;9745:65;;;;-1:-1:-1;;;;;9745:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9823:15:0;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;9871:31;;;;;;;;;;;;;;;;;9581:329;;;:::o;9007:301::-;-1:-1:-1;;;;;9095:16:0;;9087:64;;;;-1:-1:-1;;;;;9087:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9182:15:0;;:9;:15;;;;;;;;;;;:26;;9202:5;9182:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;9164:15:0;;;:9;:15;;;;;;;;;;;:44;;;;9235:13;;;;;;;:24;;9253:5;9235:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;9219:13:0;;;:9;:13;;;;;;;;;;;;:40;;;;9275:25;;;;;;;9219:13;;9275:25;;;;-1:-1:-1;;;;;;;;;;;9275:25:0;;;;;;;;9007:301;;;:::o
Swarm Source
bzzr://f41014b8b912a31a4c14ec0e4444565a7c973b215a8944550505198304c38950
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.