ERC-20
Blockchain
Overview
Max Total Supply
10,000,000,000 BEATFI
Holders
67 (0.00%)
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:
BeatFiAi
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-09 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } library Address { function sendValue(address payable recipient, uint256 amount) internal returns(bool){ require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); return success; // always proceeds } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mintOnce(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } abstract contract Feeable is Context { event FeeRecipientChanged(address account); event FeePointsOnBuyChanged(uint newFeePoints); event FeePointsOnSellChanged(uint newFeePoints); event ExemptFee(address account); event RevokeFeeExemption(address account); uint private _maxFeePointsAllowed; uint private _feePointsOnBuy; uint private _feePointsOnSell; address private _feeRecipient; mapping (address => bool) private _feeExemption; constructor(uint __maxFeePointsAllowed, uint __feePointsOnBuy, uint __feePointsOnSell, address __feeRecipient) { require(__feeRecipient != address(0), "Fee receiver cannot be the zero address"); require(__feePointsOnBuy <= __maxFeePointsAllowed, "Exceed max allowed fee points"); require(__feePointsOnSell <= __maxFeePointsAllowed, "Exceed max allowed fee points"); _maxFeePointsAllowed = __maxFeePointsAllowed; _feePointsOnBuy = __feePointsOnBuy; _feePointsOnSell = __feePointsOnSell; _feeRecipient = __feeRecipient; } function maxFeePointsAllowed() public view virtual returns (uint) { return _maxFeePointsAllowed; } function feePointsOnBuy() public view virtual returns (uint) { return _feePointsOnBuy; } function feePointsOnSell() public view virtual returns (uint) { return _feePointsOnSell; } function feeRecipient() public view virtual returns (address) { return _feeRecipient; } function isFeeExempted(address account) public view virtual returns (bool) { return _feeExemption[account]; } function _updateFeeRecipient(address newRecipient) internal virtual { require(newRecipient != address(0), "Fee receiver cannot be the zero address"); _feeRecipient = newRecipient; emit FeeRecipientChanged(_msgSender()); } function _updateFeePointsOnBuy(uint newFeePointsOnBuy) internal virtual { require(newFeePointsOnBuy <= _maxFeePointsAllowed, "Exceed max allowed fee points"); _feePointsOnBuy = newFeePointsOnBuy; emit FeePointsOnBuyChanged(newFeePointsOnBuy); } function _updateFeePointsOnSell(uint newFeePointsOnSell) internal virtual { require(newFeePointsOnSell <= _maxFeePointsAllowed, "Exceed max allowed fee points"); _feePointsOnSell = newFeePointsOnSell; emit FeePointsOnSellChanged(newFeePointsOnSell); } function _exemptFee(address account) internal virtual { require(!_feeExemption[account], "Account is already exempted"); _feeExemption[account] = true; emit ExemptFee(account); } function _revokeFeeExemption(address account) internal virtual { require(_feeExemption[account], "Account is not exempted"); _feeExemption[account] = false; emit RevokeFeeExemption(account); } } contract BeatFiAi is Feeable, ERC20, Ownable { using Address for address payable; IRouter public router; address public pair; bool _interlock; modifier lockTheSwap() { _interlock = true; _; _interlock = false; } constructor () ERC20("BeatFi.AI", "BEATFI") Feeable(500, 500, 500, 0x3F277603d338cCDa2fB1Da6505Df05A77971F572) Ownable() { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; _approve(address(this), address(router), type(uint).max); exemptFee(msg.sender); _mintOnce(msg.sender, 10_000_000_000 * 10**decimals()); } receive() external payable {} function rescueStuckFund() public onlyOwner { payable(owner()).sendValue(address(this).balance); } function updateFeeRecipient(address newRecipient) public onlyOwner { _updateFeeRecipient(newRecipient); } function updateFeePointsOnBuy(uint newFeePointsOnBuy) public onlyOwner { _updateFeePointsOnBuy(newFeePointsOnBuy); } function updateFeePointsOnSell(uint newFeePointsOnSell) public onlyOwner { _updateFeePointsOnSell(newFeePointsOnSell); } function exemptFee(address account) public onlyOwner { _exemptFee(account); } function revokeFeeExemption(address account) public onlyOwner { _revokeFeeExemption(account); } function _transfer(address from, address to, uint amount) internal override { if (_interlock || amount == 0 || isFeeExempted(from) || isFeeExempted(to) || (from != pair && to != pair)) { super._transfer(from, to, amount); } else { uint _feePoints; if (from == pair) { _feePoints = feePointsOnBuy(); } else { _feePoints = feePointsOnSell(); } if (_feePoints > 0) { uint fees = amount * _feePoints / 10_000; amount = amount - fees; super._transfer(from, address(this), fees); } if (from != pair) { liquify(); } super._transfer(from, to, amount); } } function liquify() private lockTheSwap { uint toSwap = balanceOf(address(this)); if (toSwap > 0) { swapTokensForEth(toSwap); } } function swapTokensForEth(uint tokenAmount) private { uint256 initialBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); try router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ) {} catch { return; } uint256 deltaBalance = address(this).balance - initialBalance; payable(feeRecipient()).sendValue(deltaBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"ExemptFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFeePoints","type":"uint256"}],"name":"FeePointsOnBuyChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFeePoints","type":"uint256"}],"name":"FeePointsOnSellChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"FeeRecipientChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RevokeFeeExemption","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feePointsOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePointsOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isFeeExempted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFeePointsAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"revokeFeeExemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFeePointsOnBuy","type":"uint256"}],"name":"updateFeePointsOnBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFeePointsOnSell","type":"uint256"}],"name":"updateFeePointsOnSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRecipient","type":"address"}],"name":"updateFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060408051808201825260098152684265617446692e414960b81b6020808301919091528251808401909352600683526542454154464960d01b90830152906101f48080733f277603d338ccda2fb1da6505df05a77971f57262000079565b60405180910390fd5b83831115620000cb5760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e7473000000604482015260640162000070565b838211156200011d5760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e7473000000604482015260640162000070565b600093909355600191909155600255600380546001600160a01b0319166001600160a01b03909216919091179055600862000159838262000796565b50600962000168828262000796565b50505060006200017d620003b160201b60201c565b600a80546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024b919062000862565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000299573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bf919062000862565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000333919062000862565b600b80546001600160a01b038086166001600160a01b03199283168117909355600c80549185169190921617905590915062000374903090600019620003b5565b6200037f33620004dd565b620003a933620003926012600a620009a9565b620003a3906402540be400620009ba565b62000547565b5050620009ea565b3390565b6001600160a01b038316620004195760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000070565b6001600160a01b0382166200047c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000070565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a546001600160a01b03163314620005395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000070565b62000544816200062c565b50565b6001600160a01b0382166200059f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000070565b8060076000828254620005b39190620009d4565b90915550506001600160a01b03821660009081526005602052604081208054839290620005e2908490620009d4565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03811660009081526004602052604090205460ff1615620006975760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578656d707465640000000000604482015260640162000070565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f7b159e939dec60f4baa6fa1ffcdd454977374be0fdeb521dcf642398476dbe57910160405180910390a150565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200071c57607f821691505b6020821081036200073d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200079157600081815260208120601f850160051c810160208610156200076c5750805b601f850160051c820191505b818110156200078d5782815560010162000778565b5050505b505050565b81516001600160401b03811115620007b257620007b2620006f1565b620007ca81620007c3845462000707565b8462000743565b602080601f831160018114620008025760008415620007e95750858301515b600019600386901b1c1916600185901b1785556200078d565b600085815260208120601f198616915b82811015620008335788860151825594840194600190910190840162000812565b5085821015620008525787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200087557600080fd5b81516001600160a01b03811681146200088d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008eb578160001904821115620008cf57620008cf62000894565b80851615620008dd57918102915b93841c9390800290620008af565b509250929050565b6000826200090457506001620009a3565b816200091357506000620009a3565b81600181146200092c5760028114620009375762000957565b6001915050620009a3565b60ff8411156200094b576200094b62000894565b50506001821b620009a3565b5060208310610133831016604e8410600b84101617156200097c575081810a620009a3565b620009888383620008aa565b80600019048211156200099f576200099f62000894565b0290505b92915050565b60006200088d60ff841683620008f3565b8082028115828204841417620009a357620009a362000894565b80820180821115620009a357620009a362000894565b61171180620009fa6000396000f3fe6080604052600436106101a05760003560e01c80638da5cb5b116100ec578063b848a5701161008a578063f160d36911610064578063f160d369146104d2578063f2fde38b146104f2578063f630d65d14610512578063f887ea401461052757600080fd5b8063b848a57014610433578063c5d32bb21461046c578063dd62ed3e1461048c57600080fd5b80639a004cf8116100c65780639a004cf8146103be578063a457c2d7146103d3578063a8aa1b31146103f3578063a9059cbb1461041357600080fd5b80638da5cb5b1461037657806395d89b411461039457806399c37031146103a957600080fd5b8063313ce567116101595780634e344f0a116101335780634e344f0a146102f65780635f3541d21461031657806370a082311461032b578063715018a61461036157600080fd5b8063313ce5671461028857806339509351146102a457806346904840146102c457600080fd5b806306cc2035146101ac57806306fdde03146101ce578063095ea7b3146101f95780631565eee31461022957806318160ddd1461024957806323b872dd1461026857600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101cc6101c7366004611422565b610547565b005b3480156101da57600080fd5b506101e3610586565b6040516101f09190611446565b60405180910390f35b34801561020557600080fd5b50610219610214366004611494565b610618565b60405190151581526020016101f0565b34801561023557600080fd5b506101cc6102443660046114c0565b61062f565b34801561025557600080fd5b506007545b6040519081526020016101f0565b34801561027457600080fd5b506102196102833660046114d9565b610662565b34801561029457600080fd5b50604051601281526020016101f0565b3480156102b057600080fd5b506102196102bf366004611494565b610713565b3480156102d057600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016101f0565b34801561030257600080fd5b506101cc6103113660046114c0565b61074f565b34801561032257600080fd5b5060025461025a565b34801561033757600080fd5b5061025a610346366004611422565b6001600160a01b031660009081526005602052604090205490565b34801561036d57600080fd5b506101cc610782565b34801561038257600080fd5b50600a546001600160a01b03166102de565b3480156103a057600080fd5b506101e36107f6565b3480156103b557600080fd5b5060005461025a565b3480156103ca57600080fd5b5060015461025a565b3480156103df57600080fd5b506102196103ee366004611494565b610805565b3480156103ff57600080fd5b50600c546102de906001600160a01b031681565b34801561041f57600080fd5b5061021961042e366004611494565b61089e565b34801561043f57600080fd5b5061021961044e366004611422565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561047857600080fd5b506101cc610487366004611422565b6108ab565b34801561049857600080fd5b5061025a6104a736600461151a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156104de57600080fd5b506101cc6104ed366004611422565b6108de565b3480156104fe57600080fd5b506101cc61050d366004611422565b610911565b34801561051e57600080fd5b506101cc6109fc565b34801561053357600080fd5b50600b546102de906001600160a01b031681565b600a546001600160a01b0316331461057a5760405162461bcd60e51b815260040161057190611553565b60405180910390fd5b61058381610a4b565b50565b60606008805461059590611588565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190611588565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b6000610625338484610b0b565b5060015b92915050565b600a546001600160a01b031633146106595760405162461bcd60e51b815260040161057190611553565b61058381610c2f565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001981146106fd57828110156106f05760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610571565b6106fd8533858403610b0b565b610708858585610cb6565b506001949350505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161062591859061074a9086906115d8565b610b0b565b600a546001600160a01b031633146107795760405162461bcd60e51b815260040161057190611553565b61058381610de8565b600a546001600160a01b031633146107ac5760405162461bcd60e51b815260040161057190611553565b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b60606009805461059590611588565b3360009081526006602090815260408083206001600160a01b0386168452909152812054828110156108875760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610571565b6108943385858403610b0b565b5060019392505050565b6000610625338484610cb6565b600a546001600160a01b031633146108d55760405162461bcd60e51b815260040161057190611553565b61058381610e6f565b600a546001600160a01b031633146109085760405162461bcd60e51b815260040161057190611553565b61058381610f2c565b600a546001600160a01b0316331461093b5760405162461bcd60e51b815260040161057190611553565b6001600160a01b0381166109a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610571565b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314610a265760405162461bcd60e51b815260040161057190611553565b61058347610a3c600a546001600160a01b031690565b6001600160a01b031690610fdd565b6001600160a01b03811660009081526004602052604090205460ff16610ab35760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578656d707465640000000000000000006044820152606401610571565b6001600160a01b038116600081815260046020908152604091829020805460ff1916905590519182527f72ccc7a1d99dad614931fb1b567f07e41b64b7539d1cf96b1f7cdef92efe326a91015b60405180910390a150565b6001600160a01b038316610b6d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610571565b6001600160a01b038216610bce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610571565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600054811115610c815760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e74730000006044820152606401610571565b60028190556040518181527f556ed9ca7b0c286604e268a9ae87024b96ad6e85a49bef8ff3dfc4d4b6c43db990602001610b00565b600c54600160a01b900460ff1680610ccc575080155b80610cef57506001600160a01b03831660009081526004602052604090205460ff165b80610d1257506001600160a01b03821660009081526004602052604090205460ff165b80610d445750600c546001600160a01b03848116911614801590610d445750600c546001600160a01b03838116911614155b15610d5957610d5483838361108c565b505050565b600c546000906001600160a01b0390811690851603610d7b5750600154610d80565b506002545b8015610dba576000612710610d9583856115eb565b610d9f9190611602565b9050610dab8184611624565b9250610db885308361108c565b505b600c546001600160a01b03858116911614610dd757610dd761125b565b610de284848461108c565b50505050565b600054811115610e3a5760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e74730000006044820152606401610571565b60018190556040518181527f57e975226fd15546c8e0dc896f7ecbcdc72c982a63d2b0a1225b7d0eded859f790602001610b00565b6001600160a01b03811660009081526004602052604090205460ff1615610ed85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578656d7074656400000000006044820152606401610571565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f7b159e939dec60f4baa6fa1ffcdd454977374be0fdeb521dcf642398476dbe579101610b00565b6001600160a01b038116610f925760405162461bcd60e51b815260206004820152602760248201527f4665652072656365697665722063616e6e6f7420626520746865207a65726f206044820152666164647265737360c81b6064820152608401610571565b600380546001600160a01b0319166001600160a01b0383161790556040513381527f167cccccc6e9b2892a740ec13fc1e51d3de8ea384f25bd87fee7412d588637e290602001610b00565b60008147101561102f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610571565b6000836001600160a01b03168360405160006040518083038185875af1925050503d806000811461107c576040519150601f19603f3d011682016040523d82523d6000602084013e611081565b606091505b509095945050505050565b6001600160a01b0383166110f05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610571565b6001600160a01b0382166111525760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610571565b6001600160a01b038316600090815260056020526040902054818110156111ca5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610571565b6001600160a01b038085166000908152600560205260408082208585039055918516815290812080548492906112019084906115d8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124d91815260200190565b60405180910390a350505050565b600c805460ff60a01b1916600160a01b179055306000908152600560205260408120549050801561128f5761128f8161129f565b50600c805460ff60a01b19169055565b6040805160028082526060820183524792600092919060208301908036833701905050905030816000815181106112d8576112d8611637565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611331573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611355919061164d565b8160018151811061136857611368611637565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac947906113ae90869060009086903090429060040161166a565b600060405180830381600087803b1580156113c857600080fd5b505af19250505080156113d9575060015b6113e257505050565b60006113ee8347611624565b905061140681610a3c6003546001600160a01b031690565b5050505050565b6001600160a01b038116811461058357600080fd5b60006020828403121561143457600080fd5b813561143f8161140d565b9392505050565b600060208083528351808285015260005b8181101561147357858101830151858201604001528201611457565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156114a757600080fd5b82356114b28161140d565b946020939093013593505050565b6000602082840312156114d257600080fd5b5035919050565b6000806000606084860312156114ee57600080fd5b83356114f98161140d565b925060208401356115098161140d565b929592945050506040919091013590565b6000806040838503121561152d57600080fd5b82356115388161140d565b915060208301356115488161140d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061159c57607f821691505b6020821081036115bc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610629576106296115c2565b8082028115828204841417610629576106296115c2565b60008261161f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610629576106296115c2565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561165f57600080fd5b815161143f8161140d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116ba5784516001600160a01b031683529383019391830191600101611695565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9550b684e517821cce4669ce7e90d5c62f335c1c3fde01a0a2e6241e2b9c49864736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101a05760003560e01c80638da5cb5b116100ec578063b848a5701161008a578063f160d36911610064578063f160d369146104d2578063f2fde38b146104f2578063f630d65d14610512578063f887ea401461052757600080fd5b8063b848a57014610433578063c5d32bb21461046c578063dd62ed3e1461048c57600080fd5b80639a004cf8116100c65780639a004cf8146103be578063a457c2d7146103d3578063a8aa1b31146103f3578063a9059cbb1461041357600080fd5b80638da5cb5b1461037657806395d89b411461039457806399c37031146103a957600080fd5b8063313ce567116101595780634e344f0a116101335780634e344f0a146102f65780635f3541d21461031657806370a082311461032b578063715018a61461036157600080fd5b8063313ce5671461028857806339509351146102a457806346904840146102c457600080fd5b806306cc2035146101ac57806306fdde03146101ce578063095ea7b3146101f95780631565eee31461022957806318160ddd1461024957806323b872dd1461026857600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101cc6101c7366004611422565b610547565b005b3480156101da57600080fd5b506101e3610586565b6040516101f09190611446565b60405180910390f35b34801561020557600080fd5b50610219610214366004611494565b610618565b60405190151581526020016101f0565b34801561023557600080fd5b506101cc6102443660046114c0565b61062f565b34801561025557600080fd5b506007545b6040519081526020016101f0565b34801561027457600080fd5b506102196102833660046114d9565b610662565b34801561029457600080fd5b50604051601281526020016101f0565b3480156102b057600080fd5b506102196102bf366004611494565b610713565b3480156102d057600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016101f0565b34801561030257600080fd5b506101cc6103113660046114c0565b61074f565b34801561032257600080fd5b5060025461025a565b34801561033757600080fd5b5061025a610346366004611422565b6001600160a01b031660009081526005602052604090205490565b34801561036d57600080fd5b506101cc610782565b34801561038257600080fd5b50600a546001600160a01b03166102de565b3480156103a057600080fd5b506101e36107f6565b3480156103b557600080fd5b5060005461025a565b3480156103ca57600080fd5b5060015461025a565b3480156103df57600080fd5b506102196103ee366004611494565b610805565b3480156103ff57600080fd5b50600c546102de906001600160a01b031681565b34801561041f57600080fd5b5061021961042e366004611494565b61089e565b34801561043f57600080fd5b5061021961044e366004611422565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561047857600080fd5b506101cc610487366004611422565b6108ab565b34801561049857600080fd5b5061025a6104a736600461151a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156104de57600080fd5b506101cc6104ed366004611422565b6108de565b3480156104fe57600080fd5b506101cc61050d366004611422565b610911565b34801561051e57600080fd5b506101cc6109fc565b34801561053357600080fd5b50600b546102de906001600160a01b031681565b600a546001600160a01b0316331461057a5760405162461bcd60e51b815260040161057190611553565b60405180910390fd5b61058381610a4b565b50565b60606008805461059590611588565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190611588565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b6000610625338484610b0b565b5060015b92915050565b600a546001600160a01b031633146106595760405162461bcd60e51b815260040161057190611553565b61058381610c2f565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001981146106fd57828110156106f05760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610571565b6106fd8533858403610b0b565b610708858585610cb6565b506001949350505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161062591859061074a9086906115d8565b610b0b565b600a546001600160a01b031633146107795760405162461bcd60e51b815260040161057190611553565b61058381610de8565b600a546001600160a01b031633146107ac5760405162461bcd60e51b815260040161057190611553565b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b60606009805461059590611588565b3360009081526006602090815260408083206001600160a01b0386168452909152812054828110156108875760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610571565b6108943385858403610b0b565b5060019392505050565b6000610625338484610cb6565b600a546001600160a01b031633146108d55760405162461bcd60e51b815260040161057190611553565b61058381610e6f565b600a546001600160a01b031633146109085760405162461bcd60e51b815260040161057190611553565b61058381610f2c565b600a546001600160a01b0316331461093b5760405162461bcd60e51b815260040161057190611553565b6001600160a01b0381166109a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610571565b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314610a265760405162461bcd60e51b815260040161057190611553565b61058347610a3c600a546001600160a01b031690565b6001600160a01b031690610fdd565b6001600160a01b03811660009081526004602052604090205460ff16610ab35760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578656d707465640000000000000000006044820152606401610571565b6001600160a01b038116600081815260046020908152604091829020805460ff1916905590519182527f72ccc7a1d99dad614931fb1b567f07e41b64b7539d1cf96b1f7cdef92efe326a91015b60405180910390a150565b6001600160a01b038316610b6d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610571565b6001600160a01b038216610bce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610571565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600054811115610c815760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e74730000006044820152606401610571565b60028190556040518181527f556ed9ca7b0c286604e268a9ae87024b96ad6e85a49bef8ff3dfc4d4b6c43db990602001610b00565b600c54600160a01b900460ff1680610ccc575080155b80610cef57506001600160a01b03831660009081526004602052604090205460ff165b80610d1257506001600160a01b03821660009081526004602052604090205460ff165b80610d445750600c546001600160a01b03848116911614801590610d445750600c546001600160a01b03838116911614155b15610d5957610d5483838361108c565b505050565b600c546000906001600160a01b0390811690851603610d7b5750600154610d80565b506002545b8015610dba576000612710610d9583856115eb565b610d9f9190611602565b9050610dab8184611624565b9250610db885308361108c565b505b600c546001600160a01b03858116911614610dd757610dd761125b565b610de284848461108c565b50505050565b600054811115610e3a5760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e74730000006044820152606401610571565b60018190556040518181527f57e975226fd15546c8e0dc896f7ecbcdc72c982a63d2b0a1225b7d0eded859f790602001610b00565b6001600160a01b03811660009081526004602052604090205460ff1615610ed85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578656d7074656400000000006044820152606401610571565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f7b159e939dec60f4baa6fa1ffcdd454977374be0fdeb521dcf642398476dbe579101610b00565b6001600160a01b038116610f925760405162461bcd60e51b815260206004820152602760248201527f4665652072656365697665722063616e6e6f7420626520746865207a65726f206044820152666164647265737360c81b6064820152608401610571565b600380546001600160a01b0319166001600160a01b0383161790556040513381527f167cccccc6e9b2892a740ec13fc1e51d3de8ea384f25bd87fee7412d588637e290602001610b00565b60008147101561102f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610571565b6000836001600160a01b03168360405160006040518083038185875af1925050503d806000811461107c576040519150601f19603f3d011682016040523d82523d6000602084013e611081565b606091505b509095945050505050565b6001600160a01b0383166110f05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610571565b6001600160a01b0382166111525760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610571565b6001600160a01b038316600090815260056020526040902054818110156111ca5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610571565b6001600160a01b038085166000908152600560205260408082208585039055918516815290812080548492906112019084906115d8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124d91815260200190565b60405180910390a350505050565b600c805460ff60a01b1916600160a01b179055306000908152600560205260408120549050801561128f5761128f8161129f565b50600c805460ff60a01b19169055565b6040805160028082526060820183524792600092919060208301908036833701905050905030816000815181106112d8576112d8611637565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611331573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611355919061164d565b8160018151811061136857611368611637565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac947906113ae90869060009086903090429060040161166a565b600060405180830381600087803b1580156113c857600080fd5b505af19250505080156113d9575060015b6113e257505050565b60006113ee8347611624565b905061140681610a3c6003546001600160a01b031690565b5050505050565b6001600160a01b038116811461058357600080fd5b60006020828403121561143457600080fd5b813561143f8161140d565b9392505050565b600060208083528351808285015260005b8181101561147357858101830151858201604001528201611457565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156114a757600080fd5b82356114b28161140d565b946020939093013593505050565b6000602082840312156114d257600080fd5b5035919050565b6000806000606084860312156114ee57600080fd5b83356114f98161140d565b925060208401356115098161140d565b929592945050506040919091013590565b6000806040838503121561152d57600080fd5b82356115388161140d565b915060208301356115488161140d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061159c57607f821691505b6020821081036115bc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610629576106296115c2565b8082028115828204841417610629576106296115c2565b60008261161f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610629576106296115c2565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561165f57600080fd5b815161143f8161140d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116ba5784516001600160a01b031683529383019391830191600101611695565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9550b684e517821cce4669ce7e90d5c62f335c1c3fde01a0a2e6241e2b9c49864736f6c63430008130033
Deployed Bytecode Sourcemap
10094:3284:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11607:109;;;;;;;;;;-1:-1:-1;11607:109:0;;;;;:::i;:::-;;:::i;:::-;;2565:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3479:169;;;;;;;;;;-1:-1:-1;3479:169:0;;;;;:::i;:::-;;:::i;:::-;;;1440:14:1;;1433:22;1415:41;;1403:2;1388:18;3479:169:0;1275:187:1;11366:134:0;;;;;;;;;;-1:-1:-1;11366:134:0;;;;;:::i;:::-;;:::i;2886:108::-;;;;;;;;;;-1:-1:-1;2974:12:0;;2886:108;;;1798:25:1;;;1786:2;1771:18;2886:108:0;1652:177:1;3656:573:0;;;;;;;;;;-1:-1:-1;3656:573:0;;;;;:::i;:::-;;:::i;2785:93::-;;;;;;;;;;-1:-1:-1;2785:93:0;;2868:2;2437:36:1;;2425:2;2410:18;2785:93:0;2295:184:1;4237:215:0;;;;;;;;;;-1:-1:-1;4237:215:0;;;;;:::i;:::-;;:::i;8568:101::-;;;;;;;;;;-1:-1:-1;8648:13:0;;-1:-1:-1;;;;;8648:13:0;8568:101;;;-1:-1:-1;;;;;2648:32:1;;;2630:51;;2618:2;2603:18;8568:101:0;2484:203:1;11228:130:0;;;;;;;;;;-1:-1:-1;11228:130:0;;;;;:::i;:::-;;:::i;8456:104::-;;;;;;;;;;-1:-1:-1;8536:16:0;;8456:104;;3002:127;;;;;;;;;;-1:-1:-1;3002:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3103:18:0;3076:7;3103:18;;;:9;:18;;;;;;;3002:127;6721:148;;;;;;;;;;;;;:::i;6507:79::-;;;;;;;;;;-1:-1:-1;6572:6:0;;-1:-1:-1;;;;;6572:6:0;6507:79;;2673:104;;;;;;;;;;;;;:::i;8226:112::-;;;;;;;;;;-1:-1:-1;8286:4:0;8310:20;8226:112;;8346:102;;;;;;;;;;-1:-1:-1;8425:15:0;;8346:102;;4460:413;;;;;;;;;;-1:-1:-1;4460:413:0;;;;;:::i;:::-;;:::i;10220:19::-;;;;;;;;;;-1:-1:-1;10220:19:0;;;;-1:-1:-1;;;;;10220:19:0;;;3137:175;;;;;;;;;;-1:-1:-1;3137:175:0;;;;;:::i;:::-;;:::i;8677:124::-;;;;;;;;;;-1:-1:-1;8677:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;8771:22:0;8746:4;8771:22;;;:13;:22;;;;;;;;;8677:124;11508:91;;;;;;;;;;-1:-1:-1;11508:91:0;;;;;:::i;:::-;;:::i;3320:151::-;;;;;;;;;;-1:-1:-1;3320:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3436:18:0;;;3409:7;3436:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3320:151;11101:119;;;;;;;;;;-1:-1:-1;11101:119:0;;;;;:::i;:::-;;:::i;6877:244::-;;;;;;;;;;-1:-1:-1;6877:244:0;;;;;:::i;:::-;;:::i;10981:112::-;;;;;;;;;;;;;:::i;10192:21::-;;;;;;;;;;-1:-1:-1;10192:21:0;;;;-1:-1:-1;;;;;10192:21:0;;;11607:109;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;;;;;;;;;11680:28:::1;11700:7;11680:19;:28::i;:::-;11607:109:::0;:::o;2565:100::-;2619:13;2652:5;2645:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2565:100;:::o;3479:169::-;3562:4;3579:39;1893:10;3602:7;3611:6;3579:8;:39::i;:::-;-1:-1:-1;3636:4:0;3479:169;;;;;:::o;11366:134::-;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11450:42:::1;11473:18;11450:22;:42::i;3656:573::-:0;-1:-1:-1;;;;;3840:19:0;;3796:4;3840:19;;;:11;:19;;;;;;;;1893:10;3840:33;;;;;;;;-1:-1:-1;;3888:37:0;;3884:265;;3970:6;3950:16;:26;;3942:79;;;;-1:-1:-1;;;3942:79:0;;4255:2:1;3942:79:0;;;4237:21:1;4294:2;4274:18;;;4267:30;4333:34;4313:18;;;4306:62;-1:-1:-1;;;4384:18:1;;;4377:38;4432:19;;3942:79:0;4053:404:1;3942:79:0;4065:57;4074:6;1893:10;4115:6;4096:16;:25;4065:8;:57::i;:::-;4161:36;4171:6;4179:9;4190:6;4161:9;:36::i;:::-;-1:-1:-1;4217:4:0;;3656:573;-1:-1:-1;;;;3656:573:0:o;4237:215::-;1893:10;4325:4;4374:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4374:34:0;;;;;;;;;;4325:4;;4342:80;;4365:7;;4374:47;;4411:10;;4374:47;:::i;:::-;4342:8;:80::i;11228:130::-;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11310:40:::1;11332:17;11310:21;:40::i;6721:148::-:0;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;6812:6:::1;::::0;6791:40:::1;::::0;6828:1:::1;::::0;-1:-1:-1;;;;;6812:6:0::1;::::0;6791:40:::1;::::0;6828:1;;6791:40:::1;6842:6;:19:::0;;-1:-1:-1;;;;;;6842:19:0::1;::::0;;6721:148::o;2673:104::-;2729:13;2762:7;2755:14;;;;;:::i;4460:413::-;1893:10;4553:4;4597:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4597:34:0;;;;;;;;;;4650:35;;;;4642:85;;;;-1:-1:-1;;;4642:85:0;;4926:2:1;4642:85:0;;;4908:21:1;4965:2;4945:18;;;4938:30;5004:34;4984:18;;;4977:62;-1:-1:-1;;;5055:18:1;;;5048:35;5100:19;;4642:85:0;4724:401:1;4642:85:0;4763:67;1893:10;4786:7;4814:15;4795:16;:34;4763:8;:67::i;:::-;-1:-1:-1;4861:4:0;;4460:413;-1:-1:-1;;;4460:413:0:o;3137:175::-;3223:4;3240:42;1893:10;3264:9;3275:6;3240:9;:42::i;11508:91::-;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11572:19:::1;11583:7;11572:10;:19::i;11101:119::-:0;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11179:33:::1;11199:12;11179:19;:33::i;6877:244::-:0;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6966:22:0;::::1;6958:73;;;::::0;-1:-1:-1;;;6958:73:0;;5332:2:1;6958:73:0::1;::::0;::::1;5314:21:1::0;5371:2;5351:18;;;5344:30;5410:34;5390:18;;;5383:62;-1:-1:-1;;;5461:18:1;;;5454:36;5507:19;;6958:73:0::1;5130:402:1::0;6958:73:0::1;7068:6;::::0;7047:38:::1;::::0;-1:-1:-1;;;;;7047:38:0;;::::1;::::0;7068:6:::1;::::0;7047:38:::1;::::0;7068:6:::1;::::0;7047:38:::1;7096:6;:17:::0;;-1:-1:-1;;;;;;7096:17:0::1;-1:-1:-1::0;;;;;7096:17:0;;;::::1;::::0;;;::::1;::::0;;6877:244::o;10981:112::-;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11036:49:::1;11063:21;11044:7;6572:6:::0;;-1:-1:-1;;;;;6572:6:0;;6507:79;11044:7:::1;-1:-1:-1::0;;;;;11036:26:0::1;::::0;::::1;:49::i;9863:224::-:0;-1:-1:-1;;;;;9945:22:0;;;;;;:13;:22;;;;;;;;9937:58;;;;-1:-1:-1;;;9937:58:0;;5739:2:1;9937:58:0;;;5721:21:1;5778:2;5758:18;;;5751:30;5817:25;5797:18;;;5790:53;5860:18;;9937:58:0;5537:347:1;9937:58:0;-1:-1:-1;;;;;10006:22:0;;10031:5;10006:22;;;:13;:22;;;;;;;;;:30;;-1:-1:-1;;10006:30:0;;;10052:27;;2630:51:1;;;10052:27:0;;2603:18:1;10052:27:0;;;;;;;;9863:224;:::o;5791:380::-;-1:-1:-1;;;;;5927:19:0;;5919:68;;;;-1:-1:-1;;;5919:68:0;;6091:2:1;5919:68:0;;;6073:21:1;6130:2;6110:18;;;6103:30;6169:34;6149:18;;;6142:62;-1:-1:-1;;;6220:18:1;;;6213:34;6264:19;;5919:68:0;5889:400:1;5919:68:0;-1:-1:-1;;;;;6006:21:0;;5998:68;;;;-1:-1:-1;;;5998:68:0;;6496:2:1;5998:68:0;;;6478:21:1;6535:2;6515:18;;;6508:30;6574:34;6554:18;;;6547:62;-1:-1:-1;;;6625:18:1;;;6618:32;6667:19;;5998:68:0;6294:398:1;5998:68:0;-1:-1:-1;;;;;6079:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6131:32;;1798:25:1;;;6131:32:0;;1771:18:1;6131:32:0;;;;;;;5791:380;;;:::o;9354:283::-;9469:20;;9447:18;:42;;9439:84;;;;-1:-1:-1;;;9439:84:0;;6899:2:1;9439:84:0;;;6881:21:1;6938:2;6918:18;;;6911:30;6977:31;6957:18;;;6950:59;7026:18;;9439:84:0;6697:353:1;9439:84:0;9534:16;:37;;;9587:42;;1798:25:1;;;9587:42:0;;1786:2:1;1771:18;9587:42:0;1652:177:1;11724:836:0;11815:10;;-1:-1:-1;;;11815:10:0;;;;;:25;;-1:-1:-1;11829:11:0;;11815:25;:48;;;-1:-1:-1;;;;;;8771:22:0;;8746:4;8771:22;;;:13;:22;;;;;;;;11844:19;11815:69;;;-1:-1:-1;;;;;;8771:22:0;;8746:4;8771:22;;;:13;:22;;;;;;;;11867:17;11815:101;;;-1:-1:-1;11897:4:0;;-1:-1:-1;;;;;11889:12:0;;;11897:4;;11889:12;;;;:26;;-1:-1:-1;11911:4:0;;-1:-1:-1;;;;;11905:10:0;;;11911:4;;11905:10;;11889:26;11811:742;;;11933:33;11949:4;11955:2;11959:6;11933:15;:33::i;:::-;11724:836;;;:::o;11811:742::-;12042:4;;11999:15;;-1:-1:-1;;;;;12042:4:0;;;12034:12;;;;12030:153;;-1:-1:-1;8425:15:0;;12030:153;;;-1:-1:-1;8536:16:0;;12030:153;12203:14;;12199:199;;12238:9;12272:6;12250:19;12259:10;12250:6;:19;:::i;:::-;:28;;;;:::i;:::-;12238:40;-1:-1:-1;12306:13:0;12238:40;12306:6;:13;:::i;:::-;12297:22;;12340:42;12356:4;12370;12377;12340:15;:42::i;:::-;12219:179;12199:199;12426:4;;-1:-1:-1;;;;;12418:12:0;;;12426:4;;12418:12;12414:62;;12451:9;:7;:9::i;:::-;12508:33;12524:4;12530:2;12534:6;12508:15;:33::i;:::-;11984:569;11724:836;;;:::o;9070:276::-;9182:20;;9161:17;:41;;9153:83;;;;-1:-1:-1;;;9153:83:0;;6899:2:1;9153:83:0;;;6881:21:1;6938:2;6918:18;;;6911:30;6977:31;6957:18;;;6950:59;7026:18;;9153:83:0;6697:353:1;9153:83:0;9247:15;:35;;;9298:40;;1798:25:1;;;9298:40:0;;1786:2:1;1771:18;9298:40:0;1652:177:1;9645:210:0;-1:-1:-1;;;;;9719:22:0;;;;;;:13;:22;;;;;;;;9718:23;9710:63;;;;-1:-1:-1;;;9710:63:0;;7785:2:1;9710:63:0;;;7767:21:1;7824:2;7804:18;;;7797:30;7863:29;7843:18;;;7836:57;7910:18;;9710:63:0;7583:351:1;9710:63:0;-1:-1:-1;;;;;9784:22:0;;;;;;:13;:22;;;;;;;;;:29;;-1:-1:-1;;9784:29:0;9809:4;9784:29;;;9829:18;;2630:51:1;;;9829:18:0;;2603::1;9829::0;2484:203:1;8809:253:0;-1:-1:-1;;;;;8896:26:0;;8888:78;;;;-1:-1:-1;;;8888:78:0;;8141:2:1;8888:78:0;;;8123:21:1;8180:2;8160:18;;;8153:30;8219:34;8199:18;;;8192:62;-1:-1:-1;;;8270:18:1;;;8263:37;8317:19;;8888:78:0;7939:403:1;8888:78:0;8977:13;:28;;-1:-1:-1;;;;;;8977:28:0;-1:-1:-1;;;;;8977:28:0;;;;;9021:33;;1893:10;2630:51:1;;9021:33:0;;2618:2:1;2603:18;9021:33:0;2484:203:1;1488:285:0;1567:4;1616:6;1591:21;:31;;1583:73;;;;-1:-1:-1;;;1583:73:0;;8549:2:1;1583:73:0;;;8531:21:1;8588:2;8568:18;;;8561:30;8627:31;8607:18;;;8600:59;8676:18;;1583:73:0;8347:353:1;1583:73:0;1670:12;1688:9;-1:-1:-1;;;;;1688:14:0;1710:6;1688:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1669:52:0;;1488:285;-1:-1:-1;;;;;1488:285:0:o;4881:614::-;-1:-1:-1;;;;;5021:20:0;;5013:70;;;;-1:-1:-1;;;5013:70:0;;9117:2:1;5013:70:0;;;9099:21:1;9156:2;9136:18;;;9129:30;9195:34;9175:18;;;9168:62;-1:-1:-1;;;9246:18:1;;;9239:35;9291:19;;5013:70:0;8915:401:1;5013:70:0;-1:-1:-1;;;;;5102:23:0;;5094:71;;;;-1:-1:-1;;;5094:71:0;;9523:2:1;5094:71:0;;;9505:21:1;9562:2;9542:18;;;9535:30;9601:34;9581:18;;;9574:62;-1:-1:-1;;;9652:18:1;;;9645:33;9695:19;;5094:71:0;9321:399:1;5094:71:0;-1:-1:-1;;;;;5202:17:0;;5178:21;5202:17;;;:9;:17;;;;;;5238:23;;;;5230:74;;;;-1:-1:-1;;;5230:74:0;;9927:2:1;5230:74:0;;;9909:21:1;9966:2;9946:18;;;9939:30;10005:34;9985:18;;;9978:62;-1:-1:-1;;;10056:18:1;;;10049:36;10102:19;;5230:74:0;9725:402:1;5230:74:0;-1:-1:-1;;;;;5340:17:0;;;;;;;:9;:17;;;;;;5360:22;;;5340:42;;5404:20;;;;;;;;:30;;5376:6;;5340:17;5404:30;;5376:6;;5404:30;:::i;:::-;;;;;;;;5469:9;-1:-1:-1;;;;;5452:35:0;5461:6;-1:-1:-1;;;;;5452:35:0;;5480:6;5452:35;;;;1798:25:1;;1786:2;1771:18;;1652:177;5452:35:0;;;;;;;;5002:493;4881:614;;;:::o;12568:175::-;10304:10;:17;;-1:-1:-1;;;;10304:17:0;-1:-1:-1;;;10304:17:0;;;12650:4:::1;-1:-1:-1::0;3103:18:0;;;:9;:18;;;;;;12618:38;-1:-1:-1;12673:10:0;;12669:67:::1;;12700:24;12717:6;12700:16;:24::i;:::-;-1:-1:-1::0;10344:10:0;:18;;-1:-1:-1;;;;10344:18:0;;;12568:175::o;12751:624::-;12897:16;;;12911:1;12897:16;;;;;;;;12839:21;;12814:22;;12897:16;12911:1;12897:16;;;;;;;;;;-1:-1:-1;12897:16:0;12873:40;;12942:4;12924;12929:1;12924:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12924:23:0;;;:7;;;;;;;;;;:23;;;;12968:6;;:13;;;-1:-1:-1;;;12968:13:0;;;;:6;;;;;:11;;:13;;;;;12924:7;;12968:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12958:4;12963:1;12958:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12958:23:0;;;:7;;;;;;;;;:23;13006:6;;:187;;-1:-1:-1;;;13006:187:0;;:6;;;:57;;:187;;13078:11;;13006:6;;13120:4;;13147;;13167:15;;13006:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13002:234;;13218:7;;12751:624;:::o;13002:234::-;13248:20;13271:38;13295:14;13271:21;:38;:::i;:::-;13248:61;;13320:47;13354:12;13328:14;8648:13;;-1:-1:-1;;;;;8648:13:0;;8568:101;13320:47;;12803:572;;;12751:624;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:1:o;402:548::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;686:3;871:1;866:2;857:6;846:9;842:22;838:31;831:42;941:2;934;930:7;925:2;917:6;913:15;909:29;898:9;894:45;890:54;882:62;;;;402:548;;;;:::o;955:315::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;955:315:1:o;1467:180::-;1526:6;1579:2;1567:9;1558:7;1554:23;1550:32;1547:52;;;1595:1;1592;1585:12;1547:52;-1:-1:-1;1618:23:1;;1467:180;-1:-1:-1;1467:180:1:o;1834:456::-;1911:6;1919;1927;1980:2;1968:9;1959:7;1955:23;1951:32;1948:52;;;1996:1;1993;1986:12;1948:52;2035:9;2022:23;2054:31;2079:5;2054:31;:::i;:::-;2104:5;-1:-1:-1;2161:2:1;2146:18;;2133:32;2174:33;2133:32;2174:33;:::i;:::-;1834:456;;2226:7;;-1:-1:-1;;;2280:2:1;2265:18;;;;2252:32;;1834:456::o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3307:356::-;3509:2;3491:21;;;3528:18;;;3521:30;3587:34;3582:2;3567:18;;3560:62;3654:2;3639:18;;3307:356::o;3668:380::-;3747:1;3743:12;;;;3790;;;3811:61;;3865:4;3857:6;3853:17;3843:27;;3811:61;3918:2;3910:6;3907:14;3887:18;3884:38;3881:161;;3964:10;3959:3;3955:20;3952:1;3945:31;3999:4;3996:1;3989:15;4027:4;4024:1;4017:15;3881:161;;3668:380;;;:::o;4462:127::-;4523:10;4518:3;4514:20;4511:1;4504:31;4554:4;4551:1;4544:15;4578:4;4575:1;4568:15;4594:125;4659:9;;;4680:10;;;4677:36;;;4693:18;;:::i;7055:168::-;7128:9;;;7159;;7176:15;;;7170:22;;7156:37;7146:71;;7197:18;;:::i;7228:217::-;7268:1;7294;7284:132;;7338:10;7333:3;7329:20;7326:1;7319:31;7373:4;7370:1;7363:15;7401:4;7398:1;7391:15;7284:132;-1:-1:-1;7430:9:1;;7228:217::o;7450:128::-;7517:9;;;7538:11;;;7535:37;;;7552:18;;:::i;10264:127::-;10325:10;10320:3;10316:20;10313:1;10306:31;10356:4;10353:1;10346:15;10380:4;10377:1;10370:15;10396:251;10466:6;10519:2;10507:9;10498:7;10494:23;10490:32;10487:52;;;10535:1;10532;10525:12;10487:52;10567:9;10561:16;10586:31;10611:5;10586:31;:::i;10652:980::-;10914:4;10962:3;10951:9;10947:19;10993:6;10982:9;10975:25;11019:2;11057:6;11052:2;11041:9;11037:18;11030:34;11100:3;11095:2;11084:9;11080:18;11073:31;11124:6;11159;11153:13;11190:6;11182;11175:22;11228:3;11217:9;11213:19;11206:26;;11267:2;11259:6;11255:15;11241:29;;11288:1;11298:195;11312:6;11309:1;11306:13;11298:195;;;11377:13;;-1:-1:-1;;;;;11373:39:1;11361:52;;11468:15;;;;11433:12;;;;11409:1;11327:9;11298:195;;;-1:-1:-1;;;;;;;11549:32:1;;;;11544:2;11529:18;;11522:60;-1:-1:-1;;;11613:3:1;11598:19;11591:35;11510:3;10652:980;-1:-1:-1;;;10652:980:1:o
Swarm Source
ipfs://a9550b684e517821cce4669ce7e90d5c62f335c1c3fde01a0a2e6241e2b9c498
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.