ERC-20
Overview
Max Total Supply
99,802,400,000,000 DONO
Holders
22
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,002,755,222,593.024450609589928472 DONOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
XYZ
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-03-31 */ //SPDX-License-Identifier: MIT pragma solidity ^0.7.6; interface IERC20 { function totalSupply() external view returns (uint); function balanceOf(address account) external view returns (uint); function transfer(address recipient, uint amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint amount) external returns (bool); function transferFrom(address sender, address recipient, uint amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } library SafeMath { function add(uint a, uint b) internal pure returns (uint) { uint c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint a, uint b) internal pure returns (uint) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) { require(b <= a, errorMessage); uint c = a - b; return c; } function mul(uint a, uint b) internal pure returns (uint) { if (a == 0) { return 0; } uint c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint a, uint b) internal pure returns (uint) { return div(a, b, "SafeMath: division by zero"); } function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint c = a / b; return c; } } contract Context { constructor () public { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address) { return msg.sender; } } contract ERC20 is Context, IERC20 { using SafeMath for uint; mapping (address => uint) internal _balances; mapping (address => mapping (address => uint)) internal _allowances; mapping (uint => mapping(address => uint)) public tokenHolders; mapping(uint => address) public addressHolders; uint internal _totalSupply; uint public _circulatingSupply; uint256 count = 1; uint256 public holdingReward; address walletAddress = 0xf51690575E82fD91A976A12A9C265651A7B77B3e; address fundsWallet = 0xfa97Ec471ee2bc062Ba4E13665acc296dFd721BF; function totalSupply() public view override returns (uint) { return _totalSupply; } function balanceOf(address account) public view override returns (uint) { return _balances[account]; } function transfer(address recipient, uint amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint) { return _allowances[owner][spender]; } function approve(address spender, uint amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint 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 increaseAllowance(address spender, uint addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 _OnePercent = calculateOnePercent(amount); _burn(msg.sender, _OnePercent); uint256 _TwoPercent = calculateTwoPercent(amount); sendToWallet(msg.sender, walletAddress, _TwoPercent); uint256 _PointTwoPercent = calculatePointTwoPercent(amount); sendToFundsWallet(msg.sender,fundsWallet,_PointTwoPercent); divideAmongHolders(_OnePercent, count); uint256 AmountGranted = amount - ((_OnePercent * 2) + _TwoPercent + _PointTwoPercent); _balances[recipient] = _balances[recipient].add(AmountGranted); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); tokenHolders[count][recipient] = AmountGranted; emit Transfer(sender, recipient, AmountGranted); addressHolders[count] = recipient; count++; } function divideAmongHolders(uint256 _OnePercent, uint256 _count) internal { address targetAddress; holdingReward = _OnePercent / _count; for(uint256 i = 1; i<=_count ; i++) { targetAddress = addressHolders[i]; tokenHolders[i][targetAddress] = tokenHolders[i][targetAddress] + holdingReward; _balances[targetAddress]= _balances[targetAddress] + holdingReward; emit Transfer(msg.sender , targetAddress, holdingReward); } _balances[msg.sender] = _balances[msg.sender].sub(_OnePercent); } function _approve(address owner, address spender, uint amount) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function calculateOnePercent(uint256 amount) internal returns (uint256) { uint256 onePercent = 1 * amount / 100; return onePercent; } function calculateTwoPercent(uint256 amount) internal returns (uint256) { uint256 twoPercent = 2 * amount / 100; return twoPercent; } function calculatePointTwoPercent(uint256 amount) internal returns (uint256) { uint256 twoPercent = amount * 2 / 1000; return twoPercent; } function sendToWallet(address sender, address _wallet, uint256 _TwoPercent) internal { _balances[_wallet] = _balances[_wallet].add(_TwoPercent); _balances[sender] = _balances[sender].sub(_TwoPercent); emit Transfer(sender, _wallet, _TwoPercent); } function sendToFundsWallet(address sender, address _wallet, uint256 _PointTwoPercent) internal { _balances[_wallet] = _balances[_wallet].add(_PointTwoPercent); _balances[sender] = _balances[sender].sub(_PointTwoPercent); emit Transfer(sender, _wallet, _PointTwoPercent); } function _burn(address account, uint amount) internal { require(account != address(0), "ERC20: burn from the zero address"); require(_circulatingSupply >= (50000000000000 * (10**18))); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); _circulatingSupply = _circulatingSupply.sub(amount); emit Transfer(account, address(0), amount); } } contract ERC20Detailed is ERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } 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; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } } library SafeERC20 { using SafeMath for uint; using Address for address; function safeTransfer(IERC20 token, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } contract XYZ is ERC20, ERC20Detailed { using SafeERC20 for IERC20; using Address for address; using SafeMath for uint256; address public _owner; constructor () public ERC20Detailed("DonationToken", "DONO", 18) { _owner = msg.sender; _totalSupply = 100000000000000 *(10**uint256(18)); _balances[_owner] = _totalSupply; // _burn(_owner, 50000000000000 * (10**18)); _circulatingSupply = _totalSupply; } }
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":"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":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"addressHolders","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"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":[],"name":"holdingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"tokenHolders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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"}]
Contract Creation Code
60806040526001600655600880546001600160a01b031990811673f51690575e82fd91a976a12a9c265651a7b77b3e179091556009805490911673fa97ec471ee2bc062ba4e13665acc296dfd721bf17905534801561005d57600080fd5b50604080518082018252600d81526c2237b730ba34b7b72a37b5b2b760991b602080830191825283518085019094526004845263444f4e4f60e01b9084015281519192916012916100b191600a919061012e565b5081516100c590600b90602085019061012e565b50600c805460ff191660ff9290921691909117610100600160a81b03191661010033810291909117918290556d04ee2d6d415b85acef810000000060048190556001600160a01b0391909204166000908152602081905260409020819055600555506101cf9050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261016457600085556101aa565b82601f1061017d57805160ff19168380011785556101aa565b828001600101855582156101aa579182015b828111156101aa57825182559160200191906001019061018f565b506101b69291506101ba565b5090565b5b808211156101b657600081556001016101bb565b610f20806101de6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806395d89b4111610097578063adcef8d411610066578063adcef8d414610316578063b2bdfa7b1461031e578063dd62ed3e14610342578063ff0782911461037057610100565b806395d89b41146102ae578063a253c06e146102b6578063a457c2d7146102be578063a9059cbb146102ea57610100565b8063313ce567116100d3578063313ce5671461021257806339509351146102305780635a76665c1461025c57806370a082311461028857610100565b806306fdde0314610105578063095ea7b31461018257806318160ddd146101c257806323b872dd146101dc575b600080fd5b61010d61038d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b038135169060200135610423565b604080519115158252519081900360200190f35b6101ca610440565b60408051918252519081900360200190f35b6101ae600480360360608110156101f257600080fd5b506001600160a01b03813581169160208101359091169060400135610446565b61021a6104cd565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561024657600080fd5b506001600160a01b0381351690602001356104d6565b6101ca6004803603604081101561027257600080fd5b50803590602001356001600160a01b0316610524565b6101ca6004803603602081101561029e57600080fd5b50356001600160a01b0316610541565b61010d61055c565b6101ca6105bd565b6101ae600480360360408110156102d457600080fd5b506001600160a01b0381351690602001356105c3565b6101ae6004803603604081101561030057600080fd5b506001600160a01b03813516906020013561062b565b6101ca61063f565b610326610645565b604080516001600160a01b039092168252519081900360200190f35b6101ca6004803603604081101561035857600080fd5b506001600160a01b0381358116916020013516610659565b6103266004803603602081101561038657600080fd5b5035610684565b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104195780601f106103ee57610100808354040283529160200191610419565b820191906000526020600020905b8154815290600101906020018083116103fc57829003601f168201915b5050505050905090565b600061043761043061069f565b84846106a3565b50600192915050565b60045490565b600061045384848461078f565b6104c38461045f61069f565b6104be85604051806060016040528060288152602001610e14602891396001600160a01b038a1660009081526001602052604081209061049d61069f565b6001600160a01b0316815260208101919091526040016000205491906109b9565b6106a3565b5060019392505050565b600c5460ff1690565b60006104376104e361069f565b846104be85600160006104f461069f565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610a50565b600260209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526020819052604090205490565b600b8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104195780601f106103ee57610100808354040283529160200191610419565b60055481565b60006104376105d061069f565b846104be85604051806060016040528060258152602001610ec660259139600160006105fa61069f565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906109b9565b600061043761063861069f565b848461078f565b60075481565b600c5461010090046001600160a01b031681565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003602052600090815260409020546001600160a01b031681565b3390565b6001600160a01b0383166106e85760405162461bcd60e51b8152600401808060200182810382526024815260200180610ea26024913960400191505060405180910390fd5b6001600160a01b03821661072d5760405162461bcd60e51b8152600401808060200182810382526022815260200180610dcc6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166107d45760405162461bcd60e51b8152600401808060200182810382526025815260200180610e7d6025913960400191505060405180910390fd5b6001600160a01b0382166108195760405162461bcd60e51b8152600401808060200182810382526023815260200180610d876023913960400191505060405180910390fd5b600061082482610ab1565b90506108303382610ac0565b600061083b83610bcb565b6008549091506108569033906001600160a01b031683610bd9565b600061086184610c75565b60095490915061087c9033906001600160a01b031683610bd9565b61088883600654610c84565b6001600160a01b03851660009081526020819052604090205460028402830182018503906108b69082610a50565b600080886001600160a01b03166001600160a01b031681526020019081526020016000208190555061091b85604051806060016040528060268152602001610dee602691396001600160a01b038a1660009081526020819052604090205491906109b9565b6001600160a01b0380891660008181526020818152604080832095909555600654825260028152848220938b16808352938152908490208590558351858152935192939192600080516020610e3c8339815191529281900390910190a3505060068054600090815260036020526040902080546001600160a01b0319166001600160a01b039690961695909517909455505081546001019091555050565b60008184841115610a485760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a0d5781810151838201526020016109f5565b50505050905090810190601f168015610a3a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610aaa576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000806064835b049392505050565b6001600160a01b038216610b055760405162461bcd60e51b8152600401808060200182810382526021815260200180610e5c6021913960400191505060405180910390fd5b6d027716b6a0adc2d677c0800000006005541015610b2257600080fd5b610b5f81604051806060016040528060228152602001610daa602291396001600160a01b03851660009081526020819052604090205491906109b9565b6001600160a01b038316600090815260208190526040902055600454610b859082610d44565b600455600554610b959082610d44565b6005556040805182815290516000916001600160a01b03851691600080516020610e3c8339815191529181900360200190a35050565b600080606460028402610ab8565b6001600160a01b038216600090815260208190526040902054610bfc9082610a50565b6001600160a01b038084166000908152602081905260408082209390935590851681522054610c2b9082610d44565b6001600160a01b03808516600081815260208181526040918290209490945580518581529051928616939192600080516020610e3c833981519152929181900390910190a3505050565b6000806103e860028402610ab8565b6000818381610c8f57fe5b0460075560015b828111610d145760008181526003602090815260408083205460078054600285528386206001600160a01b0390931680875292855283862080549091019055805485855294839020805490950190945592548151908152905192945084923392600080516020610e3c833981519152928290030190a3600101610c96565b5033600090815260208190526040902054610d2f9084610d44565b33600090815260208190526040902055505050565b6000610aaa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109b956fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122020affff926bc6e882bf198c6770ba1184422fc007b50156d99294450d81c2d3864736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c806395d89b4111610097578063adcef8d411610066578063adcef8d414610316578063b2bdfa7b1461031e578063dd62ed3e14610342578063ff0782911461037057610100565b806395d89b41146102ae578063a253c06e146102b6578063a457c2d7146102be578063a9059cbb146102ea57610100565b8063313ce567116100d3578063313ce5671461021257806339509351146102305780635a76665c1461025c57806370a082311461028857610100565b806306fdde0314610105578063095ea7b31461018257806318160ddd146101c257806323b872dd146101dc575b600080fd5b61010d61038d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b038135169060200135610423565b604080519115158252519081900360200190f35b6101ca610440565b60408051918252519081900360200190f35b6101ae600480360360608110156101f257600080fd5b506001600160a01b03813581169160208101359091169060400135610446565b61021a6104cd565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561024657600080fd5b506001600160a01b0381351690602001356104d6565b6101ca6004803603604081101561027257600080fd5b50803590602001356001600160a01b0316610524565b6101ca6004803603602081101561029e57600080fd5b50356001600160a01b0316610541565b61010d61055c565b6101ca6105bd565b6101ae600480360360408110156102d457600080fd5b506001600160a01b0381351690602001356105c3565b6101ae6004803603604081101561030057600080fd5b506001600160a01b03813516906020013561062b565b6101ca61063f565b610326610645565b604080516001600160a01b039092168252519081900360200190f35b6101ca6004803603604081101561035857600080fd5b506001600160a01b0381358116916020013516610659565b6103266004803603602081101561038657600080fd5b5035610684565b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104195780601f106103ee57610100808354040283529160200191610419565b820191906000526020600020905b8154815290600101906020018083116103fc57829003601f168201915b5050505050905090565b600061043761043061069f565b84846106a3565b50600192915050565b60045490565b600061045384848461078f565b6104c38461045f61069f565b6104be85604051806060016040528060288152602001610e14602891396001600160a01b038a1660009081526001602052604081209061049d61069f565b6001600160a01b0316815260208101919091526040016000205491906109b9565b6106a3565b5060019392505050565b600c5460ff1690565b60006104376104e361069f565b846104be85600160006104f461069f565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610a50565b600260209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526020819052604090205490565b600b8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104195780601f106103ee57610100808354040283529160200191610419565b60055481565b60006104376105d061069f565b846104be85604051806060016040528060258152602001610ec660259139600160006105fa61069f565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906109b9565b600061043761063861069f565b848461078f565b60075481565b600c5461010090046001600160a01b031681565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003602052600090815260409020546001600160a01b031681565b3390565b6001600160a01b0383166106e85760405162461bcd60e51b8152600401808060200182810382526024815260200180610ea26024913960400191505060405180910390fd5b6001600160a01b03821661072d5760405162461bcd60e51b8152600401808060200182810382526022815260200180610dcc6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166107d45760405162461bcd60e51b8152600401808060200182810382526025815260200180610e7d6025913960400191505060405180910390fd5b6001600160a01b0382166108195760405162461bcd60e51b8152600401808060200182810382526023815260200180610d876023913960400191505060405180910390fd5b600061082482610ab1565b90506108303382610ac0565b600061083b83610bcb565b6008549091506108569033906001600160a01b031683610bd9565b600061086184610c75565b60095490915061087c9033906001600160a01b031683610bd9565b61088883600654610c84565b6001600160a01b03851660009081526020819052604090205460028402830182018503906108b69082610a50565b600080886001600160a01b03166001600160a01b031681526020019081526020016000208190555061091b85604051806060016040528060268152602001610dee602691396001600160a01b038a1660009081526020819052604090205491906109b9565b6001600160a01b0380891660008181526020818152604080832095909555600654825260028152848220938b16808352938152908490208590558351858152935192939192600080516020610e3c8339815191529281900390910190a3505060068054600090815260036020526040902080546001600160a01b0319166001600160a01b039690961695909517909455505081546001019091555050565b60008184841115610a485760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a0d5781810151838201526020016109f5565b50505050905090810190601f168015610a3a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610aaa576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000806064835b049392505050565b6001600160a01b038216610b055760405162461bcd60e51b8152600401808060200182810382526021815260200180610e5c6021913960400191505060405180910390fd5b6d027716b6a0adc2d677c0800000006005541015610b2257600080fd5b610b5f81604051806060016040528060228152602001610daa602291396001600160a01b03851660009081526020819052604090205491906109b9565b6001600160a01b038316600090815260208190526040902055600454610b859082610d44565b600455600554610b959082610d44565b6005556040805182815290516000916001600160a01b03851691600080516020610e3c8339815191529181900360200190a35050565b600080606460028402610ab8565b6001600160a01b038216600090815260208190526040902054610bfc9082610a50565b6001600160a01b038084166000908152602081905260408082209390935590851681522054610c2b9082610d44565b6001600160a01b03808516600081815260208181526040918290209490945580518581529051928616939192600080516020610e3c833981519152929181900390910190a3505050565b6000806103e860028402610ab8565b6000818381610c8f57fe5b0460075560015b828111610d145760008181526003602090815260408083205460078054600285528386206001600160a01b0390931680875292855283862080549091019055805485855294839020805490950190945592548151908152905192945084923392600080516020610e3c833981519152928290030190a3600101610c96565b5033600090815260208190526040902054610d2f9084610d44565b33600090815260208190526040902055505050565b6000610aaa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109b956fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122020affff926bc6e882bf198c6770ba1184422fc007b50156d99294450d81c2d3864736f6c63430007060033
Deployed Bytecode Sourcemap
10576:452:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8462:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3247:158;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3247:158:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2705:97;;;:::i;:::-;;;;;;;;;;;;;;;;3411:310;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3411:310:0;;;;;;;;;;;;;;;;;:::i;8644:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3727:207;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3727:207:0;;;;;;;;:::i;2270:62::-;;;;;;;;;;;;;;;;-1:-1:-1;2270:62:0;;;;;;-1:-1:-1;;;;;2270:62:0;;:::i;2808:116::-;;;;;;;;;;;;;;;;-1:-1:-1;2808:116:0;-1:-1:-1;;;;;2808:116:0;;:::i;8551:87::-;;;:::i;2440:30::-;;;:::i;3940:258::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3940:258:0;;;;;;;;:::i;2930:165::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2930:165:0;;;;;;;;:::i;2515:28::-;;;:::i;10718:21::-;;;:::i;:::-;;;;-1:-1:-1;;;;;10718:21:0;;;;;;;;;;;;;;3101:140;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3101:140:0;;;;;;;;;;:::i;2346:46::-;;;;;;;;;;;;;;;;-1:-1:-1;2346:46:0;;:::i;8462:83::-;8532:5;8525:12;;;;;;;;-1:-1:-1;;8525:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8499:13;;8525:12;;8532:5;;8525:12;;8532:5;8525:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8462:83;:::o;3247:158::-;3319:4;3336:39;3345:12;:10;:12::i;:::-;3359:7;3368:6;3336:8;:39::i;:::-;-1:-1:-1;3393:4:0;3247:158;;;;:::o;2705:97::-;2782:12;;2705:97;:::o;3411:310::-;3506:4;3523:36;3533:6;3541:9;3552:6;3523:9;:36::i;:::-;3570:121;3579:6;3587:12;:10;:12::i;:::-;3601:89;3639:6;3601:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3601:19:0;;;;;;:11;:19;;;;;;3621:12;:10;:12::i;:::-;-1:-1:-1;;;;;3601:33:0;;;;;;;;;;;;-1:-1:-1;3601:33:0;;;:89;:37;:89::i;:::-;3570:8;:121::i;:::-;-1:-1:-1;3709:4:0;3411:310;;;;;:::o;8644:83::-;8710:9;;;;8644:83;:::o;3727:207::-;3804:4;3821:83;3830:12;:10;:12::i;:::-;3844:7;3853:50;3892:10;3853:11;:25;3865:12;:10;:12::i;:::-;-1:-1:-1;;;;;3853:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;3853:25:0;;;:34;;;;;;;;;;;:38;:50::i;2270:62::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2808:116::-;-1:-1:-1;;;;;2898:18:0;2874:4;2898:18;;;;;;;;;;;;2808:116::o;8551:87::-;8623:7;8616:14;;;;;;;;-1:-1:-1;;8616:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8590:13;;8616:14;;8623:7;;8616:14;;8623:7;8616:14;;;;;;;;;;;;;;;;;;;;;;;;2440:30;;;;:::o;3940:258::-;4022:4;4039:129;4048:12;:10;:12::i;:::-;4062:7;4071:96;4110:15;4071:96;;;;;;;;;;;;;;;;;:11;:25;4083:12;:10;:12::i;:::-;-1:-1:-1;;;;;4071:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;4071:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;2930:165::-;3006:4;3023:42;3033:12;:10;:12::i;:::-;3047:9;3058:6;3023:9;:42::i;2515:28::-;;;;:::o;10718:21::-;;;;;;-1:-1:-1;;;;;10718:21:0;;:::o;3101:140::-;-1:-1:-1;;;;;3206:18:0;;;3182:4;3206:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3101:140::o;2346:46::-;;;;;;;;;;;;-1:-1:-1;;;;;2346:46:0;;:::o;1967:90::-;2039:10;1967:90;:::o;6095:335::-;-1:-1:-1;;;;;6186:19:0;;6178:68;;;;-1:-1:-1;;;6178:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6265:21:0;;6257:68;;;;-1:-1:-1;;;6257:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6338:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6390:32;;;;;;;;;;;;;;;;;6095:335;;;:::o;4204:1204::-;-1:-1:-1;;;;;4299:20:0;;4291:70;;;;-1:-1:-1;;;4291:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4380:23:0;;4372:71;;;;-1:-1:-1;;;4372:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4456:19;4478:27;4498:6;4478:19;:27::i;:::-;4456:49;;4516:30;4522:10;4534:11;4516:5;:30::i;:::-;4567:19;4589:27;4609:6;4589:19;:27::i;:::-;4652:13;;4567:49;;-1:-1:-1;4627:52:0;;4640:10;;-1:-1:-1;;;;;4652:13:0;4567:49;4627:12;:52::i;:::-;4710:24;4737:32;4762:6;4737:24;:32::i;:::-;4809:11;;4710:59;;-1:-1:-1;4780:58:0;;4798:10;;-1:-1:-1;;;;;4809:11:0;4710:59;4780:17;:58::i;:::-;4849:38;4868:11;4881:5;;4849:18;:38::i;:::-;-1:-1:-1;;;;;5044:20:0;;4908:21;5044:20;;;;;;;;;;;4957:1;4943:15;;4942:31;;:50;;4932:61;;;5044:39;;4932:61;5044:24;:39::i;:::-;5021:9;:20;5031:9;-1:-1:-1;;;;;5021:20:0;-1:-1:-1;;;;;5021:20:0;;;;;;;;;;;;:62;;;;5114:71;5136:6;5114:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5114:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;5094:17:0;;;:9;:17;;;;;;;;;;;:91;;;;5217:5;;5204:19;;:12;:19;;;;;:30;;;;;;;;;;;;;:46;;;5266:42;;;;;;;5204:30;;5094:17;;-1:-1:-1;;;;;;;;;;;5266:42:0;;;;;;;;;-1:-1:-1;;5344:5:0;;;5329:21;;;;:14;:21;;;;;:33;;-1:-1:-1;;;;;;5329:33:0;-1:-1:-1;;;;;5329:33:0;;;;;;;;;;;-1:-1:-1;;5373:7:0;;-1:-1:-1;5373:7:0;;;;-1:-1:-1;;4204:1204:0:o;1044:180::-;1124:4;1157:12;1149:6;;;;1141:29;;;;-1:-1:-1;;;1141:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1190:5:0;;;1044:180::o;736:169::-;788:4;814:5;;;838:6;;;;830:46;;;;;-1:-1:-1;;;830:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:1;736:169;-1:-1:-1;;;736:169:0:o;6447:162::-;6510:7;;6570:3;6561:6;6557:16;;;6447:162;-1:-1:-1;;;6447:162:0:o;7671:474::-;-1:-1:-1;;;;;7744:21:0;;7736:67;;;;-1:-1:-1;;;7736:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7845:25;7822:18;;:49;;7814:58;;;;;;7904:68;7927:6;7904:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7904:18:0;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;7883:18:0;;:9;:18;;;;;;;;;;:89;7998:12;;:24;;8015:6;7998:16;:24::i;:::-;7983:12;:39;8054:18;;:30;;8077:6;8054:22;:30::i;:::-;8033:18;:51;8100:37;;;;;;;;8126:1;;-1:-1:-1;;;;;8100:37:0;;;-1:-1:-1;;;;;;;;;;;8100:37:0;;;;;;;;7671:474;;:::o;6622:162::-;6685:7;;6745:3;6732:1;:10;;:16;;6983:315;-1:-1:-1;;;;;7115:18:0;;:9;:18;;;;;;;;;;;:35;;7138:11;7115:22;:35::i;:::-;-1:-1:-1;;;;;7094:18:0;;;:9;:18;;;;;;;;;;;:56;;;;7181:17;;;;;;;:34;;7203:11;7181:21;:34::i;:::-;-1:-1:-1;;;;;7161:17:0;;;:9;:17;;;;;;;;;;;;:54;;;;7231:38;;;;;;;;;;;7161:17;;-1:-1:-1;;;;;;;;;;;7231:38:0;;;;;;;;;;6983:315;;;:::o;6803:168::-;6871:7;;6931:4;6927:1;6918:10;;:17;;5420:661;5518:21;5580:6;5566:11;:20;;;;;;5550:13;:36;5613:1;5597:364;5619:6;5616:1;:9;5597:364;;5673:17;;;;:14;:17;;;;;;;;;5771:13;;;5738:12;:15;;;;;-1:-1:-1;;;;;5673:17:0;;;5738:30;;;;;;;;;;;:46;;;5705:79;;5852:13;;5825:24;;;;;;;;;:40;;;5799:66;;;5935:13;;5898:51;;;;;;;5673:17;;-1:-1:-1;5673:17:0;;5907:10;;-1:-1:-1;;;;;;;;;;;5898:51:0;;;;;;;5628:3;;5597:364;;;-1:-1:-1;6015:10:0;6005:9;:21;;;;;;;;;;;:38;;6031:11;6005:25;:38::i;:::-;5991:10;5981:9;:21;;;;;;;;;;:62;-1:-1:-1;;;5420:661:0:o;911:127::-;963:4;987:43;991:1;994;987:43;;;;;;;;;;;;;;;;;:3;:43::i
Swarm Source
ipfs://20affff926bc6e882bf198c6770ba1184422fc007b50156d99294450d81c2d38
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.