ERC-20
Overview
Max Total Supply
758,752,940.637259321163874478 CBR
Holders
1,425
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:
CyberCoin
Compiler Version
v0.5.13+commit.5b0b510c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-06-28 */ pragma solidity 0.5.13; interface Callable { function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool); } contract CyberCoin { uint256 constant private FLOAT_SCALAR = 2**64; uint256 constant private INITIAL_SUPPLY = 1e27; // 1B uint256 constant private BURN_RATE = 5; // 5% per tx uint256 constant private SUPPLY_FLOOR = 1; // 1% of 1B = 10M uint256 constant private MIN_FREEZE_AMOUNT = 1e21; // 1,000 string constant public name = "Cybercoin"; string constant public symbol = "CBR"; uint8 constant public decimals = 18; struct User { bool whitelisted; uint256 balance; uint256 frozen; mapping(address => uint256) allowance; int256 scaledPayout; } struct Info { uint256 totalSupply; uint256 totalFrozen; mapping(address => User) users; uint256 scaledPayoutPerToken; address admin; } Info private info; event Transfer(address indexed from, address indexed to, uint256 tokens); event Approval(address indexed owner, address indexed spender, uint256 tokens); event Whitelist(address indexed user, bool status); event Freeze(address indexed owner, uint256 tokens); event Unfreeze(address indexed owner, uint256 tokens); event Collect(address indexed owner, uint256 tokens); event Burn(uint256 tokens); constructor() public { info.admin = msg.sender; info.totalSupply = INITIAL_SUPPLY; info.users[msg.sender].balance = INITIAL_SUPPLY; emit Transfer(address(0x0), msg.sender, INITIAL_SUPPLY); whitelist(msg.sender, true); } function freeze(uint256 _tokens) external { _freeze(_tokens); } function unfreeze(uint256 _tokens) external { _unfreeze(_tokens); } function collect() external returns (uint256) { uint256 _dividends = dividendsOf(msg.sender); require(_dividends >= 0); info.users[msg.sender].scaledPayout += int256(_dividends * FLOAT_SCALAR); info.users[msg.sender].balance += _dividends; emit Transfer(address(this), msg.sender, _dividends); emit Collect(msg.sender, _dividends); return _dividends; } function burn(uint256 _tokens) external { require(balanceOf(msg.sender) >= _tokens); info.users[msg.sender].balance -= _tokens; uint256 _burnedAmount = _tokens; if (info.totalFrozen > 0) { _burnedAmount /= 2; info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalFrozen; emit Transfer(msg.sender, address(this), _burnedAmount); } info.totalSupply -= _burnedAmount; emit Transfer(msg.sender, address(0x0), _burnedAmount); emit Burn(_burnedAmount); } function distribute(uint256 _tokens) external { require(info.totalFrozen > 0); require(balanceOf(msg.sender) >= _tokens); info.users[msg.sender].balance -= _tokens; info.scaledPayoutPerToken += _tokens * FLOAT_SCALAR / info.totalFrozen; emit Transfer(msg.sender, address(this), _tokens); } function transfer(address _to, uint256 _tokens) external returns (bool) { _transfer(msg.sender, _to, _tokens); return true; } function approve(address _spender, uint256 _tokens) external returns (bool) { info.users[msg.sender].allowance[_spender] = _tokens; emit Approval(msg.sender, _spender, _tokens); return true; } function transferFrom(address _from, address _to, uint256 _tokens) external returns (bool) { require(info.users[_from].allowance[msg.sender] >= _tokens); info.users[_from].allowance[msg.sender] -= _tokens; _transfer(_from, _to, _tokens); return true; } function transferAndCall(address _to, uint256 _tokens, bytes calldata _data) external returns (bool) { uint256 _transferred = _transfer(msg.sender, _to, _tokens); uint32 _size; assembly { _size := extcodesize(_to) } if (_size > 0) { require(Callable(_to).tokenCallback(msg.sender, _transferred, _data)); } return true; } function bulkTransfer(address[] calldata _receivers, uint256[] calldata _amounts) external { require(_receivers.length == _amounts.length); for (uint256 i = 0; i < _receivers.length; i++) { _transfer(msg.sender, _receivers[i], _amounts[i]); } } function whitelist(address _user, bool _status) public { require(msg.sender == info.admin); info.users[_user].whitelisted = _status; emit Whitelist(_user, _status); } function totalSupply() public view returns (uint256) { return info.totalSupply; } function totalFrozen() public view returns (uint256) { return info.totalFrozen; } function balanceOf(address _user) public view returns (uint256) { return info.users[_user].balance - frozenOf(_user); } function frozenOf(address _user) public view returns (uint256) { return info.users[_user].frozen; } function dividendsOf(address _user) public view returns (uint256) { return uint256(int256(info.scaledPayoutPerToken * info.users[_user].frozen) - info.users[_user].scaledPayout) / FLOAT_SCALAR; } function allowance(address _user, address _spender) public view returns (uint256) { return info.users[_user].allowance[_spender]; } function isWhitelisted(address _user) public view returns (bool) { return info.users[_user].whitelisted; } function allInfoFor(address _user) public view returns (uint256 totalTokenSupply, uint256 totalTokensFrozen, uint256 userBalance, uint256 userFrozen, uint256 userDividends) { return (totalSupply(), totalFrozen(), balanceOf(_user), frozenOf(_user), dividendsOf(_user)); } function _transfer(address _from, address _to, uint256 _tokens) internal returns (uint256) { require(balanceOf(_from) >= _tokens); info.users[_from].balance -= _tokens; uint256 _burnedAmount = _tokens * BURN_RATE / 100; if (totalSupply() - _burnedAmount < INITIAL_SUPPLY * SUPPLY_FLOOR / 100 || isWhitelisted(_from)) { _burnedAmount = 0; } uint256 _transferred = _tokens - _burnedAmount; info.users[_to].balance += _transferred; emit Transfer(_from, _to, _transferred); if (_burnedAmount > 0) { if (info.totalFrozen > 0) { _burnedAmount /= 2; info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalFrozen; emit Transfer(_from, address(this), _burnedAmount); } info.totalSupply -= _burnedAmount; emit Transfer(_from, address(0x0), _burnedAmount); emit Burn(_burnedAmount); } return _transferred; } function _freeze(uint256 _amount) internal { require(balanceOf(msg.sender) >= _amount); require(frozenOf(msg.sender) + _amount >= MIN_FREEZE_AMOUNT); info.totalFrozen += _amount; info.users[msg.sender].frozen += _amount; info.users[msg.sender].scaledPayout += int256(_amount * info.scaledPayoutPerToken); emit Transfer(msg.sender, address(this), _amount); emit Freeze(msg.sender, _amount); } function _unfreeze(uint256 _amount) internal { require(frozenOf(msg.sender) >= _amount); uint256 _burnedAmount = _amount * BURN_RATE / 100; info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalFrozen; info.totalFrozen -= _amount; info.users[msg.sender].balance -= _burnedAmount; info.users[msg.sender].frozen -= _amount; info.users[msg.sender].scaledPayout -= int256(_amount * info.scaledPayoutPerToken); emit Transfer(address(this), msg.sender, _amount - _burnedAmount); emit Unfreeze(msg.sender, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"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":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Freeze","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":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"Whitelist","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokenSupply","type":"uint256"},{"internalType":"uint256","name":"totalTokensFrozen","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userFrozen","type":"uint256"},{"internalType":"uint256","name":"userDividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_receivers","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"bulkTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"distribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"frozenOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFrozen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"whitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600480546001600160a01b031916339081179091556b033b2e3c9fd0803ce8000000600081815582815260026020908152604080832060010184905580519384525191927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a36100943360016001600160e01b0361009916565b610110565b6004546001600160a01b031633146100b057600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b610f708061011f6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610502578063a9059cbb1461050a578063d7a78db814610536578063dd62ed3e14610553578063e522538114610581578063f59c37081461058957610141565b806342966c681461043457806357f6b812146104515780636623fc46146104a257806370a08231146104bf57806391c05b0b146104e557610141565b80631bf6e00d1161010a5780631bf6e00d146103075780631e7f87bc1461032d57806323b872dd14610335578063313ce5671461036b5780633af32abf146103895780634000aea0146103af57610141565b806265318b1461014657806306fdde031461017e578063095ea7b3146101fb578063153a1f3e1461023b57806318160ddd146102ff575b600080fd5b61016c6004803603602081101561015c57600080fd5b50356001600160a01b03166105b7565b60408051918252519081900360200190f35b6101866105eb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102276004803603604081101561021157600080fd5b506001600160a01b038135169060200135610610565b604080519115158252519081900360200190f35b6102fd6004803603604081101561025157600080fd5b81019060208101813564010000000081111561026c57600080fd5b82018360208201111561027e57600080fd5b803590602001918460208302840111640100000000831117156102a057600080fd5b9193909290916020810190356401000000008111156102be57600080fd5b8201836020820111156102d057600080fd5b803590602001918460208302840111640100000000831117156102f257600080fd5b50909250905061067a565b005b61016c6106d9565b61016c6004803603602081101561031d57600080fd5b50356001600160a01b03166106df565b61016c6106fe565b6102276004803603606081101561034b57600080fd5b506001600160a01b03813581169160208101359091169060400135610704565b61037361077a565b6040805160ff9092168252519081900360200190f35b6102276004803603602081101561039f57600080fd5b50356001600160a01b031661077f565b610227600480360360608110156103c557600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f557600080fd5b82018360208201111561040757600080fd5b8035906020019184600183028401116401000000008311171561042957600080fd5b50909250905061079d565b6102fd6004803603602081101561044a57600080fd5b5035610884565b6104776004803603602081101561046757600080fd5b50356001600160a01b031661096b565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6102fd600480360360208110156104b857600080fd5b50356109b0565b61016c600480360360208110156104d557600080fd5b50356001600160a01b03166109bc565b6102fd600480360360208110156104fb57600080fd5b50356109eb565b610186610a6c565b6102276004803603604081101561052057600080fd5b506001600160a01b038135169060200135610a8b565b6102fd6004803603602081101561054c57600080fd5b5035610aa2565b61016c6004803603604081101561056957600080fd5b506001600160a01b0381358116916020013516610aab565b61016c610ada565b6102fd6004803603604081101561059f57600080fd5b506001600160a01b0381351690602001351515610b6f565b6001600160a01b031660009081526002602081905260409091206004810154910154600354600160401b9102919091030490565b6040518060400160405280600981526020016821bcb132b931b7b4b760b91b81525081565b3360008181526002602090815260408083206001600160a01b03871680855260039091018352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b82811461068657600080fd5b60005b838110156106d2576106c9338686848181106106a157fe5b905060200201356001600160a01b03168585858181106106bd57fe5b90506020020135610be6565b50600101610689565b5050505050565b60005490565b6001600160a01b03166000908152600260208190526040909120015490565b60015490565b6001600160a01b038316600090815260026020908152604080832033845260030190915281205482111561073757600080fd5b6001600160a01b038416600090815260026020908152604080832033845260030190915290208054839003905561076f848484610be6565b506001949350505050565b601281565b6001600160a01b031660009081526002602052604090205460ff1690565b6000806107ab338787610be6565b9050853b63ffffffff81161561087757604051636be32e7360e01b8152336004820181815260248301859052606060448401908152606484018890526001600160a01b038b1693636be32e73939287928b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561084257600080fd5b505af1158015610856573d6000803e3d6000fd5b505050506040513d602081101561086c57600080fd5b505161087757600080fd5b5060019695505050505050565b8061088e336109bc565b101561089957600080fd5b3360009081526002602052604090206001908101805483900390555481901561090757600154600290910490600160401b8202816108d357fe5b600380549290910491909101905560408051828152905130913391600080516020610f1c8339815191529181900360200190a35b6000805482900381556040805183815290513391600080516020610f1c833981519152919081900360200190a36040805182815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15050565b600080600080600061097b6106d9565b6109836106fe565b61098c886109bc565b610995896106df565b61099e8a6105b7565b939a9299509097509550909350915050565b6109b981610d78565b50565b60006109c7826106df565b6001600160a01b038316600090815260026020526040902060010154039050919050565b6001546109f757600080fd5b80610a01336109bc565b1015610a0c57600080fd5b33600090815260026020526040902060019081018054839003905554600160401b820281610a3657fe5b600380549290910491909101905560408051828152905130913391600080516020610f1c8339815191529181900360200190a350565b6040518060400160405280600381526020016221a12960e91b81525081565b6000610a98338484610be6565b5060019392505050565b6109b981610e55565b6001600160a01b0391821660009081526002602090815260408083209390941682526003909201909152205490565b600080610ae6336105b7565b905033600081815260026020908152604091829020600481018054600160401b8702019055600101805485019055815184815291513092600080516020610f1c83398151915292908290030190a360408051828152905133917f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999919081900360200190a2905090565b6004546001600160a01b03163314610b8657600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b600081610bf2856109bc565b1015610bfd57600080fd5b6001600160a01b038416600090815260026020526040902060010180548390039055606460058302046a084595161401484a00000081610c3b6106d9565b031080610c4c5750610c4c8561077f565b15610c55575060005b6001600160a01b0380851660008181526002602090815260409182902060010180548689039081019091558251818152925190948a1692600080516020610f1c83398151915292908290030190a38115610d6f5760015415610d0557600154600290920491600160401b830281610cc857fe5b600380549290910491909101905560408051838152905130916001600160a01b03891691600080516020610f1c8339815191529181900360200190a35b6000805483900381556040805184815290516001600160a01b03891691600080516020610f1c833981519152919081900360200190a36040805183815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15b95945050505050565b80610d82336106df565b1015610d8d57600080fd5b6001546064600583020490600160401b820281610da657fe5b6003805492909104909101815560018054849003815533600081815260026020818152604092839020948501805488900390559084018054889003905593546004909301805493870290930390925581518486038152915190923092600080516020610f1c833981519152929081900390910190a360408051838152905133917f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f919081900360200190a25050565b80610e5f336109bc565b1015610e6a57600080fd5b683635c9adc5dea0000081610e7e336106df565b011015610e8a57600080fd5b6001805482019055336000818152600260208181526040928390209182018054860190556003546004909201805492860290920190915581518481529151309392600080516020610f1c83398151915292908290030190a360408051828152905133917ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0919081900360200190a25056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a72315820f991186390c14d1c1b5ea1d08e42ae608b4b4cc3e555417cf3631bff5474b80b64736f6c634300050d0032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610502578063a9059cbb1461050a578063d7a78db814610536578063dd62ed3e14610553578063e522538114610581578063f59c37081461058957610141565b806342966c681461043457806357f6b812146104515780636623fc46146104a257806370a08231146104bf57806391c05b0b146104e557610141565b80631bf6e00d1161010a5780631bf6e00d146103075780631e7f87bc1461032d57806323b872dd14610335578063313ce5671461036b5780633af32abf146103895780634000aea0146103af57610141565b806265318b1461014657806306fdde031461017e578063095ea7b3146101fb578063153a1f3e1461023b57806318160ddd146102ff575b600080fd5b61016c6004803603602081101561015c57600080fd5b50356001600160a01b03166105b7565b60408051918252519081900360200190f35b6101866105eb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102276004803603604081101561021157600080fd5b506001600160a01b038135169060200135610610565b604080519115158252519081900360200190f35b6102fd6004803603604081101561025157600080fd5b81019060208101813564010000000081111561026c57600080fd5b82018360208201111561027e57600080fd5b803590602001918460208302840111640100000000831117156102a057600080fd5b9193909290916020810190356401000000008111156102be57600080fd5b8201836020820111156102d057600080fd5b803590602001918460208302840111640100000000831117156102f257600080fd5b50909250905061067a565b005b61016c6106d9565b61016c6004803603602081101561031d57600080fd5b50356001600160a01b03166106df565b61016c6106fe565b6102276004803603606081101561034b57600080fd5b506001600160a01b03813581169160208101359091169060400135610704565b61037361077a565b6040805160ff9092168252519081900360200190f35b6102276004803603602081101561039f57600080fd5b50356001600160a01b031661077f565b610227600480360360608110156103c557600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f557600080fd5b82018360208201111561040757600080fd5b8035906020019184600183028401116401000000008311171561042957600080fd5b50909250905061079d565b6102fd6004803603602081101561044a57600080fd5b5035610884565b6104776004803603602081101561046757600080fd5b50356001600160a01b031661096b565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6102fd600480360360208110156104b857600080fd5b50356109b0565b61016c600480360360208110156104d557600080fd5b50356001600160a01b03166109bc565b6102fd600480360360208110156104fb57600080fd5b50356109eb565b610186610a6c565b6102276004803603604081101561052057600080fd5b506001600160a01b038135169060200135610a8b565b6102fd6004803603602081101561054c57600080fd5b5035610aa2565b61016c6004803603604081101561056957600080fd5b506001600160a01b0381358116916020013516610aab565b61016c610ada565b6102fd6004803603604081101561059f57600080fd5b506001600160a01b0381351690602001351515610b6f565b6001600160a01b031660009081526002602081905260409091206004810154910154600354600160401b9102919091030490565b6040518060400160405280600981526020016821bcb132b931b7b4b760b91b81525081565b3360008181526002602090815260408083206001600160a01b03871680855260039091018352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b82811461068657600080fd5b60005b838110156106d2576106c9338686848181106106a157fe5b905060200201356001600160a01b03168585858181106106bd57fe5b90506020020135610be6565b50600101610689565b5050505050565b60005490565b6001600160a01b03166000908152600260208190526040909120015490565b60015490565b6001600160a01b038316600090815260026020908152604080832033845260030190915281205482111561073757600080fd5b6001600160a01b038416600090815260026020908152604080832033845260030190915290208054839003905561076f848484610be6565b506001949350505050565b601281565b6001600160a01b031660009081526002602052604090205460ff1690565b6000806107ab338787610be6565b9050853b63ffffffff81161561087757604051636be32e7360e01b8152336004820181815260248301859052606060448401908152606484018890526001600160a01b038b1693636be32e73939287928b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561084257600080fd5b505af1158015610856573d6000803e3d6000fd5b505050506040513d602081101561086c57600080fd5b505161087757600080fd5b5060019695505050505050565b8061088e336109bc565b101561089957600080fd5b3360009081526002602052604090206001908101805483900390555481901561090757600154600290910490600160401b8202816108d357fe5b600380549290910491909101905560408051828152905130913391600080516020610f1c8339815191529181900360200190a35b6000805482900381556040805183815290513391600080516020610f1c833981519152919081900360200190a36040805182815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15050565b600080600080600061097b6106d9565b6109836106fe565b61098c886109bc565b610995896106df565b61099e8a6105b7565b939a9299509097509550909350915050565b6109b981610d78565b50565b60006109c7826106df565b6001600160a01b038316600090815260026020526040902060010154039050919050565b6001546109f757600080fd5b80610a01336109bc565b1015610a0c57600080fd5b33600090815260026020526040902060019081018054839003905554600160401b820281610a3657fe5b600380549290910491909101905560408051828152905130913391600080516020610f1c8339815191529181900360200190a350565b6040518060400160405280600381526020016221a12960e91b81525081565b6000610a98338484610be6565b5060019392505050565b6109b981610e55565b6001600160a01b0391821660009081526002602090815260408083209390941682526003909201909152205490565b600080610ae6336105b7565b905033600081815260026020908152604091829020600481018054600160401b8702019055600101805485019055815184815291513092600080516020610f1c83398151915292908290030190a360408051828152905133917f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999919081900360200190a2905090565b6004546001600160a01b03163314610b8657600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b600081610bf2856109bc565b1015610bfd57600080fd5b6001600160a01b038416600090815260026020526040902060010180548390039055606460058302046a084595161401484a00000081610c3b6106d9565b031080610c4c5750610c4c8561077f565b15610c55575060005b6001600160a01b0380851660008181526002602090815260409182902060010180548689039081019091558251818152925190948a1692600080516020610f1c83398151915292908290030190a38115610d6f5760015415610d0557600154600290920491600160401b830281610cc857fe5b600380549290910491909101905560408051838152905130916001600160a01b03891691600080516020610f1c8339815191529181900360200190a35b6000805483900381556040805184815290516001600160a01b03891691600080516020610f1c833981519152919081900360200190a36040805183815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15b95945050505050565b80610d82336106df565b1015610d8d57600080fd5b6001546064600583020490600160401b820281610da657fe5b6003805492909104909101815560018054849003815533600081815260026020818152604092839020948501805488900390559084018054889003905593546004909301805493870290930390925581518486038152915190923092600080516020610f1c833981519152929081900390910190a360408051838152905133917f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f919081900360200190a25050565b80610e5f336109bc565b1015610e6a57600080fd5b683635c9adc5dea0000081610e7e336106df565b011015610e8a57600080fd5b6001805482019055336000818152600260208181526040928390209182018054860190556003546004909201805492860290920190915581518481529151309392600080516020610f1c83398151915292908290030190a360408051828152905133917ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0919081900360200190a25056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a72315820f991186390c14d1c1b5ea1d08e42ae608b4b4cc3e555417cf3631bff5474b80b64736f6c634300050d0032
Deployed Bytecode Sourcemap
158:7221:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;158:7221:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4768:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4768:200:0;-1:-1:-1;;;;;4768:200:0;;:::i;:::-;;;;;;;;;;;;;;;;470:41;;;:::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;470:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3065:203:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3900:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3900:259:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3900:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3900:259: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;3900:259:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3900:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3900:259: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;-1:-1;3900:259:0;;-1:-1:-1;3900:259:0;-1:-1:-1;3900:259:0;:::i;:::-;;4348:86;;;:::i;4659:104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4659:104:0;-1:-1:-1;;;;;4659:104:0;;:::i;4439:86::-;;;:::i;3273:266::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3273:266:0;;;;;;;;;;;;;;;;;:::i;556:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5114:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5114:111:0;-1:-1:-1;;;;;5114:111:0;;:::i;3544:351::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3544:351:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3544:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3544:351:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;3544:351:0;;-1:-1:-1;3544:351:0;-1:-1:-1;3544:351:0;:::i;2109:502::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2109:502:0;;:::i;5230:275::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5230:275:0;-1:-1:-1;;;;;5230:275:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1652:72;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1652:72:0;;:::i;4530:124::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4530:124:0;-1:-1:-1;;;;;4530:124:0;;:::i;2616:306::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2616:306:0;;:::i;515:37::-;;;:::i;2927:133::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2927:133:0;;;;;;;;:::i;1579:68::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1579:68:0;;:::i;4973:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4973:136:0;;;;;;;;;;:::i;1729:375::-;;;:::i;4164:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4164:177:0;;;;;;;;;;:::i;4768:200::-;-1:-1:-1;;;;;4917:17:0;4825:7;4917:17;;;:10;:17;;;;;;;;:30;;;;4889:24;;;4861:25;;-1:-1:-1;;;4861:52:0;;4854:93;;;;4846:117;;4768:200::o;470:41::-;;;;;;;;;;;;;;-1:-1:-1;;;470:41:0;;;;:::o;3065:203::-;3157:10;3135:4;3146:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3146:42:0;;;;;:32;;;;:42;;;;;:52;;;3208:39;;;;;;;3135:4;;3146:42;;3157:10;;3208:39;;;;;;;;-1:-1:-1;3259:4:0;3065:203;;;;:::o;3900:259::-;4004:36;;;3996:45;;;;;;4051:9;4046:109;4066:21;;;4046:109;;;4100:49;4110:10;4122;;4133:1;4122:13;;;;;;;;;;;;;-1:-1:-1;;;;;4122:13:0;4137:8;;4146:1;4137:11;;;;;;;;;;;;;4100:9;:49::i;:::-;-1:-1:-1;4089:3:0;;4046:109;;;;3900:259;;;;:::o;4348:86::-;4392:7;4413:16;4348:86;:::o;4659:104::-;-1:-1:-1;;;;;4734:17:0;4713:7;4734:17;;;:10;:17;;;;;;;;:24;;;4659:104::o;4439:86::-;4504:16;;4439:86;:::o;3273:266::-;-1:-1:-1;;;;;3377:17:0;;3358:4;3377:17;;;:10;:17;;;;;;;;3405:10;3377:39;;:27;;:39;;;;;;:50;-1:-1:-1;3377:50:0;3369:59;;;;;;-1:-1:-1;;;;;3433:17:0;;:4;:17;;;:10;:17;;;;;;;;3461:10;3433:39;;:27;;:39;;;;;:50;;;;;;;3488:30;3444:5;3505:3;3476:7;3488:9;:30::i;:::-;-1:-1:-1;3530:4:0;;3273:266;-1:-1:-1;;;;3273:266:0:o;556:35::-;589:2;556:35;:::o;5114:111::-;-1:-1:-1;;;;;5191:17:0;5173:4;5191:17;;;:10;:17;;;;;:29;;;;5114:111::o;3544:351::-;3639:4;3650:20;3673:35;3683:10;3695:3;3700:7;3673:9;:35::i;:::-;3650:58;-1:-1:-1;3754:16:0;;3783:9;;;;3779:96;;3808:60;;-1:-1:-1;;;3808:60:0;;3836:10;3808:60;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3808:27:0;;;;;3836:10;3848:12;;3862:5;;;;3808:60;;;;3862:5;;;;3808:60;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3808:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3808:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3808:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3808:60:0;3800:69;;;;;;-1:-1:-1;3886:4:0;;3544:351;-1:-1:-1;;;;;;3544:351:0:o;2109:502::-;2187:7;2162:21;2172:10;2162:9;:21::i;:::-;:32;;2154:41;;;;;;2211:10;2200:4;:22;;;:10;:22;;;;;:30;;;;:41;;;;;;;2286:16;2234:7;;2286:20;2282:199;;2398:16;;2331:1;2314:18;;;;-1:-1:-1;;;2367:28:0;;2398:16;2367:47;;;;2338:25;:76;;2367:47;;;;2338:76;;;;;;2425:50;;;;;;;;2454:4;;2434:10;;-1:-1:-1;;;;;;;;;;;2425:50:0;;;;;;;;2282:199;2485:4;:33;;;;;;;2528:49;;;;;;;;2537:10;;-1:-1:-1;;;;;;;;;;;2528:49:0;;;;;;;;;2587:19;;;;;;;;;;;;;;;;;2109:502;;:::o;5230:275::-;5286:24;5312:25;5339:19;5360:18;5380:21;5416:13;:11;:13::i;:::-;5431;:11;:13::i;:::-;5446:16;5456:5;5446:9;:16::i;:::-;5464:15;5473:5;5464:8;:15::i;:::-;5481:18;5493:5;5481:11;:18::i;:::-;5408:92;;;;-1:-1:-1;5408:92:0;;-1:-1:-1;5408:92:0;-1:-1:-1;5408:92:0;;-1:-1:-1;5230:275:0;-1:-1:-1;;5230:275:0:o;1652:72::-;1701:18;1711:7;1701:9;:18::i;:::-;1652:72;:::o;4530:124::-;4585:7;4634:15;4643:5;4634:8;:15::i;:::-;-1:-1:-1;;;;;4606:17:0;;:4;:17;;;:10;:17;;;;;:25;;;:43;;-1:-1:-1;4530:124:0;;;:::o;2616:306::-;2675:16;;2667:29;;;;;;2734:7;2709:21;2719:10;2709:9;:21::i;:::-;:32;;2701:41;;;;;;2758:10;2747:4;:22;;;:10;:22;;;;;:30;;;;:41;;;;;;;2847:16;-1:-1:-1;;;2822:22:0;;2847:16;2822:41;;;;2793:25;:70;;2822:41;;;;2793:70;;;;;;2873:44;;;;;;;;2902:4;;2882:10;;-1:-1:-1;;;;;;;;;;;2873:44:0;;;;;;;;2616:306;:::o;515:37::-;;;;;;;;;;;;;;-1:-1:-1;;;515:37:0;;;;:::o;2927:133::-;2993:4;3004:35;3014:10;3026:3;3031:7;3004:9;:35::i;:::-;-1:-1:-1;3051:4:0;;2927:133;-1:-1:-1;;;2927:133:0:o;1579:68::-;1626:16;1634:7;1626;:16::i;4973:136::-;-1:-1:-1;;;;;5067:17:0;;;5046:7;5067:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;;;:37;;;;;;4973:136::o;1729:375::-;1766:7;1780:18;1801:23;1813:10;1801:11;:23::i;:::-;1780:44;-1:-1:-1;1869:10:0;1858:4;:22;;;:10;:22;;;;;;;;;:35;;;:72;;-1:-1:-1;;;1904:25:0;;1858:72;;;-1:-1:-1;1935:30:0;:44;;;;;;1989:47;;;;;;;2006:4;;-1:-1:-1;;;;;;;;;;;1989:47:0;;;;;;;;2046:31;;;;;;;;2054:10;;2046:31;;;;;;;;;;2089:10;-1:-1:-1;1729:375:0;:::o;4164:177::-;4246:10;;-1:-1:-1;;;;;4246:10:0;4232;:24;4224:33;;;;;;-1:-1:-1;;;;;4262:17:0;;:4;:17;;;:10;:17;;;;;;;;;:39;;-1:-1:-1;;4262:39:0;;;;;;;;;;4311:25;;;;;;;;;;;;;;;;;4164:177;;:::o;5512:885::-;5594:7;5636;5616:16;5626:5;5616:9;:16::i;:::-;:27;;5608:36;;;;;;-1:-1:-1;;;;;5649:17:0;;:4;:17;;;:10;:17;;;;;:25;;:36;;;;;;;5736:3;325:1;5714:19;;:25;5780:35;5714:25;5748:13;:11;:13::i;:::-;:29;:67;:91;;;;5819:20;5833:5;5819:13;:20::i;:::-;5744:126;;;-1:-1:-1;5863:1:0;5744:126;-1:-1:-1;;;;;5925:15:0;;;5874:20;5925:15;;;:10;:15;;;;;;;;;:23;;:39;;5897:23;;;5925:39;;;;;;5974:34;;;;;;;5897:23;;5974:34;;;-1:-1:-1;;;;;;;;;;;5974:34:0;;;;;;;;6017:17;;6013:356;;6046:16;;:20;6042:198;;6160:16;;6092:1;6075:18;;;;-1:-1:-1;;;6129:28:0;;6160:16;6129:47;;;;6100:25;:76;;6129:47;;;;6100:76;;;;;;6188:45;;;;;;;;6212:4;;-1:-1:-1;;;;;6188:45:0;;;-1:-1:-1;;;;;;;;;;;6188:45:0;;;;;;;;6042:198;6245:4;:33;;;;;;;6289:44;;;;;;;;-1:-1:-1;;;;;6289:44:0;;;-1:-1:-1;;;;;;;;;;;6289:44:0;;;;;;;;;6344:19;;;;;;;;;;;;;;;;;6013:356;6380:12;5512:885;-1:-1:-1;;;;;5512:885:0:o;6821:555::-;6903:7;6879:20;6888:10;6879:8;:20::i;:::-;:31;;6871:40;;;;;;7030:16;;6962:3;325:1;6940:19;;:25;;-1:-1:-1;;;6999:28:0;;7030:16;6999:47;;;;6970:25;:76;;6999:47;;;;6970:76;;;;;-1:-1:-1;7051:27:0;;;;;;;7094:10;-1:-1:-1;7083:22:0;;;-1:-1:-1;7083:22:0;;;;;;;;;:30;;;:47;;;;;;;7135:29;;;:40;;;;;;;7236:25;;7180:35;;;;:82;;7226:35;;;7180:82;;;;;;7272:60;;7308:23;;;7272:60;;;;7094:10;;7289:4;;-1:-1:-1;;;;;;;;;;;7272:60:0;;;;;;;;;;7342:29;;;;;;;;7351:10;;7342:29;;;;;;;;;;6821:555;;:::o;6402:414::-;6483:7;6458:21;6468:10;6458:9;:21::i;:::-;:32;;6450:41;;;;;;451:4;6527:7;6504:20;6513:10;6504:8;:20::i;:::-;:30;:51;;6496:60;;;;;;6561:16;:27;;;;;;6604:10;-1:-1:-1;6593:22:0;;;:10;:22;;;;;;;;;:29;;;:40;;;;;;6694:25;;6638:35;;;;:82;;6684:35;;;6638:82;;;;;;6730:44;;;;;;;6759:4;;6604:10;-1:-1:-1;;;;;;;;;;;6730:44:0;;;;;;;;6784:27;;;;;;;;6791:10;;6784:27;;;;;;;;;;6402:414;:::o
Swarm Source
bzzr://f991186390c14d1c1b5ea1d08e42ae608b4b4cc3e555417cf3631bff5474b80b
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.