Overview
Max Total Supply
788,029,488.288971477447955993 PYRO
Holders
23,551 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH (+3.08%)
Onchain Market Cap
$19,823.58
Circulating Supply Market Cap
$19,687.37
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,000 PYROValue
$0.03 ( ~1.19213945115355E-05 Eth) [0.0001%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PyroNetwork
Compiler Version
v0.5.13+commit.5b0b510c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-01-10 */ pragma solidity ^0.5.13; interface Callable { function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool); } contract PyroNetwork { 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 = "PYRO Network"; string constant public symbol = "PYRO"; 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
608060405234801561001057600080fd5b50600480546001600160a01b031916339081179091556b033b2e3c9fd0803ce8000000600081815582815260026020908152604080832060010184905580519384525191927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a36100943360016001600160e01b0361009916565b610110565b6004546001600160a01b031633146100b057600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b610f748061011f6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610502578063a9059cbb1461050a578063d7a78db814610536578063dd62ed3e14610553578063e522538114610581578063f59c37081461058957610141565b806342966c681461043457806357f6b812146104515780636623fc46146104a257806370a08231146104bf57806391c05b0b146104e557610141565b80631bf6e00d1161010a5780631bf6e00d146103075780631e7f87bc1461032d57806323b872dd14610335578063313ce5671461036b5780633af32abf146103895780634000aea0146103af57610141565b806265318b1461014657806306fdde031461017e578063095ea7b3146101fb578063153a1f3e1461023b57806318160ddd146102ff575b600080fd5b61016c6004803603602081101561015c57600080fd5b50356001600160a01b03166105b7565b60408051918252519081900360200190f35b6101866105eb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102276004803603604081101561021157600080fd5b506001600160a01b038135169060200135610613565b604080519115158252519081900360200190f35b6102fd6004803603604081101561025157600080fd5b81019060208101813564010000000081111561026c57600080fd5b82018360208201111561027e57600080fd5b803590602001918460208302840111640100000000831117156102a057600080fd5b9193909290916020810190356401000000008111156102be57600080fd5b8201836020820111156102d057600080fd5b803590602001918460208302840111640100000000831117156102f257600080fd5b50909250905061067d565b005b61016c6106dc565b61016c6004803603602081101561031d57600080fd5b50356001600160a01b03166106e2565b61016c610701565b6102276004803603606081101561034b57600080fd5b506001600160a01b03813581169160208101359091169060400135610707565b61037361077d565b6040805160ff9092168252519081900360200190f35b6102276004803603602081101561039f57600080fd5b50356001600160a01b0316610782565b610227600480360360608110156103c557600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f557600080fd5b82018360208201111561040757600080fd5b8035906020019184600183028401116401000000008311171561042957600080fd5b5090925090506107a0565b6102fd6004803603602081101561044a57600080fd5b5035610887565b6104776004803603602081101561046757600080fd5b50356001600160a01b031661096e565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6102fd600480360360208110156104b857600080fd5b50356109b3565b61016c600480360360208110156104d557600080fd5b50356001600160a01b03166109bf565b6102fd600480360360208110156104fb57600080fd5b50356109ee565b610186610a6f565b6102276004803603604081101561052057600080fd5b506001600160a01b038135169060200135610a8f565b6102fd6004803603602081101561054c57600080fd5b5035610aa6565b61016c6004803603604081101561056957600080fd5b506001600160a01b0381358116916020013516610aaf565b61016c610ade565b6102fd6004803603604081101561059f57600080fd5b506001600160a01b0381351690602001351515610b73565b6001600160a01b031660009081526002602081905260409091206004810154910154600354600160401b9102919091030490565b6040518060400160405280600c81526020016b5059524f204e6574776f726b60a01b81525081565b3360008181526002602090815260408083206001600160a01b03871680855260039091018352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b82811461068957600080fd5b60005b838110156106d5576106cc338686848181106106a457fe5b905060200201356001600160a01b03168585858181106106c057fe5b90506020020135610bea565b5060010161068c565b5050505050565b60005490565b6001600160a01b03166000908152600260208190526040909120015490565b60015490565b6001600160a01b038316600090815260026020908152604080832033845260030190915281205482111561073a57600080fd5b6001600160a01b0384166000908152600260209081526040808320338452600301909152902080548390039055610772848484610bea565b506001949350505050565b601281565b6001600160a01b031660009081526002602052604090205460ff1690565b6000806107ae338787610bea565b9050853b63ffffffff81161561087a57604051636be32e7360e01b8152336004820181815260248301859052606060448401908152606484018890526001600160a01b038b1693636be32e73939287928b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561084557600080fd5b505af1158015610859573d6000803e3d6000fd5b505050506040513d602081101561086f57600080fd5b505161087a57600080fd5b5060019695505050505050565b80610891336109bf565b101561089c57600080fd5b3360009081526002602052604090206001908101805483900390555481901561090a57600154600290910490600160401b8202816108d657fe5b600380549290910491909101905560408051828152905130913391600080516020610f208339815191529181900360200190a35b6000805482900381556040805183815290513391600080516020610f20833981519152919081900360200190a36040805182815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15050565b600080600080600061097e6106dc565b610986610701565b61098f886109bf565b610998896106e2565b6109a18a6105b7565b939a9299509097509550909350915050565b6109bc81610d7c565b50565b60006109ca826106e2565b6001600160a01b038316600090815260026020526040902060010154039050919050565b6001546109fa57600080fd5b80610a04336109bf565b1015610a0f57600080fd5b33600090815260026020526040902060019081018054839003905554600160401b820281610a3957fe5b600380549290910491909101905560408051828152905130913391600080516020610f208339815191529181900360200190a350565b604051806040016040528060048152602001635059524f60e01b81525081565b6000610a9c338484610bea565b5060019392505050565b6109bc81610e59565b6001600160a01b0391821660009081526002602090815260408083209390941682526003909201909152205490565b600080610aea336105b7565b905033600081815260026020908152604091829020600481018054600160401b8702019055600101805485019055815184815291513092600080516020610f2083398151915292908290030190a360408051828152905133917f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999919081900360200190a2905090565b6004546001600160a01b03163314610b8a57600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b600081610bf6856109bf565b1015610c0157600080fd5b6001600160a01b038416600090815260026020526040902060010180548390039055606460058302046a084595161401484a00000081610c3f6106dc565b031080610c505750610c5085610782565b15610c59575060005b6001600160a01b0380851660008181526002602090815260409182902060010180548689039081019091558251818152925190948a1692600080516020610f2083398151915292908290030190a38115610d735760015415610d0957600154600290920491600160401b830281610ccc57fe5b600380549290910491909101905560408051838152905130916001600160a01b03891691600080516020610f208339815191529181900360200190a35b6000805483900381556040805184815290516001600160a01b03891691600080516020610f20833981519152919081900360200190a36040805183815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15b95945050505050565b80610d86336106e2565b1015610d9157600080fd5b6001546064600583020490600160401b820281610daa57fe5b6003805492909104909101815560018054849003815533600081815260026020818152604092839020948501805488900390559084018054889003905593546004909301805493870290930390925581518486038152915190923092600080516020610f20833981519152929081900390910190a360408051838152905133917f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f919081900360200190a25050565b80610e63336109bf565b1015610e6e57600080fd5b683635c9adc5dea0000081610e82336106e2565b011015610e8e57600080fd5b6001805482019055336000818152600260208181526040928390209182018054860190556003546004909201805492860290920190915581518481529151309392600080516020610f2083398151915292908290030190a360408051828152905133917ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0919081900360200190a25056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a72315820ce9ad4519dd366cb640c9b6ebc1467ba1e58ed80e0f0ac1ec52c9ff51bf562d464736f6c634300050d0032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610502578063a9059cbb1461050a578063d7a78db814610536578063dd62ed3e14610553578063e522538114610581578063f59c37081461058957610141565b806342966c681461043457806357f6b812146104515780636623fc46146104a257806370a08231146104bf57806391c05b0b146104e557610141565b80631bf6e00d1161010a5780631bf6e00d146103075780631e7f87bc1461032d57806323b872dd14610335578063313ce5671461036b5780633af32abf146103895780634000aea0146103af57610141565b806265318b1461014657806306fdde031461017e578063095ea7b3146101fb578063153a1f3e1461023b57806318160ddd146102ff575b600080fd5b61016c6004803603602081101561015c57600080fd5b50356001600160a01b03166105b7565b60408051918252519081900360200190f35b6101866105eb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102276004803603604081101561021157600080fd5b506001600160a01b038135169060200135610613565b604080519115158252519081900360200190f35b6102fd6004803603604081101561025157600080fd5b81019060208101813564010000000081111561026c57600080fd5b82018360208201111561027e57600080fd5b803590602001918460208302840111640100000000831117156102a057600080fd5b9193909290916020810190356401000000008111156102be57600080fd5b8201836020820111156102d057600080fd5b803590602001918460208302840111640100000000831117156102f257600080fd5b50909250905061067d565b005b61016c6106dc565b61016c6004803603602081101561031d57600080fd5b50356001600160a01b03166106e2565b61016c610701565b6102276004803603606081101561034b57600080fd5b506001600160a01b03813581169160208101359091169060400135610707565b61037361077d565b6040805160ff9092168252519081900360200190f35b6102276004803603602081101561039f57600080fd5b50356001600160a01b0316610782565b610227600480360360608110156103c557600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f557600080fd5b82018360208201111561040757600080fd5b8035906020019184600183028401116401000000008311171561042957600080fd5b5090925090506107a0565b6102fd6004803603602081101561044a57600080fd5b5035610887565b6104776004803603602081101561046757600080fd5b50356001600160a01b031661096e565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6102fd600480360360208110156104b857600080fd5b50356109b3565b61016c600480360360208110156104d557600080fd5b50356001600160a01b03166109bf565b6102fd600480360360208110156104fb57600080fd5b50356109ee565b610186610a6f565b6102276004803603604081101561052057600080fd5b506001600160a01b038135169060200135610a8f565b6102fd6004803603602081101561054c57600080fd5b5035610aa6565b61016c6004803603604081101561056957600080fd5b506001600160a01b0381358116916020013516610aaf565b61016c610ade565b6102fd6004803603604081101561059f57600080fd5b506001600160a01b0381351690602001351515610b73565b6001600160a01b031660009081526002602081905260409091206004810154910154600354600160401b9102919091030490565b6040518060400160405280600c81526020016b5059524f204e6574776f726b60a01b81525081565b3360008181526002602090815260408083206001600160a01b03871680855260039091018352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b82811461068957600080fd5b60005b838110156106d5576106cc338686848181106106a457fe5b905060200201356001600160a01b03168585858181106106c057fe5b90506020020135610bea565b5060010161068c565b5050505050565b60005490565b6001600160a01b03166000908152600260208190526040909120015490565b60015490565b6001600160a01b038316600090815260026020908152604080832033845260030190915281205482111561073a57600080fd5b6001600160a01b0384166000908152600260209081526040808320338452600301909152902080548390039055610772848484610bea565b506001949350505050565b601281565b6001600160a01b031660009081526002602052604090205460ff1690565b6000806107ae338787610bea565b9050853b63ffffffff81161561087a57604051636be32e7360e01b8152336004820181815260248301859052606060448401908152606484018890526001600160a01b038b1693636be32e73939287928b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561084557600080fd5b505af1158015610859573d6000803e3d6000fd5b505050506040513d602081101561086f57600080fd5b505161087a57600080fd5b5060019695505050505050565b80610891336109bf565b101561089c57600080fd5b3360009081526002602052604090206001908101805483900390555481901561090a57600154600290910490600160401b8202816108d657fe5b600380549290910491909101905560408051828152905130913391600080516020610f208339815191529181900360200190a35b6000805482900381556040805183815290513391600080516020610f20833981519152919081900360200190a36040805182815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15050565b600080600080600061097e6106dc565b610986610701565b61098f886109bf565b610998896106e2565b6109a18a6105b7565b939a9299509097509550909350915050565b6109bc81610d7c565b50565b60006109ca826106e2565b6001600160a01b038316600090815260026020526040902060010154039050919050565b6001546109fa57600080fd5b80610a04336109bf565b1015610a0f57600080fd5b33600090815260026020526040902060019081018054839003905554600160401b820281610a3957fe5b600380549290910491909101905560408051828152905130913391600080516020610f208339815191529181900360200190a350565b604051806040016040528060048152602001635059524f60e01b81525081565b6000610a9c338484610bea565b5060019392505050565b6109bc81610e59565b6001600160a01b0391821660009081526002602090815260408083209390941682526003909201909152205490565b600080610aea336105b7565b905033600081815260026020908152604091829020600481018054600160401b8702019055600101805485019055815184815291513092600080516020610f2083398151915292908290030190a360408051828152905133917f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999919081900360200190a2905090565b6004546001600160a01b03163314610b8a57600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b600081610bf6856109bf565b1015610c0157600080fd5b6001600160a01b038416600090815260026020526040902060010180548390039055606460058302046a084595161401484a00000081610c3f6106dc565b031080610c505750610c5085610782565b15610c59575060005b6001600160a01b0380851660008181526002602090815260409182902060010180548689039081019091558251818152925190948a1692600080516020610f2083398151915292908290030190a38115610d735760015415610d0957600154600290920491600160401b830281610ccc57fe5b600380549290910491909101905560408051838152905130916001600160a01b03891691600080516020610f208339815191529181900360200190a35b6000805483900381556040805184815290516001600160a01b03891691600080516020610f20833981519152919081900360200190a36040805183815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15b95945050505050565b80610d86336106e2565b1015610d9157600080fd5b6001546064600583020490600160401b820281610daa57fe5b6003805492909104909101815560018054849003815533600081815260026020818152604092839020948501805488900390559084018054889003905593546004909301805493870290930390925581518486038152915190923092600080516020610f20833981519152929081900390910190a360408051838152905133917f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f919081900360200190a25050565b80610e63336109bf565b1015610e6e57600080fd5b683635c9adc5dea0000081610e82336106e2565b011015610e8e57600080fd5b6001805482019055336000818152600260208181526040928390209182018054860190556003546004909201805492860290920190915581518481529151309392600080516020610f2083398151915292908290030190a360408051828152905133917ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0919081900360200190a25056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a72315820ce9ad4519dd366cb640c9b6ebc1467ba1e58ed80e0f0ac1ec52c9ff51bf562d464736f6c634300050d0032
Deployed Bytecode Sourcemap
159:7227:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:7227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4775:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4775:200:0;-1:-1:-1;;;;;4775:200:0;;:::i;:::-;;;;;;;;;;;;;;;;473:44;;;:::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;473:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3072:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3072:203:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3907:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3907:259:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3907:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3907: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;3907:259:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3907:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3907: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;3907:259:0;;-1:-1:-1;3907:259:0;-1:-1:-1;3907:259:0;:::i;:::-;;4355:86;;;:::i;4666:104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4666:104:0;-1:-1:-1;;;;;4666:104:0;;:::i;4446:86::-;;;:::i;3280:266::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3280:266:0;;;;;;;;;;;;;;;;;:::i;563:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5121:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5121:111:0;-1:-1:-1;;;;;5121:111:0;;:::i;3551:351::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3551:351:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3551:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3551: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;3551:351:0;;-1:-1:-1;3551:351:0;-1:-1:-1;3551:351:0;:::i;2116:502::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2116:502:0;;:::i;5237:275::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5237:275:0;-1:-1:-1;;;;;5237:275:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:72;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1659:72:0;;:::i;4537:124::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4537:124:0;-1:-1:-1;;;;;4537:124:0;;:::i;2623:306::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2623:306:0;;:::i;521:38::-;;;:::i;2934:133::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2934:133:0;;;;;;;;:::i;1586:68::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1586:68:0;;:::i;4980:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4980:136:0;;;;;;;;;;:::i;1736:375::-;;;:::i;4171:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4171:177:0;;;;;;;;;;:::i;4775:200::-;-1:-1:-1;;;;;4924:17:0;4832:7;4924:17;;;:10;:17;;;;;;;;:30;;;;4896:24;;;4868:25;;-1:-1:-1;;;4868:52:0;;4861:93;;;;4853:117;;4775:200::o;473:44::-;;;;;;;;;;;;;;-1:-1:-1;;;473:44:0;;;;:::o;3072:203::-;3164:10;3142:4;3153:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3153:42:0;;;;;:32;;;;:42;;;;;:52;;;3215:39;;;;;;;3142:4;;3153:42;;3164:10;;3215:39;;;;;;;;-1:-1:-1;3266:4:0;3072:203;;;;:::o;3907:259::-;4011:36;;;4003:45;;;;;;4058:9;4053:109;4073:21;;;4053:109;;;4107:49;4117:10;4129;;4140:1;4129:13;;;;;;;;;;;;;-1:-1:-1;;;;;4129:13:0;4144:8;;4153:1;4144:11;;;;;;;;;;;;;4107:9;:49::i;:::-;-1:-1:-1;4096:3:0;;4053:109;;;;3907:259;;;;:::o;4355:86::-;4399:7;4420:16;4355:86;:::o;4666:104::-;-1:-1:-1;;;;;4741:17:0;4720:7;4741:17;;;:10;:17;;;;;;;;:24;;;4666:104::o;4446:86::-;4511:16;;4446:86;:::o;3280:266::-;-1:-1:-1;;;;;3384:17:0;;3365:4;3384:17;;;:10;:17;;;;;;;;3412:10;3384:39;;:27;;:39;;;;;;:50;-1:-1:-1;3384:50:0;3376:59;;;;;;-1:-1:-1;;;;;3440:17:0;;:4;:17;;;:10;:17;;;;;;;;3468:10;3440:39;;:27;;:39;;;;;:50;;;;;;;3495:30;3451:5;3512:3;3483:7;3495:9;:30::i;:::-;-1:-1:-1;3537:4:0;;3280:266;-1:-1:-1;;;;3280:266:0:o;563:35::-;596:2;563:35;:::o;5121:111::-;-1:-1:-1;;;;;5198:17:0;5180:4;5198:17;;;:10;:17;;;;;:29;;;;5121:111::o;3551:351::-;3646:4;3657:20;3680:35;3690:10;3702:3;3707:7;3680:9;:35::i;:::-;3657:58;-1:-1:-1;3761:16:0;;3790:9;;;;3786:96;;3815:60;;-1:-1:-1;;;3815:60:0;;3843:10;3815:60;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3815:27:0;;;;;3843:10;3855:12;;3869:5;;;;3815:60;;;;3869:5;;;;3815: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;;3815:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3815:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3815:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3815:60:0;3807:69;;;;;;-1:-1:-1;3893:4:0;;3551:351;-1:-1:-1;;;;;;3551:351:0:o;2116:502::-;2194:7;2169:21;2179:10;2169:9;:21::i;:::-;:32;;2161:41;;;;;;2218:10;2207:4;:22;;;:10;:22;;;;;:30;;;;:41;;;;;;;2293:16;2241:7;;2293:20;2289:199;;2405:16;;2338:1;2321:18;;;;-1:-1:-1;;;2374:28:0;;2405:16;2374:47;;;;2345:25;:76;;2374:47;;;;2345:76;;;;;;2432:50;;;;;;;;2461:4;;2441:10;;-1:-1:-1;;;;;;;;;;;2432:50:0;;;;;;;;2289:199;2492:4;:33;;;;;;;2535:49;;;;;;;;2544:10;;-1:-1:-1;;;;;;;;;;;2535:49:0;;;;;;;;;2594:19;;;;;;;;;;;;;;;;;2116:502;;:::o;5237:275::-;5293:24;5319:25;5346:19;5367:18;5387:21;5423:13;:11;:13::i;:::-;5438;:11;:13::i;:::-;5453:16;5463:5;5453:9;:16::i;:::-;5471:15;5480:5;5471:8;:15::i;:::-;5488:18;5500:5;5488:11;:18::i;:::-;5415:92;;;;-1:-1:-1;5415:92:0;;-1:-1:-1;5415:92:0;-1:-1:-1;5415:92:0;;-1:-1:-1;5237:275:0;-1:-1:-1;;5237:275:0:o;1659:72::-;1708:18;1718:7;1708:9;:18::i;:::-;1659:72;:::o;4537:124::-;4592:7;4641:15;4650:5;4641:8;:15::i;:::-;-1:-1:-1;;;;;4613:17:0;;:4;:17;;;:10;:17;;;;;:25;;;:43;;-1:-1:-1;4537:124:0;;;:::o;2623:306::-;2682:16;;2674:29;;;;;;2741:7;2716:21;2726:10;2716:9;:21::i;:::-;:32;;2708:41;;;;;;2765:10;2754:4;:22;;;:10;:22;;;;;:30;;;;:41;;;;;;;2854:16;-1:-1:-1;;;2829:22:0;;2854:16;2829:41;;;;2800:25;:70;;2829:41;;;;2800:70;;;;;;2880:44;;;;;;;;2909:4;;2889:10;;-1:-1:-1;;;;;;;;;;;2880:44:0;;;;;;;;2623:306;:::o;521:38::-;;;;;;;;;;;;;;-1:-1:-1;;;521:38:0;;;;:::o;2934:133::-;3000:4;3011:35;3021:10;3033:3;3038:7;3011:9;:35::i;:::-;-1:-1:-1;3058:4:0;;2934:133;-1:-1:-1;;;2934:133:0:o;1586:68::-;1633:16;1641:7;1633;:16::i;4980:136::-;-1:-1:-1;;;;;5074:17:0;;;5053:7;5074:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;;;:37;;;;;;4980:136::o;1736:375::-;1773:7;1787:18;1808:23;1820:10;1808:11;:23::i;:::-;1787:44;-1:-1:-1;1876:10:0;1865:4;:22;;;:10;:22;;;;;;;;;:35;;;:72;;-1:-1:-1;;;1911:25:0;;1865:72;;;-1:-1:-1;1942:30:0;:44;;;;;;1996:47;;;;;;;2013:4;;-1:-1:-1;;;;;;;;;;;1996:47:0;;;;;;;;2053:31;;;;;;;;2061:10;;2053:31;;;;;;;;;;2096:10;-1:-1:-1;1736:375:0;:::o;4171:177::-;4253:10;;-1:-1:-1;;;;;4253:10:0;4239;:24;4231:33;;;;;;-1:-1:-1;;;;;4269:17:0;;:4;:17;;;:10;:17;;;;;;;;;:39;;-1:-1:-1;;4269:39:0;;;;;;;;;;4318:25;;;;;;;;;;;;;;;;;4171:177;;:::o;5519:885::-;5601:7;5643;5623:16;5633:5;5623:9;:16::i;:::-;:27;;5615:36;;;;;;-1:-1:-1;;;;;5656:17:0;;:4;:17;;;:10;:17;;;;;:25;;:36;;;;;;;5743:3;328:1;5721:19;;:25;5787:35;5721:25;5755:13;:11;:13::i;:::-;:29;:67;:91;;;;5826:20;5840:5;5826:13;:20::i;:::-;5751:126;;;-1:-1:-1;5870:1:0;5751:126;-1:-1:-1;;;;;5932:15:0;;;5881:20;5932:15;;;:10;:15;;;;;;;;;:23;;:39;;5904:23;;;5932:39;;;;;;5981:34;;;;;;;5904:23;;5981:34;;;-1:-1:-1;;;;;;;;;;;5981:34:0;;;;;;;;6024:17;;6020:356;;6053:16;;:20;6049:198;;6167:16;;6099:1;6082:18;;;;-1:-1:-1;;;6136:28:0;;6167:16;6136:47;;;;6107:25;:76;;6136:47;;;;6107:76;;;;;;6195:45;;;;;;;;6219:4;;-1:-1:-1;;;;;6195:45:0;;;-1:-1:-1;;;;;;;;;;;6195:45:0;;;;;;;;6049:198;6252:4;:33;;;;;;;6296:44;;;;;;;;-1:-1:-1;;;;;6296:44:0;;;-1:-1:-1;;;;;;;;;;;6296:44:0;;;;;;;;;6351:19;;;;;;;;;;;;;;;;;6020:356;6387:12;5519:885;-1:-1:-1;;;;;5519:885:0:o;6828:555::-;6910:7;6886:20;6895:10;6886:8;:20::i;:::-;:31;;6878:40;;;;;;7037:16;;6969:3;328:1;6947:19;;:25;;-1:-1:-1;;;7006:28:0;;7037:16;7006:47;;;;6977:25;:76;;7006:47;;;;6977:76;;;;;-1:-1:-1;7058:27:0;;;;;;;7101:10;-1:-1:-1;7090:22:0;;;-1:-1:-1;7090:22:0;;;;;;;;;:30;;;:47;;;;;;;7142:29;;;:40;;;;;;;7243:25;;7187:35;;;;:82;;7233:35;;;7187:82;;;;;;7279:60;;7315:23;;;7279:60;;;;7101:10;;7296:4;;-1:-1:-1;;;;;;;;;;;7279:60:0;;;;;;;;;;7349:29;;;;;;;;7358:10;;7349:29;;;;;;;;;;6828:555;;:::o;6409:414::-;6490:7;6465:21;6475:10;6465:9;:21::i;:::-;:32;;6457:41;;;;;;454:4;6534:7;6511:20;6520:10;6511:8;:20::i;:::-;:30;:51;;6503:60;;;;;;6568:16;:27;;;;;;6611:10;-1:-1:-1;6600:22:0;;;:10;:22;;;;;;;;;:29;;;:40;;;;;;6701:25;;6645:35;;;;:82;;6691:35;;;6645:82;;;;;;6737:44;;;;;;;6766:4;;6611:10;-1:-1:-1;;;;;;;;;;;6737:44:0;;;;;;;;6791:27;;;;;;;;6798:10;;6791:27;;;;;;;;;;6409:414;:::o
Swarm Source
bzzr://ce9ad4519dd366cb640c9b6ebc1467ba1e58ed80e0f0ac1ec52c9ff51bf562d4
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.