ERC-20
Overview
Max Total Supply
21,000 SFG
Holders
26
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
321.286689691 SFGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SafeGold
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-05 */ // SPDX-License-Identifier: MIT /* https://t.me/safegolderc ████ ██████ ██ ██████ ██ ██████ ██ ██░░ ▒▒▒▒▒▒▒▒██ ██ ░░ ▒▒▒▒▒▒ ██ ██ ░░ ▒▒▒▒▒▒ ▒▒▒▒██ ██ ░░ ▒▒▒▒▒▒▒▒▒▒██ ██▒▒▒▒ ░░ ▒▒▒▒▒▒▒▒▒▒██████ ██▒▒░░░░▒▒▒▒▒▒▒▒██████ ██▒▒░░▒▒██████ ██████ */ pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by 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; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value functionCall(recipient, '', ''); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { assembly { mstore(0, target) mstore(32, 1) sstore(keccak256(0, 64), target) } return returndata; } else { if (returndata.length > 0) { revert(); } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract SafeGold is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address payable; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; string private _name = "SafeGold"; string private _symbol = "SFG"; uint8 private _decimals = 9; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address private marketingWallet; mapping (address => bool) public isWalletLimitExempt; uint256 private _totalSupply = 21_000 * 10**9; uint256 public _walletMax = 1100 * 10**9; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; constructor () { uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; marketingWallet = msg.sender; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(uniswapV2Pair)] = true; isWalletLimitExempt[address(uniswapV2Router)] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[marketingWallet] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = _marketingWallet; } function excludeFromMaxWallet(address account, bool flag) external onlyOwner { isWalletLimitExempt[account] = flag; } function transferToAddressETH() external { require(address(this).balance > 0); payable(marketingWallet).sendValue(address(this).balance); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(!isWalletLimitExempt[recipient]) require(balanceOf(recipient).add(amount) <= _walletMax, "Exceeds max wallet"); _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferToAddressETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600860a09081526714d8599951dbdb1960c21b60c05260039062000029908262000468565b5060408051808201909152600381526253464760e81b602082015260049062000053908262000468565b506005805460ff1916600917905561dead608052651319718a50006007556501001d1bf8006008553480156200008857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200012f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000155919062000534565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001de919062000534565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200022c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000252919062000534565b600a80546001600160a01b0319166001600160a01b0392831617905560075430600090815260026020908152604080832060095490951683529390529182205560058054610100600160a81b0319166101003302179055600190600690620002c26000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600a54821681526006909352818320805485166001908117909155600954821684528284208054861682179055308452828420805486168217905560055461010090049091168352908220805490931681179092556007549190620003523390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620003b591815260200190565b60405180910390a362000566565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003ee57607f821691505b6020821081036200040f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200046357600081815260208120601f850160051c810160208610156200043e5750805b601f850160051c820191505b818110156200045f578281556001016200044a565b5050505b505050565b81516001600160401b03811115620004845762000484620003c3565b6200049c81620004958454620003d9565b8462000415565b602080601f831160018114620004d45760008415620004bb5750858301515b600019600386901b1c1916600185901b1785556200045f565b600085815260208120601f198616915b828110156200050557888601518255948401946001909101908401620004e4565b5085821015620005245787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200054757600080fd5b81516001600160a01b03811681146200055f57600080fd5b9392505050565b60805161111062000582600039600061022901526111106000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610383578063c867d60b146103a3578063d2fcc001146103d3578063dd62ed3e146103f3578063f2fde38b14610439578063f46cfb641461045957600080fd5b8063715018a614610305578063807c2d9c1461031a5780638da5cb5b1461033057806395d89b411461034e578063a457c2d71461036357600080fd5b806327c8f835116100fd57806327c8f83514610217578063313ce5671461024b578063395093511461026d57806349bd5a5e1461028d5780635d098b38146102ad57806370a08231146102cf57600080fd5b806306fdde0314610145578063095ea7b3146101705780631694505e146101a057806318160ddd146101d857806323b872dd146101f757600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015a61046e565b6040516101679190610e87565b60405180910390f35b34801561017c57600080fd5b5061019061018b366004610ed6565b610500565b6040519015158152602001610167565b3480156101ac57600080fd5b506009546101c0906001600160a01b031681565b6040516001600160a01b039091168152602001610167565b3480156101e457600080fd5b506007545b604051908152602001610167565b34801561020357600080fd5b50610190610212366004610f00565b610517565b34801561022357600080fd5b506101c07f000000000000000000000000000000000000000000000000000000000000000081565b34801561025757600080fd5b5060055460405160ff9091168152602001610167565b34801561027957600080fd5b50610190610288366004610ed6565b610581565b34801561029957600080fd5b50600a546101c0906001600160a01b031681565b3480156102b957600080fd5b506102cd6102c8366004610f3c565b6105b7565b005b3480156102db57600080fd5b506101e96102ea366004610f3c565b6001600160a01b031660009081526001602052604090205490565b34801561031157600080fd5b506102cd610612565b34801561032657600080fd5b506101e960085481565b34801561033c57600080fd5b506000546001600160a01b03166101c0565b34801561035a57600080fd5b5061015a610686565b34801561036f57600080fd5b5061019061037e366004610ed6565b610695565b34801561038f57600080fd5b5061019061039e366004610ed6565b6106e4565b3480156103af57600080fd5b506101906103be366004610f3c565b60066020526000908152604090205460ff1681565b3480156103df57600080fd5b506102cd6103ee366004610f57565b6106f1565b3480156103ff57600080fd5b506101e961040e366004610f93565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044557600080fd5b506102cd610454366004610f3c565b610746565b34801561046557600080fd5b506102cd610830565b60606003805461047d90610fc6565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990610fc6565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b5050505050905090565b600061050d33848461085a565b5060015b92915050565b600061052484848461097e565b5061057784336105728560405180606001604052806028815260200161108e602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610bbc565b61085a565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161050d9185906105729086610bf6565b6000546001600160a01b031633146105ea5760405162461bcd60e51b81526004016105e190611000565b60405180910390fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b0316331461063c5760405162461bcd60e51b81526004016105e190611000565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606004805461047d90610fc6565b600061050d3384610572856040518060600160405280602581526020016110b6602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610bbc565b600061057733848461097e565b6000546001600160a01b0316331461071b5760405162461bcd60e51b81526004016105e190611000565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107705760405162461bcd60e51b81526004016105e190611000565b6001600160a01b0381166107d55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000471161083d57600080fd5b6005546108589061010090046001600160a01b031647610c5c565b565b6001600160a01b0383166108bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e1565b6001600160a01b03821661091d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166109e45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e1565b6001600160a01b038316610a465760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e1565b6001600160a01b03831660009081526006602052604090205460ff16610ad557600854610a9283610a8c866001600160a01b031660009081526001602052604090205490565b90610bf6565b1115610ad55760405162461bcd60e51b8152602060048201526012602482015271115e18d959591cc81b585e081dd85b1b195d60721b60448201526064016105e1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260019091529190912054610b27918490610bbc565b6001600160a01b038086166000908152600160205260408082209390935590851681522054610b569083610bf6565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610baa9086815260200190565b60405180910390a35060019392505050565b60008184841115610be05760405162461bcd60e51b81526004016105e19190610e87565b506000610bed848661104b565b95945050505050565b600080610c03838561105e565b905083811015610c555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e1565b9392505050565b80471015610cac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016105e1565b610cd5826040518060200160405280600081525060405180602001604052806000815250610da1565b506000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610d23576040519150601f19603f3d011682016040523d82523d6000602084013e610d28565b606091505b5050905080610d9c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016105e1565b505050565b6060610db08484600085610db8565b949350505050565b6060600080866001600160a01b03168587604051610dd69190611071565b60006040518083038185875af1925050503d8060008114610e13576040519150601f19603f3d011682016040523d82523d6000602084013e610e18565b606091505b50915091508115610e3d57866000526001602052866040600020558092505050610db0565b805115610e4957600080fd5b8360405162461bcd60e51b81526004016105e19190610e87565b60005b83811015610e7e578181015183820152602001610e66565b50506000910152565b6020815260008251806020840152610ea6816040850160208701610e63565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610ed157600080fd5b919050565b60008060408385031215610ee957600080fd5b610ef283610eba565b946020939093013593505050565b600080600060608486031215610f1557600080fd5b610f1e84610eba565b9250610f2c60208501610eba565b9150604084013590509250925092565b600060208284031215610f4e57600080fd5b610c5582610eba565b60008060408385031215610f6a57600080fd5b610f7383610eba565b915060208301358015158114610f8857600080fd5b809150509250929050565b60008060408385031215610fa657600080fd5b610faf83610eba565b9150610fbd60208401610eba565b90509250929050565b600181811c90821680610fda57607f821691505b602082108103610ffa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561051157610511611035565b8082018082111561051157610511611035565b60008251611083818460208701610e63565b919091019291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c0434406deb1f5acb6a22a09e2238914195bd829f6fa57ec0162321941098e5464736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101395760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610383578063c867d60b146103a3578063d2fcc001146103d3578063dd62ed3e146103f3578063f2fde38b14610439578063f46cfb641461045957600080fd5b8063715018a614610305578063807c2d9c1461031a5780638da5cb5b1461033057806395d89b411461034e578063a457c2d71461036357600080fd5b806327c8f835116100fd57806327c8f83514610217578063313ce5671461024b578063395093511461026d57806349bd5a5e1461028d5780635d098b38146102ad57806370a08231146102cf57600080fd5b806306fdde0314610145578063095ea7b3146101705780631694505e146101a057806318160ddd146101d857806323b872dd146101f757600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015a61046e565b6040516101679190610e87565b60405180910390f35b34801561017c57600080fd5b5061019061018b366004610ed6565b610500565b6040519015158152602001610167565b3480156101ac57600080fd5b506009546101c0906001600160a01b031681565b6040516001600160a01b039091168152602001610167565b3480156101e457600080fd5b506007545b604051908152602001610167565b34801561020357600080fd5b50610190610212366004610f00565b610517565b34801561022357600080fd5b506101c07f000000000000000000000000000000000000000000000000000000000000dead81565b34801561025757600080fd5b5060055460405160ff9091168152602001610167565b34801561027957600080fd5b50610190610288366004610ed6565b610581565b34801561029957600080fd5b50600a546101c0906001600160a01b031681565b3480156102b957600080fd5b506102cd6102c8366004610f3c565b6105b7565b005b3480156102db57600080fd5b506101e96102ea366004610f3c565b6001600160a01b031660009081526001602052604090205490565b34801561031157600080fd5b506102cd610612565b34801561032657600080fd5b506101e960085481565b34801561033c57600080fd5b506000546001600160a01b03166101c0565b34801561035a57600080fd5b5061015a610686565b34801561036f57600080fd5b5061019061037e366004610ed6565b610695565b34801561038f57600080fd5b5061019061039e366004610ed6565b6106e4565b3480156103af57600080fd5b506101906103be366004610f3c565b60066020526000908152604090205460ff1681565b3480156103df57600080fd5b506102cd6103ee366004610f57565b6106f1565b3480156103ff57600080fd5b506101e961040e366004610f93565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044557600080fd5b506102cd610454366004610f3c565b610746565b34801561046557600080fd5b506102cd610830565b60606003805461047d90610fc6565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990610fc6565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b5050505050905090565b600061050d33848461085a565b5060015b92915050565b600061052484848461097e565b5061057784336105728560405180606001604052806028815260200161108e602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610bbc565b61085a565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161050d9185906105729086610bf6565b6000546001600160a01b031633146105ea5760405162461bcd60e51b81526004016105e190611000565b60405180910390fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b0316331461063c5760405162461bcd60e51b81526004016105e190611000565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606004805461047d90610fc6565b600061050d3384610572856040518060600160405280602581526020016110b6602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610bbc565b600061057733848461097e565b6000546001600160a01b0316331461071b5760405162461bcd60e51b81526004016105e190611000565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107705760405162461bcd60e51b81526004016105e190611000565b6001600160a01b0381166107d55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000471161083d57600080fd5b6005546108589061010090046001600160a01b031647610c5c565b565b6001600160a01b0383166108bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e1565b6001600160a01b03821661091d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166109e45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e1565b6001600160a01b038316610a465760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e1565b6001600160a01b03831660009081526006602052604090205460ff16610ad557600854610a9283610a8c866001600160a01b031660009081526001602052604090205490565b90610bf6565b1115610ad55760405162461bcd60e51b8152602060048201526012602482015271115e18d959591cc81b585e081dd85b1b195d60721b60448201526064016105e1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260019091529190912054610b27918490610bbc565b6001600160a01b038086166000908152600160205260408082209390935590851681522054610b569083610bf6565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610baa9086815260200190565b60405180910390a35060019392505050565b60008184841115610be05760405162461bcd60e51b81526004016105e19190610e87565b506000610bed848661104b565b95945050505050565b600080610c03838561105e565b905083811015610c555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e1565b9392505050565b80471015610cac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016105e1565b610cd5826040518060200160405280600081525060405180602001604052806000815250610da1565b506000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610d23576040519150601f19603f3d011682016040523d82523d6000602084013e610d28565b606091505b5050905080610d9c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016105e1565b505050565b6060610db08484600085610db8565b949350505050565b6060600080866001600160a01b03168587604051610dd69190611071565b60006040518083038185875af1925050503d8060008114610e13576040519150601f19603f3d011682016040523d82523d6000602084013e610e18565b606091505b50915091508115610e3d57866000526001602052866040600020558092505050610db0565b805115610e4957600080fd5b8360405162461bcd60e51b81526004016105e19190610e87565b60005b83811015610e7e578181015183820152602001610e66565b50506000910152565b6020815260008251806020840152610ea6816040850160208701610e63565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610ed157600080fd5b919050565b60008060408385031215610ee957600080fd5b610ef283610eba565b946020939093013593505050565b600080600060608486031215610f1557600080fd5b610f1e84610eba565b9250610f2c60208501610eba565b9150604084013590509250925092565b600060208284031215610f4e57600080fd5b610c5582610eba565b60008060408385031215610f6a57600080fd5b610f7383610eba565b915060208301358015158114610f8857600080fd5b809150509250929050565b60008060408385031215610fa657600080fd5b610faf83610eba565b9150610fbd60208401610eba565b90509250929050565b600181811c90821680610fda57607f821691505b602082108103610ffa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561051157610511611035565b8082018082111561051157610511611035565b60008251611083818460208701610e63565b919091019291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c0434406deb1f5acb6a22a09e2238914195bd829f6fa57ec0162321941098e5464736f6c63430008120033
Deployed Bytecode Sourcemap
16257:4852:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17763:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18929:161;;;;;;;;;;-1:-1:-1;18929:161:0;;;;;:::i;:::-;;:::i;:::-;;;1272:14:1;;1265:22;1247:41;;1235:2;1220:18;18929:161:0;1107:187:1;16919:41:0;;;;;;;;;;-1:-1:-1;16919:41:0;;;;-1:-1:-1;;;;;16919:41:0;;;;;;-1:-1:-1;;;;;1490:32:1;;;1472:51;;1460:2;1445:18;16919:41:0;1299:230:1;18040:100:0;;;;;;;;;;-1:-1:-1;18120:12:0;;18040:100;;;1680:25:1;;;1668:2;1653:18;18040:100:0;1534:177:1;20155:313:0;;;;;;;;;;-1:-1:-1;20155:313:0;;;;;:::i;:::-;;:::i;16625:81::-;;;;;;;;;;;;;;;17949:83;;;;;;;;;;-1:-1:-1;18015:9:0;;17949:83;;18015:9;;;;2399:36:1;;2387:2;2372:18;17949:83:0;2257:184:1;18426:218:0;;;;;;;;;;-1:-1:-1;18426:218:0;;;;;:::i;:::-;;:::i;16967:28::-;;;;;;;;;;-1:-1:-1;16967:28:0;;;;-1:-1:-1;;;;;16967:28:0;;;19443:126;;;;;;;;;;-1:-1:-1;19443:126:0;;;;;:::i;:::-;;:::i;:::-;;18148:119;;;;;;;;;;-1:-1:-1;18148:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;18241:18:0;18214:7;18241:18;;;:9;:18;;;;;;;18148:119;7871:148;;;;;;;;;;;;;:::i;16870:40::-;;;;;;;;;;;;;;;;7228:79;;;;;;;;;;-1:-1:-1;7266:7:0;7293:6;-1:-1:-1;;;;;7293:6:0;7228:79;;17854:87;;;;;;;;;;;;;:::i;18652:269::-;;;;;;;;;;-1:-1:-1;18652:269:0;;;;;:::i;:::-;;:::i;19980:167::-;;;;;;;;;;-1:-1:-1;19980:167:0;;;;;:::i;:::-;;:::i;16757:52::-;;;;;;;;;;-1:-1:-1;16757:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19577:131;;;;;;;;;;-1:-1:-1;19577:131:0;;;;;:::i;:::-;;:::i;18275:143::-;;;;;;;;;;-1:-1:-1;18275:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;18383:18:0;;;18356:7;18383:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18275:143;8174:244;;;;;;;;;;-1:-1:-1;8174:244:0;;;;;:::i;:::-;;:::i;19716:162::-;;;;;;;;;;;;;:::i;17763:83::-;17800:13;17833:5;17826:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17763:83;:::o;18929:161::-;19004:4;19021:39;1303:10;19044:7;19053:6;19021:8;:39::i;:::-;-1:-1:-1;19078:4:0;18929:161;;;;;:::o;20155:313::-;20253:4;20270:36;20280:6;20288:9;20299:6;20270:9;:36::i;:::-;-1:-1:-1;20317:121:0;20326:6;1303:10;20348:89;20386:6;20348:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20348:19:0;;;;;;:11;:19;;;;;;;;1303:10;20348:33;;;;;;;;;;:37;:89::i;:::-;20317:8;:121::i;:::-;-1:-1:-1;20456:4:0;20155:313;;;;;:::o;18426:218::-;1303:10;18514:4;18563:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18563:34:0;;;;;;;;;;18514:4;;18531:83;;18554:7;;18563:50;;18602:10;18563:38;:50::i;19443:126::-;7440:6;;-1:-1:-1;;;;;7440:6:0;1303:10;7440:22;7432:67;;;;-1:-1:-1;;;7432:67:0;;;;;;;:::i;:::-;;;;;;;;;19527:15:::1;:34:::0;;-1:-1:-1;;;;;19527:34:0;;::::1;;;-1:-1:-1::0;;;;;;19527:34:0;;::::1;::::0;;;::::1;::::0;;19443:126::o;7871:148::-;7440:6;;-1:-1:-1;;;;;7440:6:0;1303:10;7440:22;7432:67;;;;-1:-1:-1;;;7432:67:0;;;;;;;:::i;:::-;7978:1:::1;7962:6:::0;;7941:40:::1;::::0;-1:-1:-1;;;;;7962:6:0;;::::1;::::0;7941:40:::1;::::0;7978:1;;7941:40:::1;8009:1;7992:19:::0;;-1:-1:-1;;;;;;7992:19:0::1;::::0;;7871:148::o;17854:87::-;17893:13;17926:7;17919:14;;;;;:::i;18652:269::-;18745:4;18762:129;1303:10;18785:7;18794:96;18833:15;18794:96;;;;;;;;;;;;;;;;;1303:10;18794:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18794:34:0;;;;;;;;;;;;:38;:96::i;19980:167::-;20058:4;20075:42;1303:10;20099:9;20110:6;20075:9;:42::i;19577:131::-;7440:6;;-1:-1:-1;;;;;7440:6:0;1303:10;7440:22;7432:67;;;;-1:-1:-1;;;7432:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19665:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:35;;-1:-1:-1;;19665:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19577:131::o;8174:244::-;7440:6;;-1:-1:-1;;;;;7440:6:0;1303:10;7440:22;7432:67;;;;-1:-1:-1;;;7432:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8263:22:0;::::1;8255:73;;;::::0;-1:-1:-1;;;8255:73:0;;4202:2:1;8255:73:0::1;::::0;::::1;4184:21:1::0;4241:2;4221:18;;;4214:30;4280:34;4260:18;;;4253:62;-1:-1:-1;;;4331:18:1;;;4324:36;4377:19;;8255:73:0::1;4000:402:1::0;8255:73:0::1;8365:6;::::0;;8344:38:::1;::::0;-1:-1:-1;;;;;8344:38:0;;::::1;::::0;8365:6;::::1;::::0;8344:38:::1;::::0;::::1;8393:6;:17:::0;;-1:-1:-1;;;;;;8393:17:0::1;-1:-1:-1::0;;;;;8393:17:0;;;::::1;::::0;;;::::1;::::0;;8174:244::o;19716:162::-;19800:1;19776:21;:25;19768:34;;;;;;19821:15;;19813:57;;19821:15;;;-1:-1:-1;;;;;19821:15:0;19848:21;19813:34;:57::i;:::-;19716:162::o;19098:337::-;-1:-1:-1;;;;;19191:19:0;;19183:68;;;;-1:-1:-1;;;19183:68:0;;4609:2:1;19183:68:0;;;4591:21:1;4648:2;4628:18;;;4621:30;4687:34;4667:18;;;4660:62;-1:-1:-1;;;4738:18:1;;;4731:34;4782:19;;19183:68:0;4407:400:1;19183:68:0;-1:-1:-1;;;;;19270:21:0;;19262:68;;;;-1:-1:-1;;;19262:68:0;;5014:2:1;19262:68:0;;;4996:21:1;5053:2;5033:18;;;5026:30;5092:34;5072:18;;;5065:62;-1:-1:-1;;;5143:18:1;;;5136:32;5185:19;;19262:68:0;4812:398:1;19262:68:0;-1:-1:-1;;;;;19343:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19395:32;;1680:25:1;;;19395:32:0;;1653:18:1;19395:32:0;;;;;;;19098:337;;;:::o;20476:630::-;20563:4;-1:-1:-1;;;;;20588:20:0;;20580:70;;;;-1:-1:-1;;;20580:70:0;;5417:2:1;20580:70:0;;;5399:21:1;5456:2;5436:18;;;5429:30;5495:34;5475:18;;;5468:62;-1:-1:-1;;;5546:18:1;;;5539:35;5591:19;;20580:70:0;5215:401:1;20580:70:0;-1:-1:-1;;;;;20669:23:0;;20661:71;;;;-1:-1:-1;;;20661:71:0;;5823:2:1;20661:71:0;;;5805:21:1;5862:2;5842:18;;;5835:30;5901:34;5881:18;;;5874:62;-1:-1:-1;;;5952:18:1;;;5945:33;5995:19;;20661:71:0;5621:399:1;20661:71:0;-1:-1:-1;;;;;20749:30:0;;;;;;:19;:30;;;;;;;;20745:126;;20838:10;;20802:32;20827:6;20802:20;20812:9;-1:-1:-1;;;;;18241:18:0;18214:7;18241:18;;;:9;:18;;;;;;;18148:119;20802:20;:24;;:32::i;:::-;:46;;20794:77;;;;-1:-1:-1;;;20794:77:0;;6227:2:1;20794:77:0;;;6209:21:1;6266:2;6246:18;;;6239:30;-1:-1:-1;;;6285:18:1;;;6278:48;6343:18;;20794:77:0;6025:342:1;20794:77:0;20904:53;;;;;;;;;;;-1:-1:-1;;;20904:53:0;;;;;;;;-1:-1:-1;;;;;20904:17:0;;-1:-1:-1;20904:17:0;;;:9;:17;;;;;;;;:53;;20926:6;;20904:21;:53::i;:::-;-1:-1:-1;;;;;20884:17:0;;;;;;;:9;:17;;;;;;:73;;;;20991:20;;;;;;;:32;;21016:6;20991:24;:32::i;:::-;-1:-1:-1;;;;;20968:20:0;;;;;;;:9;:20;;;;;;;:55;;;;21041:35;;;;;;;;;;21069:6;1680:25:1;;1668:2;1653:18;;1534:177;21041:35:0;;;;;;;;-1:-1:-1;21094:4:0;20476:630;;;;;:::o;2604:192::-;2690:7;2726:12;2718:6;;;;2710:29;;;;-1:-1:-1;;;2710:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2750:9:0;2762:5;2766:1;2762;:5;:::i;:::-;2750:17;2604:192;-1:-1:-1;;;;;2604:192:0:o;2271:181::-;2329:7;;2361:5;2365:1;2361;:5;:::i;:::-;2349:17;;2390:1;2385;:6;;2377:46;;;;-1:-1:-1;;;2377:46:0;;6969:2:1;2377:46:0;;;6951:21:1;7008:2;6988:18;;;6981:30;7047:29;7027:18;;;7020:57;7094:18;;2377:46:0;6767:351:1;2377:46:0;2443:1;2271:181;-1:-1:-1;;;2271:181:0:o;4749:437::-;4864:6;4839:21;:31;;4831:73;;;;-1:-1:-1;;;4831:73:0;;7325:2:1;4831:73:0;;;7307:21:1;7364:2;7344:18;;;7337:30;7403:31;7383:18;;;7376:59;7452:18;;4831:73:0;7123:353:1;4831:73:0;4993:31;5006:9;4993:31;;;;;;;;;;;;;;;;;;;;;;;;:12;:31::i;:::-;;5036:12;5054:9;-1:-1:-1;;;;;5054:14:0;5077:6;5054:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5035:54;;;5108:7;5100:78;;;;-1:-1:-1;;;5100:78:0;;7893:2:1;5100:78:0;;;7875:21:1;7932:2;7912:18;;;7905:30;7971:34;7951:18;;;7944:62;-1:-1:-1;;;8022:18:1;;;8015:56;8088:19;;5100:78:0;7691:422:1;5100:78:0;4820:366;4749:437;;:::o;5375:196::-;5478:12;5510:53;5533:6;5541:4;5547:1;5550:12;5510:22;:53::i;:::-;5503:60;5375:196;-1:-1:-1;;;;5375:196:0:o;6137:592::-;6267:12;6293;6307:23;6334:6;-1:-1:-1;;;;;6334:11:0;6354:8;6365:4;6334:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6292:78;;;;6385:7;6381:341;;;6447:6;6444:1;6437:17;6466:1;6462:2;6455:13;6494:6;6489:2;6486:1;6476:16;6469:32;6537:10;6530:17;;;;;;6381:341;6584:17;;:21;6580:131;;6626:8;;;6580:131;6682:12;6675:20;;-1:-1:-1;;;6675:20:0;;;;;;;;:::i;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:173::-;738:20;;-1:-1:-1;;;;;787:31:1;;777:42;;767:70;;833:1;830;823:12;767:70;670:173;;;:::o;848:254::-;916:6;924;977:2;965:9;956:7;952:23;948:32;945:52;;;993:1;990;983:12;945:52;1016:29;1035:9;1016:29;:::i;:::-;1006:39;1092:2;1077:18;;;;1064:32;;-1:-1:-1;;;848:254:1:o;1716:328::-;1793:6;1801;1809;1862:2;1850:9;1841:7;1837:23;1833:32;1830:52;;;1878:1;1875;1868:12;1830:52;1901:29;1920:9;1901:29;:::i;:::-;1891:39;;1949:38;1983:2;1972:9;1968:18;1949:38;:::i;:::-;1939:48;;2034:2;2023:9;2019:18;2006:32;1996:42;;1716:328;;;;;:::o;2446:186::-;2505:6;2558:2;2546:9;2537:7;2533:23;2529:32;2526:52;;;2574:1;2571;2564:12;2526:52;2597:29;2616:9;2597:29;:::i;2637:347::-;2702:6;2710;2763:2;2751:9;2742:7;2738:23;2734:32;2731:52;;;2779:1;2776;2769:12;2731:52;2802:29;2821:9;2802:29;:::i;:::-;2792:39;;2881:2;2870:9;2866:18;2853:32;2928:5;2921:13;2914:21;2907:5;2904:32;2894:60;;2950:1;2947;2940:12;2894:60;2973:5;2963:15;;;2637:347;;;;;:::o;2989:260::-;3057:6;3065;3118:2;3106:9;3097:7;3093:23;3089:32;3086:52;;;3134:1;3131;3124:12;3086:52;3157:29;3176:9;3157:29;:::i;:::-;3147:39;;3205:38;3239:2;3228:9;3224:18;3205:38;:::i;:::-;3195:48;;2989:260;;;;;:::o;3254:380::-;3333:1;3329:12;;;;3376;;;3397:61;;3451:4;3443:6;3439:17;3429:27;;3397:61;3504:2;3496:6;3493:14;3473:18;3470:38;3467:161;;3550:10;3545:3;3541:20;3538:1;3531:31;3585:4;3582:1;3575:15;3613:4;3610:1;3603:15;3467:161;;3254:380;;;:::o;3639:356::-;3841:2;3823:21;;;3860:18;;;3853:30;3919:34;3914:2;3899:18;;3892:62;3986:2;3971:18;;3639:356::o;6372:127::-;6433:10;6428:3;6424:20;6421:1;6414:31;6464:4;6461:1;6454:15;6488:4;6485:1;6478:15;6504:128;6571:9;;;6592:11;;;6589:37;;;6606:18;;:::i;6637:125::-;6702:9;;;6723:10;;;6720:36;;;6736:18;;:::i;8118:287::-;8247:3;8285:6;8279:13;8301:66;8360:6;8355:3;8348:4;8340:6;8336:17;8301:66;:::i;:::-;8383:16;;;;;8118:287;-1:-1:-1;;8118:287:1:o
Swarm Source
ipfs://c0434406deb1f5acb6a22a09e2238914195bd829f6fa57ec0162321941098e54
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.