Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
59,098.844386147095354754 DFE
Holders
18
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 Source Code Verified (Exact Match)
Contract Name:
DFEStaking
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)Audit Report
/** *Submitted for verification at Etherscan.io on 2020-11-30 */ pragma solidity ^0.5.13; interface Callable { function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool); } contract DFEStaking { uint256 constant private FLOAT_SCALAR = 2**64; uint256 constant private INITIAL_SUPPLY = 60000e18; //available supply uint256 constant private BURN_RATE = 6; //burn every per txn uint256 constant private TAX_RATE = 1; //tax every per stake uint256 constant private SUPPLY_FLOOR = 50; // % of supply uint256 constant private MIN_FREEZE_AMOUNT = 1e18; //Minimum amount for stake string constant public name = "DFE.Finance"; string constant public symbol = "DFE"; uint8 constant public decimals = 18; struct User { bool whitelisted; uint256 balance; uint256 staken; mapping(address => uint256) allowance; int256 scaledPayout; } struct Info { uint256 totalSupply; uint256 totalStaken; 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 Stack(address indexed owner, uint256 tokens); event UnStack(address indexed owner, uint256 tokens); event Withdraw(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 stack(uint256 _tokens) external { _stack(_tokens); } function unstack(uint256 _tokens) external { _unstack(_tokens); } function withdraw() 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 Stack(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.totalStaken > 0) { _burnedAmount /= 2; info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalStaken; 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.totalStaken > 0); require(balanceOf(msg.sender) >= _tokens); info.users[msg.sender].balance -= _tokens; info.scaledPayoutPerToken += _tokens * FLOAT_SCALAR / info.totalStaken; 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 totalStaken() public view returns (uint256) { return info.totalStaken; } function balanceOf(address _user) public view returns (uint256) { return info.users[_user].balance - stackOf(_user); } function stackOf(address _user) public view returns (uint256) { return info.users[_user].staken; } function dividendsOf(address _user) public view returns (uint256) { return uint256(int256(info.scaledPayoutPerToken * info.users[_user].staken) - 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 totalTokensStaken, uint256 userBalance, uint256 userStaken, uint256 userDividends) { return (totalSupply(), totalStaken(), balanceOf(_user), stackOf(_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.totalStaken > 0) { _burnedAmount /= 2; info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalStaken; emit Transfer(_from, address(this), _burnedAmount); } info.totalSupply -= _burnedAmount; emit Transfer(_from, address(0x0), _burnedAmount); emit Burn(_burnedAmount); } return _transferred; } function _stack(uint256 _amount) internal { require(balanceOf(msg.sender) >= _amount); require(stackOf(msg.sender) + _amount >= MIN_FREEZE_AMOUNT); uint256 _taxAmount = _amount * TAX_RATE / 100; info.totalStaken += _amount - _taxAmount; info.users[msg.sender].staken += _amount - _taxAmount; info.users[msg.sender].scaledPayout += int256((_amount - _taxAmount) * info.scaledPayoutPerToken); emit Transfer(msg.sender, address(this), _amount); emit Stack(msg.sender, _amount); } function _unstack(uint256 _amount) internal { require(stackOf(msg.sender) >= _amount); uint256 _burnedAmount = _amount * BURN_RATE / 100; info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalStaken; info.totalStaken -= _amount; info.users[msg.sender].balance -= _burnedAmount; info.users[msg.sender].staken -= _amount; info.users[msg.sender].scaledPayout -= int256(_amount * info.scaledPayoutPerToken); emit Transfer(address(this), msg.sender, _amount - _burnedAmount); emit Stack(msg.sender, _amount); } }
Contract Security Audit
- Kishan Patel - December 6th, 2020 - Security Audit Report
Contract ABI
API[{"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":"Stack","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":"UnStack","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Withdraw","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokenSupply","type":"uint256"},{"internalType":"uint256","name":"totalTokensStaken","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userStaken","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":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":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":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"stack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"stackOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"totalStaken","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":"unstack","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"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600480546001600160a01b03191633908117909155690cb49b44ba602d800000600081815582815260026020908152604080832060010184905580519384525191927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a36100923360016001600160e01b0361009716565b61010e565b6004546001600160a01b031633146100ae57600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b610f798061011d6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c80634000aea0116100b857806395d89b411161007c57806395d89b41146104e4578063a9059cbb146104ec578063d1390f5914610518578063dc9031c41461053e578063dd62ed3e1461055b578063f59c37081461058957610141565b80634000aea0146103ae57806342966c681461043357806357f6b8121461045057806370a08231146104a157806391c05b0b146104c757610141565b806318160ddd1161010a57806318160ddd14610307578063200061df1461030f57806323b872dd1461032c578063313ce567146103625780633af32abf146103805780633ccfd60b146103a657610141565b806265318b1461014657806306fdde031461017e578063095ea7b3146101fb578063153a1f3e1461023b578063160e0669146102ff575b600080fd5b61016c6004803603602081101561015c57600080fd5b50356001600160a01b03166105b7565b60408051918252519081900360200190f35b6101866105eb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102276004803603604081101561021157600080fd5b506001600160a01b038135169060200135610612565b604080519115158252519081900360200190f35b6102fd6004803603604081101561025157600080fd5b81019060208101813564010000000081111561026c57600080fd5b82018360208201111561027e57600080fd5b803590602001918460208302840111640100000000831117156102a057600080fd5b9193909290916020810190356401000000008111156102be57600080fd5b8201836020820111156102d057600080fd5b803590602001918460208302840111640100000000831117156102f257600080fd5b50909250905061067c565b005b61016c6106db565b61016c6106e1565b6102fd6004803603602081101561032557600080fd5b50356106e7565b6102276004803603606081101561034257600080fd5b506001600160a01b038135811691602081013590911690604001356106f3565b61036a610769565b6040805160ff9092168252519081900360200190f35b6102276004803603602081101561039657600080fd5b50356001600160a01b031661076e565b61016c61078c565b610227600480360360608110156103c457600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f457600080fd5b82018360208201111561040657600080fd5b8035906020019184600183028401116401000000008311171561042857600080fd5b509092509050610821565b6102fd6004803603602081101561044957600080fd5b5035610908565b6104766004803603602081101561046657600080fd5b50356001600160a01b03166109ef565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b61016c600480360360208110156104b757600080fd5b50356001600160a01b0316610a34565b6102fd600480360360208110156104dd57600080fd5b5035610a63565b610186610ae4565b6102276004803603604081101561050257600080fd5b506001600160a01b038135169060200135610b03565b61016c6004803603602081101561052e57600080fd5b50356001600160a01b0316610b1a565b6102fd6004803603602081101561055457600080fd5b5035610b39565b61016c6004803603604081101561057157600080fd5b506001600160a01b0381358116916020013516610b42565b6102fd6004803603604081101561059f57600080fd5b506001600160a01b0381351690602001351515610b71565b6001600160a01b031660009081526002602081905260409091206004810154910154600354600160401b9102919091030490565b6040518060400160405280600b81526020016a4446452e46696e616e636560a81b81525081565b3360008181526002602090815260408083206001600160a01b03871680855260039091018352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b82811461068857600080fd5b60005b838110156106d4576106cb338686848181106106a357fe5b905060200201356001600160a01b03168585858181106106bf57fe5b90506020020135610be8565b5060010161068b565b5050505050565b60015490565b60005490565b6106f081610d79565b50565b6001600160a01b038316600090815260026020908152604080832033845260030190915281205482111561072657600080fd5b6001600160a01b038416600090815260026020908152604080832033845260030190915290208054839003905561075e848484610be8565b506001949350505050565b601281565b6001600160a01b031660009081526002602052604090205460ff1690565b600080610798336105b7565b905033600081815260026020908152604091829020600481018054600160401b8702019055600101805485019055815184815291513092600080516020610f2583398151915292908290030190a360408051828152905133917f56a71a669e4fca55407f32f2924bb9bfa71ef1eb06457d649fc358de5a866e05919081900360200190a2905090565b60008061082f338787610be8565b9050853b63ffffffff8116156108fb57604051636be32e7360e01b8152336004820181815260248301859052606060448401908152606484018890526001600160a01b038b1693636be32e73939287928b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b1580156108c657600080fd5b505af11580156108da573d6000803e3d6000fd5b505050506040513d60208110156108f057600080fd5b50516108fb57600080fd5b5060019695505050505050565b8061091233610a34565b101561091d57600080fd5b3360009081526002602052604090206001908101805483900390555481901561098b57600154600290910490600160401b82028161095757fe5b600380549290910491909101905560408051828152905130913391600080516020610f258339815191529181900360200190a35b6000805482900381556040805183815290513391600080516020610f25833981519152919081900360200190a36040805182815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15050565b60008060008060006109ff6106e1565b610a076106db565b610a1088610a34565b610a1989610b1a565b610a228a6105b7565b939a9299509097509550909350915050565b6000610a3f82610b1a565b6001600160a01b038316600090815260026020526040902060010154039050919050565b600154610a6f57600080fd5b80610a7933610a34565b1015610a8457600080fd5b33600090815260026020526040902060019081018054839003905554600160401b820281610aae57fe5b600380549290910491909101905560408051828152905130913391600080516020610f258339815191529181900360200190a350565b6040518060400160405280600381526020016244464560e81b81525081565b6000610b10338484610be8565b5060019392505050565b6001600160a01b03166000908152600260208190526040909120015490565b6106f081610e56565b6001600160a01b0391821660009081526002602090815260408083209390941682526003909201909152205490565b6004546001600160a01b03163314610b8857600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b600081610bf485610a34565b1015610bff57600080fd5b6001600160a01b0384166000908152600260205260409020600101805483900390556064600683020469065a4da25d3016c0000081610c3c6106e1565b031080610c4d5750610c4d8561076e565b15610c56575060005b6001600160a01b0380851660008181526002602090815260409182902060010180548689039081019091558251818152925190948a1692600080516020610f2583398151915292908290030190a38115610d705760015415610d0657600154600290920491600160401b830281610cc957fe5b600380549290910491909101905560408051838152905130916001600160a01b03891691600080516020610f258339815191529181900360200190a35b6000805483900381556040805184815290516001600160a01b03891691600080516020610f25833981519152919081900360200190a36040805183815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15b95945050505050565b80610d8333610b1a565b1015610d8e57600080fd5b6001546064600683020490600160401b820281610da757fe5b6003805492909104909101815560018054849003815533600081815260026020818152604092839020948501805488900390559084018054889003905593546004909301805493870290930390925581518486038152915190923092600080516020610f25833981519152929081900390910190a360408051838152905133917f56a71a669e4fca55407f32f2924bb9bfa71ef1eb06457d649fc358de5a866e05919081900360200190a25050565b80610e6033610a34565b1015610e6b57600080fd5b670de0b6b3a764000081610e7e33610b1a565b011015610e8a57600080fd5b6001805460648304808403918201909255336000818152600260208181526040928390209182018054860190556003546004909201805492909502909101909355805185815290513093600080516020610f25833981519152928290030190a360408051838152905133917f56a71a669e4fca55407f32f2924bb9bfa71ef1eb06457d649fc358de5a866e05919081900360200190a2505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a72315820e114680698e669e7162d73cd93f162e6d4d2e79af5aa2ecbdd0e1673781fc21b64736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101415760003560e01c80634000aea0116100b857806395d89b411161007c57806395d89b41146104e4578063a9059cbb146104ec578063d1390f5914610518578063dc9031c41461053e578063dd62ed3e1461055b578063f59c37081461058957610141565b80634000aea0146103ae57806342966c681461043357806357f6b8121461045057806370a08231146104a157806391c05b0b146104c757610141565b806318160ddd1161010a57806318160ddd14610307578063200061df1461030f57806323b872dd1461032c578063313ce567146103625780633af32abf146103805780633ccfd60b146103a657610141565b806265318b1461014657806306fdde031461017e578063095ea7b3146101fb578063153a1f3e1461023b578063160e0669146102ff575b600080fd5b61016c6004803603602081101561015c57600080fd5b50356001600160a01b03166105b7565b60408051918252519081900360200190f35b6101866105eb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102276004803603604081101561021157600080fd5b506001600160a01b038135169060200135610612565b604080519115158252519081900360200190f35b6102fd6004803603604081101561025157600080fd5b81019060208101813564010000000081111561026c57600080fd5b82018360208201111561027e57600080fd5b803590602001918460208302840111640100000000831117156102a057600080fd5b9193909290916020810190356401000000008111156102be57600080fd5b8201836020820111156102d057600080fd5b803590602001918460208302840111640100000000831117156102f257600080fd5b50909250905061067c565b005b61016c6106db565b61016c6106e1565b6102fd6004803603602081101561032557600080fd5b50356106e7565b6102276004803603606081101561034257600080fd5b506001600160a01b038135811691602081013590911690604001356106f3565b61036a610769565b6040805160ff9092168252519081900360200190f35b6102276004803603602081101561039657600080fd5b50356001600160a01b031661076e565b61016c61078c565b610227600480360360608110156103c457600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f457600080fd5b82018360208201111561040657600080fd5b8035906020019184600183028401116401000000008311171561042857600080fd5b509092509050610821565b6102fd6004803603602081101561044957600080fd5b5035610908565b6104766004803603602081101561046657600080fd5b50356001600160a01b03166109ef565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b61016c600480360360208110156104b757600080fd5b50356001600160a01b0316610a34565b6102fd600480360360208110156104dd57600080fd5b5035610a63565b610186610ae4565b6102276004803603604081101561050257600080fd5b506001600160a01b038135169060200135610b03565b61016c6004803603602081101561052e57600080fd5b50356001600160a01b0316610b1a565b6102fd6004803603602081101561055457600080fd5b5035610b39565b61016c6004803603604081101561057157600080fd5b506001600160a01b0381358116916020013516610b42565b6102fd6004803603604081101561059f57600080fd5b506001600160a01b0381351690602001351515610b71565b6001600160a01b031660009081526002602081905260409091206004810154910154600354600160401b9102919091030490565b6040518060400160405280600b81526020016a4446452e46696e616e636560a81b81525081565b3360008181526002602090815260408083206001600160a01b03871680855260039091018352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b82811461068857600080fd5b60005b838110156106d4576106cb338686848181106106a357fe5b905060200201356001600160a01b03168585858181106106bf57fe5b90506020020135610be8565b5060010161068b565b5050505050565b60015490565b60005490565b6106f081610d79565b50565b6001600160a01b038316600090815260026020908152604080832033845260030190915281205482111561072657600080fd5b6001600160a01b038416600090815260026020908152604080832033845260030190915290208054839003905561075e848484610be8565b506001949350505050565b601281565b6001600160a01b031660009081526002602052604090205460ff1690565b600080610798336105b7565b905033600081815260026020908152604091829020600481018054600160401b8702019055600101805485019055815184815291513092600080516020610f2583398151915292908290030190a360408051828152905133917f56a71a669e4fca55407f32f2924bb9bfa71ef1eb06457d649fc358de5a866e05919081900360200190a2905090565b60008061082f338787610be8565b9050853b63ffffffff8116156108fb57604051636be32e7360e01b8152336004820181815260248301859052606060448401908152606484018890526001600160a01b038b1693636be32e73939287928b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b1580156108c657600080fd5b505af11580156108da573d6000803e3d6000fd5b505050506040513d60208110156108f057600080fd5b50516108fb57600080fd5b5060019695505050505050565b8061091233610a34565b101561091d57600080fd5b3360009081526002602052604090206001908101805483900390555481901561098b57600154600290910490600160401b82028161095757fe5b600380549290910491909101905560408051828152905130913391600080516020610f258339815191529181900360200190a35b6000805482900381556040805183815290513391600080516020610f25833981519152919081900360200190a36040805182815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15050565b60008060008060006109ff6106e1565b610a076106db565b610a1088610a34565b610a1989610b1a565b610a228a6105b7565b939a9299509097509550909350915050565b6000610a3f82610b1a565b6001600160a01b038316600090815260026020526040902060010154039050919050565b600154610a6f57600080fd5b80610a7933610a34565b1015610a8457600080fd5b33600090815260026020526040902060019081018054839003905554600160401b820281610aae57fe5b600380549290910491909101905560408051828152905130913391600080516020610f258339815191529181900360200190a350565b6040518060400160405280600381526020016244464560e81b81525081565b6000610b10338484610be8565b5060019392505050565b6001600160a01b03166000908152600260208190526040909120015490565b6106f081610e56565b6001600160a01b0391821660009081526002602090815260408083209390941682526003909201909152205490565b6004546001600160a01b03163314610b8857600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b600081610bf485610a34565b1015610bff57600080fd5b6001600160a01b0384166000908152600260205260409020600101805483900390556064600683020469065a4da25d3016c0000081610c3c6106e1565b031080610c4d5750610c4d8561076e565b15610c56575060005b6001600160a01b0380851660008181526002602090815260409182902060010180548689039081019091558251818152925190948a1692600080516020610f2583398151915292908290030190a38115610d705760015415610d0657600154600290920491600160401b830281610cc957fe5b600380549290910491909101905560408051838152905130916001600160a01b03891691600080516020610f258339815191529181900360200190a35b6000805483900381556040805184815290516001600160a01b03891691600080516020610f25833981519152919081900360200190a36040805183815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15b95945050505050565b80610d8333610b1a565b1015610d8e57600080fd5b6001546064600683020490600160401b820281610da757fe5b6003805492909104909101815560018054849003815533600081815260026020818152604092839020948501805488900390559084018054889003905593546004909301805493870290930390925581518486038152915190923092600080516020610f25833981519152929081900390910190a360408051838152905133917f56a71a669e4fca55407f32f2924bb9bfa71ef1eb06457d649fc358de5a866e05919081900360200190a25050565b80610e6033610a34565b1015610e6b57600080fd5b670de0b6b3a764000081610e7e33610b1a565b011015610e8a57600080fd5b6001805460648304808403918201909255336000818152600260208181526040928390209182018054860190556003546004909201805492909502909101909355805185815290513093600080516020610f25833981519152928290030190a360408051838152905133917f56a71a669e4fca55407f32f2924bb9bfa71ef1eb06457d649fc358de5a866e05919081900360200190a2505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a72315820e114680698e669e7162d73cd93f162e6d4d2e79af5aa2ecbdd0e1673781fc21b64736f6c63430005110032
Deployed Bytecode Sourcemap
159:7402:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:7402:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4868:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4868:200:0;-1:-1:-1;;;;;4868:200:0;;:::i;:::-;;;;;;;;;;;;;;;;576:43;;;:::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;576:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3167:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3167:203:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4002:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4002:259:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4002:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4002: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;4002:259:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4002:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4002: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;4002:259:0;;-1:-1:-1;4002:259:0;-1:-1:-1;4002:259:0;:::i;:::-;;4541:86;;;:::i;4450:::-;;;:::i;1757:70::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1757:70:0;;:::i;3375:266::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3375:266:0;;;;;;;;;;;;;;;;;:::i;664:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5214:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5214:111:0;-1:-1:-1;;;;;5214:111:0;;:::i;1832:374::-;;;:::i;3646:351::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3646:351:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3646:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3646: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;3646:351:0;;-1:-1:-1;3646:351:0;-1:-1:-1;3646:351:0;:::i;2211:502::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2211:502:0;;:::i;5330:274::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5330:274:0;-1:-1:-1;;;;;5330:274:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4632:123;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4632:123:0;-1:-1:-1;;;;;4632:123:0;;:::i;2718:306::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2718:306:0;;:::i;623:37::-;;;:::i;3029:133::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3029:133:0;;;;;;;;:::i;4760:103::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4760:103:0;-1:-1:-1;;;;;4760:103:0;;:::i;1686:66::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1686:66:0;;:::i;5073:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5073:136:0;;;;;;;;;;:::i;4266:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4266:177:0;;;;;;;;;;:::i;4868:200::-;-1:-1:-1;;;;;5017:17:0;4925:7;5017:17;;;:10;:17;;;;;;;;:30;;;;4989:24;;;4961:25;;-1:-1:-1;;;4961:52:0;;4954:93;;;;4946:117;;4868:200::o;576:43::-;;;;;;;;;;;;;;-1:-1:-1;;;576:43:0;;;;:::o;3167:203::-;3259:10;3237:4;3248:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3248:42:0;;;;;:32;;;;:42;;;;;:52;;;3310:39;;;;;;;3237:4;;3248:42;;3259:10;;3310:39;;;;;;;;-1:-1:-1;3361:4:0;3167:203;;;;:::o;4002:259::-;4106:36;;;4098:45;;;;;;4153:9;4148:109;4168:21;;;4148:109;;;4202:49;4212:10;4224;;4235:1;4224:13;;;;;;;;;;;;;-1:-1:-1;;;;;4224:13:0;4239:8;;4248:1;4239:11;;;;;;;;;;;;;4202:9;:49::i;:::-;-1:-1:-1;4191:3:0;;4148:109;;;;4002:259;;;;:::o;4541:86::-;4606:16;;4541:86;:::o;4450:::-;4494:7;4515:16;4450:86;:::o;1757:70::-;1805:17;1814:7;1805:8;:17::i;:::-;1757:70;:::o;3375:266::-;-1:-1:-1;;;;;3479:17:0;;3460:4;3479:17;;;:10;:17;;;;;;;;3507:10;3479:39;;:27;;:39;;;;;;:50;-1:-1:-1;3479:50:0;3471:59;;;;;;-1:-1:-1;;;;;3535:17:0;;:4;:17;;;:10;:17;;;;;;;;3563:10;3535:39;;:27;;:39;;;;;:50;;;;;;;3590:30;3546:5;3607:3;3578:7;3590:9;:30::i;:::-;-1:-1:-1;3632:4:0;;3375:266;-1:-1:-1;;;;3375:266:0:o;664:35::-;697:2;664:35;:::o;5214:111::-;-1:-1:-1;;;;;5291:17:0;5273:4;5291:17;;;:10;:17;;;;;:29;;;;5214:111::o;1832:374::-;1870:7;1884:18;1905:23;1917:10;1905:11;:23::i;:::-;1884:44;-1:-1:-1;1973:10:0;1962:4;:22;;;:10;:22;;;;;;;;;:35;;;:72;;-1:-1:-1;;;2008:25:0;;1962:72;;;-1:-1:-1;2039:30:0;:44;;;;;;2093:47;;;;;;;2110:4;;-1:-1:-1;;;;;;;;;;;2093:47:0;;;;;;;;2150:29;;;;;;;;2156:10;;2150:29;;;;;;;;;;2191:10;-1:-1:-1;1832:374:0;:::o;3646:351::-;3741:4;3752:20;3775:35;3785:10;3797:3;3802:7;3775:9;:35::i;:::-;3752:58;-1:-1:-1;3856:16:0;;3885:9;;;;3881:96;;3910:60;;-1:-1:-1;;;3910:60:0;;3938:10;3910:60;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3910:27:0;;;;;3938:10;3950:12;;3964:5;;;;3910:60;;;;3964:5;;;;3910: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;;3910:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3910:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3910:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3910:60:0;3902:69;;;;;;-1:-1:-1;3988:4:0;;3646:351;-1:-1:-1;;;;;;3646:351:0:o;2211:502::-;2289:7;2264:21;2274:10;2264:9;:21::i;:::-;:32;;2256:41;;;;;;2313:10;2302:4;:22;;;:10;:22;;;;;:30;;;;:41;;;;;;;2388:16;2336:7;;2388:20;2384:199;;2500:16;;2433:1;2416:18;;;;-1:-1:-1;;;2469:28:0;;2500:16;2469:47;;;;2440:25;:76;;2469:47;;;;2440:76;;;;;;2527:50;;;;;;;;2556:4;;2536:10;;-1:-1:-1;;;;;;;;;;;2527:50:0;;;;;;;;2384:199;2587:4;:33;;;;;;;2630:49;;;;;;;;2639:10;;-1:-1:-1;;;;;;;;;;;2630:49:0;;;;;;;;;2689:19;;;;;;;;;;;;;;;;;2211:502;;:::o;5330:274::-;5386:24;5412:25;5439:19;5460:18;5480:21;5516:13;:11;:13::i;:::-;5531;:11;:13::i;:::-;5546:16;5556:5;5546:9;:16::i;:::-;5564:14;5572:5;5564:7;:14::i;:::-;5580:18;5592:5;5580:11;:18::i;:::-;5508:91;;;;-1:-1:-1;5508:91:0;;-1:-1:-1;5508:91:0;-1:-1:-1;5508:91:0;;-1:-1:-1;5330:274:0;-1:-1:-1;;5330:274:0:o;4632:123::-;4687:7;4736:14;4744:5;4736:7;:14::i;:::-;-1:-1:-1;;;;;4708:17:0;;:4;:17;;;:10;:17;;;;;:25;;;:42;;-1:-1:-1;4632:123:0;;;:::o;2718:306::-;2777:16;;2769:29;;;;;;2836:7;2811:21;2821:10;2811:9;:21::i;:::-;:32;;2803:41;;;;;;2860:10;2849:4;:22;;;:10;:22;;;;;:30;;;;:41;;;;;;;2949:16;-1:-1:-1;;;2924:22:0;;2949:16;2924:41;;;;2895:25;:70;;2924:41;;;;2895:70;;;;;;2975:44;;;;;;;;3004:4;;2984:10;;-1:-1:-1;;;;;;;;;;;2975:44:0;;;;;;;;2718:306;:::o;623:37::-;;;;;;;;;;;;;;-1:-1:-1;;;623:37:0;;;;:::o;3029:133::-;3095:4;3106:35;3116:10;3128:3;3133:7;3106:9;:35::i;:::-;-1:-1:-1;3153:4:0;;3029:133;-1:-1:-1;;;3029:133:0:o;4760:103::-;-1:-1:-1;;;;;4834:17:0;4813:7;4834:17;;;:10;:17;;;;;;;;:24;;;4760:103::o;1686:66::-;1732:15;1739:7;1732:6;:15::i;5073:136::-;-1:-1:-1;;;;;5167:17:0;;;5146:7;5167:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;;;:37;;;;;;5073:136::o;4266:177::-;4348:10;;-1:-1:-1;;;;;4348:10:0;4334;:24;4326:33;;;;;;-1:-1:-1;;;;;4364:17:0;;:4;:17;;;:10;:17;;;;;;;;;:39;;-1:-1:-1;;4364:39:0;;;;;;;;;;4413:25;;;;;;;;;;;;;;;;;4266:177;;:::o;5611:885::-;5693:7;5735;5715:16;5725:5;5715:9;:16::i;:::-;:27;;5707:36;;;;;;-1:-1:-1;;;;;5748:17:0;;:4;:17;;;:10;:17;;;;;:25;;:36;;;;;;;5835:3;344:1;5813:19;;:25;5879:35;5813:25;5847:13;:11;:13::i;:::-;:29;:67;:91;;;;5918:20;5932:5;5918:13;:20::i;:::-;5843:126;;;-1:-1:-1;5962:1:0;5843:126;-1:-1:-1;;;;;6024:15:0;;;5973:20;6024:15;;;:10;:15;;;;;;;;;:23;;:39;;5996:23;;;6024:39;;;;;;6073:34;;;;;;;5996:23;;6073:34;;;-1:-1:-1;;;;;;;;;;;6073:34:0;;;;;;;;6116:17;;6112:356;;6145:16;;:20;6141:198;;6259:16;;6191:1;6174:18;;;;-1:-1:-1;;;6228:28:0;;6259:16;6228:47;;;;6199:25;:76;;6228:47;;;;6199:76;;;;;;6287:45;;;;;;;;6311:4;;-1:-1:-1;;;;;6287:45:0;;;-1:-1:-1;;;;;;;;;;;6287:45:0;;;;;;;;6141:198;6344:4;:33;;;;;;;6388:44;;;;;;;;-1:-1:-1;;;;;6388:44:0;;;-1:-1:-1;;;;;;;;;;;6388:44:0;;;;;;;;;6443:19;;;;;;;;;;;;;;;;;6112:356;6479:12;5611:885;-1:-1:-1;;;;;5611:885:0:o;7008:550::-;7088:7;7065:19;7073:10;7065:7;:19::i;:::-;:30;;7057:39;;;;;;7215:16;;7147:3;344:1;7125:19;;:25;;-1:-1:-1;;;7184:28:0;;7215:16;7184:47;;;;7155:25;:76;;7184:47;;;;7155:76;;;;;-1:-1:-1;7236:27:0;;;;;;;7279:10;-1:-1:-1;7268:22:0;;;-1:-1:-1;7268:22:0;;;;;;;;;:30;;;:47;;;;;;;7320:29;;;:40;;;;;;;7421:25;;7365:35;;;;:82;;7411:35;;;7365:82;;;;;;7457:60;;7493:23;;;7457:60;;;;7279:10;;7474:4;;-1:-1:-1;;;;;;;;;;;7457:60:0;;;;;;;;;;7527:26;;;;;;;;7533:10;;7527:26;;;;;;;;;;7008:550;;:::o;6501:502::-;6581:7;6556:21;6566:10;6556:9;:21::i;:::-;:32;;6548:41;;;;;;539:4;6624:7;6602:19;6610:10;6602:7;:19::i;:::-;:29;:50;;6594:59;;;;;;6708:16;:40;;6700:3;6679:24;;6728:20;;;6708:40;;;;;;6764:10;6658:18;6753:22;;;:10;:22;;;;;;;;;:29;;;:53;;;;;;6882:25;;6811:35;;;;:97;;6857:50;;;;6811:97;;;;;;6918:44;;;;;;;6947:4;;-1:-1:-1;;;;;;;;;;;6918:44:0;;;;;;;6972:26;;;;;;;;6978:10;;6972:26;;;;;;;;;;6501:502;;:::o
Swarm Source
bzzr://e114680698e669e7162d73cd93f162e6d4d2e79af5aa2ecbdd0e1673781fc21b
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.